From 8d5ea9e09080f9b7a4a293d14df53db089f9e7ff Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 29 May 2017 16:55:10 +0200
Subject: [PATCH] destroy method is passed to minerva object

---
 frontend-js/src/main/js/gui/leftPanel/LeftPanel.js |  6 ++++++
 frontend-js/src/main/js/minerva.js                 | 12 ++++++++----
 frontend-js/src/test/js/minerva-test.js            |  7 ++++++-
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
index 8adacc0cac..59f3b15b1b 100644
--- a/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/LeftPanel.js
@@ -185,4 +185,10 @@ LeftPanel.prototype.getFooter = function() {
   return this._footer;
 };
 
+LeftPanel.prototype.destroy = function() {
+  var promises = [];
+  promises.push(this.getFooter().destroy());
+  return Promise.all(promises);
+};
+
 module.exports = LeftPanel;
diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index b1eccb5889..82d48b8bbe 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -22,6 +22,9 @@ var Promise = require("bluebird");
 
 var logger = require('./logger');
 
+var customMap, leftPanel, topMenu, legend, mapContextMenu, selectionContextMenu;
+
+
 function processUrlGetParams(params) {
   var project = params.getProject();
   var sessionData = ServerConnector.getSessionData(project);
@@ -184,6 +187,11 @@ function createResult(customMap) {
     getProject : function() {
       return customMap.getProject();
     },
+    destroy : function() {
+      return leftPanel.destroy().then(function() {
+        customMap.destroy();
+      });
+    },
   };
 }
 
@@ -244,10 +252,6 @@ function modifyParamsForTouchInterface(params) {
 
 function create(params) {
   params = modifyParamsForTouchInterface(params);
-  var customMap;
-  var leftPanel;
-  var topMenu;
-  var legend, mapContextMenu, selectionContextMenu;
   if (!(params instanceof CustomMapOptions)) {
     params = new CustomMapOptions(params);
   }
diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js
index 4840d61cef..0e11e74f44 100644
--- a/frontend-js/src/test/js/minerva-test.js
+++ b/frontend-js/src/test/js/minerva-test.js
@@ -230,9 +230,14 @@ describe('minerva global', function() {
       projectId : "sample",
       element : testDiv
     };
-    logger.debug(options);
+    var globalResult;
     return minerva.create(options).then(function(result) {
+      globalResult = result;
       assert.ok(result);
+    }).then(function() {
+      globalResult.destroy()
+    }, function() {
+      globalResult.destroy()
     });
   });
 
-- 
GitLab