From ec06b7121845365202337cd39424b3ce3d75813f Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Tue, 5 Mar 2024 14:18:37 +0000 Subject: [PATCH] CLDC-2692: Use a back link when accessing log question page from duplicate logs --- app/helpers/form_page_helper.rb | 22 ++++++---------------- app/views/form/page.html.erb | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/app/helpers/form_page_helper.rb b/app/helpers/form_page_helper.rb index 501872ed6..aefbed1c1 100644 --- a/app/helpers/form_page_helper.rb +++ b/app/helpers/form_page_helper.rb @@ -11,21 +11,11 @@ module FormPageHelper %w[duplicate_logs duplicate_logs_banner].include?(referrer) end - def form_page_breadcrumbs(current_user, log, subsection, query_parameters) - if accessed_from_duplicate_logs?(query_parameters["referrer"]) - content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { - "Home" => root_path, - breadcrumb_logs_title(log, current_user) => breadcrumb_logs_link(log, current_user), - "Duplicate Logs" => duplicate_logs_path, - "Duplicates of Log #{log.id}" => send("#{log.class.name.underscore}_duplicate_logs_path", log, original_log_id: query_parameters["original_log_id"]), - }) - else - content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { - "Home" => root_path, - breadcrumb_logs_title(log, current_user) => breadcrumb_logs_link(log, current_user), - "Log #{log.id}" => url_for(log), - subsection.label => send("#{log.class.name.underscore}_#{subsection.id}_check_answers_path", log), - }) - end + def duplicate_log_set_path(log, original_log_id) + send("#{log.class.name.underscore}_duplicate_logs_path", log, original_log_id:) + end + + def relevant_check_answers_path(log, subsection) + send("#{log.class.name.underscore}_#{subsection.id}_check_answers_path", log) end end diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb index 4ae22f20b..32ccdaed5 100644 --- a/app/views/form/page.html.erb +++ b/app/views/form/page.html.erb @@ -1,5 +1,16 @@ <% content_for :title, @page.header.presence || @page.questions.first.header.html_safe %> -<% form_page_breadcrumbs(current_user, @log, @subsection, request.query_parameters) %> +<% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> + <% content_for :before_content do %> + <%= govuk_back_link(href: duplicate_log_set_path(@log, request.query_parameters["original_log_id"])) %> + <% end %> +<% else %> + <% content_for :breadcrumbs, govuk_breadcrumbs(breadcrumbs: { + "Home" => root_path, + breadcrumb_logs_title(@log, current_user) => breadcrumb_logs_link(@log, current_user), + "Log #{@log.id}" => url_for(@log), + @subsection.label => relevant_check_answers_path(@log, @subsection), + }) %> +<% end %>
<%= form_with model: @log, url: request.original_url, method: "post", local: true do |f| %> @@ -63,7 +74,7 @@ <% if !@page.interruption_screen? %> <% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> <%= f.govuk_submit "Save changes" %> - <%= govuk_link_to "Cancel", send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: request.query_parameters["original_log_id"]) %> + <%= govuk_link_to "Cancel", duplicate_log_set_path(@log, request.query_parameters["original_log_id"]) %> <% elsif returning_to_question_page?(@page, request.query_parameters["referrer"]) %> <%= f.govuk_submit "Save changes" %> <%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %>