]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/leaflet/leaflet.locationfilter.js
Merge pull request #24 from zerebubuth/routing-merge
[rails.git] / vendor / assets / leaflet / leaflet.locationfilter.js
index a0019678c1698a23d60665e00d0b8b989c863678..d120adc30f2e0baa85d6187d2d28ef6b5c28f269 100644 (file)
@@ -100,7 +100,8 @@ L.LocationFilter = L.Class.extend({
         },
         adjustButton: {
             text: "Select area within current zoom"
-        }
+        },
+        buttonPosition: 'topleft'
     },
 
     initialize: function(options) {
@@ -114,8 +115,10 @@ L.LocationFilter = L.Class.extend({
 
     onAdd: function(map) {
         this._map = map;
-        this._layer = new L.LayerGroup();
-        this._initializeButtonContainer();
+
+        if (this.options.enableButton || this.options.adjustButton) {
+            this._initializeButtonContainer();
+        }
 
         if (this.options.enable) {
             this.enable();
@@ -124,7 +127,9 @@ L.LocationFilter = L.Class.extend({
 
     onRemove: function(map) {
         this.disable();
-        this._buttonContainer.removeFrom(map);
+        if (this._buttonContainer) {
+            this._buttonContainer.removeFrom(map);
+        }
     },
 
     /* Get the current filter bounds */
@@ -137,8 +142,10 @@ L.LocationFilter = L.Class.extend({
         this._ne = bounds.getNorthEast();
         this._sw = bounds.getSouthWest();
         this._se = bounds.getSouthEast();
-        this._draw();
-        this.fire("change", {bounds: bounds});
+        if (this.isEnabled()) {
+            this._draw();
+            this.fire("change", {bounds: bounds});
+        }
     },
 
     isEnabled: function() {
@@ -278,6 +285,8 @@ L.LocationFilter = L.Class.extend({
             return;
         }
 
+        this._layer = new L.LayerGroup();
+
         // Calculate filter bounds
         this._calculateBounds();
 
@@ -287,7 +296,7 @@ L.LocationFilter = L.Class.extend({
         this._eastRect = this._drawRectangle(this._eastBounds);
         this._southRect = this._drawRectangle(this._southBounds);
         this._innerRect = this._drawRectangle(this.getBounds(), {
-            fillColor: "transparent",
+            fillOpacity: 0,
             stroke: true,
             color: "white",
             weight: 1,
@@ -371,7 +380,9 @@ L.LocationFilter = L.Class.extend({
             
 
         // Update buttons
-        this._buttonContainer.addClass("enabled");
+        if (this._buttonContainer) {
+            this._buttonContainer.addClass("enabled");
+        }
 
         if (this._enableButton) {
             this._enableButton.setText(this.options.enableButton.disableText);
@@ -415,7 +426,9 @@ L.LocationFilter = L.Class.extend({
         }
 
         // Update buttons
-        this._buttonContainer.removeClass("enabled");
+        if (this._buttonContainer) {
+            this._buttonContainer.removeClass("enabled");
+        }
 
         if (this._enableButton) {
             this._enableButton.setText(this.options.enableButton.enableText);
@@ -456,7 +469,10 @@ L.LocationFilter = L.Class.extend({
        toggles the location filter */
     _initializeButtonContainer: function() {
         var that = this;
-        this._buttonContainer = new L.Control.ButtonContainer({className: "location-filter button-container"});
+        this._buttonContainer = new L.Control.ButtonContainer({
+           className: "location-filter button-container",
+           position: this.options.buttonPosition
+       });
 
         if (this.options.enableButton) {
             this._enableButton = new L.Control.Button({
@@ -477,8 +493,6 @@ L.LocationFilter = L.Class.extend({
             }).addTo(this._buttonContainer);
         }
 
-        if (this.options.enableButton || this.options.adjustButton) {
-          this._buttonContainer.addTo(this._map);
-        }
+        this._buttonContainer.addTo(this._map);
     }
 });