Merge pull request #9375 from colinux/fix-legacy-forms-layout
Améliore l'affichage de plusieurs petits formulaires résiduels
This commit is contained in:
commit
9c8b015b45
14 changed files with 92 additions and 126 deletions
|
@ -1,34 +1,6 @@
|
|||
@import "constants";
|
||||
|
||||
#invites-form {
|
||||
padding: $default-padding;
|
||||
text-align: left;
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
margin-top: $default-padding;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-position: inside;
|
||||
list-style-type: disc;
|
||||
margin-bottom: $default-padding;
|
||||
}
|
||||
|
||||
input[type=email] {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
.button {
|
||||
margin-left: $default-spacer;
|
||||
@media (min-width: 48em) {
|
||||
min-width: 400px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
module Dsfr
|
||||
module InputErrorable
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
delegate :object, to: :@form
|
||||
delegate :errors, to: :object
|
||||
|
||||
renders_one :hint
|
||||
|
||||
private
|
||||
|
||||
# lookup for edge case from `form.rich_text_area`
|
||||
|
@ -89,6 +92,10 @@ module Dsfr
|
|||
end
|
||||
|
||||
def hint
|
||||
get_slot(:hint).presence || default_hint
|
||||
end
|
||||
|
||||
def default_hint
|
||||
I18n.t("activerecord.attributes.#{object.class.name.underscore}.hints.#{@attribute}")
|
||||
end
|
||||
|
||||
|
@ -101,6 +108,8 @@ module Dsfr
|
|||
end
|
||||
|
||||
def hint?
|
||||
return true if get_slot(:hint).present?
|
||||
|
||||
I18n.exists?("activerecord.attributes.#{object.class.name.underscore}.hints.#{@attribute}")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
= form_tag(search_admin_procedures_path, data: { turbo: true }, method: :post, class: 'form') do
|
||||
= label_tag :query, 'Rechercher une procédure'
|
||||
= form_tag(search_admin_procedures_path, data: { turbo: true }, method: :post) do
|
||||
.fr-input-group
|
||||
= label_tag :query, class: "fr-label" do
|
||||
Rechercher une démarche
|
||||
%span.fr-hint-text Saisissez au moins 3 lettres
|
||||
|
||||
.notice
|
||||
%p Entrez au minimum 3 lettres
|
||||
|
||||
|
||||
= text_field_tag :query, params[:query], required: true, placeholder: 'politique de la ville', minlength: "3"
|
||||
= text_field_tag :query, params[:query], required: true, placeholder: 'politique de la ville', minlength: "3", class: "fr-input"
|
||||
|
||||
= submit_tag 'Rechercher', class: 'fr-btn'
|
||||
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
= form_for procedure.administrateurs.new(user: User.new),
|
||||
url: { controller: 'procedure_administrateurs' },
|
||||
html: { class: 'form', id: "new_administrateur" },
|
||||
html: { id: "new_administrateur" },
|
||||
data: { turbo: true, turbo_force: :server } do |f|
|
||||
= f.label :email do
|
||||
Ajouter un administrateur
|
||||
%p.notice Renseignez l’email d’un administrateur déjà enregistré sur #{APPLICATION_NAME} pour lui permettre de modifier « #{procedure.libelle} ».
|
||||
= f.email_field :email, placeholder: 'marie.dupont@exemple.fr', autofocus: true, required: true, disabled: disabled_as_super_admin
|
||||
= f.submit 'Ajouter comme administrateur', class: 'button primary send', disabled: disabled_as_super_admin
|
||||
.fr-input-group
|
||||
= f.label :email, class: "fr-label" do
|
||||
Ajouter un administrateur
|
||||
%span.fr-hint-text
|
||||
= "Renseignez l’email d’un administrateur déjà enregistré sur #{APPLICATION_NAME} pour lui permettre de modifier « #{procedure.libelle} ». Exemple : marie.dupont@exemple.fr"
|
||||
|
||||
= f.email_field :email, required: true, class: "fr-input", autofocus: true, disabled: disabled_as_super_admin
|
||||
|
||||
= f.submit 'Ajouter comme administrateur', class: 'fr-btn', disabled: disabled_as_super_admin
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
%th= 'État'
|
||||
%tbody#administrateurs
|
||||
= render(Procedure::ProcedureAdministrateurs::AdministrateurComponent.with_collection(@procedure.administrateurs.order('users.email'), procedure: @procedure))
|
||||
%tfoot
|
||||
%tr
|
||||
%th{ colspan: 4 }
|
||||
= render 'add_admin_form', procedure: @procedure, disabled_as_super_admin: administrateur_as_manager?
|
||||
|
||||
.fr-mt-4w
|
||||
= render 'add_admin_form', procedure: @procedure, disabled_as_super_admin: administrateur_as_manager?
|
||||
|
|
|
@ -11,5 +11,6 @@
|
|||
%br
|
||||
Une fois en possession du code généré sur le site MonAvis, vous pouvez le coller dans le champ ci-dessous :
|
||||
|
||||
= f.label :monavis_embed, "Mon avis"
|
||||
= f.text_area :monavis_embed, rows: '6', placeholder: '<a href="https://monavis.numerique.gouv.fr/Demarches/123456?&view-mode=formulaire-avis&nd_mode=en-ligne-enti%C3%A8rement&nd_source=button&key=cd4a872d4"><img src="https://monavis.numerique.gouv.fr/monavis-static/bouton-bleu.png" alt="Je donne mon avis" title="Je donne mon avis sur cette démarche" /></a>', class: 'form-control'
|
||||
.fr-input-group
|
||||
= f.label :monavis_embed, "Mon avis", class: "fr-label"
|
||||
= f.text_area :monavis_embed, rows: '6', placeholder: '<a href="https://monavis.numerique.gouv.fr/Demarches/123456?&view-mode=formulaire-avis&nd_mode=en-ligne-enti%C3%A8rement&nd_source=button&key=cd4a872d4"><img src="https://monavis.numerique.gouv.fr/monavis-static/bouton-bleu.png" alt="Je donne mon avis" title="Je donne mon avis sur cette démarche" /></a>', class: 'fr-input'
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
.container
|
||||
%h1
|
||||
= form_with model: @procedure, url: url_for({ controller: 'administrateurs/procedures', action: :update_jeton }), html: { class: 'form' } do |f|
|
||||
= form_with model: @procedure, url: url_for({ controller: 'administrateurs/procedures', action: :update_jeton }) do |f|
|
||||
%p.explication
|
||||
Démarches Simplifiées utilise
|
||||
= link_to 'API Entreprise', "https://entreprise.api.gouv.fr/"
|
||||
|
@ -18,7 +18,7 @@
|
|||
= link_to 'API Entreprise', "https://api.gouv.fr/les-api/api-entreprise/demande-acces"
|
||||
propre à votre démarche.
|
||||
|
||||
= f.label :api_entreprise_token, "Jeton"
|
||||
= f.password_field :api_entreprise_token, value: @procedure.read_attribute(:api_entreprise_token), class: 'form-control'
|
||||
.text-right
|
||||
= f.button 'Enregistrer', class: 'button primary send'
|
||||
.fr-input-group
|
||||
= f.label :api_entreprise_token, "Jeton", class: 'fr-label'
|
||||
= f.password_field :api_entreprise_token, value: @procedure.read_attribute(:api_entreprise_token), class: 'fr-input'
|
||||
= f.button 'Enregistrer', class: 'fr-btn'
|
||||
|
|
|
@ -11,5 +11,4 @@
|
|||
%h1
|
||||
= form_for @procedure, url: url_for({ controller: 'administrateurs/procedures', action: :update_monavis }), html: { class: 'form', multipart: true } do |f|
|
||||
= render partial: 'monavis', locals: { f: f }
|
||||
.text-right
|
||||
= f.button 'Enregistrer', class: 'button primary send'
|
||||
= f.button 'Enregistrer', class: 'fr-btn'
|
||||
|
|
|
@ -1,35 +1,19 @@
|
|||
= form_with model: [ :admin, service], local: true, html: { class: 'form' } do |f|
|
||||
= form_with model: [ :admin, service], local: true do |f|
|
||||
|
||||
= f.label :nom do
|
||||
Nom du service
|
||||
%span.mandatory *
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :nom, input_type: :text_field)
|
||||
|
||||
%p.notice Indiquez le nom et la direction rattachée séparé par une virgule
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :organisme, input_type: :text_field)
|
||||
|
||||
= f.text_field :nom, placeholder: 'service jeunesse et prévention, direction des affaires maritimes', required: true
|
||||
.fr-input-group
|
||||
= f.label :type_organisme, class: "fr-label" do
|
||||
Type d’organisme
|
||||
|
||||
= f.label :organisme do
|
||||
Organisme/s
|
||||
%span.mandatory *
|
||||
%p.notice Indiquez les organismes depuis l’échelon territorial jusqu’au ministère séparés par une virgule
|
||||
= f.text_field :organisme, placeholder: "mairie de Mours, préfecture de l'Oise, ministère de la Culture", required: true
|
||||
= f.select :type_organisme, Service.type_organismes.keys.map { |key| [ I18n.t("type_organisme.#{key}"), key] }, {}, class: 'fr-select'
|
||||
|
||||
= f.label :type_organisme do
|
||||
Type d’organisme
|
||||
%span.mandatory *
|
||||
|
||||
= f.select :type_organisme, Service.type_organismes.keys.map { |key| [ I18n.t("type_organisme.#{key}"), key] }, class: 'width-33-desktop width-100-mobile'
|
||||
|
||||
= f.label :siret do
|
||||
Numéro SIRET
|
||||
%span.mandatory *
|
||||
|
||||
%p.notice
|
||||
Veuillez saisir le numéro de SIRET de l’organisme dont ce service dépend.
|
||||
%br
|
||||
= link_to "➡ Rechercher le numéro SIRET sur « annuaire-entreprises.data.gouv.fr »", annuaire_link, target: "_blank"
|
||||
|
||||
= f.text_field :siret, placeholder: "14 chiffres", required: true
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :siret, input_type: :text_field, opts: { placeholder: "14 chiffres, sans espace" }) do |c|
|
||||
- c.with_hint do
|
||||
= "Indiquez le numéro de SIRET de l’organisme dont ce service dépend. Rechercher le SIRET sur "
|
||||
= link_to("annuaire-entreprises.data.gouv.fr", annuaire_link, **external_link_attributes)
|
||||
|
||||
= render Dsfr::CalloutComponent.new(title: "Informations de contact") do |c|
|
||||
- c.body do
|
||||
|
@ -42,31 +26,10 @@
|
|||
%br
|
||||
Ces informations de contact seront visibles par les utilisateurs de la démarche, affichées dans le menu « Aide », ainsi qu’en pied de page lors du dépôt d’un dossier. En cas d’informations invalides, #{APPLICATION_NAME} se réserve le droit de suspendre la publication de la démarche.
|
||||
|
||||
= f.label :email do
|
||||
Adresse email
|
||||
%span.mandatory *
|
||||
|
||||
%p.notice
|
||||
Indiquez une adresse Email valide qui permettra de recevoir et de répondre aux questions des usagers.
|
||||
|
||||
= f.email_field :email, placeholder: 'contact@mon-service.fr', required: true, class: 'width-33-desktop width-100-mobile'
|
||||
|
||||
= f.label :telephone do
|
||||
Numéro de téléphone
|
||||
%span.mandatory *
|
||||
%p.notice Indiquez le numéro de téléphone du service valide le plus à même de fournir des réponses pertinentes à vos usagers
|
||||
= f.telephone_field :telephone, placeholder: '04 12 24 42 37', required: true, class: 'width-33-desktop width-100-mobile'
|
||||
|
||||
= f.label :horaires do
|
||||
Horaires
|
||||
%span.mandatory *
|
||||
%p.notice Indiquez les jours ouvrables et les horaires où les usagers peuvent vous joindre
|
||||
= f.text_area :horaires, placeholder: "Du lundi au vendredi de 9 h 30 à 17 h 30. Le samedi de 9 h 30 à 12 h.", required: true, class: 'width-66-desktop width-100-mobile'
|
||||
|
||||
= f.label :adresse do
|
||||
Adresse postale
|
||||
%span.mandatory *
|
||||
= f.text_area :adresse, placeholder: "20 avenue de Ségur, 75007 Paris", required: true, class: 'width-66-desktop width-100-mobile'
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :email, input_type: :email_field)
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :telephone, input_type: :telephone_field)
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :horaires, input_type: :text_area)
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :adresse, input_type: :text_area)
|
||||
|
||||
- if procedure_id.present?
|
||||
= hidden_field_tag :procedure_id, procedure_id
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#invites-form
|
||||
#invites-form.fr-p-2w
|
||||
- if invites.present?
|
||||
#invite-list{ morphing ? { tabindex: "-1" } : {} }
|
||||
%h4= t('views.invites.form.invite_to_participate')
|
||||
%h4.fr-h6= t('views.invites.form.invite_to_participate')
|
||||
%ul
|
||||
- invites.each do |invite|
|
||||
%li
|
||||
= invite.email
|
||||
%small{ 'data-turbo': 'true' }
|
||||
= link_to t('views.invites.form.withdraw_permission'), invite_path(invite), data: { turbo_method: :delete, turbo_confirm: t('views.invites.form.want_to_withdraw_permission') }
|
||||
= link_to t('views.invites.form.withdraw_permission'), invite_path(invite), data: { turbo_method: :delete, turbo_confirm: t('views.invites.form.want_to_withdraw_permission') }, class: "fr-btn fr-btn--sm fr-btn--tertiary-no-outline"
|
||||
|
||||
%p= t('views.invites.form.edit_dossier')
|
||||
- if dossier.brouillon?
|
||||
|
@ -17,15 +17,15 @@
|
|||
%p= t('views.invites.form.invite_to_edit_line1')
|
||||
%p= t('views.invites.form.invite_to_edit_line2')
|
||||
|
||||
= form_tag dossier_invites_path(dossier), data: { turbo: true, turbo_force: :server }, method: :post, class: 'form' do
|
||||
.row
|
||||
.col
|
||||
%span
|
||||
= label_tag :invite_email, t('views.invites.form.email')
|
||||
= email_field_tag :invite_email, '', class: 'small', placeholder: t('views.invites.form.email'), required: true
|
||||
.col
|
||||
%span
|
||||
= label_tag :invite_message, t('views.invites.form.invite_message')
|
||||
= text_area_tag :invite_message, '', class: 'small', placeholder: t('views.invites.form.invite_message')
|
||||
.col
|
||||
= submit_tag t('views.invites.form.send_invitation'), class: 'fr-btn fr-btn--secondary'
|
||||
= form_tag dossier_invites_path(dossier), data: { turbo: true, turbo_force: :server }, method: :post do
|
||||
.fr-input-group
|
||||
= label_tag :invite_email, class: "fr-label" do
|
||||
= t('views.invites.form.email')
|
||||
%span.fr-hint-text= t('views.invites.form.email_hint')
|
||||
= email_field_tag :invite_email, '', required: true, class: "fr-input"
|
||||
|
||||
.fr-input-group
|
||||
= label_tag :invite_message, t('views.invites.form.invite_message'), class: "fr-label"
|
||||
= text_area_tag :invite_message, '', class: "fr-input"
|
||||
|
||||
= submit_tag t('views.invites.form.send_invitation'), class: 'fr-btn fr-btn--secondary'
|
||||
|
|
|
@ -34,4 +34,4 @@
|
|||
= f.label :birthdate
|
||||
= f.date_field :birthdate, value: @dossier.individual.birthdate, placeholder: 'format : AAAA-MM-JJ', required: true, class: "small"
|
||||
|
||||
= f.submit t('views.users.dossiers.identite.continue'), class: "fr-btn fr-btn--lg"
|
||||
= f.submit t('views.users.dossiers.identite.continue'), class: "fr-btn fr-btn--lg fr-mt-4w"
|
||||
|
|
|
@ -39,8 +39,8 @@
|
|||
application_name: APPLICATION_NAME,
|
||||
legit_admin_domains: LEGIT_ADMIN_DOMAINS.join(', '))
|
||||
|
||||
= form_for current_user, url: update_email_path, method: :patch, html: { class: 'form' } do |f|
|
||||
= f.email_field :email, value: nil, placeholder: t('.new_email_address'), required: true
|
||||
= form_for current_user, url: update_email_path, method: :patch do |f|
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :email, input_type: :email_field, opts: { value: nil, placeholder: t('.new_email_address') })
|
||||
= f.submit t('.change_address'), class: 'fr-btn fr-btn--secondary'
|
||||
|
||||
- if !instructeur_signed_in?
|
||||
|
|
|
@ -309,6 +309,7 @@ fr:
|
|||
invite_to_edit_line1: Vous pouvez inviter quelqu’un à remplir ce dossier avec vous.
|
||||
invite_to_edit_line2: Cette personne aura le droit de modifier votre dossier.
|
||||
email: Adresse mail
|
||||
email_hint: "Exemple : camilya.martin@exemple.fr"
|
||||
invite_message: Ajouter un message à la personne invitée (optionnel)
|
||||
send_invitation: Envoyer une invitation
|
||||
invite_to_participate: "Personnes invitées à participer à ce dossier"
|
||||
|
|
|
@ -9,6 +9,25 @@ fr:
|
|||
adresse: 'Adresse postale'
|
||||
email: 'Email de contact'
|
||||
telephone: 'Téléphone'
|
||||
nom: Nom du service
|
||||
organisme: Organisme(s)
|
||||
hints:
|
||||
nom: |
|
||||
Indiquez le nom et la direction rattachée, séparés par une virgule.
|
||||
Exemple : service jeunesse et prévention, direction des affaires maritimes
|
||||
organisme: |
|
||||
Indiquez les organismes depuis l’échelon territorial jusqu’au ministère séparés par une virgule.
|
||||
Exemple : mairie de Mours, préfecture de l'Oise, ministère de la Culture
|
||||
email: |
|
||||
Indiquez une adresse email valide qui permettra de recevoir et de répondre aux questions des usagers.
|
||||
Exemple : contact@mairie-de-mours.fr
|
||||
telephone: "Indiquez le numéro de téléphone du service valide le plus à même de fournir des réponses pertinentes à vos usagers. Exemple : 01 23 45 67 89"
|
||||
horaires: |
|
||||
Indiquez les jours ouvrables et les horaires où les usagers peuvent vous joindre.
|
||||
Exemple : Du lundi au vendredi de 9h30 à 17h30, le samedi de 9h30 à 12h.
|
||||
adresse: |
|
||||
Indiquez l’adresse à laquelle un usager peut vous contacter, par exemple s’il n’est pas en capacité de compléter son formulaire en ligne.
|
||||
|
||||
errors:
|
||||
models:
|
||||
service:
|
||||
|
|
Loading…
Reference in a new issue