X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/a5b784bdf7e093c76d0c09c56ae274c93c4cb956..6db326aa1f084a062a3b658876bc01bf650f5702:/app/assets/javascripts/index/export.js?ds=sidebyside diff --git a/app/assets/javascripts/index/export.js b/app/assets/javascripts/index/export.js index a2d6c4f07..67530370d 100644 --- a/app/assets/javascripts/index/export.js +++ b/app/assets/javascripts/index/export.js @@ -1,4 +1,4 @@ -OSM.Export = function(map) { +OSM.Export = function (map) { var page = {}; var locationFilter = new L.LocationFilter({ @@ -14,11 +14,9 @@ OSM.Export = function(map) { function boundsChanged() { var bounds = getBounds(); - map.fitBounds(bounds); locationFilter.setBounds(bounds); - - enableFilter(); + locationFilter.enable(); validateControls(); } @@ -29,6 +27,7 @@ OSM.Export = function(map) { locationFilter.setBounds(map.getBounds().pad(-0.2)); locationFilter.enable(); + validateControls(); } function update() { @@ -37,11 +36,16 @@ OSM.Export = function(map) { } function setBounds(bounds) { - var precision = zoomPrecision(map.getZoom()); + var precision = OSM.zoomPrecision(map.getZoom()); $("#minlon").val(bounds.getWest().toFixed(precision)); $("#minlat").val(bounds.getSouth().toFixed(precision)); $("#maxlon").val(bounds.getEast().toFixed(precision)); $("#maxlat").val(bounds.getNorth().toFixed(precision)); + + $("#export_overpass").attr("href", + "https://overpass-api.de/api/map?bbox=" + + $("#minlon").val() + "," + $("#minlat").val() + "," + + $("#maxlon").val() + "," + $("#maxlat").val()); } function validateControls() { @@ -49,29 +53,29 @@ OSM.Export = function(map) { $("#export_commit").toggle(getBounds().getSize() < OSM.MAX_REQUEST_AREA); } - page.pushstate = page.popstate = function(path) { + function checkSubmit(e) { + if (getBounds().getSize() > OSM.MAX_REQUEST_AREA) e.preventDefault(); + } + + page.pushstate = page.popstate = function (path) { $("#export_tab").addClass("current"); - $("#sidebar_content").load(path + "?xhr=1", function(a, b, xhr) { - if (xhr.getResponseHeader('X-Page-Title')) { - document.title = xhr.getResponseHeader('X-Page-Title'); - } - page.load(); - }); + OSM.loadSidebarContent(path, page.load); }; - page.load = function() { + page.load = function () { map .addLayer(locationFilter) .on("moveend", update); $("#maxlat, #minlon, #maxlon, #minlat").change(boundsChanged); $("#drag_box").click(enableFilter); - $("#sidebar_content .close").on("click", page.minimizeSidebar); + $(".export_form").on("submit", checkSubmit); update(); + return map.getState(); }; - page.unload = function() { + page.unload = function () { map .removeLayer(locationFilter) .off("moveend", update);