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