diff --git a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js index bf80688294254502ae9563f89b4b858dce14a763..66b39646bee816b5d4607487d11ced0a596f6369 100644 --- a/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js +++ b/frontend-js/src/main/js/gui/leftPanel/SubmapPanel.js @@ -50,7 +50,7 @@ SubmapPanel.prototype.createRow = function (model) { var link = document.createElement("a"); link.href = "#"; link.onclick = function () { - self.getMap().openSubmap(model.getId()); + return self.getMap().openSubmap(model.getId()); }; link.appendChild(img); openTd.appendChild(link); @@ -99,7 +99,11 @@ SubmapPanel.prototype.init = function () { } for (i = 0; i < types.length; i++) { var type = types[i]; - div.appendChild(self.createTable(modelsByType[type], type + " submaps")); + var tableName = type + " submaps"; + if (type === "UNKNOWN") { + tableName = "" + } + div.appendChild(self.createTable(modelsByType[type], tableName)); } if (models.length === 0) { self.getParent().hideTab(self); 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 c2f34d7c1147f49e08deada88192c9eaffd76a1d..8264a0fed24d046cd0c1e77c8588c34b83bea866 100644 --- a/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js @@ -3,23 +3,24 @@ require('../../mocha-config.js'); var SubmapPanel = require('../../../../main/js/gui/leftPanel/SubmapPanel'); +var ServerConnector = require('../../ServerConnector-mock'); var chai = require('chai'); var assert = chai.assert; var logger = require('../../logger'); -describe('SubmapPanel', function() { +describe('SubmapPanel', function () { - it('constructor', function() { + it('constructor', function () { var div = document.createElement("div"); var map = helper.createCustomMap(); new SubmapPanel({ - element : div, - customMap : map, - parent : { - getMap : function() { + element: div, + customMap: map, + parent: { + getMap: function () { return map; } } @@ -29,4 +30,56 @@ describe('SubmapPanel', function() { assert.equal(buttons.length, 1); }); + describe('init', function () { + it('simple', function () { + var div = document.createElement("div"); + + var map = helper.createCustomMap(); + + var panel = new SubmapPanel({ + element: div, + customMap: map, + parent: { + getMap: function () { + return map; + }, + hideTab: function () { + } + } + }); + return panel.init().then(function () { + assert.equal(logger.getWarnings().length, 0); + var buttons = div.getElementsByTagName("button"); + assert.equal(buttons.length, 1); + }).finally(function () { + return panel.destroy(); + }) + }); + it('with submaps', function () { + var div = document.createElement("div"); + var panel; + return ServerConnector.getProject("complex_model_with_submaps").then(function (project) { + var map = helper.createCustomMap(project); + + panel = new SubmapPanel({ + element: div, + customMap: map, + parent: { + getMap: function () { + return map; + }, + hideTab: function () { + } + } + }); + return panel.init(); + }).then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.equal(panel.getElement().innerHTML.indexOf("UNKNOWN submaps"), -1, "UNKNOWN submaps table should have no title"); + }).finally(function () { + return panel.destroy(); + }) + }); + }); + });