From 2b4c8413a0b98c5a2be006fe408ad9a1f49cd6ee Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 11 Apr 2017 18:20:18 +0200
Subject: [PATCH] left panel tabs agregated in a single panel class

---
 frontend-js/src/main/js/GuiConnector.js       |   2 +-
 .../main/js/gui/leftPanel/AbstractDbPanel.js  |   2 +-
 .../main/js/gui/leftPanel/ChemicalPanel.js    |   9 ++
 .../src/main/js/gui/leftPanel/DrugPanel.js    |   9 ++
 .../src/main/js/gui/leftPanel/LeftPanel.js    |  17 ++-
 .../src/main/js/gui/leftPanel/MiRnaPanel.js   |   9 ++
 .../src/main/js/gui/leftPanel/OverlayPanel.js |   3 +
 .../src/main/js/gui/leftPanel/Panel.js        |   4 +
 .../main/js/gui/leftPanel/ProjectInfoPanel.js |   5 +-
 .../src/main/js/gui/leftPanel/SearchPanel.js  |  10 +-
 .../src/main/js/gui/leftPanel/SubmapPanel.js  |  37 +++--
 .../src/main/js/gui/leftPanel/UserPanel.js    |  19 ++-
 .../js/map/overlay/DbOverlayCollection.js     |  71 +++++++++
 frontend-js/src/main/js/minerva.js            | 136 +-----------------
 frontend-js/src/test/js/gui/Header-test.js    |   4 +-
 .../js/gui/leftPanel/ChemicalPanel-test.js    |  22 +--
 .../test/js/gui/leftPanel/DrugPanel-test.js   |  22 +--
 .../src/test/js/gui/leftPanel/Footer-test.js  |  10 +-
 .../test/js/gui/leftPanel/MiRnaPanel-test.js  |  22 +--
 .../js/gui/leftPanel/OverlayPanel-test.js     |  24 +---
 .../src/test/js/gui/leftPanel/Panel-test.js   |   4 +-
 .../test/js/gui/leftPanel/SearchPanel-test.js |  26 ++--
 .../test/js/gui/leftPanel/UserPanel-test.js   |  16 +--
 frontend-js/src/test/js/helper.js             |  66 +--------
 .../map/overlay/DbOverlayCollection-test.js   |  26 ++++
 frontend-js/src/test/js/minerva-test.js       |  21 ++-
 web/src/main/webapp/index.xhtml               |   4 +-
 27 files changed, 260 insertions(+), 340 deletions(-)
 create mode 100644 frontend-js/src/main/js/map/overlay/DbOverlayCollection.js
 create mode 100644 frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js

diff --git a/frontend-js/src/main/js/GuiConnector.js b/frontend-js/src/main/js/GuiConnector.js
index 2f8d2132fd..e7c261c874 100644
--- a/frontend-js/src/main/js/GuiConnector.js
+++ b/frontend-js/src/main/js/GuiConnector.js
@@ -69,7 +69,7 @@ GuiConnector.init = function() {
     });
   });
 
