X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/fdcd5d6b80c774533a676f6b906199be5a57654c..c12f8959dd2059b4ea9d45caf716923d7589cbb0:/app/assets/javascripts/index/note.js?ds=sidebyside diff --git a/app/assets/javascripts/index/note.js b/app/assets/javascripts/index/note.js index 4da3395fb..e7790c904 100644 --- a/app/assets/javascripts/index/note.js +++ b/app/assets/javascripts/index/note.js @@ -1,7 +1,6 @@ OSM.Note = function (map) { var content = $("#sidebar_content"), - page = {}, - halo, currentNote; + page = {}; var noteIcons = { "new": L.icon({ @@ -24,8 +23,9 @@ OSM.Note = function (map) { page.pushstate = page.popstate = function (path, id) { OSM.loadSidebarContent(path, function () { initialize(path, id, function () { - var data = $(".details").data(), - latLng = L.latLng(data.coordinates.split(",")); + var data = $(".details").data(); + if (!data) return; + var latLng = L.latLng(data.coordinates.split(",")); if (!map.getBounds().contains(latLng)) moveToNote(); }); }); @@ -60,45 +60,34 @@ OSM.Note = function (map) { var form = e.target.form; if ($(e.target).val() === "") { - $(form.close).val(I18n.t("javascripts.notes.show.resolve")); + $(form.close).val($(form.close).data("defaultActionText")); $(form.comment).prop("disabled", true); } else { - $(form.close).val(I18n.t("javascripts.notes.show.comment_and_resolve")); + $(form.close).val($(form.close).data("commentActionText")); $(form.comment).prop("disabled", false); } }); content.find("textarea").val("").trigger("input"); - var data = $(".details").data(), - latLng = L.latLng(data.coordinates.split(",")); + var data = $(".details").data(); - if (!halo || !map.hasLayer(halo)) { - halo = L.circleMarker(latLng, { - weight: 2.5, - radius: 20, - fillOpacity: 0.5, - color: "#FF6200" + if (data) { + map.addObject({ + type: "note", + id: parseInt(id, 10), + latLng: L.latLng(data.coordinates.split(",")), + icon: noteIcons[data.status] }); - map.addLayer(halo); } - if (currentNote && map.hasLayer(currentNote)) map.removeLayer(currentNote); - - currentNote = L.marker(latLng, { - icon: noteIcons[data.status], - opacity: 1, - interactive: true - }); - - map.addLayer(currentNote); - if (callback) callback(); } function moveToNote() { - var data = $(".details").data(), - latLng = L.latLng(data.coordinates.split(",")); + var data = $(".details").data(); + if (!data) return; + var latLng = L.latLng(data.coordinates.split(",")); if (!window.location.hash || window.location.hash.match(/^#?c[0-9]+$/)) { OSM.router.withoutMoveListener(function () { @@ -108,8 +97,7 @@ OSM.Note = function (map) { } page.unload = function () { - if (map.hasLayer(halo)) map.removeLayer(halo); - if (map.hasLayer(currentNote)) map.removeLayer(currentNote); + map.removeObject(); }; return page;