|
|
|
@ -6,16 +6,17 @@ class MergeRequestsController < ApplicationController |
|
|
|
remove_merging_organisation |
|
|
|
remove_merging_organisation |
|
|
|
absorbing_organisation |
|
|
|
absorbing_organisation |
|
|
|
confirm_telephone_number |
|
|
|
confirm_telephone_number |
|
|
|
new_org_name |
|
|
|
new_organisation_name |
|
|
|
|
|
|
|
new_organisation_address |
|
|
|
merge_date |
|
|
|
merge_date |
|
|
|
] |
|
|
|
] |
|
|
|
before_action :authenticate_user! |
|
|
|
before_action :authenticate_user! |
|
|
|
before_action :authenticate_scope!, except: [:create] |
|
|
|
before_action :authenticate_scope!, except: [:create] |
|
|
|
before_action :validate_response, only: %i[update] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def absorbing_organisation; end |
|
|
|
def absorbing_organisation; end |
|
|
|
def confirm_telephone_number; end |
|
|
|
def confirm_telephone_number; end |
|
|
|
def new_org_name; end |
|
|
|
def new_organisation_name; end |
|
|
|
|
|
|
|
def new_organisation_address; end |
|
|
|
def merge_date; end |
|
|
|
def merge_date; end |
|
|
|
|
|
|
|
|
|
|
|
def create |
|
|
|
def create |
|
|
|
@ -33,7 +34,9 @@ class MergeRequestsController < ApplicationController |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def update |
|
|
|
def update |
|
|
|
if @merge_request.update(merge_request_params) |
|
|
|
validate_response |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if @merge_request.errors.blank? && @merge_request.update(merge_request_params) |
|
|
|
redirect_to next_page_path |
|
|
|
redirect_to next_page_path |
|
|
|
else |
|
|
|
else |
|
|
|
render previous_template, status: :unprocessable_entity |
|
|
|
render previous_template, status: :unprocessable_entity |
|
|
|
@ -65,8 +68,8 @@ private |
|
|
|
def next_page_path |
|
|
|
def next_page_path |
|
|
|
case page |
|
|
|
case page |
|
|
|
when "absorbing_organisation" |
|
|
|
when "absorbing_organisation" |
|
|
|
if create_new_org? |
|
|
|
if create_new_organisation? |
|
|
|
new_org_name_merge_request_path(@merge_request) |
|
|
|
new_organisation_name_merge_request_path(@merge_request) |
|
|
|
else |
|
|
|
else |
|
|
|
confirm_telephone_number_merge_request_path(@merge_request) |
|
|
|
confirm_telephone_number_merge_request_path(@merge_request) |
|
|
|
end |
|
|
|
end |
|
|
|
@ -74,6 +77,8 @@ private |
|
|
|
absorbing_organisation_merge_request_path(@merge_request) |
|
|
|
absorbing_organisation_merge_request_path(@merge_request) |
|
|
|
when "confirm_telephone_number" |
|
|
|
when "confirm_telephone_number" |
|
|
|
merge_date_merge_request_path(@merge_request) |
|
|
|
merge_date_merge_request_path(@merge_request) |
|
|
|
|
|
|
|
when "new_organisation_name" |
|
|
|
|
|
|
|
new_organisation_address_merge_request_path(@merge_request) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
@ -81,7 +86,7 @@ private |
|
|
|
page |
|
|
|
page |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def create_new_org? |
|
|
|
def create_new_organisation? |
|
|
|
params.dig(:merge_request, :absorbing_organisation_id) == "other" |
|
|
|
params.dig(:merge_request, :absorbing_organisation_id) == "other" |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
@ -102,6 +107,7 @@ private |
|
|
|
:absorbing_organisation_id, |
|
|
|
:absorbing_organisation_id, |
|
|
|
:telephone_number_correct, |
|
|
|
:telephone_number_correct, |
|
|
|
:new_telephone_number, |
|
|
|
:new_telephone_number, |
|
|
|
|
|
|
|
:new_organisation_name, |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if merge_params[:requesting_organisation_id].present? && (current_user.data_coordinator? || current_user.data_provider?) |
|
|
|
if merge_params[:requesting_organisation_id].present? && (current_user.data_coordinator? || current_user.data_provider?) |
|
|
|
@ -109,7 +115,7 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
if merge_params[:absorbing_organisation_id].present? |
|
|
|
if merge_params[:absorbing_organisation_id].present? |
|
|
|
if create_new_org? |
|
|
|
if create_new_organisation? |
|
|
|
merge_params[:new_absorbing_organisation] = true |
|
|
|
merge_params[:new_absorbing_organisation] = true |
|
|
|
merge_params[:absorbing_organisation_id] = nil |
|
|
|
merge_params[:absorbing_organisation_id] = nil |
|
|
|
else |
|
|
|
else |
|
|
|
@ -117,7 +123,7 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
if merge_params[:telephone_number_correct] == "1" |
|
|
|
if merge_params[:telephone_number_correct] == "true" |
|
|
|
merge_params[:new_telephone_number] = nil |
|
|
|
merge_params[:new_telephone_number] = nil |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
@ -125,23 +131,18 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def validate_response |
|
|
|
def validate_response |
|
|
|
if page == "absorbing_organisation" && merge_request_params[:absorbing_organisation_id].blank? && merge_request_params[:new_absorbing_organisation].blank? |
|
|
|
case page |
|
|
|
@merge_request.errors.add(:absorbing_organisation_id, I18n.t("validations.merge_request.absorbing_organisation_blank")) |
|
|
|
when "absorbing_organisation" |
|
|
|
render previous_template, status: :unprocessable_entity |
|
|
|
if merge_request_params[:absorbing_organisation_id].blank? && merge_request_params[:new_absorbing_organisation].blank? |
|
|
|
end |
|
|
|
@merge_request.errors.add(:absorbing_organisation_id, :blank) |
|
|
|
|
|
|
|
|
|
|
|
if page == "confirm_telephone_number" |
|
|
|
|
|
|
|
if merge_request_params[:telephone_number_correct].blank? && merge_request_params[:new_telephone_number].blank? |
|
|
|
|
|
|
|
if @merge_request.absorbing_organisation.phone.present? |
|
|
|
|
|
|
|
@merge_request.errors.add(:telephone_number_correct, I18n.t("validations.merge_request.telephone_number_correct_blank")) |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
@merge_request.errors.add(:telephone_number_correct, I18n.t("validations.merge_request.new_telephone_number_blank")) |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
render previous_template, status: :unprocessable_entity |
|
|
|
when "confirm_telephone_number" |
|
|
|
elsif merge_request_params[:telephone_number_correct] == "0" && merge_request_params[:new_telephone_number].blank? |
|
|
|
if merge_request_params[:telephone_number_correct].blank? |
|
|
|
@merge_request.errors.add(:new_telephone_number, I18n.t("validations.merge_request.new_telephone_number_blank")) |
|
|
|
@merge_request.errors.add(:telephone_number_correct, :blank) if @merge_request.absorbing_organisation.phone.present? |
|
|
|
render previous_template, status: :unprocessable_entity |
|
|
|
@merge_request.errors.add(:new_telephone_number, :blank) if @merge_request.absorbing_organisation.phone.blank? |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
when "new_organisation_name" |
|
|
|
|
|
|
|
@merge_request.errors.add(:new_organisation_name, :blank) if merge_request_params[:new_organisation_name].blank? |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|