commit f77ed1c961b71697ef7899e5a8aba83fa4b14b56
parent d3e561f79fa5c2ae570e55b8f5056d435f644878
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Fri, 3 Nov 2017 14:06:02 +0300
[layers config] highlight added layers
Diffstat:
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/src/lib/leaflet.control.layers.configure/index.js b/src/lib/leaflet.control.layers.configure/index.js
@@ -150,8 +150,18 @@ function enableConfig(control, layers) {
},
onSelectWindowOkClicked: function() {
- [...this._allLayers, ...this._customLayers()].forEach(layer => layer.enabled = layer.checked());
- this.updateEnabledLayers();
+ const newEnabledLayers = [];
+ for (let layer of [...this._allLayers, ...this._customLayers()]) {
+ if (layer.checked()) {
+ if (!layer.enabled) {
+ newEnabledLayers.push(layer);
+ }
+ layer.enabled = true;
+ } else {
+ layer.enabled = false;
+ }
+ }
+ this.updateEnabledLayers(newEnabledLayers);
this.hideSelectWindow();
},
@@ -174,7 +184,7 @@ function enableConfig(control, layers) {
);
},
- updateEnabledLayers: function() {
+ updateEnabledLayers: function(addedLayers) {
const disabledLayers = [...this._allLayers, ...this._customLayers()].filter(l => !l.enabled);
disabledLayers.forEach((l) => this._map.removeLayer(l.layer));
[...this._layers].forEach((l) => this.removeLayer(l.layer));
@@ -183,6 +193,7 @@ function enableConfig(control, layers) {
const enabledLayers = [...this._allLayers, ...this._customLayers()].filter(l => l.enabled);
enabledLayers.sort((l1, l2) => l1.order - l2.order);
enabledLayers.forEach((l) => {
+ l.layer._justAdded = addedLayers && addedLayers.includes(l);
l.isOverlay ? this.addOverlay(l.layer, l.title) : this.addBaseLayer(l.layer, l.title);
if (!l.isOverlay && this._map.hasLayer(l.layer)) {
hasBaselayerOnMap = true;
@@ -309,6 +320,12 @@ ${buttonsHtml}`;
editButton.title = 'Edit layer';
L.DomEvent.on(editButton, 'click', (e) => this.onCustomLayerEditClicked(obj.layer.__customLayer, e));
}
+ if (obj.layer._justAdded) {
+ L.DomUtil.addClass(label, 'leaflet-layers-configure-just-added-1');
+ L.Util.requestAnimFrame(() => {
+ L.DomUtil.addClass(label, 'leaflet-layers-configure-just-added-2');
+ });
+ }
return label;
},
diff --git a/src/lib/leaflet.control.layers.configure/style.css b/src/lib/leaflet.control.layers.configure/style.css
@@ -155,4 +155,13 @@
.custom-layers-window a {
color: #777;
+}
+
+.leaflet-layers-configure-just-added-1 {
+ background-color: #ff8d4d;
+}
+
+.leaflet-layers-configure-just-added-2 {
+ transition: background-color 7s ease-in;
+ background-color: rgba(0, 0, 0, 0);
}
\ No newline at end of file