feat(service): prefill contact information UI interactions

This commit is contained in:
Colin Darie 2024-10-14 22:25:08 +02:00
parent 21dc77e587
commit 68cca71318
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4
8 changed files with 104 additions and 24 deletions

View file

@ -1,11 +1,21 @@
= form_with model: [ :admin, service], local: true do |f|
= form_with model: [:admin, service], id: "service_form", data: { turbo: token_list('true' => service.new_record?), controller: token_list('autosave' => service.new_record?), turbo_method: 'post' } do |f|
= 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 lorganisme dont ce service dépend. Rechercher le SIRET sur "
= link_to("annuaire-entreprises.data.gouv.fr", annuaire_link, **external_link_attributes)
%br
= "Nous préremplirons les informations de contact à partir de lAnnuaire Service Public correspondant."
- if service.etablissement_infos.blank? && local_assigns[:prefilled].nil?
- c.with_hint do
= "Indiquez le numéro de SIRET de lorganisme dont ce service dépend. Rechercher le SIRET sur "
= link_to("annuaire-entreprises.data.gouv.fr", annuaire_link, **external_link_attributes)
- if service.new_record?
%br
= "Nous préremplirons les informations de contact à partir de lAnnuaire Service Public correspondant."
.fr-mb-2w
- if local_assigns[:prefilled] == :success
%p.fr-info-text Génial ! Les informations du service ont été préremplies ci-dessous. Vérifiez-les et complétez-les le cas échéant.
- elsif local_assigns[:prefilled] == :failure
%p.fr-error-text
Une erreur a empêché le préremplissage des informations.
Vérifiez que le numéro de SIRET est correct et complétez les informations manuellement le cas échéant.
= render Dsfr::InputComponent.new(form: f, attribute: :nom, input_type: :text_field)
@ -33,7 +43,6 @@
= 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
= render Procedure::FixedFooterComponent.new(procedure: @procedure, form: f)
- if local_assigns[:procedure].present?
= hidden_field_tag :procedure_id, procedure.id
= render Procedure::FixedFooterComponent.new(procedure: procedure, form: f)

View file

@ -23,4 +23,4 @@
%p.mt-3 Si vous souhaitez modifier uniquement les informations pour ce service, créez un nouveau service puis associez-le à la démarche
= render partial: 'form',
locals: { service: @service, procedure_id: @procedure.id }
locals: { service: @service, procedure: @procedure }

View file

@ -8,4 +8,4 @@
%h1 Nouveau Service
= render partial: 'form',
locals: { service: @service, procedure_id: @procedure.id }
locals: { service: @service, procedure: @procedure }