From ae0ff1d0a109db76e8957f494fd4d1d611fdb511 Mon Sep 17 00:00:00 2001 From: patrickdemooij9 Date: Wed, 26 Aug 2020 18:18:15 +0200 Subject: [PATCH] 8274: Make it possible to open user groups in infinite editor (#8308) Co-authored-by: Sebastiaan Janssen --- .../src/common/services/editor.service.js | 18 +++ .../src/views/users/group.controller.js | 25 ++-- .../src/views/users/group.html | 135 +++++++++--------- .../src/views/users/user.controller.js | 31 ++++ .../src/views/users/views/user/details.html | 2 + 5 files changed, 135 insertions(+), 76 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js b/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js index 0f4f04c6bf..381d09f62d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js @@ -761,6 +761,23 @@ When building a custom infinite editor view you can use the same components as a open(editor); } + /** + * @ngdoc method + * @name umbraco.services.editorService#userGroupEditor + * @methodOf umbraco.services.editorService + * + * @description + * Opens the user group picker in infinite editing, the submit callback returns the saved user group + * @param {Object} editor rendering options + * @param {Callback} editor.submit Submits the editor + * @param {Callback} editor.close Closes the editor + * @returns {Object} editor object + */ + function userGroupEditor(editor) { + editor.view = "views/users/group.html"; + open(editor); + } + /** * @ngdoc method * @name umbraco.services.editorService#templateEditor @@ -1028,6 +1045,7 @@ When building a custom infinite editor view you can use the same components as a nodePermissions: nodePermissions, insertCodeSnippet: insertCodeSnippet, userGroupPicker: userGroupPicker, + userGroupEditor: userGroupEditor, templateEditor: templateEditor, sectionPicker: sectionPicker, insertField: insertField, diff --git a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js index 4ca4576755..469c845c45 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js @@ -3,14 +3,20 @@ function UserGroupEditController($scope, $location, $routeParams, userGroupsResource, localizationService, contentEditingHelper, editorService) { + var infiniteMode = $scope.model && $scope.model.infiniteMode; + var id = infiniteMode ? $scope.model.id : $routeParams.id; + var create = infiniteMode ? $scope.model.create : $routeParams.create; + var vm = this; var contentPickerOpen = false; vm.page = {}; vm.page.rootIcon = "icon-folder"; + vm.page.submitButtonLabelKey = infiniteMode ? "buttons_saveAndClose" : "buttons_save"; + vm.userGroup = {}; vm.labels = {}; - vm.showBackButton = true; + vm.showBackButton = !infiniteMode; vm.goToPage = goToPage; vm.openSectionPicker = openSectionPicker; @@ -53,7 +59,7 @@ vm.labels.noStartNode = name; }); - if ($routeParams.create) { + if (create) { // get user group scaffold userGroupsResource.getUserGroupScaffold().then(function (userGroup) { vm.userGroup = userGroup; @@ -63,7 +69,7 @@ }); } else { // get user group - userGroupsResource.getUserGroup($routeParams.id).then(function (userGroup) { + userGroupsResource.getUserGroup(id).then(function (userGroup) { vm.userGroup = userGroup; formatGranularPermissionSelection(); setSectionIcon(vm.userGroup.sections); @@ -71,7 +77,6 @@ vm.loading = false; }); } - } function save() { @@ -85,11 +90,15 @@ }).then(function (saved) { vm.userGroup = saved; - formatGranularPermissionSelection(); - setSectionIcon(vm.userGroup.sections); - makeBreadcrumbs(); - vm.page.saveButtonState = "success"; + if (infiniteMode) { + $scope.model.submit(vm.userGroup); + } else { + formatGranularPermissionSelection(); + setSectionIcon(vm.userGroup.sections); + makeBreadcrumbs(); + vm.page.saveButtonState = "success"; + } }, function (err) { vm.page.saveButtonState = "error"; }); diff --git a/src/Umbraco.Web.UI.Client/src/views/users/group.html b/src/Umbraco.Web.UI.Client/src/views/users/group.html index eae6dbd75c..2df7afc066 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/group.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/group.html @@ -6,14 +6,13 @@ - + @@ -31,13 +30,12 @@ - + - + @@ -144,13 +138,12 @@ - - + +