Browse Source

Update routing between CYA and questions

pull/2567/head
Kat 2 years ago
parent
commit
7b301bbb53
  1. 17
      app/controllers/merge_requests_controller.rb
  2. 5
      app/helpers/merge_request_helper.rb
  3. 22
      app/helpers/merge_requests_helper.rb
  4. 2
      app/views/merge_requests/merging_organisations.html.erb

17
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

5
app/helpers/merge_request_helper.rb

@ -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

22
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("<br>").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("<br>").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<br>#{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

2
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 %>
</div>

Loading…
Cancel
Save