From af13d1c172c1a7b2747a7e057c54c390c29fee19 Mon Sep 17 00:00:00 2001
From: Anthony Borghi <anthony.borghi@veremes.com>
Date: Fri, 2 Nov 2018 12:26:48 +0100
Subject: [PATCH] Ajout de l'outils dans Basictools

---
 .../javascript/app/vmap/tools/basictools.js   |  3 +-
 .../javascript/app/vmap/tools/compare.js      | 89 +++++++++++++++++++
 .../module/template/tools/basictools.html     | 24 ++++-
 .../template/tools/comparemapmanager.html     | 11 +++
 4 files changed, 122 insertions(+), 5 deletions(-)
 create mode 100644 src/module_vmap/module/javascript/app/vmap/tools/compare.js
 create mode 100644 src/module_vmap/module/template/tools/comparemapmanager.html

diff --git a/src/module_vmap/module/javascript/app/vmap/tools/basictools.js b/src/module_vmap/module/javascript/app/vmap/tools/basictools.js
index f53955c4..32d67254 100644
--- a/src/module_vmap/module/javascript/app/vmap/tools/basictools.js
+++ b/src/module_vmap/module/javascript/app/vmap/tools/basictools.js
@@ -17,6 +17,7 @@ goog.require('nsVmap.nsToolsManager.Select');
 goog.require('nsVmap.nsToolsManager.Insert');
 goog.require('nsVmap.nsToolsManager.Print');
 goog.require('nsVmap.nsToolsManager.Urlexporter');
+goog.require('nsVmap.nsToolsManager.Compare');
 
 
 /**
@@ -429,4 +430,4 @@ nsVmap.nsToolsManager.BasicTools.prototype.basictoolsController.prototype.locati
 
 // Définit la directive et le controller
 oVmap.module.directive('appBasictools', nsVmap.nsToolsManager.BasicTools.prototype.basictoolsDirective);
-oVmap.module.controller('AppBasictoolsController', nsVmap.nsToolsManager.BasicTools.prototype.basictoolsController);
\ No newline at end of file
+oVmap.module.controller('AppBasictoolsController', nsVmap.nsToolsManager.BasicTools.prototype.basictoolsController);
diff --git a/src/module_vmap/module/javascript/app/vmap/tools/compare.js b/src/module_vmap/module/javascript/app/vmap/tools/compare.js
new file mode 100644
index 00000000..271ac91c
--- /dev/null
+++ b/src/module_vmap/module/javascript/app/vmap/tools/compare.js
@@ -0,0 +1,89 @@
+/* global oVmap, nsVmap, goog, ol, vitisApp */
+
+/**
+ * @author: Anthony Borghi
+ * @Description: Fichier contenant la classe nsVmap.nsToolsManager.Urlexporter
+ * cette classe permet à l'utilisateur d'exporter une url pour un autre utilisateur
+ */
+goog.provide('nsVmap.nsToolsManager.Compare');
+
+goog.require('oVmap');
+
+/**
+ * @classdesc
+ * Class {@link nsVmap.nsToolsManager.VmapUser}
+ * @constructor
+ * @export
+ */
+nsVmap.nsToolsManager.compare = function () {
+    oVmap.log('nsVmap.nsToolsManager.Compare');
+};
+
+
+
+/**
+ * Directive
+ * @return {angular.Directive} The directive specs.
+ * @constructor
+ */
+nsVmap.nsToolsManager.compare.prototype.compareDirective = function () {
+    oVmap.log("nsVmap.nsToolsManager.compare.prototype.compareDirective");
+    return {
+        restrict: 'A',
+        scope: {
+            'map': '=appMap',
+            'lang': '=appLang'
+        },
+        controller: 'AppCompareMode',
+        controllerAs: 'ctrl',
+        bindToController: true,
+        templateUrl: oVmap['properties']['vmap_folder'] + '/' + 'template/tools/comparemapmanager.html'
+    };
+};
+
+/**
+ * Controler
+ * @constructor
+ * @param {object} $scope
+ * @returns {undefined}
+ * @ngInject
+ */
+nsVmap.nsToolsManager.compare.prototype.compareController = function ($scope, $element) {
+    oVmap.log("nsVmap.nsToolsManager.compare.prototype.compareController");
+
+    var this_ = this;
+
+    this.$scope_ = $scope;
+
+    /**
+     * The current properties
+     */
+    this['properties'] = oVmap['properties'];
+
+    /**
+     * The current token
+     */
+    this['token'] = oVmap['properties']['token'];
+
+    /**
+     * @type {boolean}
+     */
+    this["useCompareMode"] = false;
+
+    // recalcule l'url quand on change de carte
+    //oVmap['scope'].$on('mapChanged', function () {
+        //this_["urlConstructor"]();
+    //});
+
+    $scope.$watch("ctrl.useCompareMode", function(){
+        $scope.$root["compare_enabled"] = this_["useCompareMode"];
+    })
+
+    /*oVmap.getMap().getOLMap().on("moveend", function(event){
+        this_["urlConstructor"]();
+    });*/
+};
+
+// Définit la directive et le controller
+oVmap.module.directive('appCompareMode', nsVmap.nsToolsManager.compare.prototype.compareDirective);
+oVmap.module.controller('AppCompareMode', nsVmap.nsToolsManager.compare.prototype.compareController);
diff --git a/src/module_vmap/module/template/tools/basictools.html b/src/module_vmap/module/template/tools/basictools.html
index e85c7476..43ec402c 100644
--- a/src/module_vmap/module/template/tools/basictools.html
+++ b/src/module_vmap/module/template/tools/basictools.html
@@ -19,6 +19,22 @@
                         </div>
                     </li>
                 </div>
