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 2a5fe743b519e0186dae873e6317327fee403212..126d1b188945f6fa1314868e220868748093ecf2 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 3141c44e2381b972cbd1df47df5f2c3cd7f5de90..9fe281ac8f44430a2349cf06046505f1e3300198 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">