From 86d838dae6d005ed14dcd73b30e878fe07a819d9 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 12:19:07 +0100 Subject: [PATCH 01/12] UI(routing): move titles outside of cards in group page --- .../one_groupe_management_component.html.haml | 75 ++++++++++--------- .../_contact_information.html.haml | 2 +- .../_instructeurs.html.haml | 2 +- .../_signature_form.html.haml | 2 +- 4 files changed, 43 insertions(+), 38 deletions(-) diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml index 6356b579eaa..e1933ce53bc 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml @@ -1,44 +1,49 @@ %div{ id: dom_id(@groupe_instructeur, :routing) } - %h1 Paramètres du groupe + %h1.fr-h2 Configuration du groupe « #{@groupe_instructeur.label} » + %h2.fr-h3 Paramètres du groupe = render Procedure::ImportComponent.new(procedure: @procedure) + .card + = form_for @groupe_instructeur, + url: admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), + method: :patch do |f| + = f.label :label, 'Nom du groupe', class: 'fr-label fr-mb-1w' + .flex + = f.text_field :label, required: true, class: 'fr-input flex auto fr-mr-2w' + = f.button 'Renommer', class: 'fr-btn fr-btn--secondary' - = form_for @groupe_instructeur, - url: admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), - method: :patch do |f| - = f.label :label, 'Nom du groupe', class: 'fr-label fr-mb-1w' - .flex - = f.text_field :label, required: true, class: 'fr-input flex auto fr-mr-2w' - = f.button 'Renommer', class: 'fr-btn fr-btn--secondary' + = form_for @groupe_instructeur, + url: admin_procedure_groupe_instructeur_update_state_path(@procedure, @groupe_instructeur), + method: :patch, + data: { turbo: true, controller: 'autosubmit' } do |f| + .fr-checkbox-group.fr-my-3w + = f.check_box :closed, { id: 'closed', "aria-describedby" => "closed-messages", :name => "closed" } + %label.fr-label{ :for => "closed" } + Groupe inactif + %span.fr-hint-text Si cette option est activée, les usagers ne pourront plus sélectionner ce groupe d’instructeurs - = form_for @groupe_instructeur, - url: admin_procedure_groupe_instructeur_update_state_path(@procedure, @groupe_instructeur), - method: :patch, - data: { turbo: true, controller: 'autosubmit' } do |f| - .fr-checkbox-group.fr-my-3w - = f.check_box :closed, { id: 'closed', "aria-describedby" => "closed-messages", :name => "closed" } - %label.fr-label{ :for => "closed" } - Groupe inactif - %span.fr-hint-text Si cette option est activée, les usagers ne pourront plus sélectionner ce groupe d’instructeurs - - = render Conditions::RoutingRulesComponent.new(groupe_instructeur: @groupe_instructeur) - - .fr-hint-text.mt-2.mb-2 + %h2.fr-h3 Dossiers affectés + .card + .fr-hint-text.mt-2.mb-2 %span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le %span = link_to 'champ concerné', champs_admin_procedure_path(@procedure) - .flex.fr-btns-group--sm.fr-btns-group--inline.fr-btns-group--icon-right.mb-2 - - if @groupe_instructeur.can_delete? - %p= t('.delete') - = button_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), - class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-delete-line', - method: :delete, - data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do - Supprimer - - else - = button_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), - class: 'fr-btn fr-btn--tertiary fr-icon-folder-2-line', - title: t('.move_files_confirmation'), - method: :get do - = t('.move_files', count: @groupe_instructeur.dossiers.visible_by_administration.size) + .flex.fr-btns-group--sm.fr-btns-group--inline.fr-btns-group--icon-right.mb-2 + - if @groupe_instructeur.can_delete? + %p= t('.delete') + = button_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), + class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-delete-line', + method: :delete, + data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do + Supprimer + - else + = button_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), + class: 'fr-btn fr-btn--tertiary fr-icon-folder-2-line', + title: t('.move_files_confirmation'), + method: :get do + = t('.move_files', count: @groupe_instructeur.dossiers.visible_by_administration.size) + + %h2.fr-h3 Règle(s) de routage + .card + = render Conditions::RoutingRulesComponent.new(groupe_instructeur: @groupe_instructeur) diff --git a/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml b/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml index 5fe916c0403..f772cb01ed9 100644 --- a/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml @@ -1,5 +1,5 @@ +%h2.fr-h3 Informations de contact .card.mt-2 - .card-title Informations de contact - service = groupe_instructeur.contact_information - if service.nil? = "Le groupe #{groupe_instructeur.label} n'a pas d'informations de contact. Les informations de contact affichées à l'usager seront celles du service de la procédure" diff --git a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml index c2f3a318670..8e9afb6a53a 100644 --- a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml @@ -1,7 +1,7 @@ +%h2.fr-h3= t('.instructeur_assignation') .card = render Procedure::InvitationWithTypoComponent.new(maybe_typos: @maybe_typos, url: add_instructeur_admin_procedure_groupe_instructeur_path(@procedure, groupe_instructeur.id), title: "Avant d'ajouter l'email, veuillez confirmer" ) - .card-title= t('.instructeur_assignation') = form_for :instructeur, url: { action: :add_instructeur, id: groupe_instructeur.id }, html: { class: 'form' } do |f| .instructeur-wrapper - if !procedure.routing_enabled? diff --git a/app/views/shared/groupe_instructeurs/_signature_form.html.haml b/app/views/shared/groupe_instructeurs/_signature_form.html.haml index 170168729fa..566fdcfeb8f 100644 --- a/app/views/shared/groupe_instructeurs/_signature_form.html.haml +++ b/app/views/shared/groupe_instructeurs/_signature_form.html.haml @@ -1,5 +1,5 @@ +%h2.fr-h3 Tampon de l’attestation .card.mt-2 - %h2.fr-h3 Tampon de l'attestation = render NestedForms::FormOwnerComponent.new = form_with url: { action: :add_signature }, method: :post, html: { multipart: true } do |f| %p.fr-text--sm.fr-text-mention--grey From 07755a1cced7b972bdff26398c6f54b12f9800de Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 12:20:24 +0100 Subject: [PATCH 02/12] UI(routing): remove import component from group page --- .../one_groupe_management_component.html.haml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml index e1933ce53bc..a85314afa0f 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml @@ -2,7 +2,6 @@ %h1.fr-h2 Configuration du groupe « #{@groupe_instructeur.label} » %h2.fr-h3 Paramètres du groupe - = render Procedure::ImportComponent.new(procedure: @procedure) .card = form_for @groupe_instructeur, url: admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), From b40691797987712c4b8bc05960ee74c16d56a319 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 14:14:48 +0100 Subject: [PATCH 03/12] clean(wording): use right character for apostrophe --- .../concerns/groupe_instructeurs_signature_concern.rb | 2 +- .../attestation_templates/_informations.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/groupe_instructeurs_signature_concern.rb b/app/controllers/concerns/groupe_instructeurs_signature_concern.rb index 4e2fee3c07e..569abe2a393 100644 --- a/app/controllers/concerns/groupe_instructeurs_signature_concern.rb +++ b/app/controllers/concerns/groupe_instructeurs_signature_concern.rb @@ -16,7 +16,7 @@ def add_signature @available_instructeur_emails = available_instructeur_emails end - flash[:alert] = "Aucun fichier joint pour le tampon de l'attestation" + flash[:alert] = "Aucun fichier joint pour le tampon de l’attestation" render :show else if @groupe_instructeur.signature.attach(signature_file) diff --git a/app/views/administrateurs/attestation_templates/_informations.html.haml b/app/views/administrateurs/attestation_templates/_informations.html.haml index 35d20116da7..fca64c6d883 100644 --- a/app/views/administrateurs/attestation_templates/_informations.html.haml +++ b/app/views/administrateurs/attestation_templates/_informations.html.haml @@ -29,7 +29,7 @@ = render Attachment::EditComponent.new(attached_file: @attestation_template.logo, direct_upload: false) -%h3.fr-h5.fr-mt-5w Tampon de l'attestation +%h3.fr-h5.fr-mt-5w Tampon de l’attestation %p.fr-text--sm.fr-text-mention--grey.fr-mb-0 Dimensions conseillées : au minimum 500px de largeur ou de hauteur. = render Attachment::EditComponent.new(attached_file: @attestation_template.signature, direct_upload: false) From 3efe0d8b17ae85d8178153f42c2e77c5b29749bb Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 14:23:42 +0100 Subject: [PATCH 04/12] UI(routing): use same title sizes --- .../groupes_management_component.html.haml | 2 +- .../instructeurs_options_component.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/procedure/groupes_management_component/groupes_management_component.html.haml b/app/components/procedure/groupes_management_component/groupes_management_component.html.haml index ef0be2b231f..1a90ac35203 100644 --- a/app/components/procedure/groupes_management_component/groupes_management_component.html.haml +++ b/app/components/procedure/groupes_management_component/groupes_management_component.html.haml @@ -1,5 +1,5 @@ - content_for(:title, 'Groupes') -%h1 Gestion des groupes +%h1.fr-h2 Gestion des groupes = render Procedure::ImportComponent.new(procedure: @procedure) diff --git a/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml b/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml index 36f8d16652b..1652551fd45 100644 --- a/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml +++ b/app/components/procedure/instructeurs_options_component/instructeurs_options_component.html.haml @@ -1,6 +1,6 @@ - content_for(:title, 'Options') - if @state.nil? - %h1 Options concernant l’instruction + %h1.fr-h2 Options concernant l’instruction %ul.fr-toggle__list %li From 79ae9aee6343d7ebefd3b8d50507fa44ebc36a28 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 14:42:01 +0100 Subject: [PATCH 05/12] UI(routing): update group parameters card --- .../one_groupe_management_component.html.haml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml index a85314afa0f..d05b4563f59 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml @@ -9,7 +9,7 @@ = f.label :label, 'Nom du groupe', class: 'fr-label fr-mb-1w' .flex = f.text_field :label, required: true, class: 'fr-input flex auto fr-mr-2w' - = f.button 'Renommer', class: 'fr-btn fr-btn--secondary' + = f.button 'Renommer', class: 'fr-btn fr-btn--tertiary' = form_for @groupe_instructeur, url: admin_procedure_groupe_instructeur_update_state_path(@procedure, @groupe_instructeur), @@ -19,7 +19,15 @@ = f.check_box :closed, { id: 'closed', "aria-describedby" => "closed-messages", :name => "closed" } %label.fr-label{ :for => "closed" } Groupe inactif - %span.fr-hint-text Si cette option est activée, les usagers ne pourront plus sélectionner ce groupe d’instructeurs + %span.fr-hint-text Si cette option est activée, les dossiers ne seront pas routés dans ce groupe si les usagers sélectionnent ce choix. + - if @groupe_instructeur.can_delete? + = button_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), + class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-delete-line', + method: :delete, + data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do + Supprimer ce groupe + - else + %em Vous ne pouvez pas supprimer ce groupe car des dossiers lui sont affectés. %h2.fr-h3 Dossiers affectés .card From 6b7849412ec977965e31425d959ebfd5bc338b95 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 15:13:03 +0100 Subject: [PATCH 06/12] UI(routing): update number of files card --- .../one_groupe_management_component.fr.yml | 10 ++++++--- .../one_groupe_management_component.html.haml | 22 +++++++------------ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.fr.yml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.fr.yml index b39822cdd35..402953cd62e 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.fr.yml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.fr.yml @@ -3,8 +3,12 @@ fr: select: Sélectionner move_files_confirmation: Réaffecter les dossiers à un autre groupe afin de pouvoir le supprimer move_files: - zero: Déplacer les dossiers en brouillon - one: Déplacer un dossier - other: Déplacer les %{count} dossiers + zero: Réaffecter les dossiers en brouillon + one: Réaffecter le dossier + other: Réaffecter les %{count} dossiers + number_of_files: + zero: Aucun dossier n’est actuellement affecté à ce groupe. + one: "%{count} dossier est actuellement affecté à ce groupe." + other: "%{count} dossiers sont actuellement affectés à ce groupe." delete: Supprimer le groupe delete_confirmation: Êtes-vous sûr de vouloir supprimer le groupe "%{group_name}" ? diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml index d05b4563f59..808fa7ca231 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml @@ -31,20 +31,10 @@ %h2.fr-h3 Dossiers affectés .card - .fr-hint-text.mt-2.mb-2 - %span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le - %span - = link_to 'champ concerné', champs_admin_procedure_path(@procedure) - - .flex.fr-btns-group--sm.fr-btns-group--inline.fr-btns-group--icon-right.mb-2 - - if @groupe_instructeur.can_delete? - %p= t('.delete') - = button_to admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), - class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-delete-line', - method: :delete, - data: { confirm: t('.delete_confirmation', group_name: @groupe_instructeur.label) } do - Supprimer - - else + .flex.justify-between.align-center.fr-btns-group--sm.fr-btns-group--icon-right + %span.fr-icon.fr-icon-folder-2-line.fr-mr-2w + = t('.number_of_files', count: @groupe_instructeur.dossiers.visible_by_administration.size) + - if !@groupe_instructeur.can_delete? = button_to reaffecter_dossiers_admin_procedure_groupe_instructeur_path(@procedure, @groupe_instructeur), class: 'fr-btn fr-btn--tertiary fr-icon-folder-2-line', title: t('.move_files_confirmation'), @@ -54,3 +44,7 @@ %h2.fr-h3 Règle(s) de routage .card = render Conditions::RoutingRulesComponent.new(groupe_instructeur: @groupe_instructeur) + .fr-hint-text.mt-2.mb-2 + %span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le + %span + = link_to 'champ concerné', champs_admin_procedure_path(@procedure) From a98f2eafc680a024c231d6901efcb928f68fddcc Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 15:57:12 +0100 Subject: [PATCH 07/12] UI(routing): update routing rule component --- .../routing_rules_component.html.haml | 4 ++-- .../one_groupe_management_component.html.haml | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/components/conditions/routing_rules_component/routing_rules_component.html.haml b/app/components/conditions/routing_rules_component/routing_rules_component.html.haml index 5296b704eab..1bbe85324c7 100644 --- a/app/components/conditions/routing_rules_component/routing_rules_component.html.haml +++ b/app/components/conditions/routing_rules_component/routing_rules_component.html.haml @@ -3,7 +3,7 @@ method: :patch, data: { turbo: true, controller: 'autosave' }, class: 'form width-100' do - .conditionnel.mt-2.width-100 + .conditionnel.width-100 .flex - if @groupe_instructeur.invalid_rule? %p.fr-mb-1w.fr-badge.fr-badge--warning.fr-badge--sm règle invalide @@ -12,7 +12,7 @@ = render Conditions::ConditionsErrorsComponent.new(conditions: condition_per_row, source_tdcs: @source_tdcs) - %table.condition-table.mt-2 + %table.condition-table %thead %tr %th.far-left diff --git a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml index 808fa7ca231..bddddc1337e 100644 --- a/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml +++ b/app/components/procedure/one_groupe_management_component/one_groupe_management_component.html.haml @@ -44,7 +44,8 @@ %h2.fr-h3 Règle(s) de routage .card = render Conditions::RoutingRulesComponent.new(groupe_instructeur: @groupe_instructeur) - .fr-hint-text.mt-2.mb-2 - %span Si vous ne trouvez pas l'option correspondant à votre groupe, veuillez l'ajouter dans le - %span - = link_to 'champ concerné', champs_admin_procedure_path(@procedure) + %p.fr-alert.fr-alert--info.fr-mt-3w{ aria: { hidden: true } } + Si vous ne trouvez pas l’option correspondant à votre groupe, veuillez l’ajouter dans le champ concerné dans la page d’édition des + = link_to('champs du formulaire', + champs_admin_procedure_path(@procedure), + **helpers.external_link_attributes) From 90b5f454dceb61efb0676862eb041d9efa8f41bb Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 17:18:57 +0100 Subject: [PATCH 08/12] UI(routing): update adding instructors card --- .../_instructeurs.html.haml | 26 ++++++++++++------- .../groupe_instructeurs/en.yml | 2 +- .../groupe_instructeurs/fr.yml | 9 ++++--- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml index 8e9afb6a53a..20ab9d34a99 100644 --- a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml @@ -1,12 +1,20 @@ %h2.fr-h3= t('.instructeur_assignation') + .card + .card-title= t('.title') + - if procedure.routing_enabled? + .fr-icon-mail-line.fr-alert.fr-mb-3w + - if @procedure.publiee? + = t(".notification_alert_publiee_html") + - else + = t(".notification_alert_html") + = render Procedure::InvitationWithTypoComponent.new(maybe_typos: @maybe_typos, url: add_instructeur_admin_procedure_groupe_instructeur_path(@procedure, groupe_instructeur.id), title: "Avant d'ajouter l'email, veuillez confirmer" ) = form_for :instructeur, url: { action: :add_instructeur, id: groupe_instructeur.id }, html: { class: 'form' } do |f| .instructeur-wrapper - - if !procedure.routing_enabled? - %p= t('.instructeur_emails') - %p.fr-hint-text= t('.copy_paste_hint') + %p= t('.instructeur_emails') + %p.fr-hint-text= t('.copy_paste_hint') - if disabled_as_super_admin = f.select :emails, available_instructeur_emails, {}, disabled: disabled_as_super_admin, id: 'instructeur_emails' @@ -23,29 +31,29 @@ = button_to export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(procedure, format: :csv), method: :get, class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-download-line' do Exporter la liste (.csv) - .fr-table + .fr-table.fr-table--bordered.fr-table--no-caption .fr-table__wrapper .fr-table__container .fr-table__content %table %thead %tr - %th{ scope: 'col' }= t('.title') - %th{ scope: 'col' }= t('.actions') + %th.fr-col-11{ scope: 'col' }= t('.table_title') + %th.fr-col-1.fr-cell--center{ scope: 'col' }= t('.actions') %tbody - instructeurs.each do |instructeur| %tr - %td + %td.fr-col-11{ scope: 'col' } = dsfr_icon('fr-icon-user-line') #{instructeur.email} - confirmation_message = procedure.routing_enabled? ? "Êtes-vous sûr de vouloir retirer l’instructeur « #{instructeur.email} » du groupe « #{groupe_instructeur.label} » ?" : "Êtes-vous sûr de vouloir retirer l’instructeur « #{instructeur.email} » de la démarche ?" - %td.actions= button_to t('.remove'), + %td.fr-col-1.fr-cell--center.actions{ scope: 'col' }= button_to t('.remove'), { action: :remove_instructeur, id: groupe_instructeur.id }, { method: :delete, data: { confirm: confirmation_message }, params: { instructeur: { id: instructeur.id }}, - class: 'fr-btn fr-btn--sm fr-btn--secondary fr-btn--icon-left fr-icon-subtract-line' } + class: 'fr-btn fr-btn--sm fr-btn--secondary fr-btn--icon-left fr-icon-subtract-line fr-cell---right' } .fr-table__footer .fr-table__footer--start diff --git a/config/locales/views/administrateurs/groupe_instructeurs/en.yml b/config/locales/views/administrateurs/groupe_instructeurs/en.yml index 790906ba27a..a8148c4b5c8 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/en.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/en.yml @@ -20,7 +20,7 @@ en: one: "%{count} group exist" other: "%{count} groups exist" instructeurs: - title: Instructors + title: Assign a new instructor assigned_instructeur: one: "%{count} instructor assigned" other: "%{count} instructors assigned" diff --git a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml index 0594811e35f..86b01f36cb5 100644 --- a/config/locales/views/administrateurs/groupe_instructeurs/fr.yml +++ b/config/locales/views/administrateurs/groupe_instructeurs/fr.yml @@ -27,16 +27,19 @@ fr: one: "%{count} groupe existe" other: "%{count} groupes existent" instructeurs: - title: Instructeurs + title: Affecter un nouvel instructeur + table_title: Instructeurs assigned_instructeur: one: "%{count} instructeur affecté" other: "%{count} instructeurs affectés" instructeur_assignation: Affectation des instructeurs assign: Affecter remove: Retirer - instructeur_emails: Adresse électronique des instructeurs que vous souhaitez affecter à cette démarche + instructeur_emails: Adresse(s) électronique(s) copy_paste_hint: "Vous pouvez saisir les adresses individuellement, ou bien copier-coller dans le champ ci-dessous une liste d’adresses séparées par des points-virgules (exemple : adresse1@mail.com; adresse2@mail.com; adresse3@mail.com)." - actions: Retirer + actions: Action + notification_alert_html: Même si votre démarche est encore en test / non publiée, tous les instructeurs que vous ajouterez à la démarche seront notifiés par email. + notification_alert_publiee_html: Tous les instructeurs que vous ajouterez à la démarche seront notifiés par email. import: groupe: one: "%{count} groupe" From c89a73bdef9f5562b28f9ddefbc5e8273f442fa1 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 17:36:51 +0100 Subject: [PATCH 09/12] UI(routing): update format of table in groups management page --- .../groupes_management_component.html.haml | 65 ++++++++++--------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/app/components/procedure/groupes_management_component/groupes_management_component.html.haml b/app/components/procedure/groupes_management_component/groupes_management_component.html.haml index 1a90ac35203..ab36b8a1c25 100644 --- a/app/components/procedure/groupes_management_component/groupes_management_component.html.haml +++ b/app/components/procedure/groupes_management_component/groupes_management_component.html.haml @@ -17,38 +17,41 @@ Exporter la liste (.csv) .fr-table.fr-table--no-caption.fr-table--layout-fixed.fr-mt-2w - %table - %caption= table_header - %thead - %tr - %th{ colspan: 4 } - Groupes - %th{ colspan: 1 } - Dossiers - %th{ colspan: 1 } - Instructeurs - %tbody - - @groupe_instructeurs.each do |gi| - %tr - %td{ colspan: 4 } - = link_to admin_procedure_groupe_instructeur_path(@procedure, gi), class: 'fr-link' do - %span= gi.label - - if gi.closed - %p.fr-badge.fr-badge--info.fr-badge--sm.fr-ml-1w inactif - - elsif gi.invalid_rule? - %p.fr-badge.fr-badge--warning.fr-badge--sm.fr-ml-1w règle invalide - - elsif gi.non_unique_rule? - %p.fr-badge.fr-badge--warning.fr-badge--sm.fr-ml-1w règle déjà attribuée à #{gi.groups_with_same_rule} - %p= gi.routing_rule&.to_s(@procedure.active_revision.types_de_champ) + .fr-table__wrapper + .fr-table__container + .fr-table__content + %table + %caption= table_header + %thead + %tr + %th.fr-col-9{ scope: 'col' } + Groupes + %th.fr-col-1{ scope: 'col' } + Dossiers + %th.fr-col-2.fr-cell--right{ scope: 'col' } + Instructeurs + %tbody + - @groupe_instructeurs.each do |gi| + %tr + %td.fr-col-9{ scope: 'col' } + = link_to admin_procedure_groupe_instructeur_path(@procedure, gi), class: 'fr-link' do + %span= gi.label + - if gi.closed + %p.fr-badge.fr-badge--info.fr-badge--sm.fr-ml-1w inactif + - elsif gi.invalid_rule? + %p.fr-badge.fr-badge--warning.fr-badge--sm.fr-ml-1w règle invalide + - elsif gi.non_unique_rule? + %p.fr-badge.fr-badge--warning.fr-badge--sm.fr-ml-1w règle déjà attribuée à #{gi.groups_with_same_rule} + %p= gi.routing_rule&.to_s(@procedure.active_revision.types_de_champ) - %td{ colspan: 1 } - %span.fr-mr-1w - #{gi.dossiers.visible_by_administration.size} - %span.fr-icon.fr-icon-folder-2-line.fr-mr-2w{ style: 'width: 25px; text-align: center;' } - %td{ colspan: 1 } - %span.fr-mr-1w - #{gi.instructeurs.count} - %span.fr-icon.fr-icon-user-line{ style: 'width: 25px; text-align: center;' } + %td.fr-col-1{ scope: 'col' } + %span.fr-mr-1w + #{gi.dossiers.visible_by_administration.size} + %span.fr-icon.fr-icon-folder-2-line.fr-mr-2w{ style: 'width: 25px; text-align: center;' } + %td.fr-col-2.fr-cell--right{ scope: 'col' } + %span.fr-mr-1w + #{gi.instructeurs.count} + %span.fr-icon.fr-icon-user-line{ style: 'width: 25px; text-align: center;' } .fr-mt-1w = paginate @groupe_instructeurs From b5adade0c0af9c5dde6daffc610f13f65e5c6711 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Fri, 17 Jan 2025 18:08:46 +0100 Subject: [PATCH 10/12] UI(routing): update contact informations card --- .../_contact_information.html.haml | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml b/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml index f772cb01ed9..2f08ea063cc 100644 --- a/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_contact_information.html.haml @@ -2,22 +2,23 @@ .card.mt-2 - service = groupe_instructeur.contact_information - if service.nil? - = "Le groupe #{groupe_instructeur.label} n'a pas d'informations de contact. Les informations de contact affichées à l'usager seront celles du service de la procédure" - %p.mt-3 - - if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur) - = link_to "+ Ajouter des informations de contact", new_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn" - - else - Si vous souhaitez créer un service pour ce groupe, vous devez faire partie du groupe instructeur + %span Le groupe + %strong= groupe_instructeur.label + %span n’a pas d’informations de contact spécifiques. + %p Les informations de contact affichées à l’usager seront celles du service porteur de la démarche. + - if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur) + = link_to "Personnaliser les informations de contact", new_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn" + - else + %p Si vous souhaitez créer un service pour ce groupe, vous devez faire partie du groupe instructeur - else - %p.mt-3 - - if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur) - = link_to "Modifier les informations de contact", edit_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn" - - else - Si vous souhaitez modifier ce service, vous devez faire partie du groupe instructeur - %p.mt-3= service.nom + %p= service.nom = render SimpleFormatComponent.new(service.adresse, class_names_map: {paragraph: 'fr-footer__content-desc'}) = service.email - if service.telephone.present? %p= service.telephone - if service.horaires.present? %p= service.horaires + - if groupe_instructeur.instructeurs.include?(current_administrateur.user.instructeur) + = link_to "Modifier les informations de contact", edit_instructeur_groupe_contact_information_path(procedure_id: procedure.id, groupe_id: groupe_instructeur.id, from_admin: true), class: "fr-btn" + - else + %p Si vous souhaitez modifier ce service, vous devez faire partie du groupe instructeur From f4ccade2a2476f9862e33ff15f9224189e609c4c Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Thu, 30 Jan 2025 09:22:29 +0100 Subject: [PATCH 11/12] fix(routing configuration): remove instructeurs export from group page --- .../groupe_instructeurs/_instructeurs.html.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml index 20ab9d34a99..82362a3863f 100644 --- a/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml +++ b/app/views/administrateurs/groupe_instructeurs/_instructeurs.html.haml @@ -28,8 +28,9 @@ .flex.justify-between.align-baseline .card-title= t('.assigned_instructeur', count: instructeurs.total_count) - = button_to export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(procedure, format: :csv), method: :get, class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-download-line' do - Exporter la liste (.csv) + - if !@procedure.routing_enabled? + = button_to export_groupe_instructeurs_admin_procedure_groupe_instructeurs_path(procedure, format: :csv), method: :get, class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-download-line' do + Exporter la liste (.csv) .fr-table.fr-table--bordered.fr-table--no-caption .fr-table__wrapper From 4d13e8c4776d799fff52091e4750c665965a0b67 Mon Sep 17 00:00:00 2001 From: Eric Leroy-Terquem Date: Thu, 30 Jan 2025 18:01:57 +0100 Subject: [PATCH 12/12] UI(routing): update tampon attestation card --- .../groupe_instructeurs/_signature_form.html.haml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/views/shared/groupe_instructeurs/_signature_form.html.haml b/app/views/shared/groupe_instructeurs/_signature_form.html.haml index 566fdcfeb8f..865bf51d209 100644 --- a/app/views/shared/groupe_instructeurs/_signature_form.html.haml +++ b/app/views/shared/groupe_instructeurs/_signature_form.html.haml @@ -1,13 +1,15 @@ -%h2.fr-h3 Tampon de l’attestation +%h2.fr-h3 Tampon de l’attestation d’acceptation .card.mt-2 = render NestedForms::FormOwnerComponent.new = form_with url: { action: :add_signature }, method: :post, html: { multipart: true } do |f| - %p.fr-text--sm.fr-text-mention--grey - Vous pouvez apposer sur l’attestation un tampon (ou signature) dédié à ce groupe d’instructeurs. + %p + Vous pouvez apposer sur l’attestation d’acceptation du dossier un tampon (ou signature) dédié à ce groupe d’instructeurs. Si vous n’en fournissez pas, celui de la démarche sera utilisé, le cas échéant. - .fr-upload-group.fr-mb-4w - %p.fr-text--sm.fr-text-mention--grey.fr-mb-1w + .fr-upload-group.fr-mb-2w + .card-title + Tampon + .fr-hint-text Dimensions conseillées : au minimum 500px de largeur ou de hauteur. = render Attachment::EditComponent.new(attached_file: groupe_instructeur.signature, direct_upload: false)