X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/26f6fdf82c93b0fd3198bb8929d5f20a4723bfe8..c7adb870ad1c60a26c80d0e65d9d41a2918ea67d:/app/assets/javascripts/index/layers/data.js diff --git a/app/assets/javascripts/index/layers/data.js b/app/assets/javascripts/index/layers/data.js index 0a996f0c7..c69959467 100644 --- a/app/assets/javascripts/index/layers/data.js +++ b/app/assets/javascripts/index/layers/data.js @@ -25,18 +25,16 @@ OSM.initializeDataLayer = function (map) { onSelect(e.layer); }); - map.on("layeradd", function (e) { - if (e.layer === dataLayer) { - map.on("moveend", updateData); - updateData(); - } + dataLayer.on("add", function () { + map.fire("overlayadd", { layer: this }); + map.on("moveend", updateData); + updateData(); }); - map.on("layerremove", function (e) { - if (e.layer === dataLayer) { - map.off("moveend", updateData); - $("#browse_status").empty(); - } + dataLayer.on("remove", function () { + map.off("moveend", updateData); + $("#browse_status").empty(); + map.fire("overlayremove", { layer: this }); }); function updateData() { @@ -63,6 +61,17 @@ OSM.initializeDataLayer = function (map) { .click(add))); } + function displayLoadError(message) { + $("#browse_status").html( + $("
") + .text(I18n.t("browse.start_rjs.feature_error", { message: message })))))); + } + var dataLoader; function getData() { @@ -114,6 +123,18 @@ OSM.initializeDataLayer = function (map) { } dataLoader = null; + }, + error: function (XMLHttpRequest, textStatus) { + dataLoader = null; + if (textStatus === "abort") { return; } + + if (XMLHttpRequest.status === 400 && XMLHttpRequest.responseText) { + displayLoadError(XMLHttpRequest.responseText); + } else if (XMLHttpRequest.statusText) { + displayLoadError(XMLHttpRequest.statusText); + } else { + displayLoadError(String(XMLHttpRequest.status)); + } } }); }