diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index d5c58832be6d199138051668abae4138abd83d7f..bfde71174a8acc063017f8e2a50899b2825b1ae6 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -299,7 +299,7 @@ ServerConnector.sendClearRequest = function(overlayName) { } else { logger.warn("Clear function for " + overlayName + " doesn't exist"); } - } else if (overlayName==="search" || overlayName==="comment"){ + } else if (overlayName==="search" || overlayName==="comment" || overlayName ==="drug"){ logger.warn("Send clear request for overlay that doesn't support it: "+overlayName); } else { throw new Error("[Clear function] Unknown overlay: ", overlayName); diff --git a/frontend-js/src/main/js/gui/DrugPanel.js b/frontend-js/src/main/js/gui/DrugPanel.js index 68ab9e4b6e3999b8e23965d64517436ac3fb3fa2..72091348d1b21cff054c2c0a8f85d6316e38eb7c 100644 --- a/frontend-js/src/main/js/gui/DrugPanel.js +++ b/frontend-js/src/main/js/gui/DrugPanel.js @@ -15,13 +15,17 @@ DrugPanel.prototype.constructor = DrugPanel; DrugPanel.prototype.createDrugHeader = function(drug) { var self = this; var result = document.createElement("div"); - result.appendChild(self.createParamLine("Drug: ", drug.getName())); - result.appendChild(self.createParamLine("Description: ", drug.getDescription())); - result.appendChild(self.createArrayParamLine("Synonyms: ", drug.getSynonyms())); - result.appendChild(self.createArrayParamLine("Brand names: ", drug.getBrandNames())); - result.appendChild(self.createParamLine("Blood brain barrier: ", drug.getBloodBrainBarrier())); - result.appendChild(self.createAnnotations("Sources: ", drug.getReferences())); - result.appendChild(self.createNewLine()); + if (drug === undefined || drug.getName() === undefined) { + result.appendChild(self.createLabel("NOT FOUND")); + } else { + result.appendChild(self.createParamLine("Drug: ", drug.getName())); + result.appendChild(self.createParamLine("Description: ", drug.getDescription())); + result.appendChild(self.createArrayParamLine("Synonyms: ", drug.getSynonyms())); + result.appendChild(self.createArrayParamLine("Brand names: ", drug.getBrandNames())); + result.appendChild(self.createParamLine("Blood brain barrier: ", drug.getBloodBrainBarrier())); + result.appendChild(self.createAnnotations("Sources: ", drug.getReferences())); + result.appendChild(self.createNewLine()); + } return result; }; @@ -39,7 +43,7 @@ DrugPanel.prototype.createTargetElement = function(target, icon) { var checkbox = document.createElement('input'); checkbox.type = "checkbox"; checkbox.checked = target.isVisible(); - checkbox.onclick = function(){ + checkbox.onclick = function() { target.setIsVisible(!target.isVisible()); self.getOverlayDb().callListeners("onTargetVisibilityChange"); }; diff --git a/frontend-js/src/main/js/map/data/Drug.js b/frontend-js/src/main/js/map/data/Drug.js index f12ad3ec84527c63f87ddc7fc7fa06b3693762ed..789a253bbfa5e507f1d635df707202d7c25c37f7 100644 --- a/frontend-js/src/main/js/map/data/Drug.js +++ b/frontend-js/src/main/js/map/data/Drug.js @@ -3,14 +3,16 @@ var Target = require("./Target"); function Drug(javaObject) { - this.setBrandNames(javaObject.brandNames); - this.setReferences(javaObject.references); - this.setSynonyms(javaObject.synonyms); - this.setName(javaObject.name); - this.setId(javaObject.id); - this.setDescription(javaObject.description); - this.setTargets(javaObject.targets); - this.setBloodBrainBarrier(javaObject.bloodBrainBarrier); + if (javaObject !== undefined) { + this.setBrandNames(javaObject.brandNames); + this.setReferences(javaObject.references); + this.setSynonyms(javaObject.synonyms); + this.setName(javaObject.name); + this.setId(javaObject.id); + this.setDescription(javaObject.description); + this.setTargets(javaObject.targets); + this.setBloodBrainBarrier(javaObject.bloodBrainBarrier); + } } Drug.prototype.setBrandNames = function(brandNames) { diff --git a/frontend-js/src/test/js/gui/DrugPanel-test.js b/frontend-js/src/test/js/gui/DrugPanel-test.js index 0b6a1ff14000d3fb0c04b51b5a220135159c7dc9..6df217322ae90e6e127e94fd5e99853c68031e78 100644 --- a/frontend-js/src/test/js/gui/DrugPanel-test.js +++ b/frontend-js/src/test/js/gui/DrugPanel-test.js @@ -4,8 +4,10 @@ var Helper = require('../helper'); require("../mocha-config.js"); +var Drug = require('../../../main/js/map/data/Drug'); var DrugPanel = require('../../../main/js/gui/DrugPanel'); + var chai = require('chai'); var assert = chai.assert; var logger = require('../logger'); @@ -30,6 +32,34 @@ describe('DrugPanel', function() { assert.equal(logger.getWarnings().length, 0); }); + it('createDrugeader for empty', function() { + var div = helper.createDrugTab(); + + var map = helper.createCustomMap(); + helper.createDrugDbOverlay(map); + + var panel = new DrugPanel({ + element : div, + customMap : map + }); + + assert.ok(panel.createDrugHeader().innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('createDrugeader for empty', function() { + var div = helper.createDrugTab(); + + var map = helper.createCustomMap(); + helper.createDrugDbOverlay(map); + + var panel = new DrugPanel({ + element : div, + customMap : map + }); + + assert.ok(panel.createDrugHeader(new Drug()).innerHTML.indexOf("NOT FOUND") > 0); + }); + it('on searchResults changed', function() { var div = helper.createDrugTab(); var map = helper.createCustomMap();