From 2bad47756ea1e226bf91f84826db338c85a0615c Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 8 Mar 2019 12:27:56 +0100
Subject: [PATCH] current zoom level is used when no zoom level is provided

---
 .../src/main/js/plugin/MinervaPluginProxy.js  | 10 +++++--
 .../test/js/plugin/MinervaPluginProxy-test.js | 28 +++++++++++++++++++
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
index c97e39d409..1e1b8673c4 100644
--- a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
+++ b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js
@@ -65,7 +65,7 @@ var Promise = require("bluebird");
  * @property {(function({modelId: number, zoom: number}): Promise|PromiseLike)} setZoom
  * @property {(function(*): number)} getZoom
  * @property {(function(*): PromiseLike)} openMap
- * @property {function({dbOverlayName: string, [query]:string, [perfect]: boolean, [fitBounds]:boolean, [coordinates]:Point}): Promise|PromiseLike} triggerSearch
+ * @property {function({dbOverlayName: string, [query]:string, [perfect]: boolean, [fitBounds]:boolean, [coordinates]:Point, [zoom]:number}, [modelId]:number): Promise|PromiseLike} triggerSearch
  * @property {function(): Promise|PromiseLike} clear
  */
 
@@ -452,11 +452,15 @@ function createProjectMap(options) {
       if (params.query !== undefined) {
         return dbOverlay.searchByQuery(params.query, params.perfect, params.fitBounds);
       } else if (dbOverlay instanceof SearchDbOverlay) {
+        var zoom = params.zoom;
+        if (zoom ===undefined) {
+          zoom = map.getSubmapById(params.modelId).getZoom();
+        }
         return dbOverlay.searchByCoordinates({
-          coordinates: params.coordinates,
+          coordinates: new Point(params.coordinates),
           modelId: params.modelId,
           fitBounds: params.fitBounds,
-          zoom: params.zoom
+          zoom: zoom
         });
       } else {
         return Promise.reject(new Error("Don't know how to handle your query"));
diff --git a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
index 94b2e434de..54ddd8d90c 100644
--- a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
+++ b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js
@@ -977,6 +977,34 @@ describe('MinervaPluginProxy', function () {
           return map.destroy();
         });
       });
+      it('coordinates without zoom', function () {
+        var callbackOk = false;
+        var map;
+        return ServerConnector.getProject().then(function (project) {
+          map = helper.createCustomMap(project);
+          helper.createSearchDbOverlay(map);
+          var proxy = createProxy(map);
+
+          proxy.project.map.addListener({
+            dbOverlayName: "search",
+            type: "onSearch",
+            callback: function (elements) {
+              assert.ok(elements.length > 0);
+              assert.ok(elements[0].length > 0);
+              callbackOk = true;
+            }
+          });
+          return proxy.project.map.triggerSearch({
+            coordinates: new Point(316.05, 253.61),
+            modelId: map.getModel().getId(),
+            dbOverlayName: "search"
+          });
+        }).then(function () {
+          assert.ok(callbackOk);
+          assert.equal(0, logger.getWarnings().length);
+          return map.destroy();
+        });
+      });
     });
     describe('drug', function () {
       it('query search', function () {
-- 
GitLab