some layouts
This commit is contained in:
parent
393db312c2
commit
57f698853f
7 changed files with 113 additions and 77 deletions
|
@ -150,4 +150,6 @@ module ApplicationHelper
|
|||
.map { |word| word[0].upcase }
|
||||
.join
|
||||
end
|
||||
|
||||
def asterisk = render(EditableChamp::AsteriskMandatoryComponent.new)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
.card.no-list
|
||||
= hidden_field_tag("#{prefix}[stable_id]", item.stable_id)
|
||||
|
||||
.fr-checkbox-group{ data: { controller: 'hide-target' } }
|
||||
- id = sanitize_to_id("#{prefix}_#{item.stable_id}_enabled")
|
||||
= check_box_tag "#{prefix}[enabled]", true, item.enabled?, id:, data: { 'hide-target_target': 'source' }
|
||||
= label_tag id, libelle, class: 'fr-label'
|
||||
|
||||
%div{ class: class_names('fr-hidden': !item.enabled?), data: { hide_target_target: 'toHide' } }
|
||||
%div{ data: { controller: 'hide-target tiptap-to-template'} }
|
||||
.fr-mt-2w{ data: { hide_target_target: 'toHide' } }
|
||||
%span Nom du fichier :
|
||||
%span{ data: { 'tiptap-to-template_target': 'output'} }= sanitize(item.template_string)
|
||||
.fr-mt-2w
|
||||
%button.fr-btn.fr-btn--tertiary.fr-btn--sm{ type: 'button', data: { 'hide-target_target': 'source' } } Renommer le fichier
|
||||
|
||||
.fr-mt-2w.fr-hidden{ data: { controller: 'tiptap', 'tiptap-attributes-value': { spellcheck: false }.to_json, hide_target_target: 'toHide' } }
|
||||
%span Renommer le fichier :
|
||||
.fr-mt-2w.tiptap-editor{ data: { tiptap_target: 'editor' } }
|
||||
= hidden_field_tag "#{prefix}[template]", item.template_json, data: { tiptap_target: 'input' }, id: nil
|
||||
|
||||
.fr-mt-2w
|
||||
%span.fr-text--sm Cliquez sur les étiquettes que vous souhaitez intégrer au nom du fichier
|
||||
.fr-mt-2w= render TagsButtonListComponent.new(tags: { nil => @export_template.pj_tags })
|
||||
|
||||
= button_tag "Valider", type: 'button', class: 'fr-btn fr-mt-2w', data: { 'tiptap-to-template_target': 'trigger', 'hide-target_target': 'source'}
|
|
@ -1,3 +1,5 @@
|
|||
- procedure = @export_template.procedure
|
||||
|
||||
#export_template-edit.fr-my-4w
|
||||
.fr-mb-6w
|
||||
= render Dsfr::AlertComponent.new(state: :info, title: "Nouvel éditeur de modèle d'export", heading_level: 'h3') do |c|
|
||||
|
@ -7,72 +9,62 @@
|
|||
Essayez-le et donnez-nous votre avis
|
||||
en nous envoyant un email à #{mail_to(CONTACT_EMAIL, subject: "Editeur de modèle d'export")}.
|
||||
|
||||
.fr-grid-row.fr-grid-row--gutters
|
||||
.fr-col-12.fr-col-md-8
|
||||
= form_with url: form_url, model: @export_template, local: true, data: { turbo: 'true', controller: 'autosubmit' } do |f|
|
||||
.fr-grid-row.fr-grid-row--gutters
|
||||
.fr-col-12.fr-col-md-8.fr-pr-4w
|
||||
= form_with model: [:instructeur, procedure, export_template], data: { turbo: 'true', controller: 'autosubmit' } do |f|
|
||||
%input.hidden{ type: 'submit', formaction: preview_instructeur_procedure_export_templates_path, data: { autosubmit_target: 'submitter' }, formnovalidate: 'true', formmethod: 'get' }
|
||||
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :name, input_type: :text_field)
|
||||
= f.hidden_field :kind, value: 'zip'
|
||||
|
||||
- if groupe_instructeurs.many?
|
||||
.fr-input-group
|
||||
= render Dsfr::InputComponent.new(form: f, attribute: :name, input_type: :text_field)
|
||||
|
||||
.fr-input-group{ class: class_names('fr-hidden': groupe_instructeurs.one?) }
|
||||
= f.label :groupe_instructeur_id, class: 'fr-label' do
|
||||
= f.object.class.human_attribute_name(:groupe_instructeur_id)
|
||||
= render EditableChamp::AsteriskMandatoryComponent.new
|
||||
%span.fr-hint-text
|
||||
Avec quel groupe instructeur souhaitez-vous partager ce modèle d'export ?
|
||||
= "#{ExportTemplate.human_attribute_name('groupe_instructeur_id')} #{asterisk}"
|
||||
%span.fr-hint-text Avec quel groupe instructeur souhaitez-vous partager ce modèle d'export ?
|
||||
= f.collection_select :groupe_instructeur_id, groupe_instructeurs, :id, :label, {}, class: 'fr-select'
|
||||
- else
|
||||
= f.hidden_field :groupe_instructeur_id
|
||||
|
||||
= f.hidden_field :kind
|
||||
.fr-input-group{ data: { controller: 'tiptap', 'tiptap-attributes-value': { spellcheck: false }.to_json } }
|
||||
= f.label '[dossier_folder][template]', class: "fr-label" do
|
||||
= "#{ExportTemplate.human_attribute_name('dossier_folder')} #{asterisk}"
|
||||
%span.fr-hint-text Nom du répertoire contenant les différents fichiers à exporter
|
||||
.tiptap-editor.fr-mt-1w{ data: { tiptap_target: 'editor' } }
|
||||
= f.hidden_field "[dossier_folder][template]", data: { tiptap_target: 'input' }, value: export_template.dossier_folder.template_json
|
||||
= f.hidden_field "[dossier_folder][enabled]", value: 'true'
|
||||
.fr-mt-2w
|
||||
%span.fr-text--sm Cliquez sur les étiquettes que vous souhaitez intégrer au nom du fichier
|
||||
.fr-mt-2w= render TagsButtonListComponent.new(tags: { nil => export_template.tags })
|
||||
|
||||
.fr-input-group{ data: { controller: 'tiptap' } }
|
||||
= f.label :tiptap_default_dossier_directory, class: "fr-label" do
|
||||
= f.object.class.human_attribute_name(:tiptap_default_dossier_directory)
|
||||
= render EditableChamp::AsteriskMandatoryComponent.new
|
||||
%span.fr-hint-text
|
||||
= t('activerecord.attributes.export_template.hints.tiptap_default_dossier_directory')
|
||||
= render Dsfr::NoticeComponent.new(data_attributes: { class: 'fr-my-4w' }) do |c|
|
||||
- c.with_title do
|
||||
Sélectionnez les fichiers que vous souhaitez exporter
|
||||
|
||||
.tiptap-editor.fr-mt-1w{ data: { tiptap_target: 'editor' } }
|
||||
= f.hidden_field :tiptap_default_dossier_directory, data: { tiptap_target: 'input' }
|
||||
.fr-mt-2w= render TagsButtonListComponent.new(tags: { nil => @export_template.specific_tags })
|
||||
%h3 Dossier au format PDF
|
||||
= render partial: 'export_item',
|
||||
locals: { item: export_template.export_pdf,
|
||||
libelle: ExportTemplate.human_attribute_name(:export_pdf),
|
||||
prefix: 'export_template[export_pdf]' }
|
||||
|
||||
.fr-input-group{ data: { controller: 'tiptap' } }
|
||||
= f.label :tiptap_pdf_name, class: "fr-label" do
|
||||
= f.object.class.human_attribute_name(:tiptap_pdf_name)
|
||||
= render EditableChamp::AsteriskMandatoryComponent.new
|
||||
%span.fr-hint-text
|
||||
= t('activerecord.attributes.export_template.hints.tiptap_pdf_name')
|
||||
.tiptap-editor.fr-mt-1w{ data: { tiptap_target: 'editor' } }
|
||||
= f.hidden_field :tiptap_pdf_name, data: { tiptap_target: 'input' }
|
||||
.fr-mt-2w= render TagsButtonListComponent.new(tags: { nil => @export_template.specific_tags })
|
||||
%h3 Pièces justificatives
|
||||
- procedure.exportables_pieces_jointes.each do |tdc|
|
||||
- item = export_template.pj(tdc)
|
||||
= render partial: 'export_item',
|
||||
locals: { item:,
|
||||
libelle: tdc.libelle,
|
||||
prefix: 'export_template[pjs][]'}
|
||||
|
||||
- if @all_pj.any?
|
||||
%h3 Pieces justificatives
|
||||
.fixed-footer
|
||||
.fr-container
|
||||
%ul.fr-btns-group.fr-btns-group--inline-md
|
||||
%li= f.button "Enregistrer", class: "fr-btn", data: { turbo: 'false' }
|
||||
%li= link_to "Annuler", [:exports, :instructeur, procedure], class: "fr-btn fr-btn--secondary"
|
||||
- if export_template.persisted?
|
||||
%li
|
||||
= link_to "Supprimer",
|
||||
[:instructeur, procedure, export_template],
|
||||
method: :delete,
|
||||
data: { confirm: "Voulez-vous vraiment supprimer ce modèle ? Il sera supprimé pour tous les instructeurs du groupe"},
|
||||
class: "fr-btn fr-btn--secondary"
|
||||
|
||||
.fr-highlight
|
||||
%p.fr-text--sm
|
||||
N'incluez pas les extensions de fichier (.pdf, .jpg, …) dans les noms de pièces jointes.
|
||||
|
||||
- @all_pj.each do |pj|
|
||||
.fr-input-group{ data: { controller: 'tiptap' } }
|
||||
= label_tag pj.libelle, nil, name: field_name(:export_template, "tiptap_pj_#{pj.stable_id}"), class: "fr-label"
|
||||
.tiptap-editor.fr-mt-1w{ data: { tiptap_target: 'editor' } }
|
||||
= hidden_field_tag field_name(:export_template, "tiptap_pj_#{pj.stable_id}"), "#{@export_template.content_for_pj(pj)}" , data: { tiptap_target: 'input' }
|
||||
.fr-mt-2w= render TagsButtonListComponent.new(tags: { nil => @export_template.tags_for_pj })
|
||||
|
||||
.fixed-footer
|
||||
.fr-container
|
||||
%ul.fr-btns-group.fr-btns-group--inline-md
|
||||
%li
|
||||
%input.hidden{ type: 'submit', formaction: preview_instructeur_export_templates_path, data: { autosubmit_target: 'submitter' }, formnovalidate: 'true', formmethod: 'get' }
|
||||
= f.button "Enregistrer", class: "fr-btn", data: { turbo: 'false' }
|
||||
%li
|
||||
= link_to "Annuler", instructeur_procedure_path(@procedure), class: "fr-btn fr-btn--secondary"
|
||||
- if @export_template.persisted?
|
||||
%li
|
||||
= link_to "Supprimer", instructeur_export_template_path(@export_template, procedure_id: @procedure.id), method: :delete, data: { confirm: "Voulez-vous vraiment supprimer ce modèle ? Il sera supprimé pour tous les instructeurs du groupe"}, class: "fr-btn fr-btn--secondary"
|
||||
- sample_dossier = @procedure.dossier_for_preview(current_instructeur)
|
||||
- if sample_dossier
|
||||
.fr-col-12.fr-col-md-4.fr-background-alt--blue-france
|
||||
= render partial: 'preview', locals: { dossier: sample_dossier, export_template: @export_template, procedure: @procedure }
|
||||
= render partial: 'preview', locals: { export_template: }
|
||||
|
|
|
@ -1,17 +1,33 @@
|
|||
- procedure = export_template.procedure
|
||||
- dossier = procedure.dossier_for_preview(current_instructeur)
|
||||
|
||||
#preview.export-template-preview.fr-p-2w.sticky--top
|
||||
%h2.fr-h4 Aperçu
|
||||
%ul.tree.fr-text--sm
|
||||
%li #{DownloadableFileService::EXPORT_DIRNAME}/
|
||||
%li
|
||||
%ul
|
||||
%li
|
||||
%span#preview_default_dossier_directory #{export_template.tiptap_convert(dossier, "default_dossier_directory")}/
|
||||
%ul
|
||||
%li#preview_pdf_name #{export_template.tiptap_convert(dossier, "pdf_name")}.pdf
|
||||
- procedure.exportables_pieces_jointes.each do |pj|
|
||||
%li{ id: "preview_pj_#{pj.stable_id}" } #{export_template.tiptap_convert_pj(dossier, pj.stable_id)}-1.jpg
|
||||
%ul
|
||||
%li
|
||||
%span messagerie/
|
||||
%ul
|
||||
%li un-autre-fichier.png
|
||||
- if dossier.nil?
|
||||
%p.fr-text--sm
|
||||
Pour générer un aperçu fidèle avec tous les champs et les dates,
|
||||
= link_to 'créez-vous un dossier', commencer_url(procedure.path), target: '_blank'
|
||||
et acceptez-le : l’aperçu l’utilisera.
|
||||
|
||||
- else
|
||||
%ul.tree.fr-text--sm
|
||||
%li
|
||||
%span.fr-icon-folder-zip-line
|
||||
#{DownloadableFileService::EXPORT_DIRNAME}/
|
||||
%li
|
||||
%ul
|
||||
%li
|
||||
%span.fr-icon-folder-line
|
||||
#{export_template.dossier_folder.path(dossier)}/
|
||||
%ul
|
||||
- if export_template.export_pdf.enabled?
|
||||
%li
|
||||
%span.fr-icon-pdf-2-line
|
||||
#{export_template.export_pdf.path(dossier)}.pdf
|
||||
|
||||
- procedure.exportables_pieces_jointes.each do |tdc|
|
||||
- export_pj = export_template.pj(tdc)
|
||||
- if export_pj.enabled?
|
||||
%li
|
||||
%span.fr-icon-file-image-line
|
||||
#{export_pj.path(dossier)}-1.jpg
|
||||
|
|
|
@ -4,4 +4,4 @@
|
|||
.fr-container
|
||||
%h1 Mise à jour modèle d'export
|
||||
|
||||
= render partial: 'form', locals: { form_url: instructeur_export_template_path(@procedure, @export_template), groupe_instructeurs: @groupe_instructeurs }
|
||||
= render partial: 'form', locals: { export_template: @export_template, groupe_instructeurs: @groupe_instructeurs }
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
[t('.title')]] }
|
||||
.fr-container
|
||||
%h1 Nouveau modèle d'export
|
||||
= render partial: 'form', locals: { form_url: instructeur_export_templates_path, groupe_instructeurs: @groupe_instructeurs }
|
||||
= render partial: 'form', locals: { export_template: @export_template, groupe_instructeurs: @groupe_instructeurs }
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
%tbody
|
||||
- @export_templates.each do |export_template|
|
||||
%tr
|
||||
%td= link_to export_template.name, edit_instructeur_export_template_path(export_template, procedure_id: @procedure.id)
|
||||
%td= link_to export_template.name, [:edit, :instructeur, @procedure, export_template]
|
||||
%td= export_template.groupe_instructeur.label if @procedure.groupe_instructeurs.many?
|
||||
|
||||
%p
|
||||
= link_to new_instructeur_export_template_path(procedure_id: params[:procedure_id]), class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-add-line' do
|
||||
= link_to [:new, :instructeur, @procedure, :export_template], class: 'fr-btn fr-btn--secondary fr-btn--icon-left fr-icon-add-line' do
|
||||
Ajouter un modèle d'export
|
||||
|
|
Loading…
Reference in a new issue