From aa01609adf3520fff7645630a763969879561093 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Carretero?=
 <frederic.carretero@veremes.com>
Date: Fri, 18 Jan 2019 10:46:13 +0100
Subject: [PATCH] Checkbox pour afficher ou masquer toutes les couches d'un
 calque

---
 .../app/vmap/mapmanager/layerstree.js         | 19 +++++++++++++++++++
 .../module/template/layers/layertree.html     | 15 +++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
index 2a5fe743..126d1b18 100644
--- a/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
+++ b/src/module_vmap/module/javascript/app/vmap/mapmanager/layerstree.js
@@ -995,3 +995,22 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.setSublay
 
     oVmap['scope'].$broadcast('layersChanged');
 }
+
+/**
+ * Toggle all the sublayers in the olLayer
+ * @param  {ol.Layer} oLayer
+ * @param  {string} sCheckboxId
+ * @export
+ */
+nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.toggleAllSubLayers = function (oLayer, sCheckboxId) {
+    oVmap.log('nsVmap.nsMapManager.LayersTree.LayertreeController.toggleAllSubLayers');
+    var aAvaliableSublayers = angular.copy(oLayer["olLayer"]["get"]('sublayers'));
+    var bLayersVisibility = document.getElementById(sCheckboxId).checked;
+    for (var i = 0; i < aAvaliableSublayers.length; i++) {
+        if (bLayersVisibility || i == 0)
+            this.activeSublayer(oLayer["olLayer"], aAvaliableSublayers[i]);
+        else
+            this.unactiveSublayer(oLayer["olLayer"], aAvaliableSublayers[i], '#' + oLayer["olLayer"].$$hashKey + '_sublayer_' + aAvaliableSublayers[i] + '_visible_checkbox');
+    }
+    oVmap['scope'].$broadcast('layersChanged');
+};
diff --git a/src/module_vmap/module/template/layers/layertree.html b/src/module_vmap/module/template/layers/layertree.html
index 3141c44e..9fe281ac 100644
--- a/src/module_vmap/module/template/layers/layertree.html
+++ b/src/module_vmap/module/template/layers/layertree.html
@@ -117,6 +117,21 @@
                                     </div>
                                 </a>
                             </li>
+                            <!-- Code ou découche toutes les couches -->
+                            <li ng-if="layer.olLayer.get('sublayers').length > 1">
+                              <div class="sublayer-checkboxes">
+                                  <!-- Checkbox visible -->
+                                  <div class="checkbox checkbox-info inline-checkbox">
+                                      <input id="{{layer.$$hashKey}}_all_sublayer_visibility_checkbox"
+                                             type="checkbox"
+                                             style="cursor:pointer; position: absolute"
+                                             title="Définition de la visibilité de toutes les couches"
+                                             ng-click="ctrl.toggleAllSubLayers(layer, layer.$$hashKey + '_all_sublayer_visibility_checkbox')">
+                                      <label for="{{layer.$$hashKey}}_all_sublayer_visibility_checkbox" style="cursor:pointer" title="Définition de la visibilité de toutes les couches"></label>
+                                  </div>
+                              </div>
+                            </li>
+                            <!-- -->
                             <li ng-if="layer.olLayer.get('type') === 'imagewms' || layer.olLayer.get('type') === 'tilewms'"
                                 ng-repeat="sublayer in layer.olLayer.get('sublayers')">
                                 <div class="sublayer-checkboxes">
-- 
GitLab