From b0955b54518b5c5874f97f0f94781bac69fcb39a Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Thu, 20 Feb 2025 09:29:13 +0000 Subject: [PATCH] Small improvements, make address search and existing search more similar --- app/controllers/address_search_controller.rb | 6 +++--- app/frontend/controllers/address_search_controller.js | 7 +++---- app/views/form/_address_search_question.html.erb | 10 +++++----- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/controllers/address_search_controller.rb b/app/controllers/address_search_controller.rb index d5934cccc..d06303cfd 100644 --- a/app/controllers/address_search_controller.rb +++ b/app/controllers/address_search_controller.rb @@ -14,7 +14,7 @@ class AddressSearchController < ApplicationController render json: { error: service.error }, status: :unprocessable_entity else presenter = UprnDataPresenter.new(service.result) - render json: [{ address: presenter.address, uprn: presenter.uprn }] + render json: [{ text: presenter.address, value: presenter.uprn }] end elsif query.match?(/[a-zA-Z]/) # Query contains letters, assume it's an address @@ -26,7 +26,7 @@ class AddressSearchController < ApplicationController else results = service.result.map do |result| presenter = AddressDataPresenter.new(result) - { address: presenter.address, uprn: presenter.uprn } + { text: presenter.address, value: presenter.uprn } end render json: results end @@ -45,7 +45,7 @@ class AddressSearchController < ApplicationController else formatted_results = results.map do |result| presenter = AddressDataPresenter.new(result) - { address: presenter.address, uprn: presenter.uprn } + { text: presenter.address, value: presenter.uprn } end render json: formatted_results end diff --git a/app/frontend/controllers/address_search_controller.js b/app/frontend/controllers/address_search_controller.js index 254fbbf84..0ef73e1bc 100644 --- a/app/frontend/controllers/address_search_controller.js +++ b/app/frontend/controllers/address_search_controller.js @@ -13,7 +13,7 @@ const fetchAndPopulateSearchResults = async (query, populateResults, searchUrl, if (/\S/.test(query)) { const results = await fetchOptions(query, searchUrl) populateOptions(results, selectEl) - populateResults(Object.values(results).map((o) => o.address)) + populateResults(Object.values(results).map((o) => o.text)) } } @@ -22,9 +22,8 @@ const populateOptions = (results, selectEl) => { results.forEach((result) => { const option = document.createElement('option') - option.value = result.uprn - option.innerHTML = result.address - option.setAttribute('address', result.address) + option.value = result.value + option.innerHTML = result.text selectEl.appendChild(option) options.push(option) }) diff --git a/app/views/form/_address_search_question.html.erb b/app/views/form/_address_search_question.html.erb index 1b48a547b..ea30be718 100644 --- a/app/views/form/_address_search_question.html.erb +++ b/app/views/form/_address_search_question.html.erb @@ -3,11 +3,11 @@ <%= render partial: "form/guidance/#{question.top_guidance_partial}" if question.top_guidance? %> <%= f.govuk_select(question.id.to_sym, - label: legend(question, page_header, conditional), - "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 %> + label: legend(question, page_header, conditional), + "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? %> <% answers.each do |answer| %>