From 34adf614119c404602a7fba18466ae3354d619d7 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 3 Jul 2017 13:48:50 +0200
Subject: [PATCH] openWindowForAlias syntax changed (takes alias and marker as
 arguments)

---
 .../src/main/js/map/AbstractCustomMap.js      | 19 +++---
 frontend-js/src/main/js/map/CustomMap.js      | 10 ++--
 .../src/main/js/map/surface/AliasSurface.js   |  2 +-
 frontend-js/src/test/js/map/CustomMap-test.js | 60 ++++++++++---------
 4 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js
index eea4fe734c..e8996644b7 100644
--- a/frontend-js/src/main/js/map/AbstractCustomMap.js
+++ b/frontend-js/src/main/js/map/AbstractCustomMap.js
@@ -646,25 +646,24 @@ AbstractCustomMap.prototype._hideSelectedLayout = function(layoutId) {
  * @param aliasId
  *          identifier of the alias
  */
-AbstractCustomMap.prototype._openInfoWindowForAlias = function(aliasId) {
+AbstractCustomMap.prototype._openInfoWindowForAlias = function(alias, googleMarker) {
   var self = this;
 
-  var infoWindow = this.getAliasInfoWindowById(aliasId);
+  var infoWindow = this.getAliasInfoWindowById(alias.getId());
   if (infoWindow !== null && infoWindow !== undefined) {
     if (!infoWindow.isOpened()) {
       infoWindow.open();
     } else {
-      logger.warn("Info window for alias: " + aliasId + " is already opened");
+      logger.warn("Info window for alias: " + alias.getId() + " is already opened");
     }
-    return Promise.resolve();
+    return Promise.resolve(infoWindow);
   } else {
-    return self.getModel().getAliasById(aliasId).then(function(alias) {
-      self._aliasInfoWindow[aliasId] = new AliasInfoWindow({
-        alias : alias,
-        map : self
-      });
-      return self._aliasInfoWindow[aliasId].init();
+    self._aliasInfoWindow[alias.getId()] = new AliasInfoWindow({
+      alias : alias,
+      map : self,
+      marker : googleMarker,
     });
+    return self._aliasInfoWindow[alias.getId()].init();
   }
 };
 
diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js
index 5d9b9965b0..cb33a48871 100644
--- a/frontend-js/src/main/js/map/CustomMap.js
+++ b/frontend-js/src/main/js/map/CustomMap.js
@@ -683,12 +683,10 @@ CustomMap.prototype.refreshInfoWindows = function() {
  * @param modelId
  *          identifier of {@link AbstractCustomMap}
  */
-CustomMap.prototype.openInfoWindowForAlias = function(aliasId, modelId) {
-  logger.debug("Opening info window for alias: " + aliasId + ", model: " + modelId);
-  var model = this.getSubmapById(modelId);
-  return model.getModel().getAliasById(aliasId, true).then(function() {
-    return model._openInfoWindowForAlias(aliasId);
-  });
+CustomMap.prototype.openInfoWindowForAlias = function(alias) {
+  logger.debug("Opening info window for alias: " + alias.getId() + ", model: " + alias.getModelId());
+  var submap = this.getSubmapById(alias.getModelId());
+  return submap._openInfoWindowForAlias(alias);
 };
 
 /**
diff --git a/frontend-js/src/main/js/map/surface/AliasSurface.js b/frontend-js/src/main/js/map/surface/AliasSurface.js
index a164896322..6fd1f06ee5 100644
--- a/frontend-js/src/main/js/map/surface/AliasSurface.js
+++ b/frontend-js/src/main/js/map/surface/AliasSurface.js
@@ -43,7 +43,7 @@ AliasSurface.prototype.setMap = function(map) {
 };
 
 AliasSurface.prototype.onClickHandler = function() {
-  return this.getCustomMap().getTopMap().openInfoWindowForAlias(this.aliasData.getId(), this.aliasData.getModelId());
+  return this.getCustomMap().getTopMap().openInfoWindowForAlias(this.aliasData);
 }
 
 AliasSurface.prototype.setColor = function(color) {
diff --git a/frontend-js/src/test/js/map/CustomMap-test.js b/frontend-js/src/test/js/map/CustomMap-test.js
index 0168f69c61..6d2af483b1 100644
--- a/frontend-js/src/test/js/map/CustomMap-test.js
+++ b/frontend-js/src/test/js/map/CustomMap-test.js
@@ -201,40 +201,42 @@ describe('CustomMap', function() {
     });
   });
 
-  it("openInfoWindowForAlias", function() {
-    var map = helper.createCustomMap();
-    var layout = helper.createLayout();
-    var alias = helper.createAlias();
-    alias.setModelId(map.getId());
-    var layoutAlias = helper.createLayoutAlias();
-    layoutAlias.setId(alias.getId());
+  describe("openInfoWindowForAlias", function() {
+    it("default", function() {
+      var map = helper.createCustomMap();
+      var layout = helper.createLayout();
+      var alias = helper.createAlias();
+      alias.setModelId(map.getId());
+      var layoutAlias = helper.createLayoutAlias();
+      layoutAlias.setId(alias.getId());
 
-    layout.addAlias(layoutAlias);
+      layout.addAlias(layoutAlias);
 
-    // create layout
-    map.getModel().addLayout(layout);
-    map.getModel().addAlias(alias);
+      // create layout
+      map.getModel().addLayout(layout);
+      map.getModel().addAlias(alias);
 
-    return map.openInfoWindowForAlias(alias.getId(), map.getId(), function() {
-      assert.ok(map.getAliasInfoWindowById(alias.getId()));
-      assert.ok(map.getAliasInfoWindowById(alias.getId()).isOpened());
+      return map.openInfoWindowForAlias(alias).then(function() {
+        assert.ok(map.getAliasInfoWindowById(alias.getId()));
+        assert.ok(map.getAliasInfoWindowById(alias.getId()).isOpened());
+      });
     });
-  });
 
-  it("openInfoWindowForAlias for incomplete alias", function() {
-    var map, alias;
-    return ServerConnector.getProject().then(function(project) {
-      var options = helper.createCustomMapOptions(project);
-      map = new CustomMap(options);
+    it("for incomplete alias", function() {
+      var map, alias;
+      return ServerConnector.getProject().then(function(project) {
+        var options = helper.createCustomMapOptions(project);
+        map = new CustomMap(options);
 
-      return map.getModel().getAliasById(329171, false);
-    }).then(function(result) {
-      alias = result;
-      assert.notOk(alias.isComplete());
-      return map.openInfoWindowForAlias(alias.getId(), map.getId());
-    }).then(function() {
-      assert.ok(map.getAliasInfoWindowById(alias.getId()));
-      assert.ok(map.getAliasInfoWindowById(alias.getId()).isOpened());
+        return map.getModel().getAliasById(329171, false);
+      }).then(function(result) {
+        alias = result;
+        assert.notOk(alias.isComplete());
+        return map.openInfoWindowForAlias(alias);
+      }).then(function() {
+        assert.ok(map.getAliasInfoWindowById(alias.getId()));
+        assert.ok(map.getAliasInfoWindowById(alias.getId()).isOpened());
+      });
     });
   });
 
@@ -325,7 +327,7 @@ describe('CustomMap', function() {
         });
       }).then(function() {
         assert.equal(marker.getIcon(), "new_icon.png");
-        
+
         assert.notOk(oc.mapOverlays["REACTION"][reaction.getId()]);
       });
     });
-- 
GitLab