From d726f5ffe980910a3d7d8e7ce3c400a100729470 Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Mon, 2 Sep 2019 20:22:47 +0200 Subject: [PATCH] prevent double-click of compositions button (doctype editor) as it breaks the whole page --- .../components/umbgroupsbuilder.directive.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js index c1f34e64ae..f3217aa4de 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js @@ -248,8 +248,14 @@ }; - scope.openCompositionsDialog = function() { + scope.isCompositionsDialogLoading = false; + + scope.openCompositionsDialog = function() { + if (scope.isCompositionsDialogLoading) { + return; + } + scope.isCompositionsDialogLoading = true; scope.compositionsDialogModel = { contentType: scope.model, compositeContentTypes: scope.model.compositeContentTypes, @@ -266,7 +272,7 @@ // remove overlay editorService.close(); - + scope.isCompositionsDialogLoading = false; }, close: function(oldModel) { @@ -276,7 +282,7 @@ // remove overlay editorService.close(); - + scope.isCompositionsDialogLoading = false; }, selectCompositeContentType: function (selectedContentType) { @@ -354,6 +360,7 @@ scope.compositionsDialogModel.totalContentTypes = parseInt(result, 10); }) ]).then(function() { + scope.isCompositionsDialogLoading = false; //resolves when both other promises are done, now show it editorService.open(scope.compositionsDialogModel); });