remove css change and add all fieldsets

This commit is contained in:
Lisa Durand 2024-04-15 18:07:06 +02:00 committed by Colin Darie
parent 1246ef02b6
commit 227d740a76
No known key found for this signature in database
GPG key ID: 8C76CADD40253590
2 changed files with 152 additions and 136 deletions

View file

@ -2,11 +2,6 @@
@import "colors";
@import "placeholders";
.fr-input-group,
.fr-select-group {
margin-bottom: 1rem;
}
.form {
input.unstyled {
padding: 0 !important;
@ -25,6 +20,11 @@
font-style: italic;
}
.fr-input-group,
.fr-select-group {
margin-bottom: 1rem;
}
.section-2 {
margin-top: 1.5rem;
padding-top: 2rem;

View file

@ -4,75 +4,89 @@
%p
Certains éléments de la description ne sont plus modifiables.
= render Dsfr::InputComponent.new(form: f, attribute: :libelle, input_type: :text_field, opts: {})
%fieldset.fr-fieldset
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :libelle, input_type: :text_field, opts: {})
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :description, input_type: :text_area, opts: {})
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :description_target_audience, input_type: :text_area, opts: {}, required: false)
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :description_pj, input_type: :text_area, opts: {placeholder: t('activerecord.attributes.procedure.description_pj_placeholder')}, required: false)
= render Dsfr::InputComponent.new(form: f, attribute: :description, input_type: :text_area, opts: {})
.fr-fieldset__element
.fr-input-group
= f.label :logo, 'Ajouter un logo de la démarche', class: 'fr-label'
= render Attachment::EditComponent.new(attached_file: @procedure.logo, view_as: :link)
.fr-fieldset__element
.fr-input-group
= f.label :duree_conservation_dossiers_dans_ds, class: 'fr-label' do
= Procedure.human_attribute_name(:duree_conservation_dossiers_dans_ds)
= render EditableChamp::AsteriskMandatoryComponent.new
= render Dsfr::InputComponent.new(form: f, attribute: :description_target_audience, input_type: :text_area, opts: {}, required: false)
%span.fr-hint-text
= t(:notice, scope: [:administrateurs, :duree_conservation_dossiers_dans_ds])
- if f.object.duree_conservation_dossiers_dans_ds.to_i < Expired::DEFAULT_DOSSIER_RENTENTION_IN_MONTH
= t(:new_duration_constraint, scope: [:administrateurs, :duree_conservation_dossiers_dans_ds], new_duration_in_month: f.object.max_duree_conservation_dossiers_dans_ds)
= render Dsfr::InputComponent.new(form: f, attribute: :description_pj, input_type: :text_area, opts: {placeholder: t('activerecord.attributes.procedure.description_pj_placeholder')}, required: false)
= f.number_field :duree_conservation_dossiers_dans_ds, { class: 'fr-input', placeholder: '6', required: true, max: f.object.max_duree_conservation_dossiers_dans_ds }
.fr-input-group
= f.label :logo, 'Ajouter un logo de la démarche', class: 'fr-label'
= render Attachment::EditComponent.new(attached_file: @procedure.logo, view_as: :link)
- if @procedure.persisted?
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :lien_site_web, input_type: :text_field, opts: {}, required: false)
.fr-input-group
= f.label :duree_conservation_dossiers_dans_ds, class: 'fr-label' do
= Procedure.human_attribute_name(:duree_conservation_dossiers_dans_ds)
= render EditableChamp::AsteriskMandatoryComponent.new
%fieldset.fr-fieldset
%legend.fr-fieldset__legend Cadre juridique
.fr-fieldset__element
= render Dsfr::CalloutComponent.new(title: nil) do |c|
- c.with_body do
%p
Le cadre juridique justifie le droit de collecter les données demandées dans votre démarche auprès des usagers. Par exemple :
%br
 Texte de loi (loi, décret, circulaire, arrêté…)
%br
 Texte juridique (statuts, délibération, décision du conseil dadministration…)
