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

SearchPanel renamed to GenericSearchPanel

parent 72e77b05
No related branches found
No related tags found
1 merge request!52Resolve "Search tab"
......@@ -12,7 +12,7 @@ var Reaction = require('../../map/data/Reaction');
var logger = require('../../logger');
var Functions = require('../../Functions');
function SearchPanel(params) {
function GenericSearchPanel(params) {
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>"
......@@ -23,10 +23,10 @@ function SearchPanel(params) {
this.createSearchGui();
}
SearchPanel.prototype = Object.create(AbstractDbPanel.prototype);
SearchPanel.prototype.constructor = SearchPanel;
GenericSearchPanel.prototype = Object.create(AbstractDbPanel.prototype);
GenericSearchPanel.prototype.constructor = GenericSearchPanel;
SearchPanel.prototype.createSearchGui = function() {
GenericSearchPanel.prototype.createSearchGui = function() {
var searchDiv = this.getControlElement(PanelControlElementType.SEARCH_DIV);
var perfectMatchCheckbox = Functions.createElement({
......@@ -44,7 +44,7 @@ SearchPanel.prototype.createSearchGui = function() {
searchDiv.appendChild(perfectMatchLabel);
};
SearchPanel.prototype.createTableElement = function(element, icon) {
GenericSearchPanel.prototype.createTableElement = function(element, icon) {
if (element instanceof Alias) {
return this.createAliasElement(element, icon);
} else if (element instanceof Reaction) {
......@@ -54,11 +54,11 @@ SearchPanel.prototype.createTableElement = function(element, icon) {
}
};
SearchPanel.prototype.createPreamble = function() {
GenericSearchPanel.prototype.createPreamble = function() {
return document.createElement("div");
};
SearchPanel.prototype.createReactionElement = function(reaction) {
GenericSearchPanel.prototype.createReactionElement = function(reaction) {
var self = this;
var guiUtils = self.getGuiUtils();
var result = document.createElement("tr");
......@@ -73,7 +73,7 @@ SearchPanel.prototype.createReactionElement = function(reaction) {
};
SearchPanel.prototype.createAliasElement = function(alias, icon) {
GenericSearchPanel.prototype.createAliasElement = function(alias, icon) {
var self = this;
var guiUtils = self.getGuiUtils();
......@@ -88,18 +88,18 @@ SearchPanel.prototype.createAliasElement = function(alias, icon) {
return result;
};
SearchPanel.prototype.searchByQuery = function() {
GenericSearchPanel.prototype.searchByQuery = function() {
var self = this;
var query = this.getControlElement(PanelControlElementType.SEARCH_INPUT).value;
var perfect = this.getControlElement(PanelControlElementType.SEARCH_PERFECT_MATCH_CHECKBOX).checked;
return self.getOverlayDb().searchByQuery(query, perfect, true);
};
SearchPanel.prototype.getAutocomplete = function(query) {
GenericSearchPanel.prototype.getAutocomplete = function(query) {
return this.getMap().getSearchAutocomplete(query);
};
SearchPanel.prototype.init = function() {
GenericSearchPanel.prototype.init = function() {
var query = ServerConnector.getSessionData().getSearchQuery();
if (query !== undefined) {
return this.getOverlayDb().searchByEncodedQuery(query, false);
......@@ -108,4 +108,4 @@ SearchPanel.prototype.init = function() {
}
};
module.exports = SearchPanel;
module.exports = GenericSearchPanel;
......@@ -17,7 +17,7 @@ var OverlayPanel = require('./OverlayPanel');
var PointData = require('../../map/data/PointData');
var ProjectInfoPanel = require('./ProjectInfoPanel');
var Reaction = require('../../map/data/Reaction');
var SearchPanel = require('./SearchPanel');
var GenericSearchPanel = require('./GenericSearchPanel');
var SubmapPanel = require('./SubmapPanel');
var Functions = require('../../Functions');
......@@ -39,35 +39,7 @@ LeftPanel.prototype.constructor = LeftPanel;
LeftPanel.prototype._createPanelGui = function() {
var self = this;
var panels = [ {
name : "SEARCH",
className : "fa-search",
panelClass : SearchPanel,
}, {
name : "DRUG",
className : "fa-map-marker",
panelClass : DrugPanel,
}, {
name : "CHEMICAL",
className : "fa-map-marker",
panelClass : ChemicalPanel,
}, {
name : "MiRNA",
className : "fa-map-marker",
panelClass : MiRnaPanel,
}, {
name : "OVERLAYS",
className : "fa-th-list",
panelClass : OverlayPanel,
}, {
name : "SUBMAPS",
className : "fa-sitemap",
panelClass : SubmapPanel,
}, {
name : "INFO",
className : "fa-info",
panelClass : ProjectInfoPanel,
} ];
var panels = self.getPanelsDefinition();
var headerDiv = Functions.createElement({
type : "div",
......@@ -123,6 +95,53 @@ LeftPanel.prototype._createPanelGui = function() {
}
};
LeftPanel.prototype.getPanelsDefinition = function() {
return [ {
name : "SEARCH",
className : "fa-search",
panelClass : GenericSearchPanel,
}, {
name : "DRUG",
className : "fa-map-marker",
panelClass : DrugPanel,
}, {
name : "CHEMICAL",
className : "fa-map-marker",
panelClass : ChemicalPanel,
}, {
name : "MiRNA",
className : "fa-map-marker",
panelClass : MiRnaPanel,
}, {
name : "OVERLAYS",
className : "fa-th-list",
panelClass : OverlayPanel,
}, {
name : "SUBMAPS",
className : "fa-sitemap",
panelClass : SubmapPanel,
}, {
name : "INFO",
className : "fa-info",
panelClass : ProjectInfoPanel,
} ];
};
LeftPanel.prototype.hideTab = function(panel) {
var self = this;
var panelDeifinitions = self.getPanelsDefinition();
for (var i = 0; i < panelDeifinitions.length; i++) {
if (panel instanceof panelDeifinitions[i].panelClass) {
var liElement =$("li:has(a[href='#left_panel_tab_" + i + "'])", $(self.getElement()))[0];
if (liElement!==undefined) {
liElement.style.display = "none";
} else {
logger.warn("Cannot find tab link for panel: "+panel.getPanelName());
}
}
}
};
LeftPanel.prototype.init = function() {
var self = this;
......@@ -220,7 +239,7 @@ LeftPanel.prototype.addTab = function(params, navElement, contentElement) {
var name = params.name;
var tabId = "left_panel_ab_" + this._tabIdCount;
var tabId = "left_panel_tab_" + this._tabIdCount;
self._tabIdCount++;
var navClass = '';
......
......@@ -97,6 +97,9 @@ SubmapPanel.prototype.init = function() {
var type = types[i];
div.appendChild(self.createTable(modelsByType[type], type + " submaps"));
}
if (models.length === 0) {
self.getParent().hideTab(self);
}
return resolve();
});
};
......
......@@ -5,14 +5,14 @@ var Helper = require('../../helper');
require('../../mocha-config.js');
var Alias = require('../../../../main/js/map/data/Alias');
var SearchPanel = require('../../../../main/js/gui/leftPanel/SearchPanel');
var GenericSearchPanel = require('../../../../main/js/gui/leftPanel/GenericSearchPanel');
var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType');
var chai = require('chai');
var assert = chai.assert;
var logger = require('../../logger');
describe('SearchPanel', function() {
describe('GenericSearchPanel', function() {
var helper;
before(function() {
......@@ -23,7 +23,7 @@ describe('SearchPanel', function() {
var map = helper.createCustomMap();
helper.createSearchDbOverlay(map);
new SearchPanel({
new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -35,7 +35,7 @@ describe('SearchPanel', function() {
map.getModel().setId(15781);
var searchDbOverlay = helper.createSearchDbOverlay(map);
new SearchPanel({
new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -57,7 +57,7 @@ describe('SearchPanel', function() {
map.getModel().setId(15781);
var searchDbOverlay = helper.createSearchDbOverlay(map);
new SearchPanel({
new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -73,7 +73,7 @@ describe('SearchPanel', function() {
map.getModel().setId(15781);
helper.createSearchDbOverlay(map);
var panel = new SearchPanel({
var panel = new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -127,7 +127,7 @@ describe('SearchPanel', function() {
map.getModel().setId(15781);
helper.createSearchDbOverlay(map);
var panel = new SearchPanel({
var panel = new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -141,7 +141,7 @@ describe('SearchPanel', function() {
var map = helper.createCustomMap();
helper.createSearchDbOverlay(map);
var panel = new SearchPanel({
var panel = new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -158,7 +158,7 @@ describe('SearchPanel', function() {
var map = helper.createCustomMap();
helper.createSearchDbOverlay(map);
var panel = new SearchPanel({
var panel = new GenericSearchPanel({
element : testDiv,
customMap : map
});
......@@ -177,7 +177,7 @@ describe('SearchPanel', function() {
var map = helper.createCustomMap();
helper.createSearchDbOverlay(map);
new SearchPanel({
new GenericSearchPanel({
element : testDiv,
customMap : map
});
......
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