Sha256: 8161c7a0858e9bb0c12be30bab70aa575854be2835fe534c82687f49dd3ccc56

Contents?: true

Size: 1.21 KB

Versions: 116

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Effective
  module FormInputs
    class ErrorField < Effective::FormInput

      def input_html_options
        { class: 'alert alert-danger', id: tag_id }
      end

      def to_html(&block)
        return nil unless has_error?(name)

        case layout
        when :horizontal
          build_wrapper do
            content_tag(:div, '', class: 'col-sm-2') + content_tag(:div, build_error_content, class: 'col-sm-10')
          end
        else
          content_tag(:div, build_error_content, class: 'form-group')
        end
      end

      def build_error_content
        include_name = include_name?

        content = (
          if name.blank?
            object.errors.full_messages.to_sentence
          elsif include_name?
            object.errors.full_messages_for(name).to_sentence
          else
            object.errors.messages[name].to_sentence
          end
        )

        content_tag(:div, content.html_safe, options[:input])
      end

      private

      def include_name?
        return @include_name unless @include_name.nil?
        @include_name = options[:input].key?(:include_name) ? options[:input].delete(:include_name) : true
      end

    end
  end
end

Version data entries

116 entries across 116 versions & 1 rubygems

Version Path
effective_bootstrap-1.19.13 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.12 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.11 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.10 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.9 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.8 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.7 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.6 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.5 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.4 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.3 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.2 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.1 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.19.0 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.7 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.4 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.3 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.2 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.1 app/models/effective/form_inputs/error_field.rb
effective_bootstrap-1.18.0 app/models/effective/form_inputs/error_field.rb