From 7b301bbb531893ae8d6e6292475a6c9740563514 Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 13 Aug 2024 13:27:12 +0100 Subject: [PATCH] Update routing between CYA and questions --- app/controllers/merge_requests_controller.rb | 17 ++++++++++++++ app/helpers/merge_request_helper.rb | 5 ----- app/helpers/merge_requests_helper.rb | 22 ++++++++++++++++--- .../merging_organisations.html.erb | 2 +- 4 files changed, 37 insertions(+), 9 deletions(-) delete mode 100644 app/helpers/merge_request_helper.rb diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 2bc00ddba..46798d261 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -53,6 +53,8 @@ private end def next_page_path + return merge_request_path if is_referrer_type?("check_answers") + case page when "absorbing_organisation" merging_organisations_merge_request_path(@merge_request) @@ -161,4 +163,19 @@ private render_not_found end end + + def is_referrer_type?(referrer_type) + from_referrer_query("referrer") == referrer_type + end + + def from_referrer_query(query_param) + referrer = request.headers["HTTP_REFERER"] + return unless referrer + + query_params = URI.parse(referrer).query + return unless query_params + + parsed_params = CGI.parse(query_params) + parsed_params[query_param]&.first + end end diff --git a/app/helpers/merge_request_helper.rb b/app/helpers/merge_request_helper.rb deleted file mode 100644 index 92cc8805d..000000000 --- a/app/helpers/merge_request_helper.rb +++ /dev/null @@ -1,5 +0,0 @@ -module MergeRequestHelper - def ordered_merging_organisations(merge_request) - merge_request.merge_request_organisations.order(created_at: :desc).map(&:merging_organisation) - end -end diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb index da5cb2fe7..4975a238f 100644 --- a/app/helpers/merge_requests_helper.rb +++ b/app/helpers/merge_requests_helper.rb @@ -13,9 +13,9 @@ module MergeRequestsHelper def merge_details(merge_request) [ - { label: "Absorbing organisation", value: display_value_or_placeholder(merge_request.absorbing_organisation_name), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: absorbing_organisation_merge_request_path(merge_request), visually_hidden_text: "absorbing organisation" } }, - { label: "Merging organisations", value: merge_request.merge_request_organisations.any? ? merge_request.merge_request_organisations.map(&:merging_organisation_name).join("
").html_safe : display_value_or_placeholder(nil), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: merging_organisations_merge_request_path(merge_request), visually_hidden_text: "merging organisations" } }, - { label: "Merge date", value: display_value_or_placeholder(merge_request.merge_date), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: merge_date_merge_request_path(merge_request), visually_hidden_text: "merge date" } }, + { label: "Absorbing organisation", value: display_value_or_placeholder(merge_request.absorbing_organisation_name), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: absorbing_organisation_merge_request_path(merge_request, referrer: "check_answers"), visually_hidden_text: "absorbing organisation" } }, + { label: "Merging organisations", value: merge_request.merge_request_organisations.any? ? merge_request.merge_request_organisations.map(&:merging_organisation_name).join("
").html_safe : display_value_or_placeholder(nil), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: merging_organisations_merge_request_path(merge_request, referrer: "check_answers"), visually_hidden_text: "merging organisations" } }, + { label: "Merge date", value: display_value_or_placeholder(merge_request.merge_date), action: merge_request.status == "request_merged" ? nil : { text: "Change", href: merge_date_merge_request_path(merge_request, referrer: "check_answers"), visually_hidden_text: "merge date" } }, ] end @@ -27,4 +27,20 @@ module MergeRequestsHelper { label: "Total stock owners & managing agents after merge", value: merge_request.total_stock_owners.present? || merge_request.total_managing_agents.present? ? "#{merge_request.total_stock_owners} stock owners
#{merge_request.total_managing_agents} managing agents".html_safe : display_value_or_placeholder(nil), action: { text: "View", href: "#", visually_hidden_text: "total stock owners & managing agents after merge" } }, ] end + + def ordered_merging_organisations(merge_request) + merge_request.merge_request_organisations.order(created_at: :desc).map(&:merging_organisation) + end + + def submit_merge_request_button_text(referrer) + if accessed_from_check_answers?(referrer) + "Save changes" + else + "Save and continue" + end + end + + def accessed_from_check_answers?(referrer) + %w[check_answers].include?(referrer) + end end diff --git a/app/views/merge_requests/merging_organisations.html.erb b/app/views/merge_requests/merging_organisations.html.erb index bf2c79457..f7dbeb378 100644 --- a/app/views/merge_requests/merging_organisations.html.erb +++ b/app/views/merge_requests/merging_organisations.html.erb @@ -38,7 +38,7 @@ <%= form_with model: @merge_request, url: merge_request_path(id: @merge_request.id), method: :patch do |f| %> <% if @merge_request.merging_organisations.count.positive? %> <%= f.hidden_field :page, value: "merging_organisations" %> - <%= f.govuk_submit "Continue" %> + <%= f.govuk_submit submit_merge_request_button_text(request.query_parameters["referrer"]) %> <% end %> <% end %>