diff --git a/app/controllers/duplicate_logs_controller.rb b/app/controllers/duplicate_logs_controller.rb index 546699453..539f06e91 100644 --- a/app/controllers/duplicate_logs_controller.rb +++ b/app/controllers/duplicate_logs_controller.rb @@ -62,7 +62,9 @@ private end def find_original_log_id + return unless @log + query_params = URI.parse(request.url).query - @original_log_id = CGI.parse(query_params)["original_log_id"][0].to_i if query_params + @original_log_id = query_params.present? ? CGI.parse(query_params)["original_log_id"][0]&.to_i : @log.id end end diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 93cfda2f0..c1e2d014f 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -146,6 +146,17 @@ private parsed_params["referrer"][0] end + def original_duplicate_log_id_from_query + query_params = URI.parse(request.url).query + + return unless query_params + + parsed_params = CGI.parse(query_params) + return unless parsed_params["original_log_id"] + + parsed_params["original_log_id"][0] + end + def previous_interruption_screen_page_id params[@log.model_name.param_key]["interruption_page_id"] end @@ -177,7 +188,7 @@ private end end if previous_interruption_screen_page_id.present? - return send("#{@log.class.name.underscore}_#{previous_interruption_screen_page_id}_path", @log, { referrer: previous_interruption_screen_referrer }.compact) + return send("#{@log.class.name.underscore}_#{previous_interruption_screen_page_id}_path", @log, { referrer: previous_interruption_screen_referrer, original_log_id: original_duplicate_log_id_from_query }.compact) end redirect_path = form.next_page_redirect_path(@page, @log, current_user) diff --git a/app/helpers/duplicate_logs_helper.rb b/app/helpers/duplicate_logs_helper.rb index 5c619228a..c5041d7aa 100644 --- a/app/helpers/duplicate_logs_helper.rb +++ b/app/helpers/duplicate_logs_helper.rb @@ -1,17 +1,21 @@ module DuplicateLogsHelper include GovukLinkHelper - def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log) + def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log_id) if all_duplicates.count > 1 - return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id: original_log.id) + return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id:) end - if original_log.id == duplicate_log.id - govuk_button_link_to "Continue editing Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log) + if original_log_id == duplicate_log.id + govuk_button_link_to "Back to Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log) else return govuk_button_link_to "Back to lettings logs", lettings_logs_path if duplicate_log.lettings? govuk_button_link_to "Back to sales logs", sales_logs_path end end + + def duplicate_logs_action_href(log, page_id, original_log_id) + send("#{log.model_name.param_key}_#{page_id}_path", log, referrer: "interruption_screen", original_log_id:) + end end diff --git a/app/views/duplicate_logs/_duplicate_log_check_answers.erb b/app/views/duplicate_logs/_duplicate_log_check_answers.erb index 15d4caf73..a5abaea16 100644 --- a/app/views/duplicate_logs/_duplicate_log_check_answers.erb +++ b/app/views/duplicate_logs/_duplicate_log_check_answers.erb @@ -29,7 +29,7 @@ <% row.action( text: question.action_text(@log), - href: action_href(@log, question.page.id), + href: duplicate_logs_action_href(@log, question.page.id, @original_log_id), visually_hidden_text: question.check_answer_label.to_s.downcase, ) %> <% end %> diff --git a/app/views/duplicate_logs/show.erb b/app/views/duplicate_logs/show.erb index 6a96561cb..e99eac7f7 100644 --- a/app/views/duplicate_logs/show.erb +++ b/app/views/duplicate_logs/show.erb @@ -13,7 +13,7 @@ <% @all_duplicates.each_with_index do |log, index| %> <%= render partial: "duplicate_log", locals: { log: log } %> <%= render partial: "duplicate_log_check_answers", locals: { log: log } %> - <%= duplicate_logs_continue_button(@all_duplicates, log, @log) %> + <%= duplicate_logs_continue_button(@all_duplicates, log, @original_log_id) %> <% if index < @all_duplicates.count - 1 %>