diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js index 5b8dff96147a86b7f72d05b0cd48aacd7ebe93ca..366dc77be1d9d56af8886afb4754b4d2a3aa5900 100644 --- a/frontend-js/src/main/js/map/CustomMap.js +++ b/frontend-js/src/main/js/map/CustomMap.js @@ -810,7 +810,7 @@ CustomMap.prototype.retrieveOverlayDetailDataForElement = function(element, gene logger.warn("No information about general overlay request for overlay: ", overlayName); generalRequest = false; } - generalRequest = generalRequest || !overlay.allowSearchById(); + generalRequest = generalRequest || (!overlay.allowSearchById() && overlay.allowGeneralSearch()); promises.push(overlay.getDetailDataByIdentifiedElement(element, generalRequest)); } diff --git a/frontend-js/src/main/js/map/window/AbstractInfoWindow.js b/frontend-js/src/main/js/map/window/AbstractInfoWindow.js index 2d4c74d768f5e3c32ee340681d245f2ae00204cc..43a631494234e09549c2d9fe4d858e7c2f97da18 100644 --- a/frontend-js/src/main/js/map/window/AbstractInfoWindow.js +++ b/frontend-js/src/main/js/map/window/AbstractInfoWindow.js @@ -34,18 +34,20 @@ function AbstractInfoWindow(abstractMarker, map) { var onOverlayFullViewChanged = function(e) { var self = e.object; // first change the content of the element - self.update().then(function() { - if (e.newVal) { - var element = new IdentifiedElement({ - objectId : self.getElementId(), - modelId : self.getCustomMap().getId(), - type : self.getElementType() + self.update().then( + function() { + if (e.newVal) { + var element = new IdentifiedElement({ + objectId : self.getElementId(), + modelId : self.getCustomMap().getId(), + type : self.getElementType() + }); + + return self.getCustomMap().getTopMap().retrieveOverlayDetailDataForElement(element, + self.getOverlayFullViewArray()); + } }); - return self.getCustomMap().getTopMap().retrieveOverlayDetailDataForElement(element, self.getOverlayFullViewArray()); - } - }); - }; // default settings of visualizing full information about elements diff --git a/frontend-js/src/test/js/map/marker/AliasMarker-test.js b/frontend-js/src/test/js/map/marker/AliasMarker-test.js index 5b1311374e8278124bc924807b65017e6220e6f5..64b8934aa6901deba20cce2a255a63cd24a77390 100644 --- a/frontend-js/src/test/js/map/marker/AliasMarker-test.js +++ b/frontend-js/src/test/js/map/marker/AliasMarker-test.js @@ -1,5 +1,9 @@ "use strict"; +/* exported logger */ + +var logger = require('../../logger'); + var Helper = require('../../Helper'); var AliasMarker = require('../../../../main/js/map/marker/AliasMarker'); @@ -39,6 +43,7 @@ describe('AliasMarker', function() { it("click on marker", function() { var map; + var marker; return ServerConnector.getProject().then(function(project) { map = helper.createCustomMap(project); return map.getModel().getAliasById(329171); @@ -46,11 +51,33 @@ describe('AliasMarker', function() { var identifiedElement = new IdentifiedElement(alias); - var aliasMarker = new AliasMarker(identifiedElement, map); + marker = new AliasMarker(identifiedElement, map); + return marker.init(); + }).then(function() { + return google.maps.event.trigger(marker.getGoogleMarker(), "click"); + }); + }); - return google.maps.event.trigger(aliasMarker.getGoogleMarker(), "click").then(function() { + it("click on marker when chemical is not available", function() { + var projectId = "complex_model_with_submaps"; + helper.setUrl("http://test/?id=" + projectId); + GuiConnector.getParams["id"] = projectId; + var map; + var marker; + return ServerConnector.getProject(projectId).then(function(project) { + map = helper.createCustomMap(project); + var ov = helper.createChemicalDbOverlay(map); + ov.setAllowGeneralSearch(false); + ov.setAllowSearchById(false); + return map.getModel().getAliasById(345334); + }).then(function(alias) { + var identifiedElement = new IdentifiedElement(alias); + + marker = new AliasMarker(identifiedElement, map); + return marker.init(); + }).then(function() { - }); + return google.maps.event.trigger(marker.getGoogleMarker(), "click"); }); }); diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..b30361a6e9c16b62594a8140c2a13c3e2eeb192a --- /dev/null +++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +[{"formerSymbols":[],"references":[],"modelId":16728,"synonyms":[],"description":"","type":"Protein","compartmentId":345332,"name":"s2","bounds":{"x":201.0,"y":109.0,"width":80.0,"height":40.0},"id":345334,"hierarchyVisibilityLevel":1}] \ No newline at end of file