Skip to content
Snippets Groups Projects
Commit a4bfcd34 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

when icon is clicked and there is proper searchtab in the panel open it's focused on it

parent 208d814e
No related branches found
No related tags found
2 merge requests!412changes from 12.1.0~beta.1 into master,!406Resolve "multiple search results - change tabs"
Pipeline #6434 passed
......@@ -6,6 +6,7 @@ var Promise = require("bluebird");
var AbstractDbPanel = require('./AbstractDbPanel');
var Alias = require('../../map/data/Alias');
var IdentifiedElement = require('../../map/data/IdentifiedElement');
var InvalidArgumentError = require('../../InvalidArgumentError');
var PanelControlElementType = require('../PanelControlElementType');
var Reaction = require('../../map/data/Reaction');
......@@ -22,15 +23,47 @@ var Functions = require('../../Functions');
* @extends AbstractDbPanel
*/
function GenericSearchPanel(params) {
var self = this;
params.panelName = "search";
params.helpTip = "<p>search tab allows to search for particular elements or interactions in the map</p>"
+ "<p>perfect match tick box active: only terms with an exact match to the query will be returned</p>"
+ "<p>separate multiple search by semicolon</p>";
params.placeholder = "keyword";
AbstractDbPanel.call(this, params);
AbstractDbPanel.call(self, params);
self.createSearchGui();
self.getMap().addListener("onBioEntityClick", function (e) {
var identifiedElement = e.arg;
var queries = self.getOverlayDb().getQueries();
var promises = [];
for (var i = 0; i < queries.length; i++) {
promises.push(self.getOverlayDb().getElementsByQuery(queries[i]));
}
return Promise.all(promises).then(function (elements) {
var tab = -1;
for (var i = 0; i < elements.length; i++) {
for (var j = 0; j < elements[i].length; j++) {
var element = elements[i][j].element;
if (element instanceof SearchBioEntityGroup) {
for (var k = 0; k < element.getBioEntities().length; k++) {
if (new IdentifiedElement(element.getBioEntities()[k]).equals(identifiedElement)) {
tab = i;
}
}
} else if (new IdentifiedElement(element).equals(identifiedElement)) {
tab = i;
}
}
}
var link = $(".parentTabs > .nav-tabs > li > a", self.getElement())[tab];
if (link !== undefined) {
return link.click();
}
});
});
this.createSearchGui();
}
GenericSearchPanel.prototype = Object.create(AbstractDbPanel.prototype);
......
......@@ -267,7 +267,7 @@ IdentifiedElement.prototype.setLineColor = function (lineColor) {
/**
*
* @param {IdentifiedElement} argument
* @param {Object} argument
* @returns {boolean}
*/
IdentifiedElement.prototype.equals = function (argument) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment