]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - dist/assets/js/nominatim-ui.js
dont intercept links in last-updated page section
[nominatim-ui.git] / dist / assets / js / nominatim-ui.js
index d16de70e48b3d9edf37319a0582b5696f6d759a2..4b1ba8a880e79b365b61b730ae8d9412d63d9f95 100644 (file)
@@ -96,18 +96,36 @@ function generate_full_api_url(endpoint_name, params) {
   return api_url;
 }
 
-function fetch_from_api(endpoint_name, params, callback) {
+function update_last_updated(endpoint_name, params) {
+  if (endpoint_name === 'status') return;
+
   var api_url = generate_full_api_url(endpoint_name, params);
-  if (endpoint_name !== 'status') {
-    $('#api-request-link').attr('href', api_url);
+  $('#last-updated').show();
+
+  $('#api-request a').attr('href', api_url);
+  $('#api-request').show();
+
+  if (endpoint_name === 'search' || endpoint_name === 'reverse') {
+    $('#api-request-debug a').attr('href', api_url + '&debug=1');
+    $('#api-request-debug').show();
+  } else {
+    $('#api-request-debug').hide();
   }
+}
+
+function fetch_from_api(endpoint_name, params, callback) {
+  var api_url = generate_full_api_url(endpoint_name, params);
   $.get(api_url, function (data) {
+    if (endpoint_name !== 'status') {
+      update_last_updated(endpoint_name, params);
+    }
     callback(data);
   });
 }
 
 function update_data_date() {
   fetch_from_api('status', { format: 'json' }, function (data) {
+    $('#last-updated').show();
     $('#data-date').text(data.data_updated);
   });
 }
@@ -139,6 +157,8 @@ function hide_error() {
 jQuery(document).ready(function () {
   hide_error();
 
+  $('#last-updated').hide();
+
   $(document).ajaxStart(function () {
     $('#loading').fadeIn('fast');
   }).ajaxComplete(function () {
@@ -586,11 +606,6 @@ function search_page_load() {
       format: 'jsonv2'
     };
 
-    if (search_params.get('debug') === '1') {
-      window.location.href = generate_full_api_url('reverse', api_request_params);
-      return;
-    }
-
     context = {
       // aPlace: aPlace,
       fLat: api_request_params.lat,
@@ -655,11 +670,6 @@ function search_page_load() {
       format: 'jsonv2'
     };
 
-    if (search_params.get('debug') === '1') {
-      window.location.href = generate_full_api_url('search', api_request_params);
-      return;
-    }
-
     context = {
       sQuery: api_request_params.q,
       sViewBox: search_params.get('viewbox'),
@@ -685,19 +695,20 @@ function search_page_load() {
         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);
@@ -832,6 +843,7 @@ jQuery(document).ready(function () {
   $(document).on('click', 'a', function (e) {
     var target_url = $(this).attr('href');
     if (!is_relative_url(target_url)) return;
+    if ($(this).parents('#last-updated').length !== 0) return;
 
     e.preventDefault();
     e.stopPropagation();