diff --git a/frontend-js/src/main/js/plugin/MinervaPluginProxy.js b/frontend-js/src/main/js/plugin/MinervaPluginProxy.js index c97e39d4093703a9932c0dc7b206ff71c3a21bfc..1e1b8673c49f6690f59252f2a1227e5de4b89185 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 94b2e434def37343b10ce3edda140348b5e8b870..54ddd8d90c31e55aa599df021092153dadf15d71 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 () {