diff --git a/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmanager.js b/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmanager.js index c13c9aae888788c3844528a192df7f652b71cb9a..bae5ed9fd0b5e4b1bcaab66ed342ff659a8026ed 100644 --- a/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmanager.js +++ b/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmanager.js @@ -281,20 +281,73 @@ nsVmap.nsMapManager.MapManager.prototype.loadMap = function (element) { }); }; +/** + * Load a new map to compare + * @param {object} element Html element witch contains the url to the map.json file + * @param {object} element.url link to the map.json file + * @export + */ +nsVmap.nsMapManager.MapManager.prototype.loadCompareMap = function (element) { + oVmap.log('nsVmap.nsMapManager.MapManager.loadMap'); + + if (oVmap['properties']['is_mobile']) { + oVmap.getToolsManager().getBasicTools().hideMobileMenu(); + } + + // Récupère l'url + var sUrl = element.getAttribute("url"); + + if (!goog.isDefAndNotNull(sUrl)) { + return 0; + } + if (sUrl.length === 0) { + return 0; + } + + // Récupère l'arbre de couches + var this_ = this; + this_.getAjaxLayersTree(sUrl, function(oTree){ + + oVmap.log("oTree: ", oTree); + + // Change la variable oLayersTree + //this_.setLayersTree(oTree); + + // Rafraichit la carte + this_.reloadMap(); + + // Signale que c'est la carte utilisée + for (var i = 0; i < this_.oMapCatalog_['maps'].length; i++) { + if (this_.oMapCatalog_['maps'][i]['url'] === sUrl) + this_.oMapCatalog_['compareMap'] = i; + } + this_.setUsedMap('compare'); + + oVmap.log("oVmap.event: mapCompareChanged"); + oVmap['scope'].$broadcast('mapCompareChanged'); + angular.element('#map-compare-tool-btn').click(); + setTimeout(function () { + oVmap.resizeLayerTools(); + }, 1000); + }); +}; + /** * Put the used map to used * @returns {undefined} */ -nsVmap.nsMapManager.MapManager.prototype.setUsedMap = function () { +nsVmap.nsMapManager.MapManager.prototype.setUsedMap = function (sKey) { oVmap.log('nsVmap.nsMapManager.MapManager.prototype.setUsedMap'); + sKey = (goog.isDefAndNotNull(sKey)) ? sKey : 'used'; + // Met toutes les cartes à used = false for (var i = 0; i < this.oMapCatalog_['maps'].length; i++) { - this.oMapCatalog_['maps'][i]['used'] = false; + this.oMapCatalog_['maps'][i][sKey] = false; } // Met la carte utilisée à used = true - this.oMapCatalog_['maps'][this.oMapCatalog_['usedMap']]['used'] = true; + this.oMapCatalog_['maps'][this.oMapCatalog_[sKey + 'Map']][sKey] = true; oVmap.resizeLayerTools(false); }; diff --git a/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js b/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js index bd1150b4f386c2807fa30a27b3638aeeb84a8c26..67a457415a42bd5fa50be5cf2ccfc3414d4c5059 100644 --- a/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js +++ b/src/module_vmap/module/javascript/app/vmap/mapmanager/mapmodal/maplistlitle.js @@ -42,7 +42,12 @@ nsVmap.nsMapManager.nsMapModal.MapListLitle.prototype.maplistlitleDirective = fu controller: 'AppMaplistlitleController', controllerAs: 'ctrl', bindToController: true, - templateUrl: oVmap['properties']['vmap_folder'] + '/' + 'template/layers/mapmodal/' + (oVmap['properties']['is_mobile'] ? 'maplistlitle_mobile.html' : 'maplistlitle.html') + templateUrl: oVmap['properties']['vmap_folder'] + '/' + 'template/layers/mapmodal/' + (oVmap['properties']['is_mobile'] ? 'maplistlitle_mobile.html' : 'maplistlitle.html'), + link : function ($scope, $element, $attrs){ + console.log($attrs) + $scope["compare"] = goog.isDefAndNotNull($attrs["compare"]); + $attrs.$observe("compare", function(){$scope["compare"] = goog.isDefAndNotNull($attrs["compare"])}); + } }; }; diff --git a/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html b/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html index 2089b99cf5622ae5d17850d76b84c3b77b3102f1..bbfb1ce35b74f2e4b9d053cecca26f3913f72c2e 100644 --- a/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html +++ b/src/module_vmap/module/template/layers/mapmodal/maplistlitle.html @@ -32,6 +32,7 @@ <div ng-repeat="map in oTheme.maps| orderBy: 'name'"> <div ng-if="($index + 1) % 4 === 0" class="row"> <div url="{{map.url}}" + ng-if="!compare" title="{{map.description}}" class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" style="text-align: center; font-size: 12px;" @@ -43,8 +44,21 @@ <span>{{map.name}}</span> </div> </div> + <div url="{{map.url}}" + ng-if="compare" + title="{{map.description}}" + class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" + style="text-align: center; font-size: 12px;" + onclick="oVmap.getMapManager().loadCompareMap(this)" + data-dismiss="modal"> + + <div onclick="$('#maplistlitle-container').removeClass('open')" ng-class="{'border-black': map.compare === true}" style="overflow:hidden" ng-attr-title="{{map.description}}"> + <div class="img-map" style="background-image: url('{{map.thumbnail}}')"></div> + <span>{{map.name}}</span> + </div> + </div> </div> - <div ng-if="($index + 1) % 4 !== 0" + <div ng-if="($index + 1) % 4 !== 0 && !compare" url="{{map.url}}" title="{{map.description}}" class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" @@ -57,6 +71,19 @@ <span>{{map.name}}</span> </div> </div> + <div ng-if="($index + 1) % 4 !== 0 && compare" + url="{{map.url}}" + title="{{map.description}}" + class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" + style="text-align: center; font-size: 12px;" + onclick="oVmap.getMapManager().loadCompareMap(this)" + data-dismiss="modal"> + + <div onclick="$('#maplistlitle-container').removeClass('open')" ng-class="{'border-black': map.compare === true}" style="overflow:hidden" ng-attr-title="{{map.description}}"> + <div class="img-map" style="background-image: url('{{map.thumbnail}}')"></div> + <span>{{map.name}}</span> + </div> + </div> </div> </div> </div>