X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/267d5108c3de7c23120a2d29f6cfba9e4ac90d46..3373f462f0d499d1c836c1f95d756191725bf108:/src/assets/js/searchpage.js?ds=sidebyside diff --git a/src/assets/js/searchpage.js b/src/assets/js/searchpage.js index be7f0c1..0aeab64 100755 --- a/src/assets/js/searchpage.js +++ b/src/assets/js/searchpage.js @@ -117,7 +117,7 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l var container = L.DomUtil.create('div', 'my-custom-control'); $(container).text('show map bounds') - .addClass('leaflet-bar btn btn-sm btn-default') + .addClass('leaflet-bar btn btn-sm btn-outline-secondary') .on('click', function (e) { e.preventDefault(); e.stopPropagation(); @@ -170,9 +170,6 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l update_viewbox_field(); }); - - - function get_result_element(position) { return $('.result').eq(position); } @@ -295,15 +292,9 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l +function search_page_load() { - - - -jQuery(document).ready(function () { - // - if (!$('#search-page,#reverse-page').length) { return; } - - var is_reverse_search = !!($('#reverse-page').length); + var is_reverse_search = window.location.pathname.match(/reverse/); var search_params = new URLSearchParams(window.location.search); @@ -348,6 +339,7 @@ jQuery(document).ready(function () { aPlace = null; } + context.bSearchRan = true; context.aPlace = aPlace; render_template($('main'), 'reversepage-template', context); @@ -381,25 +373,57 @@ jQuery(document).ready(function () { } else { api_request_params = { q: search_params.get('q'), - polygon_geojson: search_params.get('polygon_geojson') ? 1 : 0, + street: search_params.get('street'), + city: search_params.get('city'), + county: search_params.get('county'), + state: search_params.get('state'), + country: search_params.get('country'), + postalcode: search_params.get('postalcode'), + polygon_geojson: get_config_value('Search_AreaPolygons', false) ? 1 : 0, viewbox: search_params.get('viewbox'), + exclude_place_ids: search_params.get('exclude_place_ids'), format: 'jsonv2' }; context = { - // aSearchResults: aResults, sQuery: api_request_params.q, sViewBox: search_params.get('viewbox'), - env: Nominatim_Config, - sMoreURL: '' + env: {} }; - if (api_request_params.q) { + if (api_request_params.street || api_request_params.city || api_request_params.county + || api_request_params.state || api_request_params.country || api_request_params.postalcode) { + context.hStructured = { + street: api_request_params.street, + city: api_request_params.city, + county: api_request_params.county, + state: api_request_params.state, + country: api_request_params.country, + postalcode: api_request_params.postalcode + }; + } + + if (api_request_params.q || context.hStructured) { fetch_from_api('search', api_request_params, function (aResults) { + context.bSearchRan = true; context.aSearchResults = aResults; + if (aResults.length >= 10) { + var aExcludePlaceIds = []; + if (search_params.has('exclude_place_ids')) { + aExcludePlaceIds = search_params.get('exclude_place_ids').split(','); + } + for (var i = 0; i < aResults.length; i += 1) { + aExcludePlaceIds.push(aResults[i].place_id); + } + + var parsed_url = new URLSearchParams(window.location.search); + parsed_url.set('exclude_place_ids', aExcludePlaceIds.join(',')); + context.sMoreURL = '?' + parsed_url.toString(); + } + render_template($('main'), 'searchpage-template', context); update_html_title('Result for ' + api_request_params.q); @@ -427,4 +451,6 @@ jQuery(document).ready(function () { ); } } -}); +} + +