diff --git a/app/controllers/address_options_controller.rb b/app/controllers/address_search_controller.rb similarity index 68% rename from app/controllers/address_options_controller.rb rename to app/controllers/address_search_controller.rb index 2f6879cf8..c34abb843 100644 --- a/app/controllers/address_options_controller.rb +++ b/app/controllers/address_search_controller.rb @@ -1,4 +1,4 @@ -class AddressOptionsController < ApplicationController +class AddressSearchController < ApplicationController before_action :authenticate_user! def index @@ -42,6 +42,18 @@ class AddressOptionsController < ApplicationController end end + def manual_input + log = params[:log_type] == "lettings" ? LettingsLog.find(params[:log_id]) : SalesLog.find(params[:log_id]) + log.update!(uprn: nil, uprn_known: 0, uprn_confirmed: nil, address_search: nil) + redirect_to manual_address_link(log) + end + + def search_input + log = params[:log_type] == "lettings" ? LettingsLog.find(params[:log_id]) : SalesLog.find(params[:log_id]) + log.update!(uprn: nil, uprn_known: 0, uprn_confirmed: nil, address_search: nil, address_line1: nil, address_line2: nil, town_or_city: nil, county: nil, postcode_full: nil, is_la_inferred: false, pcode1: nil, pcode2: nil) + redirect_to search_address_link(log) + end + def current log_id = params[:log_id] sales_log = SalesLog.find_by(id: log_id) @@ -61,4 +73,16 @@ class AddressOptionsController < ApplicationController render json: { stored_value: nil } end end + +private + + def manual_address_link(log) + base_url = send("#{log.log_type}_url", log) + "#{base_url}/address" + end + + def search_address_link(log) + base_url = send("#{log.log_type}_url", log) + "#{base_url}/address-search" + end end diff --git a/app/frontend/controllers/address_autocomplete_controller.js b/app/frontend/controllers/address_search_controller.js similarity index 100% rename from app/frontend/controllers/address_autocomplete_controller.js rename to app/frontend/controllers/address_search_controller.js diff --git a/app/frontend/controllers/index.js b/app/frontend/controllers/index.js index a4806976f..fa7944045 100644 --- a/app/frontend/controllers/index.js +++ b/app/frontend/controllers/index.js @@ -19,7 +19,7 @@ import FilterLayoutController from './filter_layout_controller.js' import TabsController from './tabs_controller.js' -import AddressAutocompleteController from './address_autocomplete_controller' +import AddressSearchController from './address_search_controller.js' application.register('accessible-autocomplete', AccessibleAutocompleteController) application.register('conditional-filter', ConditionalFilterController) @@ -29,4 +29,4 @@ application.register('numeric-question', NumericQuestionController) application.register('filter-layout', FilterLayoutController) application.register('search', SearchController) application.register('tabs', TabsController) -application.register('address-autocomplete', AddressAutocompleteController) +application.register('address-search', AddressSearchController) diff --git a/app/models/form/lettings/questions/address_search.rb b/app/models/form/lettings/questions/address_search.rb index c110767bf..b711829ff 100644 --- a/app/models/form/lettings/questions/address_search.rb +++ b/app/models/form/lettings/questions/address_search.rb @@ -2,7 +2,7 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question def initialize(id, hsh, page) super @id = "address_search" - @type = "address_autocomplete" + @type = "address_search" @plain_label = true @bottom_guidance_partial = "address_search" @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @@ -44,9 +44,5 @@ class Form::Lettings::Questions::AddressSearch < ::Form::Question answer_options(log, user).transform_values { |value| value["value"] } || {} end - # def hidden_in_check_answers?(log, _current_user = nil) - # (log.uprn_known == 1 || log.uprn_confirmed == 1) - # end - QUESTION_NUMBER_FROM_YEAR = { 2024 => 12, 2025 => 12 }.freeze end diff --git a/app/models/form/sales/questions/address_search.rb b/app/models/form/sales/questions/address_search.rb index 0d30cd5eb..f0b73b454 100644 --- a/app/models/form/sales/questions/address_search.rb +++ b/app/models/form/sales/questions/address_search.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::AddressSearch < ::Form::Question def initialize(id, hsh, page) super @id = "address_search" - @type = "address_autocomplete" + @type = "address_search" @plain_label = true @bottom_guidance_partial = "address_search" @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] @@ -44,9 +44,5 @@ class Form::Sales::Questions::AddressSearch < ::Form::Question answer_options(log, user).transform_values { |value| value["value"] } || {} end - # def hidden_in_check_answers?(log, _current_user = nil) - # (log.uprn_known == 1 || log.uprn_confirmed == 1) - # end - QUESTION_NUMBER_FROM_YEAR = { 2024 => 15, 2025 => 15 }.freeze end diff --git a/app/views/form/_address_autocomplete_question.html.erb b/app/views/form/_address_search_question.html.erb similarity index 81% rename from app/views/form/_address_autocomplete_question.html.erb rename to app/views/form/_address_search_question.html.erb index 854239a47..06f778e1b 100644 --- a/app/views/form/_address_autocomplete_question.html.erb +++ b/app/views/form/_address_search_question.html.erb @@ -4,8 +4,8 @@ <%= f.govuk_select(question.id.to_sym, label: legend(question, page_header, conditional), - "data-controller": "address-autocomplete", - "data-info": { search_url: address_options_url }.to_json, + "data-controller": "address-search", + "data-info": { search_url: address_search_url }.to_json, caption: caption(caption_text, page_header, conditional), hint: { text: question.hint_text&.html_safe }) do %> <% if answers.any? %> @@ -24,5 +24,5 @@ <%= render partial: "form/guidance/#{question.bottom_guidance_partial}" if question.bottom_guidance? %>
- <%= govuk_link_to "Enter the address manually instead" , manual_address_link(@log), class: "govuk-button govuk-button--secondary" %> + <%= govuk_link_to "Enter the address manually instead", address_manual_input_path(@log.log_type, @log.id), class: "govuk-button govuk-button--secondary" %>
diff --git a/config/routes.rb b/config/routes.rb index f0499bfe5..9188ef256 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -41,6 +41,8 @@ Rails.application.routes.draw do get "/service-unavailable", to: "maintenance#service_unavailable" get "/address_options", to: "address_options#index" get "/address_options/current", to: "address_options#current" + get "/address_search", to: "address_search#index" + get "/address_search/current", to: "address_search#current" get "collection-resources", to: "collection_resources#index" get "/collection-resources/:log_type/:year/:resource_type/download", to: "collection_resources#download_mandatory_collection_resource", as: :download_mandatory_collection_resource