Module: AdminCore::ResourceManager::HasManyFields
- Extended by:
- ActiveSupport::Concern
- Included in:
- BaseResourceManager
- Defined in:
- lib/admin_core/resource_manager/has_many_fields.rb
Class Method Summary collapse
- .field_builders ⇒ Hash<Symbol, AdminCore::ResourceFieldBuilder>
- .field_names_for(page) ⇒ Array<Symbol>
Instance Method Summary collapse
- #build_filters(params) ⇒ Array<AdminCore::ResourceFilter::Base>
- #permitted_field_names_for(page) ⇒ Array<Symbol>
Class Method Details
.field_builders ⇒ Hash<Symbol, AdminCore::ResourceFieldBuilder>
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/admin_core/resource_manager/has_many_fields.rb', line 13 class_methods do def field_builders @field_builders ||= {} end def field_names_for(page) @page_fields ||= {} @page_fields[page] || [] end private # @param name [Symbol] # @param type [Symbol, Class] built-in type name or a resoure field class # @param options [Hash] def define_field(name, type, = {}) field_builders[name] = AdminCore::ResourceFieldBuilder.new(name, type, ) end # @param pages [Array<Symbol>] # @param fields [Array<Symbol>] def register_fields_for(*pages, fields) @page_fields ||= {} pages.each do |page| @page_fields[page] = fields end end end |
.field_names_for(page) ⇒ Array<Symbol>
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/admin_core/resource_manager/has_many_fields.rb', line 13 class_methods do def field_builders @field_builders ||= {} end def field_names_for(page) @page_fields ||= {} @page_fields[page] || [] end private # @param name [Symbol] # @param type [Symbol, Class] built-in type name or a resoure field class # @param options [Hash] def define_field(name, type, = {}) field_builders[name] = AdminCore::ResourceFieldBuilder.new(name, type, ) end # @param pages [Array<Symbol>] # @param fields [Array<Symbol>] def register_fields_for(*pages, fields) @page_fields ||= {} pages.each do |page| @page_fields[page] = fields end end end |
Instance Method Details
#build_filters(params) ⇒ Array<AdminCore::ResourceFilter::Base>
50 51 52 53 54 |
# File 'lib/admin_core/resource_manager/has_many_fields.rb', line 50 def build_filters(params) self.class.filter_builders.map do |filter_builder| filter_builder.build(self, params[:filter] || {}) end end |
#permitted_field_names_for(page) ⇒ Array<Symbol>
44 45 46 |
# File 'lib/admin_core/resource_manager/has_many_fields.rb', line 44 def permitted_field_names_for(page) field_builders_for(page).map(&:permitted_field_name) end |