From c54051335a258a50863ba0cadced10e84e114249 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 16 Aug 2017 15:32:42 +0200 Subject: [PATCH] modal edit window caused unexpected problems --- .../main/js/gui/admin/EditProjectDialog.js | 4 --- .../src/main/js/gui/admin/MapsAdminPanel.js | 30 +++++++++++++++---- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js index da8a57fb20..0fdb83742b 100644 --- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js +++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js @@ -373,10 +373,6 @@ EditProjectDialog.prototype.open = function() { title : self.getProject().getProjectId(), width : window.innerWidth / 2, height : window.innerHeight / 2, - modal : true, - close : function(event, ui) { - $(this).dialog('destroy').remove(); - }, }); } $(div).dialog("open"); diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js index c956c68be3..c57b920340 100644 --- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js @@ -205,10 +205,13 @@ MapsAdminPanel.prototype.onRefreshClicked = function() { }); }; -MapsAdminPanel.prototype.showEditDialog = function(id) { - GuiConnector.showProcessing(); - var dialog; - return ServerConnector.getProject(id).then(function(project) { +MapsAdminPanel.prototype.getDialog = function(project) { + var self = this; + if (self._dialogs === undefined) { + self._dialogs = []; + } + var dialog = self._dialogs[project.getProjectId()]; + if (dialog === undefined) { dialog = new EditProjectDialog({ element : Functions.createElement({ type : "div" @@ -216,8 +219,23 @@ MapsAdminPanel.prototype.showEditDialog = function(id) { project : project, customMap : null, }); - return dialog.init(); - }).then(function() { + self._dialogs[project.getProjectId()] = dialog; + return dialog.init().then(function() { + return dialog; + }); + } else { + return Promise.resolve(dialog); + } +}; + +MapsAdminPanel.prototype.showEditDialog = function(id) { + var self = this; + GuiConnector.showProcessing(); + var dialog; + return ServerConnector.getProject(id).then(function(project) { + return self.getDialog(project); + }).then(function(dialog) { + dialog.open(); GuiConnector.hideProcessing(); }).then(null, function(error) { -- GitLab