diff --git a/frontend-js/src/main/js/gui/OverviewDialog.js b/frontend-js/src/main/js/gui/OverviewDialog.js index 648702aa0725f821a82f7e377fe6e90259183507..93d84c6492ccf722a26a84d2e576687d31fd3e4b 100644 --- a/frontend-js/src/main/js/gui/OverviewDialog.js +++ b/frontend-js/src/main/js/gui/OverviewDialog.js @@ -12,15 +12,15 @@ function OverviewDialog(params) { AbstractGuiElement.call(this, params); var self = this; $(self.getElement()).dialog({ - autoOpen : false, - resizable : false, + autoOpen: false, + resizable: false, }); } OverviewDialog.prototype = Object.create(AbstractGuiElement.prototype); OverviewDialog.prototype.constructor = OverviewDialog; -OverviewDialog.prototype.showOverview = function(overviewImageId) { +OverviewDialog.prototype.showOverview = function (overviewImageId) { var self = this; var map = self.getMap(); @@ -98,8 +98,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) { var xNormal = xPosition / currentRatio; var yNormal = yPosition / currentRatio; var point = { - x : xNormal, - y : yNormal + x: xNormal, + y: yNormal }; var link = null; @@ -131,8 +131,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) { } this.overviewImage.mousePos = { - x : 0, - y : 0 + x: 0, + y: 0 }; // this listener should be called when mouse moves over image, it purpose is @@ -150,8 +150,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) { var xNormal = position.x / currentRatio; var yNormal = position.y / currentRatio; var point = { - x : xNormal, - y : yNormal + x: xNormal, + y: yNormal }; if (self.overviewImage.mousePos.x !== position.x || self.overviewImage.mousePos.y !== position.y) { @@ -179,7 +179,7 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) { $(self.getElement()).dialog("open"); }; -OverviewDialog.prototype.openLink = function(link) { +OverviewDialog.prototype.openLink = function (link) { var self = this; var map = self.getMap(); if (link.type === "OverviewModelLink") { @@ -197,14 +197,15 @@ OverviewDialog.prototype.openLink = function(link) { self.showOverview(link.imageLinkId); } else if (link.type === "OverviewSearchLink") { logger.debug("Sending search query. Query: " + link.query); - GuiConnector.search(link.query); - $(self.getElement()).dialog("close"); + return map.getOverlayByName("search").searchByQuery(link.query).then(function () { + $(self.getElement()).dialog("close"); + }, GuiConnector.alert); } else { logger.warn("Unknown type of link: " + link.type + ". Don't know what to do... LinkId: " + link.idObject); } }; -OverviewDialog.prototype.drawClickableShapes = function(canvas, ratio) { +OverviewDialog.prototype.drawClickableShapes = function (canvas, ratio) { var ctx = canvas.getContext("2d"); // clear canvas ctx.clearRect(0, 0, canvas.width, canvas.height); @@ -223,7 +224,7 @@ OverviewDialog.prototype.drawClickableShapes = function(canvas, ratio) { } }; -OverviewDialog.prototype.destroy = function() { +OverviewDialog.prototype.destroy = function () { $(this.getElement()).dialog("destroy"); }; diff --git a/frontend-js/src/test/js/gui/OverviewDialog-test.js b/frontend-js/src/test/js/gui/OverviewDialog-test.js index 862bdeb351416b6171ac1ac9625ea3a81a85bc70..c214b9cf45ccf8a8a22b41de4c44b0f0262690b1 100644 --- a/frontend-js/src/test/js/gui/OverviewDialog-test.js +++ b/frontend-js/src/test/js/gui/OverviewDialog-test.js @@ -1,8 +1,7 @@ "use strict"; -/* exported logger,assert */ - require("../mocha-config.js"); +var ServerConnector = require('../ServerConnector-mock'); var CustomMap = require('../../../main/js/map/CustomMap'); var OverviewDialog = require('../../../main/js/gui/OverviewDialog'); @@ -11,17 +10,17 @@ var chai = require('chai'); var assert = chai.assert; var logger = require('../logger'); -describe('OverviewDialog', function() { +describe('OverviewDialog', function () { - it('open image', function() { + it('open image', function () { helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function(project) { + return ServerConnector.getProject().then(function (project) { var options = helper.createOptions(project); var map = new CustomMap(options); var dialog = new OverviewDialog({ - element : testDiv, - customMap : map + element: testDiv, + customMap: map }); dialog.showOverview(project.getOverviewImages()[1].idObject); @@ -29,15 +28,15 @@ describe('OverviewDialog', function() { }); }); - it('open invalid image', function() { + it('open invalid image', function () { helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function(project) { + return ServerConnector.getProject().then(function (project) { var options = helper.createOptions(project); var map = new CustomMap(options); var dialog = new OverviewDialog({ - element : testDiv, - customMap : map + element: testDiv, + customMap: map }); dialog.showOverview(-1123); @@ -45,22 +44,21 @@ describe('OverviewDialog', function() { }); }); - describe('openLink', function() { - it('link to map', function() { + describe('openLink', function () { + it('link to map', function () { helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function(project) { - var options = helper.createOptions(project); - var map = new CustomMap(options); + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); var dialog = new OverviewDialog({ - element : testDiv, - customMap : map + element: testDiv, + customMap: map }); - + dialog.openLink({ - type : "OverviewModelLink", - modelLinkId : map.getId(), - latLng : new google.maps.LatLng(1, 34) + type: "OverviewModelLink", + modelLinkId: map.getId(), + latLng: new google.maps.LatLng(1, 34) }); assert.equal(logger.getWarnings().length, 0); assert.equal(1, map.getGoogleMap().getCenter().lat()); @@ -68,6 +66,32 @@ describe('OverviewDialog', function() { dialog.destroy(); }); }); + it('link to search', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + var dialog, searchOverlay; + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + searchOverlay = helper.createSearchDbOverlay(map); + + dialog = new OverviewDialog({ + element: testDiv, + customMap: map + }); + + return dialog.openLink({ + type: "OverviewSearchLink", + query: "some_query" + }); + }).then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.equal(1, searchOverlay.getQueries().length); + return searchOverlay.getIdentifiedElements(); + }).then(function (elements) { + assert.equal(0, elements.length); + }).finally(function () { + dialog.destroy(); + }); + }); }); }); diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..0637a088a01e8ddab3bf3fa98dbe804cbde1a0dc --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[] \ No newline at end of file