diff --git a/app/assets/stylesheets/flex.scss b/app/assets/stylesheets/flex.scss index bc0b81f4813..05eee7f517d 100644 --- a/app/assets/stylesheets/flex.scss +++ b/app/assets/stylesheets/flex.scss @@ -63,3 +63,7 @@ .flex-gap-2 { gap: 2 * $default-spacer; // scss-lint:disable PropertySpelling } + +.flex-1 { + flex: 1; +} diff --git a/app/assets/stylesheets/forms.scss b/app/assets/stylesheets/forms.scss index 274679c691c..67cc90c8454 100644 --- a/app/assets/stylesheets/forms.scss +++ b/app/assets/stylesheets/forms.scss @@ -3,6 +3,23 @@ @import "placeholders"; .form { + input.unstyled { + padding: 0 !important; + background: none !important; + border: none !important; + width: auto !important; + + &:focus { + box-shadow: none !important; + background-color: $white !important; + } + } + + .placeholder { + color: $dark-grey; + font-style: italic; + } + hr { width: 100%; height: 0; @@ -312,36 +329,6 @@ margin-bottom: $default-fields-spacer; } - select { - // hack found here: https://stackoverflow.com/questions/1895476/how-to-style-a-select-dropdown-with-css-only-without-javascript - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #FFFFFF; - background-image: image-url("icons/chevron-down.svg"); - background-repeat: no-repeat; - background-size: 14px; - background-position: right 10px center; - padding-right: 4 * $default-spacer; - max-width: 100%; - - &.small { - padding-right: 3 * $default-spacer; - } - - // CAUTION: IE hackery ahead - &::-ms-expand { - display: none; // remove default arrow in IE 10 and 11 */ - } - - // target Internet Explorer 9 to undo the custom arrow */ - @media screen and (min-width:0\0) { - select { - background: none\9; - } - } - } - [data-reach-combobox-input] { min-height: 62px; border-radius: 4px; diff --git a/app/views/administrateurs/_breadcrumbs.html.haml b/app/views/administrateurs/_breadcrumbs.html.haml index 3907e6022c5..b9b5b25af4c 100644 --- a/app/views/administrateurs/_breadcrumbs.html.haml +++ b/app/views/administrateurs/_breadcrumbs.html.haml @@ -39,6 +39,9 @@ = t('since', scope: [:layouts, :breadcrumb], number: @procedure.id, date: l(@procedure.published_at.to_date)) - else + %p.fr-mb-1w + = t('more_info_on_test', scope: [:layouts, :breadcrumb]) + = link_to t('go_to_FAQ', scope: [:layouts, :breadcrumb]), t("url_FAQ", scope: [:layouts, :breadcrumb]), title: new_tab_suffix(t('go_to_FAQ', scope: [:layouts, :breadcrumb])), **external_link_attributes .flex %span.fr-badge.fr-badge--new.fr-mr-1w = t('draft', scope: [:layouts, :breadcrumb]) diff --git a/app/views/administrateurs/procedures/_informations.html.haml b/app/views/administrateurs/procedures/_informations.html.haml index 15330dfca24..e7ae23261f4 100644 --- a/app/views/administrateurs/procedures/_informations.html.haml +++ b/app/views/administrateurs/procedures/_informations.html.haml @@ -132,7 +132,7 @@ %p.notice Le - value = @procedure.auto_archive_on ? @procedure.auto_archive_on - 1.day : nil - = f.date_field :auto_archive_on, id: 'auto_archive_on', value: value + = f.date_field :auto_archive_on, id: 'auto_archive_on', class: 'fr-input', value: value #{procedure_auto_archive_time(@procedure)}. = render Dsfr::CalloutComponent.new(title: "Démarche déclarative") do |c| @@ -143,7 +143,7 @@ Soit il passe immédiatement « en instruction » pour être traité soit il est immédiatement « accepté ». = f.label :declarative_with_state, 'Mentionnez l’état d’avancement (facultatif)', class: 'fr-label fr-mb-2w' - = f.select :declarative_with_state, Procedure.declarative_attributes_for_select, { include_blank: 'Non' }, class: 'form-control' + = f.select :declarative_with_state, Procedure.declarative_attributes_for_select, { include_blank: 'Non' }, class: 'fr-select' - if !@procedure.piece_justificative_multiple? .fr-checkbox-group diff --git a/app/views/administrateurs/procedures/_publication_form.html.haml b/app/views/administrateurs/procedures/_publication_form.html.haml index d4c606f9d74..f5c0976d685 100644 --- a/app/views/administrateurs/procedures/_publication_form.html.haml +++ b/app/views/administrateurs/procedures/_publication_form.html.haml @@ -1,15 +1,44 @@ -.card.mb-4 - %h2.card-title Publiez votre démarche - = form_tag admin_procedure_publish_path(procedure_id: procedure.id), method: :put, class: 'form' do - = render Procedure::PublicationWarningComponent.new(procedure: procedure) - .mt-2 - - if procedure.draft_changed? - %p.mb-2 Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées : - = render Procedure::RevisionChangesComponent.new changes: procedure.revision_changes, previous_revision: procedure.published_revision - - if procedure.close? - = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures } - - else - = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures } - - .flex.justify-end - = submit_tag procedure_publish_label(procedure, :submit), { disabled: procedure.errors.present?, class: "fr-btn fr-btn--primary", id: 'publish' } += form_for procedure, + url: admin_procedure_publish_path(procedure_id: procedure.id), + method: :put, + html: { class: 'form' } do |f| + = render Procedure::PublicationWarningComponent.new(procedure: procedure) + .mt-2 + - if procedure.draft_changed? + %p.mb-2= t('.draft_changed_procedure_alert') + = render Dsfr::AlertComponent.new(state: :info, size: :sm, extra_class_names: 'fr-mb-2w') do |c| + - c.body do + = render Procedure::RevisionChangesComponent.new changes: procedure.revision_changes, previous_revision: procedure.published_revision + - if procedure.close? + = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures, form: f } + - elsif @procedure.brouillon? && @procedure.missing_steps.empty? + = render Dsfr::AlertComponent.new(state: :info, size: :sm, extra_class_names: 'fr-mb-2w') do |c| + - c.body do + %p + = t('.faq_test_alert') + = link_to t('.faq_test_alert_link'), t('.faq_test_alert_link_url'), **external_link_attributes + = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures, form: f } + = render Dsfr::CalloutComponent.new(title: t('.dpd_title'), heading_level: 'h2') do |c| + - c.with_body do + %p.fr-mb-2w + = t('.dpd_part_1') + %a{ href:'https://www.cnil.fr/fr/protection-des-donnees-les-bons-reflexes', target:'_blank' } + https://www.cnil.fr/fr/protection-des-donnees-les-bons-reflexes + + %p.fr-mb-2w + = t('.dpd_part_2') + + %p.fr-mb-2w + = t('.dpd_part_3') + %a{ href:'https://www.cnil.fr/fr/RGDP-le-registre-des-activites-de-traitement', target:'_blank' } + https://www.cnil.fr/fr/RGDP-le-registre-des-activites-de-traitement + + %p.fr-mb-2w + = t('.dpd_part_4') + + - else + = render partial: 'publication_form_inputs', locals: { procedure: procedure, closed_procedures: @closed_procedures, form: f } + + %ul.fr-btns-group.fr-btns-group--inline-md.fr-btns-group--icon-left + = f.submit t('.submit'), { disabled: procedure.errors.present?, class: "fr-btn fr-btn--primary", id: 'publish' } + = link_to t('.back_to_procedure'), admin_procedure_path(id: @procedure), class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-arrow-go-back-line fr-ml-1w' diff --git a/app/views/administrateurs/procedures/_publication_form_inputs.html.haml b/app/views/administrateurs/procedures/_publication_form_inputs.html.haml index b27163ba9bb..ba85d2f3bb9 100644 --- a/app/views/administrateurs/procedures/_publication_form_inputs.html.haml +++ b/app/views/administrateurs/procedures/_publication_form_inputs.html.haml @@ -1,27 +1,40 @@ -%p.mb-4{ :class => ("mt-4" if procedure.close? && procedure.draft_changed?) } Publiez votre démarche, et partagez la à vos usagers. -%p Personnalisez le lien public de la démarche pour en faciliter l’accès (obligatoire pour publier votre démarche) : -%p.empty-text - = commencer_url(path: '') - = text_field_tag(:path, procedure.path, - id: 'procedure_path', - label: 'Adresse de diffusion', - placeholder: 'chemin-de-la-démarche', - required: true, - class: 'form', - pattern: '^[a-z0-9_-]{3,200}$', - title: "De 3 à 200 caractères; minuscules, chiffres et tiret seulement", - autocomplete: 'off', - style: 'width: 300px; display: inline;') - .text-info.mb-4 - Attention, diffusez toujours le lien complet affiché ci-dessus, et non pas un lien générique vers #{APPLICATION_NAME}. Ne dites pas non plus aux usagers de se rendre sur le site générique #{APPLICATION_NAME}, donnez-leur toujours le lien complet. - - if closed_procedures.present? - %h2.card-title Cette démarche remplace une close ? Si oui, veuillez indiquer le n° de la démarche remplacée - = select_tag :old_procedure, options_for_select(@closed_procedures), include_blank: true - %h2.card-title Diffusion de la démarche - %p Où les utilisateurs trouveront-ils le lien de la démarche ? Typiquement, il s’agit d’une page de votre site web. - %p.center - = text_field_tag(:lien_site_web, procedure.lien_site_web, +.fr-input-group + = label_tag :procedure_path, class: 'fr-label' do + = t('activerecord.attributes.procedure.procedure_path') + + %span.fr-hint-text + = t('activerecord.attributes.procedure.hints.procedure_path') + + .fr-input + .flex + %span.placeholder + = commencer_url(path: '') + = text_field_tag(:path, procedure.path, + id: 'procedure_path', + placeholder: t('activerecord.attributes.procedure.procedure_path_placeholder'), + required: true, + class: 'unstyled flex-1', + pattern: '^[a-z0-9_-]{3,200}$', + autocomplete: 'off') + +.fr-input-group + = label_tag :lien_site_web, class: 'fr-label' do + = t('activerecord.attributes.procedure.lien_site_web') + + %span.fr-hint-text + = t('activerecord.attributes.procedure.hints.lien_site_web') + + = text_field_tag(:lien_site_web, procedure.lien_site_web, required: true, - class: 'form-control', - autocomplete: 'off', - placeholder: 'https://exemple.gouv.fr/ma_demarche') + class: 'fr-input', + autocomplete: 'off') + +- if closed_procedures.present? + .fr-select-group + = form.label :old_procedure, class: 'fr-label' do + = t('activerecord.attributes.procedure.old_procedure') + = t('utils.no_mandatory') + + %span.fr-hint-text + = t('activerecord.attributes.procedure.hints.old_procedure') + = select_tag :old_procedure, options_for_select(@closed_procedures), include_blank: true, class: 'fr-select' diff --git a/app/views/administrateurs/procedures/edit.html.haml b/app/views/administrateurs/procedures/edit.html.haml index 0dee092c9b9..843d5ed514b 100644 --- a/app/views/administrateurs/procedures/edit.html.haml +++ b/app/views/administrateurs/procedures/edit.html.haml @@ -11,7 +11,7 @@ html: { class: 'form procedure_tags_combo', multipart: true } do |f| .fr-container .fr-grid-row - .fr-col-12.fr-col-offset-sm-2.fr-col-sm-8 + .fr-col-12.fr-col-offset-md-2.fr-col-md-8 %h1.fr-h2 Description = render partial: 'administrateurs/procedures/informations', locals: { f: f } @@ -19,6 +19,6 @@ .sticky-action-footer .fr-container .fr-grid-row - .fr-col-12.fr-col-offset-sm-2.fr-col-sm-8 + .fr-col-12.fr-col-offset-md-2.fr-col-md-8 = f.button 'Enregistrer', class: 'fr-btn fr-mr-2w' = link_to 'Annuler', admin_procedure_path(id: @procedure), class: 'fr-btn fr-btn--secondary', data: { confirm: 'Êtes-vous sûr de vouloir annuler les modifications effectuées ?'} diff --git a/app/views/administrateurs/procedures/new.html.haml b/app/views/administrateurs/procedures/new.html.haml index fd1511d2632..a0e49e8e05a 100644 --- a/app/views/administrateurs/procedures/new.html.haml +++ b/app/views/administrateurs/procedures/new.html.haml @@ -10,7 +10,7 @@ html: { class: 'form procedure_tags_combo', multipart: true } do |f| .fr-container .fr-grid-row - .fr-col-12.fr-col-offset-sm-2.fr-col-sm-8 + .fr-col-12.fr-col-offset-md-2.fr-col-md-8 %h1.fr-h2 Nouvelle démarche = render partial: 'administrateurs/procedures/informations', locals: { f: f } @@ -18,6 +18,6 @@ .sticky-action-footer .fr-container .fr-grid-row - .fr-col-12.fr-col-offset-sm-2.fr-col-sm-8 + .fr-col-12.fr-col-offset-md-2.fr-col-md-8 = f.button 'Créer la démarche', class: 'fr-btn fr-mr-2w' = link_to 'Annuler', admin_procedures_path, class: 'fr-btn fr-btn--secondary', data: { confirm: 'Êtes-vous sûr de vouloir annuler la création de cette démarche ?'} diff --git a/app/views/administrateurs/procedures/publication.html.haml b/app/views/administrateurs/procedures/publication.html.haml index d88bc5acb5a..4a0290c08b5 100644 --- a/app/views/administrateurs/procedures/publication.html.haml +++ b/app/views/administrateurs/procedures/publication.html.haml @@ -2,97 +2,69 @@ = render partial: 'administrateurs/breadcrumbs', locals: { steps: [['Démarches', admin_procedures_back_path(@procedure)], [@procedure.libelle.truncate_words(10), admin_procedure_path(@procedure)], - ['Publication']] } -.container - - if @procedure.draft_revision.types_de_champ_public.dubious.present? - = render Dsfr::AlertComponent.new(state: :warning, title: "Attention, certains champs ne peuvent être demandés par l’administration. Voici les champs qui nous semblent suspects :", extra_class_names: 'fr-mb-2w') do |c| - - c.body do - %ul - - @procedure.draft_revision.types_de_champ_public.dubious.each do |dubious_champs| - %li.dubious-champs= "#{dubious_champs.libelle} (#{dubious_champs.description})" - .lien-demarche - %h1 - - if @procedure.brouillon? - Test et publication - - else - Publication - %div{ style: 'margin-top: 30px;' } - - if @procedure.close? || @procedure.depubliee? - %p.mb-4 Cette démarche est close et n’est donc plus accessible par le public. Vous pouvez la réactiver : - = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } - - elsif @procedure.draft_changed? - %p.mb-4 Cette démarche est déjà publiée. Elle a été modifiée depuis sa publication. Vous pouvez publier les changements effectués dans une nouvelle version de cette démarche : - = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } - - elsif @procedure.publiee? - %p Cette démarche est publiée, certains éléments ne peuvent plus être modifiés. - Pour y accéder vous pouvez utiliser le lien : - = link_to commencer_url(@procedure.path), commencer_url(@procedure.path), target: :blank, rel: :noopener, class: "mb-4" - - %p.mb-4 Attention, diffusez toujours le lien complet affiché ci-dessus, et non pas un lien générique vers #{APPLICATION_NAME}. Ne dites pas non plus aux usagers de se rendre sur le site générique #{APPLICATION_NAME}, donnez-leur toujours le lien complet. - - elsif @procedure.brouillon? - - if @procedure.missing_steps.empty? - %p - Cette démarche est actuellement en test, - pour y accéder vous pouvez utiliser le lien : - = link_to commencer_url(@procedure.path), commencer_url(@procedure.path), target: :blank, rel: :noopener - %p.mb-4 - Toute personne ayant la connaissance de ce lien pourra ainsi remplir des dossiers de test sur votre démarche. + ['Publier']] } +.fr-container + .fr-grid-row + .fr-col-12.fr-col-offset-md-2.fr-col-md-8 + - if @procedure.draft_revision.types_de_champ_public.dubious.present? + = render Dsfr::AlertComponent.new(state: :warning, title: t('.dubious_fields'), extra_class_names: 'fr-mb-2w') do |c| + - c.body do + %ul + - @procedure.draft_revision.types_de_champ_public.dubious.each do |dubious_champs| + %li.dubious-champs= "#{dubious_champs.libelle} (#{dubious_champs.description})" + .lien-demarche + %h1 + = t('.publish_title') - .card.mb-4 - %h2.card-title Ce que vous pouvez faire lorsque vous êtes en test - %p - Profitez de la phase de test pour tester la saisie de dossiers, ainsi que toutes les fonctionnalités associées (instruction, emails automatiques, attestations, etc.). - %p - Vous pouvez effectuer toutes les modifications que vous souhaitez sur votre démarche pendant cette phase de test. - %p.mb-4.font-weight-bold - Les dossiers qui seront remplis pendant la phase de test seront automatiquement supprimés lors de la modification ou la publication de votre démarche. - %p.center - %iframe{ :src =>"https://player.vimeo.com/video/334463514?color=0069CC",:width =>"640",:height =>"360",:frameborder => "0" } + %div{ style: 'margin-top: 30px;' } + - if @procedure.close? || @procedure.depubliee? + %p.mb-4= t('.closed_procedure_html') + = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } + - elsif @procedure.draft_changed? + %p.mb-4= t('.draft_changed_procedure_html') + = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } + - elsif @procedure.publiee? + %p= t('.published_procedure_html') + = link_to commencer_url(@procedure.path), commencer_url(@procedure.path), target: :blank, rel: :noopener, class: "mb-4" + = render Dsfr::AlertComponent.new(state: :info, size: :sm, extra_class_names: 'fr-my-2w') do |c| + - c.body do + %p= t('.public_link_procedure_html', link: APPLICATION_NAME) - .card - %h2.card-title Prêt à publier ? - %p - À ce moment du processus de création, vous devez informer votre Délégué à la Protection des Données personnelles (DPD). - %p - ( - %a{ href:'https://www.cnil.fr/fr/protection-des-donnees-les-bons-reflexes', target:'_blank' } - https://www.cnil.fr/fr/protection-des-donnees-les-bons-reflexes - ) - %p - Si votre démarche propose de collecter des données personnelles, vous devez informer votre DPD. Chaque organisme en a un. - %p - Ce dernier pourra vous aider dans la finalisation de votre démarche, et vous inviter à vous interroger sur les données collectées, et sur la pertinence de ces dernières. - N'oubliez pas : toutes les démarches qui contiennent des données personnelles doivent être consignées dans un registre des traitements : - %a{ href:'https://www.cnil.fr/fr/RGDP-le-registre-des-activites-de-traitement', target:'_blank' } - https://www.cnil.fr/fr/RGDP-le-registre-des-activites-de-traitement - %p.mb-4 - Comment faire : - vous pouvez soit lui communiquer par email le lien vers la démarche en test, ou bien le nommer « administrateur ». Dans tous les cas, ne publiez votre démarche qu’après avoir eu son avis. + - elsif @procedure.brouillon? + - if @procedure.missing_steps.empty? + = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } - = render partial: 'publication_form', locals: { procedure: @procedure, administrateur: @current_administrateur } + - else + = render Dsfr::AlertComponent.new(state: :warning, title: t('.missing_information_title'), heading_level: :h2) do |c| + - c.body do + %p= t('.missing_information_content') + %ul + - if @procedure.missing_zones? + %li= link_to("une ou plusieurs zones", zones_admin_procedure_path(id: @procedure.id)) + - if @procedure.missing_instructeurs? + %li= link_to("des instructeurs", admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)) + - if @procedure.service.nil? + %li= link_to("un service", admin_services_path(procedure_id: @procedure)) + = link_to t('.back_to_procedure'), admin_procedure_path(id: @procedure), class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-arrow-go-back-line fr-mt-2w' - - else - .alert.alert-info - Pour pouvoir tester cette démarche, vous devez d’abord lui affecter : - %ul - - if @procedure.missing_zones? - %li= link_to("une ou plusieurs zones", zones_admin_procedure_path(id: @procedure.id)) - - if @procedure.missing_instructeurs? - %li= link_to("des instructeurs", admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur)) - - if @procedure.service.nil? - %li= link_to("un service", admin_services_path(procedure_id: @procedure)) - \. - - else - - if @procedure.missing_steps.include?(:service) - %p.alert.alert-danger - Vous devez renseigner les coordonnées de votre Service administratif avant de pouvoir publier votre démarche. - = link_to 'Cliquez ici.', (@current_administrateur.services.present? ? url_for(admin_services_path(procedure_id: @procedure.id)) : url_for(new_admin_service_path(procedure_id: @procedure.id))) + - else + - if @procedure.missing_steps.include?(:service) + = render Dsfr::AlertComponent.new(state: :warning, size: :sm, extra_class_names: 'fr-my-2w') do |c| + - c.body do + %p + = t('.missing_information_service') + = link_to t('.click_here'), (@current_administrateur.services.present? ? url_for(admin_services_path(procedure_id: @procedure.id)) : url_for(new_admin_service_path(procedure_id: @procedure.id))) - - if @procedure.missing_steps.include?(:instructeurs) - %p.alert.alert-danger - Vous devez affecter des instructeurs avant de pouvoir publier votre démarche. - = link_to 'Cliquez ici.', admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur) + - if @procedure.missing_steps.include?(:instructeurs) + = render Dsfr::AlertComponent.new(state: :warning, size: :sm, extra_class_names: 'fr-my-2w') do |c| + - c.body do + %p + = t('.missing_information_instructeurs') + = link_to t('.click_here'), admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur) + = render Dsfr::AlertComponent.new(state: :warning, size: :sm, extra_class_names: 'fr-my-2w') do |c| + - c.body do + %p + = t('.missing_link') - %p.alert.alert-info - Cette démarche n’a pas encore de lien, et n’est pas accessible par le public. + = link_to t('.back_to_procedure'), admin_procedure_path(id: @procedure), class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-arrow-go-back-line fr-mt-2w' diff --git a/app/views/administrateurs/procedures/show.html.haml b/app/views/administrateurs/procedures/show.html.haml index 0ac3546c2da..c598c788fc9 100644 --- a/app/views/administrateurs/procedures/show.html.haml +++ b/app/views/administrateurs/procedures/show.html.haml @@ -12,10 +12,10 @@ = link_to 'PDF', commencer_dossier_vide_for_revision_path(@procedure.active_revision), target: "_blank", rel: "noopener", class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-printer-line', id: "pdf-procedure" - if @procedure.brouillon? || @procedure.draft_changed? - = link_to 'Tester la démarche', commencer_url(@procedure.path, test: true), target: :blank, rel: :noopener, class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-edit-line' + = link_to 'Tester la démarche', commencer_url(@procedure.path, test: true), target: :blank, rel: :noopener, class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-flashlight-line' - if @procedure.publiee? || @procedure.brouillon? - = link_to 'Envoyer une copie', admin_procedure_transfert_path(@procedure), class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-arrow-right-up-line' + = link_to 'Envoyer une copie', admin_procedure_transfert_path(@procedure), class: 'fr-btn fr-btn--tertiary fr-btn--icon-left fr-icon-send-plane-line' - if !@procedure.publiee? && !@procedure.close? && !@procedure.depubliee? = link_to 'Publier', admin_procedure_publication_path(@procedure), class: 'fr-btn fr-btn--primary fr-btn--icon-left fr-icon-success-line', id: 'publish-procedure-link', data: { disable_with: "Publication..." } diff --git a/config/locales/models/procedure/en.yml b/config/locales/models/procedure/en.yml index f0f818ac8ec..f27c2c66f42 100644 --- a/config/locales/models/procedure/en.yml +++ b/config/locales/models/procedure/en.yml @@ -10,8 +10,10 @@ en: description: Describe in a few lines the context, the aim etc. description_target_audience: Describe in a few lines the final recipients of the process, the eligibility criteria if there are any, the prerequisites, etc. description_pj: Describe the required attachments list if there is any - lien_site_web: "Exemple: 'https://exemple.gouv.fr/ma_demarche'" + lien_site_web: "This is the page of your website where the link will appear. Ex: https://exemple.gouv.fr/page_about_my_procedure" cadre_juridique: "Exemple: 'https://www.legifrance.gouv.fr/'" + old_procedure: This procedure replaces a close? If yes, please indicate the number of the replaced procedure + procedure_path: "Personalize if needed the rest of the URL to facilitate access to the procedure. From 3 to 200 characters: lowercase letters, numbers and dashes only" path: Public link organisation: Service description: What is the purpose of this procedure? @@ -19,6 +21,9 @@ en: description_pj: Required attachments list description_pj_placeholder: If you leave this field blank and your form contains attachments, an automatically generated list will be displayed on the home page of your procedure. lien_site_web: Where will users find the link to the procedure? + old_procedure: Replaced procedure number + procedure_path: Procedure link to disseminate to users + procedure_path_placeholder: procedure-name cadre_juridique: Link to the legal text lien_dpo: Link or email to contact the data protection officer (DPO) duree_conservation_dossiers_dans_ds: Duration files will be kept diff --git a/config/locales/models/procedure/fr.yml b/config/locales/models/procedure/fr.yml index eef6dced324..5f12e3e9f0c 100644 --- a/config/locales/models/procedure/fr.yml +++ b/config/locales/models/procedure/fr.yml @@ -10,8 +10,10 @@ fr: description: Décrivez en quelques lignes le contexte, la finalité, etc. description_target_audience: Décrivez en quelques lignes les destinataires finaux de la démarche, les critères d’éligibilité s’il y en a, les pré-requis, etc. description_pj: Décrivez la liste des pièces jointes à fournir s’il y en a - lien_site_web: "Exemple: 'https://exemple.gouv.fr/ma_demarche'" + lien_site_web: "Il s'agit de la page de votre site web où le lien sera diffusé. Ex: https://exemple.gouv.fr/page_informant_sur_ma_demarche" cadre_juridique: "Exemple: 'https://www.legifrance.gouv.fr/'" + old_procedure: Cette démarche remplace une close ? Si oui, veuillez indiquer le n° de la démarche remplacée + procedure_path: "Personnalisez si besoin la suite de l’URL, pour faciliter l'accès à la démarche. De 3 à 200 caractères : minuscules, chiffres et tiret seulement" path: Lien public organisation: Organisme duree_conservation_dossiers_dans_ds: Durée de conservation des dossiers sur demarches-simplifiees.fr (choisi par un usager) @@ -23,6 +25,9 @@ fr: description_pj: Liste des pièces jointes demandées description_pj_placeholder: Si vous ne renseignez pas ce champ et que votre formulaire contient des pièces jointes, une liste générée automatiquement s'affichera dans la page d'accueil de votre démarche. lien_site_web: Où les usagers trouveront-ils le lien vers la démarche ? + old_procedure: Numéro de la démarche remplacée + procedure_path: Lien de la démarche à diffuser aux usagers + procedure_path_placeholder: nom-de-la-demarche cadre_juridique: Lien vers le texte lien_dpo: Lien ou email pour contacter le Délégué à la Protection des Données (DPO) published_at: 'Date de publication' diff --git a/config/locales/views/administrateurs/procedures/en.yml b/config/locales/views/administrateurs/procedures/en.yml index b3766e5b274..31eb2f428f7 100644 --- a/config/locales/views/administrateurs/procedures/en.yml +++ b/config/locales/views/administrateurs/procedures/en.yml @@ -6,3 +6,43 @@ en: actions: close_procedure: Close the procedure preview_unavailable: Preview is unavailable due to procedure misconfiguration + modifications: + dossiers_en_construction_and_dossiers_en_instruction: "%{en_construction_count} files « in construction » and %{en_instruction_count} files « instructing » on this procedure version." + dossier_en_construction_and_dossiers_en_instruction: + one: One file « in construction » and one file « instructing » on this procedure version. + other: One file « in construction » and %{count} files « instructing » on this procedure version. + dossier_en_instruction_and_dossiers_en_construction: + one: One file « instructing » and one file « in construction » on this procedure version. + other: One file « instructing » and %{count} files « in construction » on this procedure version. + dossiers_en_construction: + one: One file « in construction » on this procedure version. + other: "%{count} files « in construction » on this procedure version." + dossiers_en_instruction: + one: One file « instructing » on this procedure version. + other: "%{count} files « instructing » on this procedure version." + publication: + publish_title: Publish your procedure + closed_procedure_html: "This procedure is closed and is therefore no longer accessible to the public. You can publish it back" + draft_changed_procedure_html: "This procedure is already published. It has been edited since publication. You can publish the changes made in a new version." + published_procedure_html: "This procedure is published, some elements can no longer be modified. To access it you can use the link:" + public_link_procedure_html: "Be careful, always post the full link displayed above, and not a generic link to %{link}" + missing_information_title: missing information + missing_information_content: "To be able to test this procedure, you must first assign it:" + missing_information_service: You must provide the contact details of your Administrative Department before you can publish your procedure. + missing_information_instructeurs: You must assign instructors before you can publish your procedure. + missing_link: This procedure does not yet have a link, and is not accessible to the public. + dubious_fields: "Please note that some fields cannot be requested by the administration. Here are the fields that look suspicious to us:" + click_here: Click here + back_to_procedure: Return to the procedure page + publication_form: + faq_test_alert: Have you thought about testing your procedure before publishing it? To help you in this test phase, you can + faq_test_alert_link: consult our best practices guide. + faq_test_alert_link_url: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + draft_changed_procedure_alert: "Publish a new version of your procedure. The following changes will be applied:" + dpd_title: Before publishing + dpd_part_1: Have you thought about informing your Personal Data Protection Officer (DPO). + dpd_part_2: If your procedure proposes to collect personal data, you must inform your DPO. Every organization has one. + dpd_part_3: "The DPO will be able to help you in finalizing your approach, and invite you to question yourself on the data collected, and on the relevance of these. Remember: all procedures that contain personal data must be recorded in a processing register:" + dpd_part_4: How to do ? You can either send him the link to the procedure on test stage by email, or name him "administrator". In any case, publish your approach only after having had his opinion. + back_to_procedure: 'Cancel and return to the procedure page' + submit: Publish diff --git a/config/locales/views/administrateurs/procedures/fr.yml b/config/locales/views/administrateurs/procedures/fr.yml index 69e1b3c537b..3442c437008 100644 --- a/config/locales/views/administrateurs/procedures/fr.yml +++ b/config/locales/views/administrateurs/procedures/fr.yml @@ -20,3 +20,29 @@ fr: dossiers_en_instruction: one: Il y a un dossier « en instruction » sur cette version de la démarche. other: Il y a %{count} dossiers « en instruction » sur cette version de la démarche. + publication: + publish_title: Publier votre démarche + closed_procedure_html: "Cette démarche est close et n’est donc plus accessible par le public. Vous pouvez la réactiver :" + draft_changed_procedure_html: "Cette démarche est déjà publiée. Elle a été modifiée depuis sa publication. Vous pouvez publier les changements effectués dans une nouvelle version de cette démarche :" + published_procedure_html: "Cette démarche est publiée, certains éléments ne peuvent plus être modifiés. Pour y accéder vous pouvez utiliser le lien :" + public_link_procedure_html: "Attention, diffusez toujours le lien complet affiché ci-dessus, et non pas un lien générique vers %{link}" + missing_information_title: informations manquantes + missing_information_content: "Pour pouvoir tester cette démarche, vous devez d’abord lui affecter :" + missing_information_service: Vous devez renseigner les coordonnées de votre Service administratif avant de pouvoir publier votre démarche. + missing_information_instructeurs: Vous devez affecter des instructeurs avant de pouvoir publier votre démarche. + missing_link: Cette démarche n’a pas encore de lien, et n’est pas accessible par le public. + dubious_fields: "Attention, certains champs ne peuvent être demandés par l’administration. Voici les champs qui nous semblent suspects :" + click_here: Cliquez ici. + back_to_procedure: Revenir à la page de la démarche + publication_form: + faq_test_alert: Avez-vous bien pensé à tester votre démarche avant de la publier ? Pour vous aider dans cette phase de test, vous pouvez + faq_test_alert_link: consulter notre guide de bonnes pratiques. + faq_test_alert_link_url: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" + draft_changed_procedure_alert: "Publiez une nouvelle version de votre démarche. Les modifications suivantes seront appliquées :" + dpd_title: Avant de publier + dpd_part_1: Avez-vous bien pensé à informer votre Délégué à la Protection des Données personnelles (DPD). + dpd_part_2: Si votre démarche propose de collecter des données personnelles, vous devez informer votre DPD. Chaque organisme en a un. + dpd_part_3: "Ce dernier pourra vous aider dans la finalisation de votre démarche, et vous inviter à vous interroger sur les données collectées, et sur la pertinence de ces dernières. N'oubliez pas : toutes les démarches qui contiennent des données personnelles doivent être consignées dans un registre des traitements :" + dpd_part_4: Comment faire ? Vous pouvez soit lui communiquer par email le lien vers la démarche en test, ou bien le nommer « administrateur ». Dans tous les cas, ne publiez votre démarche qu’après avoir eu son avis. + back_to_procedure: 'Annuler et revenir à la page de la démarche' + submit: Publier diff --git a/config/locales/views/layouts/_breadcrumb.en.yml b/config/locales/views/layouts/_breadcrumb.en.yml index 91de48e102d..29abb6edd26 100644 --- a/config/locales/views/layouts/_breadcrumb.en.yml +++ b/config/locales/views/layouts/_breadcrumb.en.yml @@ -11,3 +11,6 @@ en: closed: "Closed" published: "Published" draft: "Draft" + more_info_on_test: "For more information on test stage" + go_to_FAQ: "read FAQ" + url_FAQ: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" diff --git a/config/locales/views/layouts/_breadcrumb.fr.yml b/config/locales/views/layouts/_breadcrumb.fr.yml index d38f9727160..46674f18248 100644 --- a/config/locales/views/layouts/_breadcrumb.fr.yml +++ b/config/locales/views/layouts/_breadcrumb.fr.yml @@ -11,3 +11,6 @@ fr: closed: "Close" published: "Publiée" draft: "En test" + more_info_on_test: "Pour plus d’information sur la phase de test" + go_to_FAQ: "consulter la FAQ" + url_FAQ: "https://faq.demarches-simplifiees.fr/category/49-comment-tester-ma-demarche" diff --git a/spec/system/administrateurs/procedure_locked_spec.rb b/spec/system/administrateurs/procedure_locked_spec.rb index 58da6c7a84f..d3da26fa4ce 100644 --- a/spec/system/administrateurs/procedure_locked_spec.rb +++ b/spec/system/administrateurs/procedure_locked_spec.rb @@ -10,7 +10,7 @@ let(:procedure) { create(:procedure, administrateur: administrateur) } scenario 'info label is not present' do - expect(page).to have_content('Test et publication') + expect(page).to have_content('Publier') expect(page).not_to have_content('Cette démarche est publiée, certains éléments ne peuvent plus être modifiés.') end end @@ -19,7 +19,7 @@ let(:procedure) { create(:procedure, :published, administrateur: administrateur) } scenario 'info label is present' do - expect(page).to have_content('Publication') + expect(page).to have_content('Publier') expect(page).to have_content('Cette démarche est publiée, certains éléments ne peuvent plus être modifiés.') end end