add options component
This commit is contained in:
parent
5b0e0ced3c
commit
1754086c94
3 changed files with 66 additions and 0 deletions
|
@ -0,0 +1,6 @@
|
|||
class Procedure::InstructeursOptionsComponent < ApplicationComponent
|
||||
def initialize(procedure:, state:)
|
||||
@procedure = procedure
|
||||
@state = state
|
||||
end
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
fr:
|
||||
routing_configuration_notice_1:
|
||||
Le routage permet d’acheminer les dossiers vers différents groupes d’instructeurs.
|
||||
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 ?
|
|
@ -0,0 +1,49 @@
|
|||
- content_for(:title, 'Options')
|
||||
- if @state.nil?
|
||||
%h1 Options concernant l’instruction
|
||||
|
||||
%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: "L’autogestion 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, l’autogestion est activée d’office et n’est 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 d’un champ', value: 'routage_simple', hint: 'crée les groupes en fonction d’un 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
|
Loading…
Reference in a new issue