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

LeftPanel agregator

parent 08c58b77
No related branches found
No related tags found
1 merge request!5Frontend refactor
"use strict";
/* exported logger */
var AbstractGuiElement = require('../AbstractGuiElement');
var ChemicalPanel = require('./ChemicalPanel');
var DrugPanel = require('./DrugPanel');
var Footer = require('./Footer');
var Header = require('../Header');
var MiRnaPanel = require('./MiRnaPanel');
var OverlayPanel = require('./OverlayPanel');
var ProjectInfoPanel = require('./ProjectInfoPanel');
var SearchPanel = require('./SearchPanel');
var SubmapPanel = require('./SubmapPanel');
var UserPanel = require('./UserPanel');
var Functions = require('../../Functions');
var logger = require('../../logger');
function LeftPanel(params) {
AbstractGuiElement.call(this, params);
var self = this;
this._tabIdCount = 0;
self._createPanelGui();
}
LeftPanel.prototype = Object.create(AbstractGuiElement.prototype);
LeftPanel.prototype.constructor = LeftPanel;
LeftPanel.prototype._createPanelGui = function(message) {
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 : "LOGIN",
className : "fa-sign-in",
panelClass : UserPanel,
}, {
name : "SUBMAPS",
className : "fa-sitemap",
panelClass : SubmapPanel,
}, {
name : "PROJECT",
className : "fa-info",
panelClass : ProjectInfoPanel,
} ];
var headerDiv = Functions.createElement({
type : "div",
id : "headerPanel"
});
new Header({
element : headerDiv,
customMap : self.getMap(),
});
self.getElement().appendChild(headerDiv);
var tabDiv = Functions.createElement({
type : "div",
name : "tabView",
className : "tabbable boxed parentTabs"
});
self.getElement().appendChild(tabDiv);
var tabMenuDiv = Functions.createElement({
type : "ul",
className : "nav nav-tabs"
});
tabDiv.appendChild(tabMenuDiv);
var tabContentDiv = Functions.createElement({
type : "div",
className : "tab-content"
});
tabDiv.appendChild(tabContentDiv);
var footerDiv = Functions.createElement({
type : "div",
});
new Footer({
element : footerDiv,
customMap : self.getMap(),
});
self.getElement().appendChild(footerDiv);
for (var i = 0; i < panels.length; i++) {
self.addTab(panels[i], tabMenuDiv, tabContentDiv);
}
};
LeftPanel.prototype.addTab = function(params, navElement, contentElement) {
var self =this;
var name = params.name;
var tabId = "left_panel_ab_" + this._tabIdCount;
self._tabIdCount++;
var navClass = '';
var contentClass = 'tab-pane';
if (navElement.children.length === 0) {
navClass = "active";
contentClass = "tab-pane active";
}
var navLi = document.createElement("li");
navLi.className = navClass;
var navLink = document.createElement("a");
navLink.href = "#" + tabId;
if (name !== undefined) {
if (name.length > 12) {
name = name.substring(0, 10) + "...";
}
navLink.innerHTML = name;
}
navLink.onclick = function() {
$(this).tab('show');
};
navLi.appendChild(navLink);
if (name !== undefined) {
navLink.innerHTML = name;
}
navElement.appendChild(navLi);
var contentDiv = document.createElement("div");
contentDiv.style.height = "100%";
contentDiv.id = tabId;
contentElement.appendChild(contentDiv);
new params.panelClass({
element : contentDiv,
customMap : self.getMap(),
});
};
module.exports = LeftPanel;
"use strict";
/* exported logger */
var Helper = require('../../helper');
require('../../mocha-config.js');
var LeftPanel = require('../../../../main/js/gui/leftPanel/LeftPanel');
var chai = require('chai');
var assert = chai.assert;
var logger = require('../../logger');
describe('LeftPanel', function() {
var helper;
before(function() {
helper = new Helper();
});
it('constructor', function() {
var map = helper.createCustomMap();
helper.createSearchDbOverlay(map);
helper.createDrugDbOverlay(map);
helper.createChemicalDbOverlay(map);
helper.createMiRnaDbOverlay(map);
new LeftPanel({
element : testDiv,
customMap : map
});
assert.equal(logger.getWarnings().length, 0);
});
});
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