-  GuiConnector.leftPanelTabNavi = new TabNavi("tabView");
+//  GuiConnector.leftPanelTabNavi = new TabNavi("tabView");
 };
 
 /**
diff --git a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
index 4bbbe55526..795a2e5a1a 100644
--- a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
@@ -106,7 +106,7 @@ AbstractPanel.prototype._initializeGui = function(){
 
 AbstractPanel.prototype.setOverlayDb = function(overlayDb){
   if (overlayDb === undefined) {
-    throw new Error("Undefined overlayDb");
+    throw new Error("Undefined overlayDb for panel: "+this.getPanelName());
   }
   this._overlayDb = overlayDb;
 };
diff --git a/frontend-js/src/main/js/gui/leftPanel/ChemicalPanel.js b/frontend-js/src/main/js/gui/leftPanel/ChemicalPanel.js
index d3212e860d..2361f53b5d 100644
--- a/frontend-js/src/main/js/gui/leftPanel/ChemicalPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/ChemicalPanel.js
@@ -46,4 +46,13 @@ ChemicalPanel.prototype.searchByQuery = function() {
   return self.getOverlayDb().searchByQuery(query);
 };
 
+ChemicalPanel.prototype.init = function() {
+  var query = ServerConnector.getSessionData().getChemicalQuery();
+  if (query!==undefined) {
+    return this.getOverlayDb().searchByEncodedQuery(query);
+  } else {
+    return Promise.resolve();
+  }
+}
+
 module.exports = ChemicalPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/DrugPanel.js b/frontend-js/src/main/js/gui/leftPanel/DrugPanel.js
index f644b70011..d296f61532 100644
--- a/frontend-js/src/main/js/gui/leftPanel/DrugPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/DrugPanel.js
@@ -41,4 +41,13 @@ DrugPanel.prototype.searchByQuery = function() {
   return self.getOverlayDb().searchByQuery(query);
 };
 
+DrugPanel.prototype.init = function() {
+  var query = ServerConnector.getSessionData().getDrugQuery();
+  if (query !== undefined) {
+    return this.getOverlayDb().searchByEncodedQuery(query);
+  } else {
+    return Promise.resolve();
+  }
+};
+
 module.exports = DrugPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
index 0a9147d776..83512c0c1a 100644
--- a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
@@ -22,6 +22,7 @@ function LeftPanel(params) {
   var self = this;
 
   this._tabIdCount = 0;
+  this._panels = [];
 
   self._createPanelGui();
 
@@ -109,9 +110,17 @@ LeftPanel.prototype._createPanelGui = function(message) {
   }
 };
 
+LeftPanel.prototype.init = function() {
+  var promises = [];
+  for (var i = 0; i < this._panels.length; i++) {
+    promises.push(this._panels[i].init());
+  }
+  return Promise.all(promises);
+};
+
 LeftPanel.prototype.addTab = function(params, navElement, contentElement) {
-  var self =this;
-    
+  var self = this;
+
   var name = params.name;
 
   var tabId = "left_panel_ab_" + this._tabIdCount;
@@ -150,10 +159,10 @@ LeftPanel.prototype.addTab = function(params, navElement, contentElement) {
 
   contentElement.appendChild(contentDiv);
 
-  new params.panelClass({
+  this._panels.push(new params.panelClass({
     element : contentDiv,
     customMap : self.getMap(),
-  });
+  }));
 };
 
 module.exports = LeftPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/MiRnaPanel.js b/frontend-js/src/main/js/gui/leftPanel/MiRnaPanel.js
index ae274ce003..cdf27813b5 100644
--- a/frontend-js/src/main/js/gui/leftPanel/MiRnaPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/MiRnaPanel.js
@@ -41,4 +41,13 @@ MiRnaPanel.prototype.searchByQuery = function() {
   return self.getOverlayDb().searchByQuery(query);
 };
 
+MiRnaPanel.prototype.init = function() {
+  var query = ServerConnector.getSessionData().getMiRnaQuery();
+  if (query!==undefined) {
+    return this.getOverlayDb().searchByEncodedQuery(query);
+  } else {
+    return Promise.resolve();
+  }
+}
+
 module.exports = MiRnaPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
index 7411e0a501..d59e4a93c0 100644
--- a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
@@ -417,4 +417,7 @@ OverlayPanel.prototype.openAddOverlayDialog = function() {
   });
 };
 
+OverlayPanel.prototype.init = function() {
+  this.refresh();
+};
 module.exports = OverlayPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/Panel.js b/frontend-js/src/main/js/gui/leftPanel/Panel.js
index 58a1cde1dc..6e95863cf5 100644
--- a/frontend-js/src/main/js/gui/leftPanel/Panel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/Panel.js
@@ -420,4 +420,8 @@ Panel.prototype.createTableRow = function(elements) {
   return row;
 }
 
+Panel.prototype.init = function() {
+  throw new Error(this.getPanelName() + " Not implemented");
+};
+
 module.exports = Panel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
index 1766f6e66a..9ad72412d3 100644
--- a/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/ProjectInfoPanel.js
@@ -10,7 +10,7 @@ var logger = require('../../logger');
 var Functions = require('../../Functions');
 
 function ProjectInfoPanel(params) {
-  params.panelName = "user";
+  params.panelName = "info";
   Panel.call(this, params);
   var self = this;
   self._createInfoPanelGui();
@@ -169,4 +169,7 @@ ProjectInfoPanel.prototype.refresh = function() {
   });
 };
 
+ProjectInfoPanel.prototype.init = function() {
+  return this.refresh();
+}
 module.exports = ProjectInfoPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js b/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
index f405dabb1a..3d81cba9a6 100644
--- a/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
@@ -158,7 +158,7 @@ SearchPanel.prototype.createAliasElement = function(alias, icon) {
 
 SearchPanel.prototype.searchByQuery = function() {
   var self = this;
-  var query = this.getControlElement(PanelControlElementType.SEARCH_INPUT).value; 
+  var query = this.getControlElement(PanelControlElementType.SEARCH_INPUT).value;
   var perfect = this.getControlElement(PanelControlElementType.SEARCH_PERFECT_MATCH_CHECKBOX).checked;
   return self.getOverlayDb().searchByQuery(query, perfect);
 };
@@ -167,4 +167,12 @@ SearchPanel.prototype.getAutocomplete = function(query) {
   return this.getMap().getSearchAutocomplete(query);
 };
 
+SearchPanel.prototype.init = function() {
+  var query = ServerConnector.getSessionData().getSearchQuery();
+  if (query !== undefined) {
+    return this.getOverlayDb().searchByEncodedQuery(query);
+  } else {
+    return Promise.resolve();
+  }
+}
 module.exports = SearchPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
index cdc56ebac8..c2c9b2e22f 100644
--- a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
@@ -9,12 +9,11 @@ var logger = require('../../logger');
 var Functions = require('../../Functions');
 
 function SubmapPanel(params) {
-  params.panelName = "user";
+  params.panelName = "submap";
   Panel.call(this, params);
 
   var self = this;
   self._createSubmapGui();
-  self.refresh();
 }
 
 SubmapPanel.prototype = Object.create(Panel.prototype);
@@ -46,23 +45,6 @@ SubmapPanel.prototype._createSubmapGui = function() {
 
 };
 
-
-SubmapPanel.prototype.refresh = function() {
-  var self = this;
-  var table = self.getControlElement(PanelControlElementType.SUBMAP_TABLE);
-  while (table.lastChild) {
-    table.removeChild(table.lastChild);
-  }
-  table.appendChild(self.createTableHeader());
-
-  table.appendChild(self.createRow(self.getMap().getModel()));
-
-  var submodels = self.getMap().getModel().getSubmodels();
-  for (var i = 0; i < submodels.length; i++) {
-    table.appendChild(self.createRow(submodels[i]));
-  }
-};
-
 SubmapPanel.prototype.createRow = function(model) {
   var self = this;
   var result = document.createElement("tr");
@@ -105,4 +87,21 @@ SubmapPanel.prototype.createTableHeader = function() {
   return result;
 };
 
+SubmapPanel.prototype.init = function() {
+  var self = this;
+  var table = self.getControlElement(PanelControlElementType.SUBMAP_TABLE);
+  while (table.lastChild) {
+    table.removeChild(table.lastChild);
+  }
+  table.appendChild(self.createTableHeader());
+
+  table.appendChild(self.createRow(self.getMap().getModel()));
+
+  var submodels = self.getMap().getModel().getSubmodels();
+  for (var i = 0; i < submodels.length; i++) {
+    table.appendChild(self.createRow(submodels[i]));
+  }
+  return Promise.resolve();
+};
+
 module.exports = SubmapPanel;
diff --git a/frontend-js/src/main/js/gui/leftPanel/UserPanel.js b/frontend-js/src/main/js/gui/leftPanel/UserPanel.js
index 0f07d0be77..f19d228601 100644
--- a/frontend-js/src/main/js/gui/leftPanel/UserPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/UserPanel.js
@@ -17,13 +17,6 @@ function UserPanel(params) {
   
   self._createLoginTab();
   self._createUserDataTab();
-  ServerConnector.getLoggedUser().then(function(user) {
-    if (user.getLogin() === "anonymous") {
-      self.showLoginPage();
-    } else {
-      self.showUserProfilePage(user);
-    }
-  });
   
   var loginButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON);
   var logoutButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGOUT_BUTTON);
@@ -152,4 +145,16 @@ UserPanel.prototype.showUserProfilePage = function(user) {
   emailText.innerHTML = user.getEmail(); 
 };
 
+UserPanel.prototype.init = function() {
+  var self = this;
+  return ServerConnector.getLoggedUser().then(function(user) {
+    if (user.getLogin() === "anonymous") {
+      self.showLoginPage();
+    } else {
+      self.showUserProfilePage(user);
+    }
+    return Promise.resolve();
+  });
+};
+
 module.exports = UserPanel;
diff --git a/frontend-js/src/main/js/map/overlay/DbOverlayCollection.js b/frontend-js/src/main/js/map/overlay/DbOverlayCollection.js
new file mode 100644
index 0000000000..784db11acc
--- /dev/null
+++ b/frontend-js/src/main/js/map/overlay/DbOverlayCollection.js
@@ -0,0 +1,71 @@
+"use strict";
+
+/* exported logger */
+
+var logger = require('../../logger');
+
+var ObjectWithListeners = require('../../ObjectWithListeners');
+var ChemicalDbOverlay = require('./ChemicalDbOverlay');
+var CommentDbOverlay = require('./CommentDbOverlay');
+var DrugDbOverlay = require('./DrugDbOverlay');
+var MiRnaDbOverlay = require('./MiRnaDbOverlay');
+var SearchDbOverlay = require('./SearchDbOverlay');
+
+function DbOverlayCollection(params) {
+  // call super constructor
+  ObjectWithListeners.call(this);
+
+  var hasDisease = params.map.getProject().getDisease() !== undefined;
+
+  var dataCollections = [ {
+    name : "search"
+  }, {
+    name : "drug",
+    allowSearchById : true,
+    allowGeneralSearch : true
+  }, {
+    name : "chemical",
+    allowSearchById : hasDisease,
+    allowGeneralSearch : hasDisease
+  }, {
+    name : "mirna",
+    allowSearchById : true,
+    allowGeneralSearch : true
+  }, {
+    name : "comment",
+    allowSearchById : false,
+    allowGeneralSearch : true
+  }, ];
+
+  var map = params.map;
+
+  for (var i = 0; i < dataCollections.length; i++) {
+    var collectionParams = dataCollections[i];
+    collectionParams.map = map;
+    var collection = null;
+    if (collectionParams.name === "comment") {
+      collection = new CommentDbOverlay(collectionParams);
+      map.registerSource(collection);
+    } else if (collectionParams.name === "search") {
+      collection = new SearchDbOverlay(collectionParams);
+      map.registerSource(collection);
+    } else if (collectionParams.name === "drug") {
+      collection = new DrugDbOverlay(collectionParams);
+      map.registerSource(collection);
+    } else if (collectionParams.name === "mirna") {
+      collection = new MiRnaDbOverlay(collectionParams);
+      map.registerSource(collection);
+    } else if (collectionParams.name === "chemical") {
+      collection = new ChemicalDbOverlay(collectionParams);
+      map.registerSource(collection);
+    } else {
+      throw new Error("Unknown overlay db: " + collectionParams.name);
+    }
+  }
+
+}
+
+DbOverlayCollection.prototype = Object.create(ObjectWithListeners.prototype);
+DbOverlayCollection.prototype.constructor = DbOverlayCollection;
+
+module.exports = DbOverlayCollection;
diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index 0de305b581..4c9a2b8798 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -3,26 +3,14 @@
 var functions = require('./Functions');
 
 var AbstractDbOverlay = require('./map/overlay/AbstractDbOverlay');
