]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - src/assets/js/detailpage.js
handlebar 4.1 => 4.5
[nominatim-ui.git] / src / assets / js / detailpage.js
index 046667058ca877e90b39704f733b2047a1306fa1..65b2dc06591ad8130bb57fafae53e5f551d3ed9b 100644 (file)
@@ -15,7 +15,7 @@ function init_map_on_detail_page(lat, lon, geojson) {
 
     L.tileLayer(get_config_value('Map_Tile_URL'), {
         // moved to footer
-        attribution: (get_config_value('Map_Tile_Attribution') || null ) //'&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
+        attribution: (get_config_value('Map_Tile_Attribution') || null ) //'&copy; <a href="https://osm.org/copyright">OpenStreetMap</a> contributors'
     }).addTo(map);
 
     var layerGroup = new L.layerGroup().addTo(map);
@@ -25,7 +25,7 @@ function init_map_on_detail_page(lat, lon, geojson) {
 
     if (geojson) {
         var geojson_layer = L.geoJson(
-            // http://leafletjs.com/reference-1.0.3.html#path-option
+            // https://leafletjs.com/reference-1.0.3.html#path-option
             parse_and_normalize_geojson_string(geojson),
             {
                 style: function(feature) {
@@ -56,18 +56,48 @@ jQuery(document).ready(function(){
         place_id: search_params.get('place_id'),
         osmtype: search_params.get('osmtype'),
         osmid: search_params.get('osmid'),
-        group_parents: 1,
+        keywords: search_params.get('keywords'),
+        addressdetails: 1,
+        hierarchy: 1,
+        group_hierarchy: 1,
+        polygon_geojson: 1,
         format: 'json'
     };
 
-    fetch_from_api('details', api_request_params, function(aFeature){
+    if (api_request_params.place_id || (api_request_params.osmtype && api_request_params.osmid )){
+        fetch_from_api('details', api_request_params, function(aFeature){
 
-        var context = { aPlace: aFeature };
+            var context = { aPlace: aFeature };
 
-        render_template($('main'), 'detailspage-template', context);
+            render_template($('main'), 'detailspage-template', context);
 
-        update_data_date();
+            update_data_date();
 
-        init_map_on_detail_page(aFeature.lat, aFeature.lon, aFeature.geojson);
+            var lat = aFeature.centroid.coordinates[1];
+            var lon = aFeature.centroid.coordinates[0];
+            init_map_on_detail_page(lat, lon, aFeature.geometry);
+        });
+    } else {
+        render_template($('main'), 'detailspage-index-template');
+    }
+
+    $('#form-by-type-and-id,#form-by-osm-url').on('submit', function(e){
+        e.preventDefault();
+
+        var val = $(this).find('input[type=edit]').val();
+        var matches = val.match(/^\s*([NWR])(\d+)\s*$/i);
+
+        if (!matches) {
+            matches = val.match(/\/(relation|way|node)\/(\d+)\s*$/);
+        }
+
+        if (matches) {
+            $(this).find('input[name=osmtype]').val(matches[1].charAt(0).toUpperCase());
+            $(this).find('input[name=osmid]').val(matches[2]);
+            $(this).get(0).submit();
+        } else {
+            alert('invalid input');
+        }
     });
+
 });
\ No newline at end of file