+                <!-- Outil de comparaison -->
+                <div>
+                    <li role="presentation" style="position: inherit" class="basic-tools-dropdown">
+                        <a class="basic-tools-element pointer"
+                           id="map-compare-tool-btn"
+                           title="Comparaison de carte"
+                           onclick="oVmap.getToolsManager().getBasicTools().toggleTool(this)">
+                            <span class="icon-mirror" aria-hidden="true"></span>
+                        </a>
+                        <div app-compare-mode app-lang="ctrl.lang" app-map="ctrl.map"
+                             id="basic-tools-dropdown-comapremode"
+                             class="dropdown-menu basic-tools-dropdown-element no-padding"
+                             style="margin: -10px -1px; width: 30%; padding-top: 15px !important;">
+                        </div>
+                    </li>
+                </div>
                 <!-- Login de l'utilisateur -->
                 <div class="right">
                     <li role="presentation" style="position: inherit" class="basic-tools-dropdown">
@@ -58,7 +74,7 @@
                         </a>
                         <div app-print app-lang="ctrl.lang" app-map="ctrl.map" app-action="ctrl.currentAction"
                              id="basic-tools-dropdown-print-content"
-                             class="dropdown-menu basic-tools-dropdown-element basic-tools-dropdown-print-content">		
+                             class="dropdown-menu basic-tools-dropdown-element basic-tools-dropdown-print-content">
                         </div>
                     </li>
                 </div>
@@ -66,13 +82,13 @@
                 <div class="right">
                     <li role="presentation" style="position: inherit" class="basic-tools-dropdown">
                         <a class="basic-tools-element pointer"
-                           id="basic-tools-dropdown-insert-btn" 
+                           id="basic-tools-dropdown-insert-btn"
                            title="Insertion"
                            onclick="oVmap.getToolsManager().getBasicTools().toggleTool(this)">
                             <span class="icon-add-feature" aria-hidden="true"></span>
                         </a>
                         <div app-insert app-lang="ctrl.lang" app-map="ctrl.map" app-action="ctrl.currentAction"
-                             id="basic-tools-dropdown-insert-content" 
+                             id="basic-tools-dropdown-insert-content"
                              class="dropdown-menu basic-tools-dropdown-element basic-tools-dropdown-select-content">
                         </div>
                     </li>
@@ -96,4 +112,4 @@
             </ul>
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/src/module_vmap/module/template/tools/comparemapmanager.html b/src/module_vmap/module/template/tools/comparemapmanager.html
new file mode 100644
index 00000000..d1ae7317
--- /dev/null
+++ b/src/module_vmap/module/template/tools/comparemapmanager.html
@@ -0,0 +1,11 @@
+<!--Mode compare-->
+<div class="row margin-sides-0 no-padding">
+    <div class = "col-md-12">
+          <input type="checkbox" ng-model="ctrl.useCompareMode" id="useCompareModeCheckbox">
+          <label for="useCompareModeCheckbox" class="control-label">Activer / Désactiver le mode comparaison</label>
+    </div>
+    <div class="col-md-12"><hr></div>
+    <div class="col-md-12 no-padding">
+        <app-maplistlitle app-lang="ctrl.lang" app-maplistlitle-map="ctrl.map" data-compare="true"></app-maplistlitle>
+    </div>
+</div>
-- 
GitLab