From 6c481debadd6c3563a2b808e255af4d1041df820 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 2 Nov 2018 09:55:51 +0100 Subject: [PATCH] drug/chemical/mirna targets are clickable --- frontend-js/src/main/css/global.css | 9 ++++ .../main/js/gui/leftPanel/AbstractDbPanel.js | 41 ++++++++++++++----- .../src/main/js/gui/leftPanel/GuiUtils.js | 6 +-- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/frontend-js/src/main/css/global.css b/frontend-js/src/main/css/global.css index 1255f3f4e6..383e60080b 100644 --- a/frontend-js/src/main/css/global.css +++ b/frontend-js/src/main/css/global.css @@ -155,6 +155,15 @@ font-weight: 900; } +.minerva-search-result-icon { + float: left; + margin: 0 10px; +} + +.minerva-clickable { + cursor: pointer; +} + .input-field { background-color: #21BDF1; color: #ffffff; diff --git a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js index 75fab272c2..cc7c332a7f 100644 --- a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js +++ b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js @@ -228,10 +228,10 @@ AbstractDbPanel.prototype.refreshSearchResults = function () { promises.push(searchDb.getElementsByQuery(queries[i])); } return Promise.all(promises).then(function (results) { - return Promise.each(queries, function(query, index){ + return Promise.each(queries, function (query, index) { return self.addResultTab(query, results[index]); }); - }).then(function(){ + }).then(function () { self.onresize(); }); }; @@ -348,7 +348,34 @@ AbstractDbPanel.prototype.createTargetRow = function (target, icon) { var i; if (target.getTargetElements().length > 0) { var submapAddedIds = []; - iconColumn.appendChild(guiUtils.createIcon(icon)); + var elements = target.getTargetElements(); + for (i = 0; i < elements.length; i++) { + var elementId = elements[i].getModelId(); + if (elementId !== self.getMap().getId() && !submapAddedIds[elementId]) { + submaps.push(elementId); + submapAddedIds[elementId] = true; + } + } + + iconColumn.appendChild(guiUtils.createIcon(icon, function () { + var maps = submaps.concat([self.getMap().getId()]); + var promises = []; + for (var j = 0; j < maps.length; j++) { + var submap = self.getMap().getSubmapById(maps[j]); + var submapElements = []; + for (var k = 0; k < elements.length; k++) { + if (elements[k].getModelId() === submap.getId()) { + submapElements.push(elements[k]); + } + } + if (submap.isInitialized()) { + promises.push(submap.getModel().getByIdentifiedElements(submapElements, false).then(function (fetchedElements) { + return self.getMap().getSubmapById(fetchedElements[0].getModelId()).fitBounds(fetchedElements); + })); + } + } + return Promise.all(promises); + })); var checkbox = document.createElement('input'); checkbox.type = "checkbox"; checkbox.checked = target.isVisible(); @@ -358,14 +385,6 @@ AbstractDbPanel.prototype.createTargetRow = function (target, icon) { }; iconColumn.appendChild(checkbox); - var elements = target.getTargetElements(); - for (i = 0; i < elements.length; i++) { - var elementId = elements[i].getModelId(); - if (elementId !== self.getMap().getId() && !submapAddedIds[elementId]) { - submaps.push(elementId); - submapAddedIds[elementId] = true; - } - } } var descColumn = document.createElement("td"); diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js index 58e06c3634..6ccfa96199 100644 --- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js +++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js @@ -510,11 +510,11 @@ GuiUtils.prototype.createIcon = function (icon, onclickFunction) { if (icon !== undefined && icon !== null) { var img = document.createElement("img"); img.src = GuiConnector.getImgPrefix() + icon; - img.style.float = "left"; - img.hspace = 5; if (onclickFunction !== undefined) { img.onclick = onclickFunction; - img.style.cursor = "pointer"; + img.className = "minerva-search-result-icon minerva-clickable"; + } else { + img.className = "minerva-search-result-icon"; } result.appendChild(img); } -- GitLab