Sha256: fbeb0b36ce27ea345fed9936c49c161c7d05f008a42506ff2aa2522ceca2e2eb

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

require 'administrate/field/belongs_to'
require 'administrate/field/lazy_belongs_to/version'
require 'rails/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 url_helpers
        Rails.application.routes.url_helpers
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
administrate-field-lazy_belongs_to-0.1.0 lib/administrate/field/lazy_belongs_to.rb