Sha256: 9fa27df7399a6da1b73b744da95a7e8a5546c244edc48b496c9ffac4c1501c6b
Contents?: true
Size: 1.93 KB
Versions: 44
Compression:
Stored size: 1.93 KB
Contents
<% stimulus_controller = 'fields--super-select' form ||= current_fields_form options ||= {} other_options ||= {} select2_options ||= nil html_options ||= {} html_options[:id] ||= form.field_id(method) html_options[:class] = "form-control select2 #{html_options[:class]}".strip choices_url ||= nil if choices_url.nil? choices ||= options_for(form, method)&.invert else # If we have a choices_url, we're going to lazy load the choices. However, we still want to show the currently selected option. method_without_id = method.to_s.gsub("_id", "") if current_selection = form.object.send(method_without_id) choices = [[current_selection.label_string, current_selection.id]] else choices = {} end end wrapper_options ||= {} wrapper_options[:data] ||= {} wrapper_options[:data][:controller] ||= "" wrapper_options[:data][:controller] += " #{stimulus_controller}" wrapper_options[:data]["#{stimulus_controller}-enable-search-value"] = true if (other_options[:search] || other_options[:accepts_new]) wrapper_options[:data]["#{stimulus_controller}-accepts-new-value"] = true if other_options[:accepts_new] wrapper_options[:data]["#{stimulus_controller}-search-url-value"] = choices_url if choices_url.present? wrapper_options[:data]["#{stimulus_controller}-select2-options-value"] = select2_options.to_json if select2_options.present? unless options[:multiple] wrapper_options[:data]["action"] ||= "" wrapper_options[:data]["action"] += " keydown->#{stimulus_controller}#injectKeystrokeIntoTextField $select2:open->#{stimulus_controller}#focusOnTextField" end html_options[:data] ||= {} html_options[:data].merge!("#{stimulus_controller}-target": 'select') %> <%= render 'shared/fields/field', form: form, method: method, options: html_options, other_options: other_options do %> <% content_for :field do %> <%= content_tag :div, wrapper_options do %> <%= form.select method, choices, options, html_options %> <% end %> <% end %> <% end %>
Version data entries
44 entries across 44 versions & 1 rubygems