diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js index e06c5307248d80076325708909f46e2c4b2230e3..59be27c9c7631be7f9de3979458f884a019b5c59 100644 --- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js +++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js @@ -674,23 +674,27 @@ GuiUtils.prototype.createHelpButton = function (toolTip, useXss) { content: '<span class="ui-icon ui-icon-help" style="margin-left: -0.5em;"/>', xss: false }); + var helpDialogDiv = undefined; helpTipButton.onclick = function () { - var helpDialogDiv = Functions.createElement({ - type: "div", - content: helpContent, - xss: false - }); - $(helpDialogDiv).dialog({ - close: function () { - $(this).dialog('destroy').remove(); - }, - position: { - my: "left top", - at: "left bottom", - of: helpTipButton - } - }); - $('.ui-dialog').find("a").blur(); + if (helpDialogDiv === undefined) { + helpDialogDiv = Functions.createElement({ + type: "div", + content: helpContent, + xss: false + }); + $(helpDialogDiv).dialog({ + close: function () { + $(this).dialog('destroy').remove(); + helpDialogDiv = undefined; + }, + position: { + my: "left top", + at: "left bottom", + of: helpTipButton + } + }); + $('.ui-dialog').find("a").blur(); + } }; return helpTipButton; }; diff --git a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js index d8194e12f81cea7f59beb461c423734b99ee95dd..078ec940fa008fa23dee36574751b8779acfe3b1 100644 --- a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js @@ -195,11 +195,25 @@ describe('GuiUtils', function () { }); }); - it('createHelpButton', function () { - var guiUtils = new GuiUtils(helper.getConfiguration()); - var button = guiUtils.createHelpButton("test tooltip"); - button.onclick(); - $(".ui-dialog-titlebar-close").click(); + describe('createHelpButton', function () { + it('default', function () { + var guiUtils = new GuiUtils(helper.getConfiguration()); + var button = guiUtils.createHelpButton("test tooltip"); + button.onclick(); + $(".ui-dialog-titlebar-close").click(); + }); + it('click twice', function () { + var guiUtils = new GuiUtils(helper.getConfiguration()); + var button = guiUtils.createHelpButton("test tooltip"); + button.onclick(); + // noinspection JSJQueryEfficiency + var counts = $("div").length; + button.onclick(); + // noinspection JSJQueryEfficiency + var counts2 = $("div").length; + assert.equal(counts, counts2); + $(".ui-dialog-titlebar-close").click(); + }); }); describe('createAnnotationList', function () {