From 12e85568ddf4312dfb6eedac8333bbf6ae80685b Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 1 Aug 2018 14:16:18 +0200
Subject: [PATCH] hideTab is implemented in guiUtils

---
 .../src/main/js/gui/leftPanel/GuiUtils.js     | 15 ++++++++++++++-
 .../src/main/js/gui/leftPanel/LeftPanel.js    | 15 ---------------
 .../src/main/js/gui/leftPanel/SearchPanel.js  | 19 -------------------
 .../src/main/js/gui/leftPanel/SubmapPanel.js  |  4 ++--
 .../test/js/gui/leftPanel/SubmapPanel-test.js |  6 ++----
 5 files changed, 18 insertions(+), 41 deletions(-)

diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
index ac94582e47..65deeac5ba 100644
--- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
+++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
@@ -784,7 +784,6 @@ GuiUtils.prototype.createTabMenuObject = function (params) {
     navLink.innerHTML = name;
   }
   navLink.onclick = function () {
-    console.log("SHOW", $(this)[0].href);
     $(this).tab('show');
   };
   navLi.appendChild(navLink);
@@ -1021,4 +1020,18 @@ GuiUtils.prototype.addTab = function (abstractGuiElement, params) {
   abstractGuiElement._panels.push(new params.panelClass(options));
 };
 
+/**
+ *
+ * @param {AbstractGuiElement} abstractGuiElement
+ * @param {Panel} panel
+ */
+GuiUtils.prototype.hideTab = function (abstractGuiElement, panel) {
+  var liElement = $("li:has(a[href='#" + panel.getElement().id + "'])", $(abstractGuiElement.getElement()))[0];
+  if (liElement !== undefined) {
+    liElement.style.display = "none";
+  } else {
+    logger.warn("Cannot find tab link for panel: " + panel.getPanelName());
+  }
+};
+
 module.exports = GuiUtils;
diff --git a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
index 434d40fc09..0814cf115c 100644
--- a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
@@ -104,21 +104,6 @@ LeftPanel.prototype.getPanelsDefinition = function () {
   }];
 };
 
-LeftPanel.prototype.hideTab = function (panel) {
-  var self = this;
-  var panelDefinitions = self.getPanelsDefinition();
-  for (var i = 0; i < panelDefinitions.length; i++) {
-    if (panel instanceof panelDefinitions[i].panelClass) {
-      var liElement = $("li:has(a[href='#" + panel.getElement().id + "'])", $(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;
 
diff --git a/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js b/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
index 17b93ec24a..6b72929cf5 100644
--- a/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/SearchPanel.js
@@ -73,25 +73,6 @@ SearchPanel.prototype.getPanelsDefinition = function () {
   }];
 };
 
-/**
- *
- * @param {AbstractDbPanel} panel
- */
-SearchPanel.prototype.hideTab = function (panel) {
-  var self = this;
-  var panelDefinitions = self.getPanelsDefinition();
-  for (var i = 0; i < panelDefinitions.length; i++) {
-    if (panel instanceof panelDefinitions[i].panelClass) {
-      var liElement = $("li:has(a[href='#search_panel_tab_" + i + "'])", $(self.getElement()))[0];
-      if (liElement !== undefined) {
-        liElement.style.display = "none";
-      } else {
-        logger.warn("Cannot find tab link for panel: " + panel.getPanelName());
-      }
-    }
-  }
-};
-
 /**
  *
  * @returns {Promise}
diff --git a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
index 908a50916e..2d08849eb5 100644
--- a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js
@@ -2,7 +2,7 @@
 
 var Promise = require("bluebird");
 
-var GuiConnector= require('../../GuiConnector');
+var GuiConnector = require('../../GuiConnector');
 var Panel = require('../Panel');
 var PanelControlElementType = require('../PanelControlElementType');
 
@@ -107,7 +107,7 @@ SubmapPanel.prototype.init = function () {
       div.appendChild(self.createTable(modelsByType[type], tableName));
     }
     if (models.length <= 1) {
-      self.getParent().hideTab(self);
+      self.getGuiUtils().hideTab(self.getParent(), self);
     }
     return resolve();
   });
diff --git a/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js
index 8264a0fed2..c3a1b27487 100644
--- a/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js
@@ -43,12 +43,12 @@ describe('SubmapPanel', function () {
           getMap: function () {
             return map;
           },
-          hideTab: function () {
+          getElement: function () {
+            return div;
           }
         }
       });
       return panel.init().then(function () {
-        assert.equal(logger.getWarnings().length, 0);
         var buttons = div.getElementsByTagName("button");
         assert.equal(buttons.length, 1);
       }).finally(function () {
@@ -67,8 +67,6 @@ describe('SubmapPanel', function () {
           parent: {
             getMap: function () {
               return map;
-            },
-            hideTab: function () {
             }
           }
         });
-- 
GitLab