-var ChemicalDbOverlay = require('./map/overlay/ChemicalDbOverlay');
-var CommentDbOverlay = require('./map/overlay/CommentDbOverlay');
+var DbOverlayCollection = require('./map/overlay/DbOverlayCollection');
 var ConfigurationType = require('./ConfigurationType');
 var ControlType = require('./map/ControlType');
 var CustomMap = require('./map/CustomMap');
-var DrugDbOverlay = require('./map/overlay/DrugDbOverlay');
-var Header = require('./gui/Header');
-var MiRnaDbOverlay = require('./map/overlay/MiRnaDbOverlay');
 var OverviewDialog = require('./gui/OverviewDialog');
 var SearchDbOverlay = require('./map/overlay/SearchDbOverlay');
 
-var ChemicalPanel = require('./gui/leftPanel/ChemicalPanel');
-var DrugPanel = require('./gui/leftPanel/DrugPanel');
-var Footer = require('./gui/leftPanel/Footer');
-var MiRnaPanel = require('./gui/leftPanel/MiRnaPanel');
-var OverlayPanel = require('./gui/leftPanel/OverlayPanel');
-var ProjectInfoPanel = require('./gui/leftPanel/ProjectInfoPanel');
-var SearchPanel = require('./gui/leftPanel/SearchPanel');
-var SubmapPanel = require('./gui/leftPanel/SubmapPanel');
-var UserPanel = require('./gui/leftPanel/UserPanel');
+var LeftPanel = require('./gui/leftPanel/LeftPanel');
 
 var OriginalGuiConnector = require('./GuiConnector');
 var OriginalServerConnector = require('./ServerConnector');
