Implement revision changes UI
This commit is contained in:
parent
0d25f52309
commit
9d3416af53
5 changed files with 82 additions and 27 deletions
|
@ -61,3 +61,7 @@
|
|||
.mb-2 {
|
||||
margin-bottom: 2 * $default-spacer;
|
||||
}
|
||||
|
||||
.mb-1 {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
|
|
@ -1,40 +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
|
||||
%p.mb-4 Publiez votre démarche, et partagez la à vos usagers. Aucune modification ne sera possible.
|
||||
%p Personnalisez le lien public de la démarche pour en faciliter l’accès (<strong>obligatoire pour publier votre démarche</strong>) :
|
||||
%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",
|
||||
data: { debounce: true, url: admin_procedure_publish_validate_path(procedure)},
|
||||
autocomplete: 'off',
|
||||
style: 'width: 300px; display: inline;')
|
||||
.text-info.mb-4
|
||||
Attention, diffusez toujours le <strong>lien complet</strong> 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.
|
||||
%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,
|
||||
- if procedure.draft_changed?
|
||||
%p.mb-4 Publiez une nouvelle version de votre démarche. Les changements suivants seront appliqués :
|
||||
= render partial: 'revision_changes', locals: { changes: procedure.revision_changes }
|
||||
- else
|
||||
%p.mb-4 Publiez votre démarche, et partagez la à vos usagers. Aucune modification ne sera possible.
|
||||
%p Personnalisez le lien public de la démarche pour en faciliter l’accès (<strong>obligatoire pour publier votre démarche</strong>) :
|
||||
%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-control',
|
||||
class: 'form',
|
||||
pattern: '^[a-z0-9_-]{3,200}$',
|
||||
title: "De 3 à 200 caractères; minuscules, chiffres et tiret seulement",
|
||||
data: { debounce: true, url: admin_procedure_publish_validate_path(procedure)},
|
||||
autocomplete: 'off',
|
||||
placeholder: 'https://exemple.gouv.fr/ma_demarche')
|
||||
style: 'width: 300px; display: inline;')
|
||||
.text-info.mb-4
|
||||
Attention, diffusez toujours le <strong>lien complet</strong> 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.
|
||||
%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,
|
||||
required: true,
|
||||
class: 'form-control',
|
||||
autocomplete: 'off',
|
||||
placeholder: 'https://exemple.gouv.fr/ma_demarche')
|
||||
|
||||
- procedure.validate(:publication)
|
||||
- errors = procedure.errors
|
||||
-# Ignore the :taken error if the path can be claimed
|
||||
- if errors.details[:path]&.pluck(:error)&.include?(:taken) && @procedure.path_available?(administrateur, procedure.path)
|
||||
- if errors.details[:path]&.pluck(:error)&.include?(:taken) && procedure.path_available?(administrateur, procedure.path)
|
||||
- errors.delete(:path)
|
||||
|
||||
- options = { class: "button primary", id: 'publish' }
|
||||
- if errors.details[:path].present?
|
||||
- options[:disabled] = :disabled
|
||||
.flex.justify-end
|
||||
= submit_tag procedure_publish_text(@procedure, :submit), options
|
||||
= submit_tag procedure_publish_text(procedure, :submit), options
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
%ul
|
||||
- changes.each do |change|
|
||||
- case change[:op]
|
||||
- when :add
|
||||
%li.mb-1= "Le champ « #{change[:label]} » a été ajouté."
|
||||
- when :remove
|
||||
%li.mb-1= "Le champ « #{change[:label]} » a été supprimé."
|
||||
- when :update
|
||||
- case change[:attribute]
|
||||
- when :libelle
|
||||
%li.mb-1= "Le libellé du champ « #{change[:label]} » a changé en « #{change[:to]} »."
|
||||
- when :type_champ
|
||||
%li.mb-1= "Le type du champ « #{change[:label]} » a changé. Il est maintenant de type « #{t("activerecord.attributes.type_de_champ.type_champs.#{change[:to]}")} »."
|
||||
- when :description
|
||||
%li.mb-1= "La description du champ « #{change[:label]} » a changé. La nouvelle description est « #{change[:to]} »."
|
||||
- when :mandatory
|
||||
- if change[:from] == false
|
||||
%li.mb-1= "Le champ « #{change[:label]} » est maintenant obligatoire."
|
||||
- else
|
||||
%li.mb-1= "Le champ « #{change[:label]} » n'est plus obligatoire."
|
||||
- when :piece_justificative_template
|
||||
%li.mb-1= "Le champ « #{change[:label]} » a changé de modèle de pièce justificative."
|
||||
- when :drop_down_options
|
||||
- added = change[:to].sort - change[:from].sort
|
||||
- removed = change[:from].sort - change[:to].sort
|
||||
%li.mb-1
|
||||
= "Les options de sélection du champ « #{change[:label]} » ont changé."
|
||||
%ul
|
||||
- if added.present?
|
||||
%li= "Valeurs ajoutés : #{added.map{ |term| "« #{term.strip} »" }.join(", ")}."
|
||||
- if removed.present?
|
||||
%li= "Valeurs supprimés : #{removed.map{ |term| "« #{term.strip} »" }.join(", ")}."
|
||||
- if changes.any? { |change| change[:op] == :move }
|
||||
%li.mb-1 Des champs ont changé de position
|
|
@ -14,6 +14,9 @@
|
|||
- if @procedure.close? || @procedure.depubliee?
|
||||
%p.mb-4 Cette démarche est <strong>close</strong> 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à <strong>publiée</strong>. Elle a été <strong>modifiée</strong> 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 <strong>publiée</strong>, certains éléments ne peuvent plus être modifiés.
|
||||
Pour y accéder vous pouvez utiliser le lien :
|
||||
|
|
|
@ -29,6 +29,16 @@
|
|||
%span.icon.archive
|
||||
Clore
|
||||
|
||||
- if @procedure.draft_changed?
|
||||
= link_to 'Publier les modifications', admin_procedure_publication_path(@procedure), class: 'button primary', id: 'publish-procedure-link', data: { disable_with: "Publication..." }
|
||||
|
||||
- if @procedure.draft_changed?
|
||||
.container
|
||||
.card.featured
|
||||
.card-title
|
||||
Des champs ont été changés
|
||||
= render partial: 'revision_changes', locals: { changes: @procedure.revision_changes }
|
||||
|
||||
.container
|
||||
%h2.procedure-admin-explanation Indispensable avant publication
|
||||
.procedure-grid
|
||||
|
@ -41,7 +51,7 @@
|
|||
%p.card-admin-subtitle Logo, nom, description
|
||||
%p.button Modifier
|
||||
|
||||
- if !@procedure.locked?
|
||||
- if !@procedure.locked? || @procedure.feature_enabled?(:procedure_revisions)
|
||||
= link_to champs_admin_procedure_path(@procedure), class: 'card-admin' do
|
||||
- if @procedure.draft_types_de_champ.count > 0
|
||||
%div
|
||||
|
@ -159,7 +169,7 @@
|
|||
%p.card-admin-subtitle Notifications automatiques
|
||||
%p.button Modifier
|
||||
|
||||
- if !@procedure.locked?
|
||||
- if !@procedure.locked? || @procedure.feature_enabled?(:procedure_revisions)
|
||||
= link_to annotations_admin_procedure_path(@procedure), class: 'card-admin' do
|
||||
- if @procedure.draft_types_de_champ_private.present?
|
||||
%div
|
||||
|
|
Loading…
Reference in a new issue