diff --git a/app/controllers/new_administrateur/mail_templates_controller.rb b/app/controllers/new_administrateur/mail_templates_controller.rb index 7902a3ea6..05089d6f2 100644 --- a/app/controllers/new_administrateur/mail_templates_controller.rb +++ b/app/controllers/new_administrateur/mail_templates_controller.rb @@ -2,6 +2,10 @@ module NewAdministrateur class MailTemplatesController < AdministrateurController include ActionView::Helpers::SanitizeHelper + def index + @mail_templates = mail_templates + end + def preview mail_template = find_mail_template_by_slug(params[:id]) dossier = Dossier.new(id: '1', procedure: procedure) diff --git a/app/views/new_administrateur/mail_templates/index.html.haml b/app/views/new_administrateur/mail_templates/index.html.haml new file mode 100644 index 000000000..00ee10d58 --- /dev/null +++ b/app/views/new_administrateur/mail_templates/index.html.haml @@ -0,0 +1,13 @@ += render partial: 'new_administrateur/breadcrumbs', + locals: { steps: [link_to('Démarches', admin_procedures_path), + link_to("#{@procedure.libelle}", admin_procedure_path(@procedure)), "Configuration des emails"] } + +.container + - @mail_templates.each do |mail_template| + .card + .flex.justify-between + %div + .card-title= mail_template.class.const_get(:DISPLAYED_NAME) + %p.notice= mail_template.class.const_get(:DISPLAYED_NAME) === 'Accusé de réception' ? 'Personnalisé' : 'Modèle standard' + %div + = link_to 'Modifier', edit_admin_procedure_mail_template_path(@procedure, mail_template.class.const_get(:SLUG)), class: 'button' diff --git a/config/routes.rb b/config/routes.rb index c5c84d840..beefd87d3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -189,7 +189,7 @@ Rails.application.routes.draw do delete :delete_notice end - resources :mail_templates, only: [:index, :edit, :update] + resources :mail_templates, only: [:edit, :update] put 'archive' => 'procedures#archive', as: :archive get 'publish_validate' => 'procedures#publish_validate', as: :publish_validate @@ -394,7 +394,7 @@ Rails.application.routes.draw do end end - resources :mail_templates, only: [] do + resources :mail_templates, only: [:index] do get 'preview', on: :member end diff --git a/spec/controllers/admin/mail_templates_controller_spec.rb b/spec/controllers/admin/mail_templates_controller_spec.rb index b237eeb1d..29d2804ac 100644 --- a/spec/controllers/admin/mail_templates_controller_spec.rb +++ b/spec/controllers/admin/mail_templates_controller_spec.rb @@ -6,16 +6,6 @@ describe Admin::MailTemplatesController, type: :controller do sign_in(procedure.administrateurs.first.user) end - describe 'GET index' do - render_views - - subject { get :index, params: { procedure_id: procedure.id } } - - it { expect(subject.status).to eq 200 } - it { expect(subject.body).to include("E-mails personnalisables") } - it { expect(subject.body).to include(Mails::InitiatedMail::DISPLAYED_NAME) } - end - describe 'PATCH update' do let(:mail_subject) { 'plop modif' } let(:mail_body) { 'plip modif' } diff --git a/spec/controllers/new_administrateur/mail_templates_controller_spec.rb b/spec/controllers/new_administrateur/mail_templates_controller_spec.rb index 527dc11d7..8f66ad3fd 100644 --- a/spec/controllers/new_administrateur/mail_templates_controller_spec.rb +++ b/spec/controllers/new_administrateur/mail_templates_controller_spec.rb @@ -1,8 +1,24 @@ describe NewAdministrateur::MailTemplatesController, type: :controller do render_views + let(:procedure) { create :procedure } + let(:initiated_mail) { Mails::InitiatedMail.default_for_procedure(procedure) } let(:admin) { create(:administrateur) } + before do + sign_in(procedure.administrateurs.first.user) + end + + describe 'GET index' do + render_views + + subject { get :index, params: { procedure_id: procedure.id } } + + it { expect(subject.status).to eq 200 } + it { expect(subject.body).to include("Configuration des emails") } + it { expect(subject.body).to include(Mails::InitiatedMail::DISPLAYED_NAME) } + end + describe '#preview' do let(:procedure) { create(:procedure, :with_logo, :with_service, administrateur: admin) }