Sha256: 32d3fd8971aa2ac31f8886a1954909c4db7727536ec1aa28a455aa132c5e377a
Contents?: true
Size: 1.64 KB
Versions: 9
Compression:
Stored size: 1.64 KB
Contents
module Headmin module Filter class AssociationView < FilterView def base_options keys = %i[name label form] options = to_h.slice(*keys) default_base_options.merge(options) end def input_options keys = %i[form] options = to_h.slice(*keys) default_input_options.merge(options) end def collection @collection || association_model.all.map { |record| [record.to_s, record.id] } end def association_model reflection.klass end private def id "#{name}_value" end def name @name || attribute end def label @label || I18n.t("attributes.#{attribute}", default: association_model.model_name.human(count: collection? ? 2 : 1)) end def reflection form.object.class.reflect_on_association(attribute) end def collection? reflection.collection? end def default_base_options { label: label, name: attribute, display_values: collection, filter: Headmin::Filter::Association.new(name, @params), allowed_operators: Headmin::Filter::Association::OPERATORS } end def default_input_options { label: false, wrapper: false, name: nil, id: id, data: { action: "change->filter#updateHiddenValue", filter_target: "value", filter_row_target: "original" }, collection: collection, selected: selected, class: "form-select" } end end end end
Version data entries
9 entries across 9 versions & 1 rubygems