@@ -57,41 +45,6 @@ function processUrlGetParams(params) {
 
 }
 
-function restoreSearchQuery(customMap) {
-  var query = ServerConnector.getSessionData().getSearchQuery();
-  if (query!==undefined) {
-    return customMap.getOverlayByName("search").searchByEncodedQuery(query);
-  } else {
-    return Promise.resolve();
-  }
-}
-
-function restoreDrugQuery(customMap) {
-  var query = ServerConnector.getSessionData().getDrugQuery();
-  if (query!==undefined) {
-    return customMap.getOverlayByName("drug").searchByEncodedQuery(query);
-  } else {
-    return Promise.resolve();
-  }
-}
-
-function restoreChemicalQuery(customMap) {
-  var query = ServerConnector.getSessionData().getChemicalQuery();
-  if (query!==undefined) {
-    return customMap.getOverlayByName("chemical").searchByEncodedQuery(query);
-  } else {
-    return Promise.resolve();
-  }
-}
-
-function restoreMiRnaQuery(customMap) {
-  var query = ServerConnector.getSessionData().getMiRnaQuery();
-  if (query!==undefined) {
-    return customMap.getOverlayByName("mirna").searchByEncodedQuery(query);
-  } else {
-    return Promise.resolve();
-  }
-}
 
 function createLegendIndicator(file, index) {
   var result = document.createElement("li");
@@ -194,93 +147,18 @@ function create(params) {
 
   ServerConnector.setCustomMap(result);
 
-  if (params.dataCollections !== undefined) {
-    for (var i = 0; i < params.dataCollections.length; i++) {
-      var collectionParams = params.dataCollections[i];
-      collectionParams.map = result;
-      var collection = null;
-      if (collectionParams.name === "comment") {
-        collection = new CommentDbOverlay(collectionParams);
-        result.registerSource(collection);
-      } else if (collectionParams.name === "search") {
-        collection = new SearchDbOverlay(collectionParams);
-        result.registerSource(collection);
-        new SearchPanel({
-          element : document.getElementById("searchTab"),
-          customMap : result
-        });
-      } else if (collectionParams.name === "drug") {
-        collection = new DrugDbOverlay(collectionParams);
-        result.registerSource(collection);
-        new DrugPanel({
-          element : document.getElementById("drugTab"),
-          customMap : result
-        });
-      } else if (collectionParams.name === "mirna") {
-        collection = new MiRnaDbOverlay(collectionParams);
-        result.registerSource(collection);
-        new MiRnaPanel({
-          element : document.getElementById("mirnaTab"),
-          customMap : result
-        });
-      } else if (collectionParams.name === "chemical") {
-        collection = new ChemicalDbOverlay(collectionParams);
-        result.registerSource(collection);
-        new ChemicalPanel({
-          disease: project.getDisease(), 
-          element : document.getElementById("chemicalTab"),
-          customMap : result
-        });
-      } else {
-        throw new Error("Unknown overlay db: "+collectionParams.name);
-      }
-    }
-  } else {
-    logger.warn("No overlay collection defined");
-  }
-
-  new OverlayPanel({
-    element : document.getElementById("overlayTab"),
-    customMap : result
+  new DbOverlayCollection({
+    map: result
   });
 
-  new UserPanel({
-    element : document.getElementById("userTab"),
+  var leftPanel = new LeftPanel({
+    element : document.getElementById("leftPanel"),
     customMap : result
   });
 
-  new SubmapPanel({
-    element : document.getElementById("submapTab"),
-    customMap : result
-  });
-
-  var infoPanel = new ProjectInfoPanel({
-    element : document.getElementById("infoTab"),
-    customMap : result
-  });
-  
-  var header = new Header({
-    element : document.getElementById("headerPanel"),
-    customMap : result
-  });
-
-  var footer = new Footer({
-    element : document.getElementById("footerPanel"),
-    customMap : result
-  });
-
-
   return new Promise(function(resolve, reject) {
     insertGoogleAnalyticsCode(result).then(function(){
-      return restoreSearchQuery(result);
-    }).then(function(){
-      return infoPanel.refresh();
-    }).then(function(){
-      return restoreDrugQuery(result);
-    }).then(function(){
-      return restoreChemicalQuery(result);
-    }).then(function(){
-      return restoreMiRnaQuery(result);
+      return leftPanel.init();
     }).then(function(){
       return createLegend(document.getElementById("legend"));
     }).then(function(){
diff --git a/frontend-js/src/test/js/gui/Header-test.js b/frontend-js/src/test/js/gui/Header-test.js
index 233361644f..ef18f980ff 100644
--- a/frontend-js/src/test/js/gui/Header-test.js
+++ b/frontend-js/src/test/js/gui/Header-test.js
@@ -20,12 +20,10 @@ describe('Header', function() {
   });
 
   it('constructor', function() {
-    var div = helper.createSearchTab();
-
     var map = helper.createCustomMap();
 
     new Header({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js
index b28b794367..08cf971fe4 100644
--- a/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js
@@ -20,26 +20,22 @@ describe('ChemicalPanel', function() {
   });
 
   it('contructor', function() {
-    var div = helper.createChemicalTab();
-
     var map = helper.createCustomMap();
     helper.createChemicalDbOverlay(map);
 
     new ChemicalPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     assert.equal(logger.getWarnings().length, 0);
   });
 
   it('createChemicaleader for empty', function() {
-    var div = helper.createChemicalTab();
-
     var map = helper.createCustomMap();
     helper.createChemicalDbOverlay(map);
 
     var panel = new ChemicalPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -47,13 +43,11 @@ describe('ChemicalPanel', function() {
   });
 
   it('createChemicaleader for empty', function() {
-    var div = helper.createChemicalTab();
-
     var map = helper.createCustomMap();
     helper.createChemicalDbOverlay(map);
 
     var panel = new ChemicalPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -61,30 +55,28 @@ describe('ChemicalPanel', function() {
   });
 
   it('on searchResults changed', function() {
-    var div = helper.createChemicalTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var chemicalDbOverlay = helper.createChemicalDbOverlay(map);
 
     new ChemicalPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     return chemicalDbOverlay.searchByQuery("rotenone").then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("marker/mechanism") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("marker/mechanism") >= 0);
     });
   });
 
   it('searchByQuery', function() {
-    var div = helper.createChemicalTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     helper.createChemicalDbOverlay(map);
 
     var panel = new ChemicalPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -92,7 +84,7 @@ describe('ChemicalPanel', function() {
 
     return panel.searchByQuery().then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("Rotenone ") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("Rotenone ") >= 0);
     });
   });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js
index cd970ffdd6..15814d3740 100644
--- a/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js
@@ -20,26 +20,22 @@ describe('DrugPanel', function() {
   });
 
   it('contructor', function() {
-    var div = helper.createDrugTab();
-
     var map = helper.createCustomMap();
     helper.createDrugDbOverlay(map);
 
     new DrugPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     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,
+      element : testDiv,
       customMap : map
     });
 
@@ -47,13 +43,11 @@ describe('DrugPanel', function() {
   });
 
   it('createDrugeader for empty', function() {
-    var div = helper.createDrugTab();
-
     var map = helper.createCustomMap();
     helper.createDrugDbOverlay(map);
 
     var panel = new DrugPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -61,30 +55,28 @@ describe('DrugPanel', function() {
   });
 
   it('on searchResults changed', function() {
-    var div = helper.createDrugTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var drugDbOverlay = helper.createDrugDbOverlay(map);
 
     new DrugPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     return drugDbOverlay.searchByQuery("aspirin").then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("Acetylsalicylic acid") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0);
     });
   });
 
   it('searchByQuery', function() {
-    var div = helper.createDrugTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     helper.createDrugDbOverlay(map);
 
     var panel = new DrugPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -92,7 +84,7 @@ describe('DrugPanel', function() {
 
     return panel.searchByQuery().then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("Acetylsalicylic acid") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0);
     });
   });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/Footer-test.js b/frontend-js/src/test/js/gui/leftPanel/Footer-test.js
index bd351a3db5..d1345f77a1 100644
--- a/frontend-js/src/test/js/gui/leftPanel/Footer-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/Footer-test.js
@@ -20,12 +20,10 @@ describe('Footer', function() {
   });
 
   it('constructor', function() {
-    var div = helper.createSearchTab();
-
     var map = helper.createCustomMap();
 
     new Footer({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -34,17 +32,15 @@ describe('Footer', function() {
   });
 
   it('link clicks', function() {
-    var div = helper.createSearchTab();
-
     var map = helper.createCustomMap();
 
     new Footer({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     var promises = [];
-    $("a", div).each(function(index, element) {
+    $("a", testDiv).each(function(index, element) {
       promises.push(new Promise(function(resolve, reject) {
         var fun = element.onclick;
         if (fun) { 
diff --git a/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js
index 8e051db9c7..0a5793b7fe 100644
--- a/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js
@@ -20,26 +20,22 @@ describe('MiRnaPanel', function() {
   });
 
   it('contructor', function() {
-    var div = helper.createMiRnaTab();
-
     var map = helper.createCustomMap();
     helper.createMiRnaDbOverlay(map);
 
     new MiRnaPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     assert.equal(logger.getWarnings().length, 0);
   });
 
   it('createMiRnaeader for empty', function() {
-    var div = helper.createMiRnaTab();
-
     var map = helper.createCustomMap();
     helper.createMiRnaDbOverlay(map);
 
     var panel = new MiRnaPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -47,13 +43,11 @@ describe('MiRnaPanel', function() {
   });
 
   it('createMiRnaeader for empty', function() {
-    var div = helper.createMiRnaTab();
-
     var map = helper.createCustomMap();
     helper.createMiRnaDbOverlay(map);
 
     var panel = new MiRnaPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -61,30 +55,28 @@ describe('MiRnaPanel', function() {
   });
 
   it('on searchResults changed', function() {
-    var div = helper.createMiRnaTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var miRnaDbOverlay = helper.createMiRnaDbOverlay(map);
 
     new MiRnaPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     return miRnaDbOverlay.searchByQuery("hsa-miR-125a-3p").then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("hsa-miR-125a-3p") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("hsa-miR-125a-3p") >= 0);
     });
   });
 
   it('searchByQuery', function() {
-    var div = helper.createMiRnaTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     helper.createMiRnaDbOverlay(map);
 
     var panel = new MiRnaPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -92,7 +84,7 @@ describe('MiRnaPanel', function() {
 
     return panel.searchByQuery().then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("http://www.mirbase.org/cgi-bin/mirna_entry.pl?acc") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("http://www.mirbase.org/cgi-bin/mirna_entry.pl?acc") >= 0);
     });
   });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
index 46d5a2b962..ba8e4c9a08 100644
--- a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
@@ -18,24 +18,20 @@ describe('OverlayPanel', function() {
   });
 
   it('contructor', function() {
-    var div = document.createElement("div");
-
     var map = helper.createCustomMap();
 
     new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     assert.equal(logger.getWarnings().length, 0);
   });
 
   it('refresh', function() {
-    var div = helper.createOverlayTab();
-
     var map = helper.createCustomMap();
 
     var panel = new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -46,8 +42,6 @@ describe('OverlayPanel', function() {
   });
 
   it('createRow', function() {
-    var div = helper.createOverlayTab();
-
     var map = helper.createCustomMap();
 
     var overlay = helper.createLayout();
@@ -56,7 +50,7 @@ describe('OverlayPanel', function() {
     map.getModel().addLayout(overlay);
 
     var panel = new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -75,8 +69,6 @@ describe('OverlayPanel', function() {
     openButton.onclick();
   });
   it('download', function() {
-    var div = helper.createOverlayTab();
-
     var map = helper.createCustomMap();
 
     var overlay = helper.createLayout();
@@ -84,7 +76,7 @@ describe('OverlayPanel', function() {
     map.getModel().addLayout(overlay);
 
     var panel = new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -106,12 +98,10 @@ describe('OverlayPanel', function() {
   });
 
   it('openAddOverlayDialog', function() {
-    var div = helper.createOverlayTab();
-
     var map = helper.createCustomMap();
 
     var panel = new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -119,12 +109,10 @@ describe('OverlayPanel', function() {
   });
 
   it('parse overlay file', function() {
-    var div = helper.createOverlayTab();
-
     var map = helper.createCustomMap();
 
     var panel = new OverlayPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/Panel-test.js b/frontend-js/src/test/js/gui/leftPanel/Panel-test.js
index fb4eaf9d77..88d3dd98fd 100644
--- a/frontend-js/src/test/js/gui/leftPanel/Panel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/Panel-test.js
@@ -20,12 +20,10 @@ describe('Panel', function() {
   });
 
   it('openDialog', function() {
-    var div = helper.createSearchTab();
-
     var map = helper.createCustomMap();
 
     var panel = new Panel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/SearchPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/SearchPanel-test.js
index ebce4c616e..60c94261c3 100644
--- a/frontend-js/src/test/js/gui/leftPanel/SearchPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/SearchPanel-test.js
@@ -20,61 +20,56 @@ describe('SearchPanel', function() {
   });
 
   it('contructor', function() {
-    var div = helper.createSearchTab();
-
     var map = helper.createCustomMap();
     helper.createSearchDbOverlay(map);
 
     new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     assert.equal(logger.getWarnings().length, 0);
   });
 
   it('on searchResults changed', function() {
-    var div = helper.createSearchTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var searchDbOverlay = helper.createSearchDbOverlay(map);
 
     new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     return searchDbOverlay.searchByCoordinates(map.getModel().getId(), new google.maps.Point(26547.33, 39419.29)).then(
         function() {
           assert.equal(logger.getWarnings().length, 0);
-          assert.ok(div.innerHTML.indexOf("Reaction") >= 0);
+          assert.ok(testDiv.innerHTML.indexOf("Reaction") >= 0);
         });
   });
 
   it('on searchResults changed 2', function() {
-    var div = helper.createSearchTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var searchDbOverlay = helper.createSearchDbOverlay(map);
 
     new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
     return searchDbOverlay.searchByQuery("s1", false).then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("s1") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("s1") >= 0);
     });
   });
 
   it('search by query with no results', function() {
-    var div = helper.createSearchTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     var searchDbOverlay = helper.createSearchDbOverlay(map);
 
     var panel = new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -82,7 +77,7 @@ describe('SearchPanel', function() {
     
     return panel.searchByQuery().then(function() {
       assert.equal(logger.getWarnings().length, 0);
-      assert.ok(div.innerHTML.indexOf("s1") >= 0);
+      assert.ok(testDiv.innerHTML.indexOf("s1") >= 0);
     });
   });
 
@@ -123,13 +118,12 @@ describe('SearchPanel', function() {
     };
     var alias = new Alias(aliasObj);
 
-    var div = helper.createSearchTab();
     var map = helper.createCustomMap();
     map.getModel().setId(15781);
     helper.createSearchDbOverlay(map);
 
     var panel = new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
@@ -138,13 +132,11 @@ describe('SearchPanel', function() {
   });
 
   it('createLabelText for indefined', function() {
-
-    var div = helper.createSearchTab();
     var map = helper.createCustomMap();
     helper.createSearchDbOverlay(map);
 
     var panel = new SearchPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
 
diff --git a/frontend-js/src/test/js/gui/leftPanel/UserPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/UserPanel-test.js
index bfbebf0fc8..6c04646f9d 100644
--- a/frontend-js/src/test/js/gui/leftPanel/UserPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/UserPanel-test.js
@@ -19,24 +19,20 @@ describe('UserPanel', function() {
   });
 
   it('contructor', function() {
-    var div = document.createElement("div");
-
     var map = helper.createCustomMap();
 
     new UserPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     assert.equal(logger.getWarnings().length, 0);
   });
   
   it('show profile', function() {
-    var div = helper.createUserTab();
-
     var map = helper.createCustomMap();
 
     var panel = new UserPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     
@@ -45,12 +41,10 @@ describe('UserPanel', function() {
   });
   
   it('show login page', function() {
-    var div = helper.createUserTab();
-
     var map = helper.createCustomMap();
 
     var panel = new UserPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     
@@ -58,12 +52,10 @@ describe('UserPanel', function() {
   });
   
   it('login', function() {
-    var div = helper.createUserTab();
-
     var map = helper.createCustomMap();
 
     var panel = new UserPanel({
-      element : div,
+      element : testDiv,
       customMap : map
     });
     
diff --git a/frontend-js/src/test/js/helper.js b/frontend-js/src/test/js/helper.js
index da029f50b4..06e8d145bf 100644
--- a/frontend-js/src/test/js/helper.js
+++ b/frontend-js/src/test/js/helper.js
@@ -87,68 +87,10 @@ Helper.prototype.createOverviewDialogDiv = function() {
 
 Helper.prototype.createLeftPanelTab = function() {
   var result = document.createElement("div");
-  result.appendChild(this.createSearchTab());
-  result.appendChild(this.createDrugTab());
-  result.appendChild(this.createChemicalTab());
-  result.appendChild(this.createMiRnaTab());
-  result.appendChild(this.createOverlayTab());
-  result.appendChild(this.createUserTab());
-  result.appendChild(this.createSubmapTab());
-  result.appendChild(this.createProjectInfoTab());
-  result.appendChild(this.createLegendDiv());
-  result.appendChild(this.createHeaderDiv());
-  result.appendChild(this.createFooterDiv());
+  result.id = "leftPanel";
   return result;
 };
 
-Helper.prototype.createSearchTab = function() {
-  return this.createPanelTab("searchTab");
-};
-Helper.prototype.createHeaderDiv = function() {
-  return this.createPanelTab("headerPanel");
-};
-Helper.prototype.createFooterDiv = function() {
-  return this.createPanelTab("footerPanel");
-};
-
-Helper.prototype.createDrugTab = function() {
-  return this.createPanelTab("drugTab");
-};
-
-Helper.prototype.createChemicalTab = function() {
-  return this.createPanelTab("chemicalTab");
-};
-
-Helper.prototype.createMiRnaTab = function() {
-  return this.createPanelTab("mirnaTab");
-};
-
-Helper.prototype.createPanelTab = function(id) {
-  var result = document.createElement("div");
-  result.id = id;
-  return result;
-};
-
-Helper.prototype.createUserTab = function() {
-  var result = document.createElement("div");
-  result.id = "userTab";
-
-  return result;
-};
-
-Helper.prototype.createSubmapTab = function() {
-  var result = document.createElement("div");
-  result.id = "submapTab";
-
-  return result;
-};
-
-Helper.prototype.createProjectInfoTab = function() {
-  var result = document.createElement("div");
-  result.id = "infoTab";
-
-  return result;
-};
 
 Helper.prototype.createLegendDiv = function() {
   var result = document.createElement("div");
@@ -170,12 +112,6 @@ Helper.prototype.createLegendDiv = function() {
   return result;
 };
 
-Helper.prototype.createOverlayTab = function() {
-  var result = document.createElement("div");
-  result.id = "overlayTab";
-  return result;
-};
-
 Helper.prototype.createCommentDbOverlay = function(map) {
   var result = new CommentDbOverlay({
     map : map,
diff --git a/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js b/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js
new file mode 100644
index 0000000000..7018dafce6
--- /dev/null
+++ b/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js
@@ -0,0 +1,26 @@
+"use strict";
+
+var Helper = require('../../Helper');
+
+var logger = require('../../logger');
+
+var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement');
+var DbOverlayCollection = require('../../../../main/js/map/overlay/DbOverlayCollection');
+
+var assert = require('assert');
+
+describe('DbOverlayCollection', function() {
+  var helper;
+  before(function() {
+    helper = new Helper();
+  });
+
+  it("constructor", function() {
+    var map = helper.createCustomMap();
+    new DbOverlayCollection({
+      map : map,
+    });
+    
+    assert.equal(logger.getWarnings.length, 0);
+  });
+});
diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js
index 2bcd259a46..13d096b9e8 100644
--- a/frontend-js/src/test/js/minerva-test.js
+++ b/frontend-js/src/test/js/minerva-test.js
@@ -24,15 +24,20 @@ describe('minerva global', function() {
 
     global.menuDiv = helper.createMenuDiv();
     document.body.appendChild(global.menuDiv);
-    
+
     global.dialogsDiv = helper.createDialogsDiv();
     document.body.appendChild(global.dialogsDiv);
 
     global.scriptDiv = document.createElement("script");
     document.body.appendChild(global.scriptDiv);
-});
+
+    global.legendDiv = helper.createLegendDiv();
+    document.body.appendChild(global.legendDiv);
+
+  });
 
   afterEach(function() {
+    document.body.removeChild(global.legendDiv);
     document.body.removeChild(global.leftPanelTab);
     document.body.removeChild(global.menuDiv);
     document.body.removeChild(global.dialogsDiv);
@@ -63,9 +68,15 @@ describe('minerva global', function() {
   });
 
   it("showComments", function() {
-    var options = helper.createCustomMapOptions();
-    return minerva.create(options).then(function() {
-      document.getElementsByName("commentCheckbox")[0].click();
+    var options = null;
+    return ServerConnector.getProject().then(function(project){
+      options = helper.createCustomMapOptions(project);
+      return minerva.create(options);
+    }).then(function() {
+      var commentCheckbox = document.getElementsByName("commentCheckbox")[0];
+      commentCheckbox.checked = true;
+      return commentCheckbox.onclick();
+    }).then(function() {
       assert.ok(ServerConnector.getSessionData(options.getProject()).getShowComments());
     });
   });
diff --git a/web/src/main/webapp/index.xhtml b/web/src/main/webapp/index.xhtml
index 2ce3b38352..6ce5bcefa5 100644
--- a/web/src/main/webapp/index.xhtml
+++ b/web/src/main/webapp/index.xhtml
@@ -76,7 +76,7 @@ function initMap(){
 	<h:outputScript library="primefaces" name="jquery/jquery.js" target="head"	/>
 	<div class = "containerClass">
 		<div id="leftPanel" class ="leftPanelClass">
-			<div id="headerPanel"/>
+<!--			<div id="headerPanel"/>
 
 			<p:tabView id="tabView" widgetVar="_tabViewVar" activeIndex="0" >	
 				<p:tab id="searchTab" title="&lt;div class='tngContainer'&gt;&lt;div class='tng'&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class='maintabdiv'&gt;&lt;i class='fa fa-search maintab'&gt;&lt;/i&gt;&lt;br&gt;SEARCH&lt;/div&gt;" styleClass="leftTab">
@@ -106,7 +106,7 @@ function initMap(){
 			</p:tabView >
 			
 			
-			<div id="footerPanel" class="footerLinks"/>				
+			<div id="footerPanel" class="footerLinks"/>				-->
 		</div>
 		<div  style="display: table-cell;height:100%;width:100%;">
 			<div  style="height:100%;width:100%;position:relative">
-- 
GitLab