X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/68fd6dfad262e322f44815c835fdcf63b77ab639..586f7f836124af2ea87b5f580c9e92b671ba4b1f:/src/assets/js/searchpage.js?ds=inline diff --git a/src/assets/js/searchpage.js b/src/assets/js/searchpage.js index d909533..38a9cf8 100755 --- a/src/assets/js/searchpage.js +++ b/src/assets/js/searchpage.js @@ -45,7 +45,7 @@ function display_map_position(mouse_lat_lng) { }; $('#switch-to-reverse').attr('href', 'reverse.html?' + $.param(reverse_params)); - $('input#use_viewbox').trigger('change'); + $('input.api-param-setting').trigger('change'); } function init_map_on_search_page(is_reverse_search, nominatim_results, request_lat, @@ -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,20 +170,23 @@ function init_map_on_search_page(is_reverse_search, nominatim_results, request_l update_viewbox_field(); }); - $("input[name='query-selector']").click(function () { - var query_val = $("input[name='query-selector']:checked").val(); - if (query_val === 'simple') { - $('div.form-group-simple').removeClass('hidden'); - $('div.form-group-structured').addClass('hidden'); - $('.form-group-structured').find('input:text').val(''); - } else if (query_val === 'structured') { - console.log('here'); - $('div.form-group-simple').addClass('hidden'); - $('div.form-group-structured').removeClass('hidden'); - $('.form-group-simple').find('input:text').val(''); - } + $('input#option_bounded').on('change', function () { + $('input[name=bounded]') + .val($('input#option_bounded') + .prop('checked') ? '1' : ''); + }); + + $('input#option_dedupe').on('change', function () { + $('input[name=dedupe]') + .val($('input#option_dedupe') + .prop('checked') ? '' : '0'); + }); + + $('input[data-api-param]').on('change', function (e) { + $('input[name=' + $(e.target).data('api-param') + ']').val(e.target.value); }); + function get_result_element(position) { return $('.result').eq(position); } @@ -306,12 +309,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); @@ -356,6 +356,7 @@ jQuery(document).ready(function () { aPlace = null; } + context.bSearchRan = true; context.aPlace = aPlace; render_template($('main'), 'reversepage-template', context); @@ -395,8 +396,14 @@ jQuery(document).ready(function () { state: search_params.get('state'), country: search_params.get('country'), postalcode: search_params.get('postalcode'), - polygon_geojson: search_params.get('polygon_geojson') ? 1 : 0, + polygon_geojson: get_config_value('Search_AreaPolygons', false) ? 1 : 0, viewbox: search_params.get('viewbox'), + bounded: search_params.get('bounded'), + dedupe: search_params.get('dedupe'), + 'accept-language': search_params.get('accept-language'), + countrycodes: search_params.get('countrycodes'), + limit: search_params.get('limit'), + polygon_threshold: search_params.get('polygon_threshold'), exclude_place_ids: search_params.get('exclude_place_ids'), format: 'jsonv2' }; @@ -404,7 +411,13 @@ jQuery(document).ready(function () { context = { sQuery: api_request_params.q, sViewBox: search_params.get('viewbox'), - env: Nominatim_Config + sBounded: search_params.get('bounded'), + sDedupe: search_params.get('dedupe'), + sLang: search_params.get('accept-language'), + sCCode: search_params.get('countrycodes'), + sLimit: search_params.get('limit'), + sPolyThreshold: search_params.get('polygon_threshold'), + env: {} }; if (api_request_params.street || api_request_params.city || api_request_params.county @@ -423,21 +436,23 @@ jQuery(document).ready(function () { 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(); + // lonvia wrote: https://github.com/osm-search/nominatim-ui/issues/24 + // I would suggest to remove the guessing and always show the link. Nominatim only returns + // one or two results when it believes the result to be a good enough match. + // 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); @@ -466,4 +481,6 @@ jQuery(document).ready(function () { ); } } -}); +} + +