]> git.openstreetmap.org Git - rails.git/commitdiff
Add/remove active class on map UI buttons
authorJohn Firebaugh <john.firebaugh@gmail.com>
Wed, 31 Jul 2013 20:56:51 +0000 (13:56 -0700)
committerJohn Firebaugh <john.firebaugh@gmail.com>
Mon, 5 Aug 2013 15:32:43 +0000 (08:32 -0700)
app/assets/javascripts/index/notes.js.erb
app/assets/javascripts/leaflet.key.js
app/assets/javascripts/leaflet.layers.js
app/assets/javascripts/leaflet.share.js
app/assets/javascripts/leaflet.sidebar.js

index 93b60c3e7a09f6c1e907a36e5f71afb7579bba45..63576c06caa4256cd45d4d4bad4436b5b19f6a4c 100644 (file)
@@ -190,7 +190,7 @@ function initializeNotes(map, params) {
       notes[feature.properties.id] = updateMarker(marker, feature);
       newNote = null;
 
-      addNoteButton.removeClass("disabled").addClass("geolink");
+      addNoteButton.removeClass("active").addClass("geolink");
     }
   }
 
@@ -223,9 +223,9 @@ function initializeNotes(map, params) {
     e.preventDefault();
     e.stopPropagation();
 
-    if (addNoteButton.hasClass("disabled")) return;
+    if (addNoteButton.hasClass("active")) return;
 
-    addNoteButton.removeClass("geolink").addClass("disabled");
+    addNoteButton.removeClass("geolink").addClass("active");
 
     map.addLayer(noteLayer);
 
@@ -262,7 +262,7 @@ function initializeNotes(map, params) {
     newNote.addTo(noteLayer).bindPopup(popupContent[0], popupOptions()).openPopup();
 
     newNote.on("remove", function (e) {
-      addNoteButton.removeClass("disabled").addClass("geolink");
+      addNoteButton.removeClass("active").addClass("geolink");
     }).on("dragstart", function (e) {
       $(newNote).stopTime("removenote");
     }).on("dragend", function (e) {
index c5124e39d6cf139e4e5b1115e2c691fed532303d..1c219d9538ff93234bf17abe88ceb3420876a64f 100644 (file)
@@ -5,7 +5,7 @@ L.OSM.key = function (options) {
     var $container = $('<div>')
       .attr('class', 'control-key');
 
-    $('<a>')
+    var button = $('<a>')
       .attr('class', 'control-button')
       .attr('href', '#')
       .attr('title', I18n.t('javascripts.key.tooltip'))
@@ -51,7 +51,7 @@ L.OSM.key = function (options) {
     function toggle(e) {
       e.stopPropagation();
       e.preventDefault();
-      options.sidebar.togglePane($ui);
+      options.sidebar.togglePane($ui, button);
     }
 
     function update() {
index edcbfbd4dd9dd94e73879908644b879f768dc51a..a364588c1dfe073f7778f0390df016b9bdc488fc 100644 (file)
@@ -7,7 +7,7 @@ L.OSM.layers = function(options) {
     var $container = $('<div>')
       .attr('class', 'control-layers');
 
-    var link = $('<a>')
+    var button = $('<a>')
       .attr('class', 'control-button')
       .attr('href', '#')
       .attr('title', 'Layers')
@@ -156,7 +156,7 @@ L.OSM.layers = function(options) {
     function toggle(e) {
       e.stopPropagation();
       e.preventDefault();
-      options.sidebar.togglePane($ui);
+      options.sidebar.togglePane($ui, button);
     }
 
     return $container[0];
index 58879475bc8fb51d30c944614b4ab0c2e4cbbd05..6dd420cbef1c62ac4ef28908881bf6c39bd120c2 100644 (file)
@@ -10,7 +10,7 @@ L.OSM.share = function (options) {
     var $container = $('<div>')
       .attr('class', 'control-share');
 
-    $('<a>')
+    var button = $('<a>')
       .attr('class', 'control-button')
       .attr('href', '#')
       .attr('title', 'Share')
@@ -230,7 +230,7 @@ L.OSM.share = function (options) {
       marker.setLatLng(map.getCenter());
 
       update();
-      options.sidebar.togglePane($ui);
+      options.sidebar.togglePane($ui, button);
     }
 
     function toggleMarker() {
index 8c4dee308ada2bb36068aaf2f7fe430a9501279c..db9e7aef2505228010751b145e38771e48cc7564 100644 (file)
@@ -2,6 +2,7 @@ L.OSM.sidebar = function(selector) {
   var control = {},
     sidebar = $(selector),
     current = $(),
+    currentButton  = $(),
     map;
 
   control.addTo = function (_) {
@@ -15,17 +16,21 @@ L.OSM.sidebar = function(selector) {
       .appendTo(sidebar);
   };
 
-  control.togglePane = function(pane) {
+  control.togglePane = function(pane, button) {
     current
       .hide()
       .trigger('hide');
 
+    currentButton
+      .removeClass('active');
+
     if (current === pane) {
       $(sidebar).hide();
-      current = $();
+      current = currentButton = $();
     } else {
       $(sidebar).show();
       current = pane;
+      currentButton = button || $();
     }
 
     map.invalidateSize({pan: false, animate: false});
@@ -33,6 +38,9 @@ L.OSM.sidebar = function(selector) {
     current
       .show()
       .trigger('show');
+
+    currentButton
+      .addClass('active');
   };
 
   return control;