Sha256: 9960aa02a5143b40add95f7e7ab3b4b17591d694668aada51c789bf90a8f4f8c

Contents?: true

Size: 817 Bytes

Versions: 6

Compression:

Stored size: 817 Bytes

Contents

module Avo
  module Fields
    class IdField < Field
      DEFAULT_VALUE = 'id'

      def initialize(name, **args, &block)
        if name.nil?
          @name = name = DEFAULT_VALUE
        elsif !name.is_a? String and !name.is_a? Symbol
          args_copy = name
          @name = name = DEFAULT_VALUE
          args = args_copy
        end

        @defaults = {
          id: name.to_sym,
          readonly: true,
          sortable: true,
          component: 'id-field'
        }

        hide_on [:edit, :create]

        super(name, **args, &block)

        @link_to_resource = args[:link_to_resource].present? ? args[:link_to_resource] : false
      end

      def hydrate_field(fields, model, resource, view)
        {
          link_to_resource: @link_to_resource,
        }
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
avo-0.2.5 lib/avo/app/fields/id_field.rb
avo-0.2.4 lib/avo/app/fields/id_field.rb
avo-0.2.3 lib/avo/app/fields/id_field.rb
avo-0.2.2 lib/avo/app/fields/id_field.rb
avo-0.2.1 lib/avo/app/fields/id_field.rb
avo-0.2.0 lib/avo/app/fields/id_field.rb