diff --git a/app/components/procedure/one_groupe_management_component.rb b/app/components/procedure/one_groupe_management_component.rb index 17cf69c17..35ca44d68 100644 --- a/app/components/procedure/one_groupe_management_component.rb +++ b/app/components/procedure/one_groupe_management_component.rb @@ -6,95 +6,4 @@ class Procedure::OneGroupeManagementComponent < ApplicationComponent @groupe_instructeur = groupe_instructeur @procedure = revision.procedure end - - private - - def targeted_champ - @groupe_instructeur.routing_rule&.left || empty - end - - def value - @groupe_instructeur.routing_rule&.right || empty - end - - def operator_name - @groupe_instructeur.routing_rule&.class&.name || empty - end - - def targeted_champ_tag - select_tag( - 'targeted_champ', - options_for_select(targeted_champs_for_select, selected: targeted_champ.to_json), - class: 'fr-select' - ) - end - - def targeted_champs_for_select - empty_target_for_select + available_targets_for_select - end - - def empty_target_for_select - [[t('.select'), empty.to_json]] - end - - def available_targets_for_select - @revision - .routable_types_de_champ - .map { |tdc| [tdc.libelle, champ_value(tdc.stable_id).to_json] } - end - - def operator_tag - select_tag('operator_name', - options_for_select( - options_for_operator_tag, - selected: operator_name - ), - class: 'fr-select') - end - - def options_for_operator_tag - [Eq, NotEq] - .map(&:name) - .map { |name| [t(name, scope: 'logic.operators'), name] } - end - - def value_tag - select_tag( - 'value', - options_for_select( - values_for_select(targeted_champ), - selected: value.to_json - ), - class: 'fr-select' - ) - end - - def values_for_select(targeted_champ) - (empty_target_for_select + available_values_for_select(targeted_champ)) - # add id to help morph render selected option - .map { |(libelle, json)| [libelle, json, { id: "option-#{libelle}" }] } - end - - def available_values_for_select(targeted_champ) - return [] if targeted_champ.is_a?(Logic::Empty) - - case @revision.types_de_champ_public.find_by(stable_id: targeted_champ.stable_id).type_champ - when TypeDeChamp.type_champs.fetch(:communes), TypeDeChamp.type_champs.fetch(:departements), TypeDeChamp.type_champs.fetch(:epci) - departements_for_select - when TypeDeChamp.type_champs.fetch(:regions) - regions_for_select - when TypeDeChamp.type_champs.fetch(:drop_down_list) - targeted_champ - .options(@revision.types_de_champ_public) - .map { |(label, value)| [label, constant(value).to_json] } - end - end - - def departements_for_select - APIGeoService.departements.map { ["#{_1[:code]} – #{_1[:name]}", constant(_1[:code]).to_json] } - end - - def regions_for_select - APIGeoService.regions.map { ["#{_1[:code]} – #{_1[:name]}", constant(_1[:code]).to_json] } - end end