%br
= link_to("En savoir plus avec cette vidéo de 5 minutes", CADRE_JURIDIQUE_URL, target: "_blank", rel: "noopener")
%p Vous pouvez saisir un lien web vers ce texte, ou limporter depuis un fichier.
%span.fr-hint-text
= t(:notice, scope: [:administrateurs, :duree_conservation_dossiers_dans_ds])
- if f.object.duree_conservation_dossiers_dans_ds.to_i < Expired::DEFAULT_DOSSIER_RENTENTION_IN_MONTH
= t(:new_duration_constraint, scope: [:administrateurs, :duree_conservation_dossiers_dans_ds], new_duration_in_month: f.object.max_duree_conservation_dossiers_dans_ds)
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :cadre_juridique, input_type: :text_field, opts: {})
= f.number_field :duree_conservation_dossiers_dans_ds, { class: 'fr-input', placeholder: '6', required: true, max: f.object.max_duree_conservation_dossiers_dans_ds }
.fr-fieldset__element
.fr-input-group
= f.label :deliberation, 'Cadre juridique - texte à importer', class: 'fr-label'
= render Attachment::EditComponent.new(attached_file: @procedure.deliberation, view_as: :download)
- if @procedure.persisted?
= render Dsfr::InputComponent.new(form: f, attribute: :lien_site_web, input_type: :text_field, opts: {}, required: false)
%fieldset.fr-fieldset
.fr-fieldset__element
= render Dsfr::InputComponent.new(form: f, attribute: :lien_dpo, input_type: :text_field, opts: {}, required: false) do |c|
- c.with_hint_content("Pour certaines démarches, veuillez indiquer soit le mail de contact de votre délégué à la protection des données, soit un lien web pointant vers les informations")
= render Dsfr::CalloutComponent.new(title: "Cadre juridique") do |c|
- c.with_body do
%p
Le cadre juridique justifie le droit de collecter les données demandées dans votre démarche auprès des usagers. Par exemple :
%br
 Texte de loi (loi, décret, circulaire, arrêté…)
%br
 Texte juridique (statuts, délibération, décision du conseil dadministration…)
