X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/047b306f7b94f9faef31fa9da61f5e99e6c3e7ae..aabb32c8a1e90534f3ee61e428e668280587dfd9:/src/assets/js/detailpage.js?ds=sidebyside diff --git a/src/assets/js/detailpage.js b/src/assets/js/detailpage.js index 49ec981..65b2dc0 100644 --- a/src/assets/js/detailpage.js +++ b/src/assets/js/detailpage.js @@ -64,16 +64,40 @@ jQuery(document).ready(function(){ 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(); - var lat = aFeature.centroid.coordinates[1]; - var lon = aFeature.centroid.coordinates[0]; - init_map_on_detail_page(lat, lon, aFeature.geometry); + 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