Sha256: 2ceaf3b0fe10610f400c9638b7331e190a1d5fab5f9c8aa3c44bef62592b5d9d

Contents?: true

Size: 1.32 KB

Versions: 14

Compression:

Stored size: 1.32 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-error bg-error border-error border-1 box-shadow-error focus:ring-error focus:border-error "
  message_class = "block w-full text-base p-0 m-0 mt-1 text-error font-semibold"
  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

14 entries across 14 versions & 2 rubygems

Version Path
panda-cms-0.7.3 config/initializers/panda/cms/form_errors.rb
panda-cms-0.7.2 config/initializers/panda/cms/form_errors.rb
panda-cms-0.7.0 config/initializers/panda/cms/form_errors.rb
panda_cms-0.6.3 config/initializers/panda_cms/form_errors.rb
panda_cms-0.6.2 config/initializers/panda_cms/form_errors.rb
panda_cms-0.6.1 config/initializers/panda_cms/form_errors.rb
panda_cms-0.6.0 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.10 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.9 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.8 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.7 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.6 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.5 config/initializers/panda_cms/form_errors.rb
panda_cms-0.5.4 config/initializers/panda_cms/form_errors.rb