Sha256: 931933946b9fc28be87f6f436f7c4585a67ac594e50cfb6b5aa7b4e1d3f81961

Contents?: true

Size: 1.43 KB

Versions: 28

Compression:

Stored size: 1.43 KB

Contents

ActionView::Base.field_error_proc = proc do |html_tag, instance|
  html = ""
  form_fields = %w[input select textarea trix-editor label].join(", ")
  error_class = "text-red-600 dark:text-red-500 bg-red-50 border-red-500 border-1 box-shadow-red-500 focus:ring-red-500 focus:border-red-500 dark:bg-red-900 dark:border-red-500 dark:focus:ring-red-500 dark:focus:border-red-500"
  message_class = "block w-full text-sm font-bold p-0 m-0 mt-1 text-red-700"
  autofocused = false

  Nokogiri::HTML::DocumentFragment.parse(html_tag).css(form_fields).each do |element|
    if form_fields.include?(element.node_name)
      if !autofocused
        # element.attribute("autofocus", "true")
        autofocused = true
      end

      message = "#{instance.object.class.human_attribute_name(instance.send(:sanitized_method_name))} "
      message += if instance.error_message.respond_to?(:each)
        "#{instance.error_message.uniq.to_sentence}."
      else
        "#{instance.error_message}."
      end

      if element.node_name.eql?("label")
        html = element.to_s
      else
        element.add_class(error_class)
        html = if element.get_attribute("data-prefix")
          "#{element}</div><div class=\"#{message_class}\">#{message}"
        elsif element.get_attribute("type") != "checkbox"
          "#{element}<div class=\"#{message_class}\">#{message}</div>"
        else
          element.to_s
        end
      end
    end
  end

  html.html_safe
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
panda_cms-0.5.3 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.2 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.1 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.0 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.15 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.14 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.13 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.12 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.11 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.10 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.9 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.8 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.7 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.6 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.5 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.4 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.3 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.2 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.1 config/initializers/panda_cms/form_errors.rb
panda_cms-0.3.0 config/initializers/panda_cms/form_errors.rb