]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.note.js
Refactor layer persistence
[rails.git] / app / assets / javascripts / leaflet.note.js
index 14a33640ace6c89f35b6a5f8aa1307673d171836..24f18f7ab3f66de38f3351eb146c68fcf1232491 100644 (file)
@@ -5,20 +5,32 @@ L.Control.Note = L.Control.extend({
     },
 
     onAdd: function (map) {
-        var className = 'leaflet-control-locate',
-            classNames = className + ' leaflet-control-zoom leaflet-bar leaflet-control',
-            container = L.DomUtil.create('div', classNames);
+        var className = 'control-note',
+            container = L.DomUtil.create('div', className);
 
-        var link = L.DomUtil.create('a', 'leaflet-bar-part leaflet-bar-part-single', container);
+        var link = L.DomUtil.create('a', 'control-button', container);
+        link.innerHTML = "<span class='icon note'></span>";
         link.href = '#';
         link.title = this.options.title;
 
         L.DomEvent
             .on(link, 'click', L.DomEvent.stopPropagation)
             .on(link, 'click', L.DomEvent.preventDefault)
+            .on(link, 'click', this._toggle, this)
             .on(link, 'dblclick', L.DomEvent.stopPropagation);
 
+        this.map = map;
+
         return container;
+    },
+
+    // TODO: this relies on notesLayer on the map
+    _toggle: function() {
+        if (this.map.hasLayer(this.map.noteLayer)) {
+            this.map.removeLayer(this.map.noteLayer);
+        } else {
+            this.map.addLayer(this.map.noteLayer);
+        }
     }
 });