From 7f3f12a97393892ddab03cac4ef001d15abf0553 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Thu, 15 Mar 2018 10:32:32 +0100
Subject: [PATCH] getting zoom method

---
 .../src/main/js/map/AbstractCustomMap.js        |  6 +++++-
 .../src/main/js/plugin/MinervaPluginProxy.js    |  7 +++++++
 .../test/js/plugin/MinervaPluginProxy-test.js   | 17 +++++++++++++++++
 3 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js
index 348f6818ee..c5387bf2af 100644
--- a/frontend-js/src/main/js/map/AbstractCustomMap.js
+++ b/frontend-js/src/main/js/map/AbstractCustomMap.js
@@ -1081,11 +1081,15 @@ AbstractCustomMap.prototype.setZoom = function (zoom) {
   if (this.initialized) {
     return Promise.resolve(this.getGoogleMap().setZoom(zoom));
   } else {
-    logger.warn("cannot center map that is not opened yet");
+    logger.warn("cannot change zoom for map that is not opened yet");
     return Promise.resolve();
   }
 };
 
+AbstractCustomMap.prototype.getZoom = function () {
+  return this.getGoogleMap().getZoom()
+};
+
 AbstractCustomMap.prototype.fitBounds = function (markers) {
   var self = this;
   var map = self.getGoogleMap();
diff --git a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
index 672a159302..40eeb4fb94 100644
--- a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
+++ b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
@@ -423,6 +423,13 @@ function createProjectMap(options) {
       }
       return submap.setZoom(params.zoom);
     },
+    getZoom: function (params) {
+      var submap = map.getSubmapById(params.modelId);
+      if (submap === null) {
+        throw new Error("Unknown modelId: " + params.modelId);
+      }
+      return submap.getZoom();
+    },
     openMap: function (params) {
       return map.openSubmap(params.id);
     }
diff --git a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
index 2e561621db..f6ff68f9fd 100644
--- a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
+++ b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
@@ -328,6 +328,23 @@ describe('MinervaPluginProxy', function () {
     });
   });
 
+  it("getZoom", function () {
+    var map, proxy;
+    return ServerConnector.getProject().then(function (project) {
+      map = helper.createCustomMap(project);
+      proxy = createProxy(map);
+      return proxy.project.map.setZoom({
+        modelId: 15781,
+        zoom: 10
+      });
+    }).then(function () {
+      var zoom = proxy.project.map.getZoom({modelId: 15781});
+      assert.equal(zoom, 10);
+    }).then(function () {
+      map.destroy();
+    });
+  });
+
   it("getReactionByParticipantId", function () {
     var ie = {
       modelId: 15781,
-- 
GitLab