Browse Source

feat: add previous_page_redirect_paths to avoid infinite loops

pull/1515/head
natdeanlewissoftwire 3 years ago
parent
commit
11cd4643e0
  1. 11
      app/models/form.rb
  2. 2
      app/views/form/page.html.erb

11
app/models/form.rb

@ -88,6 +88,17 @@ class Form
end
end
def previous_page_redirect_path(page, log, current_user)
page_ids = subsection_for_page(page).pages.map(&:id)
page_index = page_ids.index(page.id)
previous_page = previous_page(page_ids, page_index, log, current_user)
if previous_page == :check_answers
"#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
else
"#{type}_log_#{previous_page}_path"
end
end
def cancel_path(page, log)
"#{log.class.name.underscore}_#{page.subsection.id}_check_answers_path"
end

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

@ -1,7 +1,7 @@
<% content_for :title, @page.header.presence || @page.questions.first.header.html_safe %>
<% content_for :before_content do %>
<%= govuk_back_link(href: :back) %>
<%= govuk_back_link(href: send(@log.form.previous_page_redirect_path(@page, @log, current_user), @log)) %>
<% end %>
<div data-controller="govukfrontend"></div>

Loading…
Cancel
Save