Browse Source

CLDC-2692: Use a back link when accessing log question page from duplicate logs

pull/2287/head
Rachael Booth 2 years ago
parent
commit
ec06b71218
  1. 20
      app/helpers/form_page_helper.rb
  2. 15
      app/views/form/page.html.erb

20
app/helpers/form_page_helper.rb

@ -11,21 +11,11 @@ module FormPageHelper
%w[duplicate_logs duplicate_logs_banner].include?(referrer) %w[duplicate_logs duplicate_logs_banner].include?(referrer)
end end
def form_page_breadcrumbs(current_user, log, subsection, query_parameters) def duplicate_log_set_path(log, original_log_id)
if accessed_from_duplicate_logs?(query_parameters["referrer"]) send("#{log.class.name.underscore}_duplicate_logs_path", log, original_log_id:)
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 end
def relevant_check_answers_path(log, subsection)
send("#{log.class.name.underscore}_#{subsection.id}_check_answers_path", log)
end end
end end

15
app/views/form/page.html.erb

@ -1,5 +1,16 @@
<% content_for :title, @page.header.presence || @page.questions.first.header.html_safe %> <% 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 %>
<div data-controller="govukfrontend"></div> <div data-controller="govukfrontend"></div>
<%= form_with model: @log, url: request.original_url, method: "post", local: true do |f| %> <%= form_with model: @log, url: request.original_url, method: "post", local: true do |f| %>
@ -63,7 +74,7 @@
<% if !@page.interruption_screen? %> <% if !@page.interruption_screen? %>
<% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> <% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %>
<%= f.govuk_submit "Save changes" %> <%= 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"]) %> <% elsif returning_to_question_page?(@page, request.query_parameters["referrer"]) %>
<%= f.govuk_submit "Save changes" %> <%= f.govuk_submit "Save changes" %>
<%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %> <%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %>

Loading…
Cancel
Save