add options component

This commit is contained in:
simon lehericey 2023-04-24 15:45:40 +02:00 committed by LeSim
parent 5b0e0ced3c
commit 1754086c94
3 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,6 @@
class Procedure::InstructeursOptionsComponent < ApplicationComponent
def initialize(procedure:, state:)
@procedure = procedure
@state = state
end
end

View file

@ -0,0 +1,11 @@
---
fr:
routing_configuration_notice_1:
Le routage permet dacheminer les dossiers vers différents groupes dinstructeurs.
routing_configuration_notice_2_html: |
<p>Pour le configurer, votre formulaire doit comporter
au moins un champ « choix simple ».</p>
<p>Ajoutez ce champ dans la page <a href="%{path}">« Configuration des champs »</a>.</p>
delete_title: Aucun dossier ne sera supprimé. Les groupes d'instructeurs vont être supprimés. Seuls les instructeurs du groupe « %{defaut_label} » resteront affectés à la procédure.
delete_confirmation: |
Attention : tous les dossiers vont être déplacés dans le groupe « %{defaut_label} » et seuls les instructeurs présent dans ce groupe resteront affectés à la procédure. Souhaitez-vous continuer ?

View file

@ -0,0 +1,49 @@
- content_for(:title, 'Options')
- if @state.nil?
%h1 Options concernant linstruction
%ul.fr-toggle__list
%li
= form_for @procedure,
method: :patch,
url: update_instructeurs_self_management_enabled_admin_procedure_groupe_instructeurs_path(@procedure),
data: { controller: 'autosubmit', turbo: 'true' } do |f|
= render Dsfr::ToggleComponent.new(form: f,
target: :instructeurs_self_management_enabled,
title: 'Autogestion des instructeurs',
hint: "Lautogestion des instructeurs permet aux instructeurs de gérer eux-mêmes la liste des instructeurs de la démarche.#{ ' Lorsque la démarche est routée, lautogestion est activée doffice et nest pas désactivable.' if @procedure.routing_enabled? }",
disabled: @procedure.routing_enabled?)
%p.fr-mt-2w Routage
%p.fr-mt-2w= t('.routing_configuration_notice_1')
- if @procedure.active_revision.routable_types_de_champ.none?
%p.fr-mt-2w= t('.routing_configuration_notice_2_html', path: champs_admin_procedure_path(@procedure))
- elsif @procedure.groupe_instructeurs.active.one?
= link_to 'Configurer le routage', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn'
- else
= button_to 'Supprimer le routage',
destroy_all_groups_but_defaut_admin_procedure_groupe_instructeurs_path,
class: 'fr-btn',
method: :delete,
title: t('.delete_title', defaut_label: @procedure.defaut_groupe_instructeur.label),
data: ( @procedure.publiee? ? { disable_with: "Suppression...", confirm: t('.delete_confirmation', defaut_label: @procedure.defaut_groupe_instructeur.label) } : nil)
- elsif @state == 'choix'
= form_for :choice,
method: :patch,
data: { controller: 'radio-enabled-submit' },
url: wizard_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
%div{ data: { 'action': "click->radio-enabled-submit#click" } }
= render Dsfr::RadioButtonListComponent.new(form: f,
target: :state,
buttons: [ { label: 'À partir dun champ', value: 'routage_simple', hint: 'crée les groupes en fonction dun champ du formulaire' } ,
{ label: 'Avancé', value: 'routage_custom', hint: 'libre à vous de créer et de configurer les groupes' }]) do
%h1 Choix du type de routage
%ul.fr-btns-group.fr-btns-group--inline-sm
%li
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure), class: 'fr-btn fr-btn--secondary'
%li
%button.fr-btn{ disabled: true, data: { 'radio-enabled-submit-target': 'submit' } } Continuer