display small multiple selects as checkboxes

This commit is contained in:
clemkeirua 2020-06-17 11:14:27 +02:00
parent 22fc4c4195
commit 342129c893
2 changed files with 16 additions and 6 deletions

View file

@ -1,6 +1,8 @@
class Champs::MultipleDropDownListChamp < Champ
before_save :format_before_save
THRESHOLD_NB_OPTIONS_AS_RADIO = 3
def search_terms
selected_options
end

View file

@ -1,7 +1,15 @@
- if champ.drop_down_list && champ.drop_down_list.options.any?
= form.select :value,
champ.drop_down_list.options,
{ selected: champ.selected_options,
disabled: champ.drop_down_list.disabled_options },
multiple: true,
class: 'select2'
- enabled_non_empty_options = champ.drop_down_list.enabled_non_empty_options
- if enabled_non_empty_options.size > Champs::MultipleDropDownListChamp::THRESHOLD_NB_OPTIONS_AS_RADIO
= form.select :value,
champ.drop_down_list.options,
{ selected: champ.selected_options,
disabled: champ.drop_down_list.disabled_options },
multiple: true,
class: 'select2'
- else
- enabled_non_empty_options.each do |option|
.editable-champ.editable-champ-checkbox
%label
= form.check_box :value, { multiple: true, checked: champ&.value&.include?(option) }, option, nil
= option