]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.note.js
Avoid error when there is no layer with a keyid
[rails.git] / app / assets / javascripts / leaflet.note.js
index 14a33640ace6c89f35b6a5f8aa1307673d171836..86c4554996007bae71f9b3ac37bc7105c5b1e662 100644 (file)
@@ -1,27 +1,31 @@
-L.Control.Note = L.Control.extend({
-    options: {
-        position: 'topright',
-        title: 'Notes',
-    },
+L.OSM.note = function (options) {
+  var control = L.control(options);
 
-    onAdd: function (map) {
-        var className = 'leaflet-control-locate',
-            classNames = className + ' leaflet-control-zoom leaflet-bar leaflet-control',
-            container = L.DomUtil.create('div', classNames);
+  control.onAdd = function (map) {
+    var $container = $("<div>")
+      .attr("class", "control-note");
 
-        var link = L.DomUtil.create('a', 'leaflet-bar-part leaflet-bar-part-single', container);
-        link.href = '#';
-        link.title = this.options.title;
+    var link = $("<a>")
+      .attr("class", "control-button")
+      .attr("href", "#")
+      .html("<span class=\"icon note\"></span>")
+      .appendTo($container);
 
-        L.DomEvent
-            .on(link, 'click', L.DomEvent.stopPropagation)
-            .on(link, 'click', L.DomEvent.preventDefault)
-            .on(link, 'dblclick', L.DomEvent.stopPropagation);
+    map.on("zoomend", update);
 
-        return container;
+    function update() {
+      var disabled = OSM.STATUS === "database_offline" || map.getZoom() < 12;
+      link
+        .toggleClass("disabled", disabled)
+        .attr("data-original-title", I18n.t(disabled ?
+          "javascripts.site.createnote_disabled_tooltip" :
+          "javascripts.site.createnote_tooltip"));
     }
-});
 
-L.control.note = function(options) {
-    return new L.Control.Note(options);
+    update();
+
+    return $container[0];
+  };
+
+  return control;
 };