%br
= link_to("En savoir plus avec cette vidéo de 5 minutes", CADRE_JURIDIQUE_URL, target: "_blank", rel: "noopener")
%p Vous pouvez saisir un lien web vers ce texte, ou limporter depuis un fichier.
- if Rails.application.config.ds_opendata_enabled
.fr-fieldset__element
= render Dsfr::CalloutComponent.new(title: t(:opendata_header, scope: [:administrateurs, :informations])) do |c|
- c.with_body do
%p= t(:opendata_notice_html, scope: [:administrateurs, :informations])
= render Dsfr::InputComponent.new(form: f, attribute: :cadre_juridique, input_type: :text_field, opts: {})
.fr-fieldset__element
.fr-input-group
= f.label :opendata, t(:opendata, scope: [:administrateurs, :informations]), class: 'fr-label'
%label.toggle-switch
= f.check_box :opendata, class: 'toggle-switch-checkbox'
%span.toggle-switch-control.round
%span.toggle-switch-label.on Oui
%span.toggle-switch-label.off Non
.fr-input-group
= f.label :deliberation, 'Cadre juridique - texte à importer', class: 'fr-label'
= render Attachment::EditComponent.new(attached_file: @procedure.deliberation, view_as: :download)
.fr-fieldset__element
.fr-input-group
= f.label :notice, 'Notice explicative de la démarche', class: 'fr-label'
%p.fr-hint-text
Une notice explicative est un document que vous avez élaboré, destiné à guider lusager dans sa démarche. Le bouton pour télécharger cette notice apparaît en haut du formulaire pour lusager.
%br
= render Dsfr::InputComponent.new(form: f, attribute: :lien_dpo, input_type: :text_field, opts: {}, required: false) do |c|
- c.with_hint_content("Pour certaines démarches, veuillez indiquer soit le mail de contact de votre délégué à la protection des données, soit un lien web pointant vers les informations")
- if Rails.application.config.ds_opendata_enabled
= render Dsfr::CalloutComponent.new(title: t(:opendata_header, scope: [:administrateurs, :informations])) do |c|
- c.with_body do
%p= t(:opendata_notice_html, scope: [:administrateurs, :informations])
.fr-input-group
= f.label :opendata, t(:opendata, scope: [:administrateurs, :informations]), class: 'fr-label'
%label.toggle-switch
= f.check_box :opendata, class: 'toggle-switch-checkbox'
%span.toggle-switch-control.round
%span.toggle-switch-label.on Oui
%span.toggle-switch-label.off Non
.fr-input-group
= f.label :notice, 'Notice explicative de la démarche', class: 'fr-label'
%p.fr-hint-text
Une notice explicative est un document que vous avez élaboré, destiné à guider lusager dans sa démarche. Le bouton pour télécharger cette notice apparaît en haut du formulaire pour lusager.
%br
Formats acceptés : .doc, .odt, .pdf, .ppt, .pptx
= render Attachment::EditComponent.new(attached_file: @procedure.notice, view_as: :download)
Formats acceptés : .doc, .odt, .pdf, .ppt, .pptx
= render Attachment::EditComponent.new(attached_file: @procedure.notice, view_as: :download)
- if !@procedure.locked?
%fieldset.fr-fieldset{ "aria-labelledby": "for-individual-legend" }
@ -94,79 +108,81 @@
%span.fr-hint-text
En choisissant cette option, lusager devra renseigner son n° SIRET.<br>Grâce à lAPI Entreprise, les informations sur la personne morale (raison sociale, adresse du siège, etc.) seront automatiquement renseignées.
= f.label :tags, 'Associez les tags à la démarche', class: 'fr-label'
%p.fr-hint-text Les tags sont des mots ou des expressions que vous attribuez aux démarches pour décrire leur contenu et pour les retrouver. Les tags sont partagés avec la communauté, ce qui vous permet de voir les tags attribués aux démarches créées par les autres administrateurs.
= hidden_field_tag 'procedure[tags]', JSON.generate(@procedure.tags)
= react_component("ComboMultiple",
id: "procedure_tags_combo",
options: Procedure.tags,
selected: @procedure.tags,
disabled: [],
label: 'Tags',
group: '.procedure_tags_combo',
name: 'tags',
describedby: 'procedure-tags',
acceptNewValues: true)
%fieldset.fr-fieldset
.fr-fieldset__element
= f.label :tags, 'Associez les tags à la démarche', class: 'fr-label'
%p.fr-hint-text Les tags sont des mots ou des expressions que vous attribuez aux démarches pour décrire leur contenu et pour les retrouver. Les tags sont partagés avec la communauté, ce qui vous permet de voir les tags attribués aux démarches créées par les autres administrateurs.
= hidden_field_tag 'procedure[tags]', JSON.generate(@procedure.tags)
= react_component("ComboMultiple",
id: "procedure_tags_combo",
options: Procedure.tags,
selected: @procedure.tags,
disabled: [],
label: 'Tags',
group: '.procedure_tags_combo',
name: 'tags',
describedby: 'procedure-tags',
acceptNewValues: true)
%details.procedure-form__options-details
%summary.procedure-form__options-summary
%h3.fr-h6 Options avancées
.card
%fieldset.fr-fieldset
.fr-fieldset__element
- if feature_enabled?(:administrateur_web_hook)
= f.label :web_hook_url, class: 'fr-label' do
Lien de rappel HTTP (webhook)
%p.fr-hint-text
%strong Les webhooks sont maintenant dépréciés
Nous vous recommandons d'utiliser l'API GraphQL en faisant du polling,
= link_to "voici un exemple d'implementation ", WEBHOOK_ALTERNATIVE_DOC_URL, rel: "noopener", target: "_blank", title: "Voir une implémentation alternative à l'ancien système de webhook"
= f.text_field :web_hook_url, class: 'fr-input', placeholder: 'https://callback.exemple.fr/'
.fr-fieldset__element
= f.label :auto_archive_on, class: 'fr-label fr-mb-2w' do
Date limite de dépôt des dossiers
%span.fr-hint-text
Si une date est définie, aucun dossier ne pourra plus être déposé ou modifié après cette limite.
Les dossiers en construction passeront en instruction et la démarche sera clôturée.
%span.flex.align-center
- value = @procedure.auto_archive_on ? @procedure.auto_archive_on - 1.day : nil
= f.date_field :auto_archive_on, id: 'auto_archive_on', class: 'fr-input', value: value
%span.fr-ml-1w.fr-text-mention--grey
#{procedure_auto_archive_time(@procedure)}.
%fieldset.fr-fieldset{ "aria-labelledby": "declarative_with_state-legend" }
%legend#declarative_with_state-legend.fr-fieldset__legend.fr-fieldset__legend--regular
Démarche déclarative
%span.fr-hint-text
Par défaut, un dossier déposé peut être complété ou corrigé par le demandeur jusqu'à sa mise en instruction.<br>
Dans une démarche déclarative, une fois déposé, un dossier ne peut plus être modifié. Soit il passe immédiatement « en instruction » pour être traité, soit il est immédiatement « accepté ».
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, ''
= f.label :declarative_with_state, value: '', class: "fr-label" do
En construction (l'usager peut modifier son dossier jusqu'à sa mise en instruction)
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, Procedure.declarative_with_states.fetch(:en_instruction)
= f.label :declarative_with_state, value: Procedure.declarative_with_states.fetch(:en_instruction), class: 'fr-label' do
Passage automatique en instruction (l'usager ne peut plus modifier son dossier)
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, Procedure.declarative_with_states.fetch(:accepte)
= f.label :declarative_with_state, value: Procedure.declarative_with_states.fetch(:accepte), class: 'fr-label' do
Passage automatique au statut « accepté » (l'usager ne peut plus modifier son dossier)
- if !@procedure.piece_justificative_multiple?
%details.procedure-form__options-details
%summary.procedure-form__options-summary
%h3.fr-h6 Options avancées
.card
%fieldset.fr-fieldset
.fr-fieldset__element
.fr-checkbox-group.fr-mt-3w
= f.check_box :piece_justificative_multiple
= f.label :piece_justificative_multiple, class: 'fr-label' do
Champ “Pièce justificative” avec multiples fichiers
%p.fr-hint-text
Autorise les usagers à envoyer plusieurs fichiers pour les champs de type “Pièce justificative”. L'activation de cette option est irréversible et peut nécessiter des modifications si vous utilisez des systèmes automatisés pour traiter les dossiers.
- if feature_enabled?(:administrateur_web_hook)
= f.label :web_hook_url, class: 'fr-label' do
Lien de rappel HTTP (webhook)
%p.fr-hint-text
%strong Les webhooks sont maintenant dépréciés
Nous vous recommandons d'utiliser l'API GraphQL en faisant du polling,
= link_to "voici un exemple d'implementation ", WEBHOOK_ALTERNATIVE_DOC_URL, rel: "noopener", target: "_blank", title: "Voir une implémentation alternative à l'ancien système de webhook"
= f.text_field :web_hook_url, class: 'fr-input', placeholder: 'https://callback.exemple.fr/'
.fr-fieldset__element
= f.label :auto_archive_on, class: 'fr-label fr-mb-2w' do
Date limite de dépôt des dossiers
%span.fr-hint-text
Si une date est définie, aucun dossier ne pourra plus être déposé ou modifié après cette limite.
Les dossiers en construction passeront en instruction et la démarche sera clôturée.
%span.flex.align-center
- value = @procedure.auto_archive_on ? @procedure.auto_archive_on - 1.day : nil
= f.date_field :auto_archive_on, id: 'auto_archive_on', class: 'fr-input', value: value
%span.fr-ml-1w.fr-text-mention--grey
#{procedure_auto_archive_time(@procedure)}.
%fieldset.fr-fieldset{ "aria-labelledby": "declarative_with_state-legend" }
%legend#declarative_with_state-legend.fr-fieldset__legend.fr-fieldset__legend--regular
Démarche déclarative
%span.fr-hint-text
Par défaut, un dossier déposé peut être complété ou corrigé par le demandeur jusqu'à sa mise en instruction.<br>
Dans une démarche déclarative, une fois déposé, un dossier ne peut plus être modifié. Soit il passe immédiatement « en instruction » pour être traité, soit il est immédiatement « accepté ».
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, ''
= f.label :declarative_with_state, value: '', class: "fr-label" do
En construction (l'usager peut modifier son dossier jusqu'à sa mise en instruction)
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, Procedure.declarative_with_states.fetch(:en_instruction)
= f.label :declarative_with_state, value: Procedure.declarative_with_states.fetch(:en_instruction), class: 'fr-label' do
Passage automatique en instruction (l'usager ne peut plus modifier son dossier)
.fr-fieldset__element
.fr-radio-group
= f.radio_button :declarative_with_state, Procedure.declarative_with_states.fetch(:accepte)
= f.label :declarative_with_state, value: Procedure.declarative_with_states.fetch(:accepte), class: 'fr-label' do
Passage automatique au statut « accepté » (l'usager ne peut plus modifier son dossier)
- if !@procedure.piece_justificative_multiple?
.fr-fieldset__element
.fr-checkbox-group.fr-mt-3w
= f.check_box :piece_justificative_multiple
= f.label :piece_justificative_multiple, class: 'fr-label' do
Champ “Pièce justificative” avec multiples fichiers
%p.fr-hint-text
Autorise les usagers à envoyer plusieurs fichiers pour les champs de type “Pièce justificative”. L'activation de cette option est irréversible et peut nécessiter des modifications si vous utilisez des systèmes automatisés pour traiter les dossiers.