Sha256: 12910c73413dabe82d27929e00b43f069159bb59487d48cce062e4d71fa4fdd0

Contents?: true

Size: 1.3 KB

Versions: 5

Compression:

Stored size: 1.3 KB

Contents

require 'administrate/field/belongs_to'
require 'administrate/field/lazy_belongs_to/version'
require 'rails/engine'
require 'administrate/engine'

module Administrate
  module Field
    class LazyBelongsTo < Administrate::Field::BelongsTo
      include LazyBelongsToVersion

      class Engine < ::Rails::Engine
        Administrate::Engine.add_javascript 'administrate-field-lazy_belongs_to/application'
        Administrate::Engine.add_stylesheet 'administrate-field-lazy_belongs_to/application'

        isolate_namespace Administrate
      end

      def to_s
        data
      end

      def display_placeholder
        options.fetch(:placeholder) do
          format('Select a %<association>s', association: associated_class.name)
        end
      end

      def current_value
        data ? display_associated_resource : display_placeholder
      end

      def templated_action
        options.fetch(:action).call(self, q: '{q}')
      end

      def value_attribute
        options.fetch(:value_attribute) { 'id' }
      end

      def label_attribute
        options.fetch(:label_attribute) { 'name' }
      end

      def size
        options.fetch(:size) { 10 }
      end

      def url_helpers
        Rails.application.routes.url_helpers
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
administrate-field-lazy_belongs_to-0.2.0 lib/administrate/field/lazy_belongs_to.rb
administrate-field-lazy_belongs_to-0.1.4 lib/administrate/field/lazy_belongs_to.rb
administrate-field-lazy_belongs_to-0.1.3 lib/administrate/field/lazy_belongs_to.rb
administrate-field-lazy_belongs_to-0.1.2 lib/administrate/field/lazy_belongs_to.rb
administrate-field-lazy_belongs_to-0.1.1 lib/administrate/field/lazy_belongs_to.rb