Sha256: 3d4410dac1f0cbf0c45dd05fbe6f83fdc6fdc99761553660e4f4f83d2a59ab3b

Contents?: true

Size: 1.02 KB

Versions: 18

Compression:

Stored size: 1.02 KB

Contents

module Avo
  module Fields
    class BadgeField < Field
      def initialize(name, **args, &block)
        @defaults = {
          sortable: true,
          component: 'badge-field',
        }

        super(name, **args, &block)

        hide_on [:edit, :create]

        default_options = { info: :info, success: :success, danger: :danger, warning: :warning }
        @options = args[:options].present? ? default_options.merge(args[:options]) : default_options
      end

      def hydrate_field(fields, model, resource, view)
        if fields[:computed_value].present?
          return {
            value: fields[:computed_value]
          }
        end

        value = {}

        @options.invert.each do |values, type|
          db_value = model[id] || ''

          if [values].flatten.map { |value| value.to_s }.include? db_value
            value = {
              label: db_value,
              type: type,
            }
            next
          end
        end

        {
          value: value
        }
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
avo-0.4.10 lib/avo/app/fields/badge_field.rb
avo-0.4.9 lib/avo/app/fields/badge_field.rb
avo-0.4.8 lib/avo/app/fields/badge_field.rb
avo-0.4.7 lib/avo/app/fields/badge_field.rb
avo-0.4.6 lib/avo/app/fields/badge_field.rb
avo-0.4.5 lib/avo/app/fields/badge_field.rb
avo-0.4.4 lib/avo/app/fields/badge_field.rb
avo-0.4.3 lib/avo/app/fields/badge_field.rb
avo-0.4.2 lib/avo/app/fields/badge_field.rb
avo-0.4.1 lib/avo/app/fields/badge_field.rb
avo-0.3.2 lib/avo/app/fields/badge_field.rb
avo-0.3.1 lib/avo/app/fields/badge_field.rb
avo-0.2.5 lib/avo/app/fields/badge_field.rb
avo-0.2.4 lib/avo/app/fields/badge_field.rb
avo-0.2.3 lib/avo/app/fields/badge_field.rb
avo-0.2.2 lib/avo/app/fields/badge_field.rb
avo-0.2.1 lib/avo/app/fields/badge_field.rb
avo-0.2.0 lib/avo/app/fields/badge_field.rb