Skip to content
Snippets Groups Projects
Select Git revision
  • a46fa1f0a0baac1818ec254538519772eed2d2e0
  • master default
  • next_version
  • laurent-change.log
  • Documentation_homogeneisation
  • HEAD
  • 2021.02.02
  • 2021.02.01
  • 2021.02.00
  • 2021.01.00
  • 2020.02.02
  • 2020.02.01
  • 2020.02.00
  • 2020.01.05
  • 2020.01.04
  • 2020.01.03
  • 2020.01.02
  • 2020.01.01
  • 2020.01.00
  • 2019.03.00
  • 2019.02.07
  • 2019.02.06
  • 2019.02.05
  • 2019.02.04
  • 2019.02.03
  • 2019.02.02
26 results

layertree.html

Blame
  • layertree.html 18.54 KiB
    <div ng-if="!$root.is_mobile" id="layertree-button">
        <div class="list-group-item active pointer layertree-button-content"
             title="Affiche les jeux de données"
             collapse="{{ctrl.layerstree_collapsed === true ? 'out' : 'in'}}"
             data-target="#layertree"
             onclick="oVmap.getMapManager().collapseElement(this)">
    
            <span class="icon-database list-group-icon"></span>
            <span>Jeux de données</span>
            <span class="list-group-icon2" ng-class="{'icon-keyboard_arrow_down':ctrl.layerstree_collapsed !== true, 'icon-keyboard_arrow_right':ctrl.layerstree_collapsed === true}"></span>
        </div>
    </div>
    
    <div id="layertree" class="layers-tool" collapse="{{ctrl.layerstree_collapsed === true ? 'out' : 'in'}}">
    
        <ul class="nav nav-tabs layerstree-nav left" ng-show="$root.compare_enabled">
            <li ng-class="{'active' : activeMap == 1}">
                <a href="#" ng-click="activeMap=1;ctrl.resize()">Carte 1</a>
            </li>
            <li ng-class="{'active' : activeMap == 2}">
                <a href="#" ng-click="activeMap=2;ctrl.resize()">Carte 2</a>
            </li>
        </ul>
        <div class="indicators">
            <span class="text-info icon-eye" style="font-size: 18px;line-height: 0" title="Définit si la couche est visible"></span>
        </div>
    
        <ul class="tree" ng-show="activeMap == 1 || !$root.compare_enabled">
            <div ng-repeat="node in tree.children| orderBy : 'name'" ng-if="node.view === undefined">
    
                <!-- Service -->
                <div class="layerstree-phather">
                    <div class="tree-father-collapse-btn service-name left" data-toggle="collapse" data-target="#tree_element_{{$id}}" onclick="setTimeout(function () {
                                    oVmap.resizeLayerTools(true)
                                }, 500)" title="{{node.name}}">
                        {{node.name}}
                    </div>
                    <div class="checkbox checkbox-info inline-checkbox right"
                         ng-class="{'checkbox_indeterminate': node.visible === null}">
                        <input id="service_{{$id}}_visible"
                               ng-init="node.visible = ctrl.isGroupVisible(node)"
                               ng-model="node.visible"
                               ng-model-options="{getterSetter: true}"
                               ng-click="ctrl.setGroupVisible(node)"
                               type="checkbox"
                               style="cursor:pointer; position: absolute"
                               title="Definit si le groupe est visible">
                        <label for="service_{{$id}}_visible"
                               style="cursor:pointer"
                               title="Definit si le groupe est visible"></label>
                    </div>
                </div>
    
                <!-- Calque -->
                <ul id="tree_element_{{$id}}" class="collapse layers-tree-ul tree-element" ng-class="{'in': ctrl.layers_collapsed !== true}">
                    <div ng-repeat="layer in node.children">
                        <li>
                            <ul class="list-group-item layertree-item auto-height">
    
                                <!-- Nom du calque -->
                                <div class="layer-name layer-name-tree" title="{{layer.name}}">{{layer.name}}</div>
                                <div class="layer-checkboxes">
                                    <button type="button"
                                            class="btn btn-xs margin-sides-10 hidden"
                                            ng-click="layer.olLayer.getSource().refreshWithTimestamp()">
                                        <span class="glyphicon glyphicon-refresh"></span>
                                    </button>
                                    <div type="button" class="btn btn-xs layer-menu-button" ng-click="ctrl.toggleLayerMenu(layer, $event)">
                                        <span ng-class="{'icon-filter': layer.olLayer.get('is_filtered'), 'icon-format_list_bulleted': !layer.olLayer.get('is_filtered')}"></span>
                                    </div>
                                    <!-- Checkbox visible -->
                                    <div class="checkbox checkbox-info inline-checkbox" style="z-index: 10;">
                                        <input id="{{layer.$$hashKey}}_visible_order_checkbox"
                                               type="checkbox"
                                               style="cursor:pointer; position: absolute"
                                               title="Definit si le calque est visible"
                                               ng-checked="layer.olLayer.values.visible === true"
                                               ng-click="ctrl.setVisible(layer.olLayer, !layer.olLayer.values.visible);node.visible = ctrl.isGroupVisible(node)">
                                        <label for="{{layer.$$hashKey}}_visible_order_checkbox" style="cursor:pointer" title="Definit si la couche est visible"></label>
                                    </div>
                                    <!-- Checkbox interrogation GetFeatureInfo -->
                                    <div class="checkbox checkbox-success inline-checkbox"
                                            ng-if="layer.olLayer.values.is_queryable_getfeatureinfo === true && ctrl.properties.selection.enable_getfeatureinfo === true"
                                            ng-class="{'checkbox_indeterminate': ctrl.isLayerWMSQueryable(layer.olLayer) === null}">
                                        <input id="{{layer.$$hashKey}}_wms_queryable_checkbox"
                                               type="checkbox"
                                               style="cursor:pointer; position: absolute"
                                               title="Definit si le calque est interrogeable par requête WMS"
                                               ng-disabled="layer.olLayer.values.visible === false"
                                               ng-checked="ctrl.isLayerWMSQueryable(layer.olLayer)"
                                               ng-click="ctrl.toggleLayerWMSQueryable(layer.olLayer)">
                                        <label for="{{layer.$$hashKey}}_wms_queryable_checkbox" style="cursor:pointer" title="Definit si le calque est interrogeable par requête WMS"></label>
                                    </div>
                                </div>
                            </ul>
                        </li>
                        <div class="dropdown-menu layer-menu" ng-class="{'block': layer.displayedMenu === true}">
                            <div class="layer-menu-list">
                                <li ng-if="layer.olLayer.get('is_filtered')" ng-click="ctrl.displayFilterLayerModal(layer.olLayer)">
                                    <a href="#">
                                        <span class="icon-filter"></span>
                                        Filtre
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        <div class="row">
                                            <div class="col-xs-6">
                                                <span class="icon-star-half"></span>
                                                Transparence
                                            </div>
                                            <div class="col-xs-6">
                                                <div class="layer-menu-list-slider">
                                                    <input data-app-layer-opacity-slider="" id="slider_layer_form_{{layer.$$hashKey}}" type="text">
                                                </div>
                                            </div>
                                        </div>
                                    </a>
                                </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">
                                        <!-- Checkbox interrogation GetFeatureInfo -->
                                        <div class="checkbox checkbox-success sublayer-checkbox inline-checkbox" ng-if="layer.olLayer.values.is_queryable_getfeatureinfo === true && ctrl.properties.selection.enable_getfeatureinfo === true">
                                            <input id="{{layer.$$hashKey}}_sublayer_{{sublayer}}_wms_queryable_checkbox"
                                            type="checkbox"
                                            style="cursor:pointer; position: absolute"
                                            title="Definit si la couche est est interrogeable par requête WMS"
                                            ng-checked="ctrl.isSublayerWMSQueryable(layer.olLayer, sublayer)"
                                            ng-disabled="layer.olLayer.values.visible !== true"
                                            ng-click="ctrl.toggleSublayerWMSQueryable(layer.olLayer, sublayer)">
                                            <label for="{{layer.$$hashKey}}_sublayer_{{sublayer}}_wms_queryable_checkbox" style="cursor:pointer" title="Definit si la couche est interrogeable par requête WMS"></label>
                                        </div>
                                        <!-- Checkbox visible -->
                                        <div class="checkbox checkbox-info sublayer-checkbox inline-checkbox">
                                            <input id="{{layer.$$hashKey}}_sublayer_{{sublayer}}_visible_checkbox"
                                                   type="checkbox"
                                                   style="cursor:pointer; position: absolute"
                                                   title="Definit si la couche est visible"
                                                   ng-checked="ctrl.isSublayerActive(layer.olLayer, sublayer)"
                                                   ng-disabled="layer.olLayer.values.visible !== true"
                                                   ng-click="ctrl.toggleSubLayer(layer.olLayer, sublayer, '#' + layer.$$hashKey + '_sublayer_' + sublayer + '_visible_checkbox')">
                                            <label for="{{layer.$$hashKey}}_sublayer_{{sublayer}}_visible_checkbox" style="cursor:pointer" title="Definit si la couche est visible">{{sublayer}}</label>
                                        </div>
                                    </div>
                                </li>
                            </div>
                        </div>
                    </div>
                </ul>
            </div>
        </ul>
    
        <ul class="tree" ng-show="activeMap == 2 && $root.compare_enabled">
            <div ng-repeat="node in compareTree.children| orderBy : 'name'" ng-if="node.view === undefined">
    
                <!-- Service -->
                <div class="layerstree-phather">
                    <div class="tree-father-collapse-btn service-name left" data-toggle="collapse" data-target="#comparetree_element_{{$id}}" onclick="setTimeout(function () {
                                    oVmap.resizeLayerTools(true)
                                }, 500)" title="{{node.name}}">
                        {{node.name}}
                    </div>
                    <div class="checkbox checkbox-info inline-checkbox right"
                         ng-class="{'checkbox_indeterminate': node.visible === null}">
                        <input id="compare_service_{{$id}}_visible"
                               ng-init="node.visible = ctrl.isGroupVisible(node)"
                               ng-model="node.visible"
                               ng-model-options="{getterSetter: true}"
                               ng-click="ctrl.setGroupVisible(node)"
                               type="checkbox"
                               style="cursor:pointer; position: absolute"
                               title="Definit si le groupe est visible">
                        <label for="compare_service_{{$id}}_visible"
                               style="cursor:pointer"
                               title="Definit si le groupe est visible"></label>
                    </div>
                </div>
    
                <!-- Calque -->
                <ul id="comparetree_element_{{$id}}" class="collapse layers-tree-ul tree-element" ng-class="{'in': ctrl.layers_collapsed !== true}">
                    <div ng-repeat="layer in node.children">
                        <li>
                            <ul class="list-group-item layertree-item auto-height">
    
                                <!-- Nom du calque -->
                                <div class="layer-name layer-name-tree" title="{{layer.name}}">{{layer.name}}</div>
                                <div class="layer-checkboxes">
                                    <button type="button"
                                            class="btn btn-xs margin-sides-10 hidden"
                                            ng-click="layer.olLayer.getSource().refreshWithTimestamp()">
                                        <span class="glyphicon glyphicon-refresh"></span>
                                    </button>
                                    <div type="button" class="btn btn-xs layer-menu-button" ng-click="ctrl.toggleLayerMenu(layer, $event)">
                                        <span ng-class="{'icon-filter': layer.olLayer.get('is_filtered'), 'icon-format_list_bulleted': !layer.olLayer.get('is_filtered')}"></span>
                                    </div>
                                    <!-- Checkbox visible -->
                                    <div class="checkbox checkbox-info inline-checkbox" style="z-index: 10;">
                                        <input id="{{layer.$$hashKey}}_compare_visible_order_checkbox"
                                               type="checkbox"
                                               style="cursor:pointer; position: absolute"
                                               title="Definit si le calque est visible"
                                               ng-checked="layer.olLayer.values.visible === true"
                                               ng-click="ctrl.setVisible(layer.olLayer, !layer.olLayer.values.visible);node.visible = ctrl.isGroupVisible(node)">
                                        <label for="{{layer.$$hashKey}}_compare_visible_order_checkbox" style="cursor:pointer" title="Definit si la couche est visible"></label>
                                    </div>
                                </div>
                            </ul>
                        </li>
                        <div class="dropdown-menu layer-menu" ng-class="{'block': layer.displayedMenu === true}">
                            <div class="layer-menu-list">
                                <li ng-if="layer.olLayer.get('is_filtered')" ng-click="ctrl.displayFilterLayerModal(layer.olLayer)">
                                    <a href="#">
                                        <span class="icon-filter"></span>
                                        Filtre
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        <div class="row">
                                            <div class="col-xs-6">
                                                <span class="icon-star-half"></span>
                                                Transparence
                                            </div>
                                            <div class="col-xs-6">
                                                <div class="layer-menu-list-slider">
                                                    <input data-app-layer-opacity-slider="" id="compare_slider_layer_form_{{layer.$$hashKey}}" type="text">
                                                </div>
                                            </div>
                                        </div>
                                    </a>
                                </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">
                                        <!-- Checkbox visible -->
                                        <div class="checkbox checkbox-info sublayer-checkbox inline-checkbox">
                                            <input id="{{layer.$$hashKey}}_compare_sublayer_{{sublayer}}_visible_checkbox"
                                                   type="checkbox"
                                                   style="cursor:pointer; position: absolute"
                                                   title="Definit si la couche est visible"
                                                   ng-checked="ctrl.isSublayerActive(layer.olLayer, sublayer)"
                                                   ng-disabled="layer.olLayer.values.visible !== true"
                                                   ng-click="ctrl.toggleSubLayer(layer.olLayer, sublayer, '#' + layer.$$hashKey + '_sublayer_' + sublayer + '_visible_checkbox')">
                                            <label for="{{layer.$$hashKey}}_compare_sublayer_{{sublayer}}_visible_checkbox" style="cursor:pointer" title="Definit si la couche est visible">{{sublayer}}</label>
                                        </div>
                                    </div>
                                </li>
                            </div>
                        </div>
                    </div>
                </ul>
            </div>
        </ul>
    </div>
    
    <!--Modale pour le filtrage-->
    <div id="layerstree-filter-modal" class="modal fade" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
            <div class="modal-content" style="max-height: 100%">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title">Filtrer la couche: {{ctrl.olFilteredLayer.get('name')}}</h4>
                </div>
                <div class="modal-body modal-body-big-with-footer-3">
                    <div id="layerstree_filter_formreader"
                         app-form-reader
                         app-properties="ctrl.properties"
                         app-token="ctrl.token"></div>
                </div>
                <div class="modal-footer modal-footer-sm">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
                    <button type="button" class="btn btn-primary" onclick="oVmap.simuleClick('layerstree_filter_formreader_submit_btn')">Appliquer le filtre</button>
                </div>
            </div>
        </div>
    </div>
    
    <!--
        Bouton invisible qui sert à charger les cartes:
        ceci a été fait car ce bouton a besoin de ctrl.reloadTree
        qui se trouve uniquement ici. Pour appeler la fonction:
    -->
    <button id="btn-reload-map" style="display: none" ng-click="ctrl.reloadTree()">Reload map</button>