From 5817bd8b696ef2b5bc207cb7bc1b5eeb73506719 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 18 Jan 2017 18:30:25 +0100 Subject: [PATCH] clear of drug panel fixed --- frontend-js/src/main/js/ServerConnector.js | 2 +- frontend-js/src/main/js/gui/DrugPanel.js | 20 ++++++++----- frontend-js/src/main/js/map/data/Drug.js | 18 ++++++----- frontend-js/src/test/js/gui/DrugPanel-test.js | 30 +++++++++++++++++++ 4 files changed, 53 insertions(+), 17 deletions(-) diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index d5c58832be..bfde71174a 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 68ab9e4b6e..72091348d1 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 f12ad3ec84..789a253bbf 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 0b6a1ff140..6df217322a 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(); -- GitLab