From fbed82219d7788c102252458e617c3aad61eacc9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 May 2017 15:23:38 +0200 Subject: [PATCH] init edit user editor --- .../src/common/resources/users.resource.js | 5 +- src/Umbraco.Web.UI.Client/src/less/belle.less | 1 + .../src/less/components/umb-avatar.less | 8 +- .../users/umb-user-role-preview.less | 2 +- .../src/less/components/users/umb-user.less | 20 ++ .../src/views/users/user.controller.js | 104 +++++++++ .../src/views/users/user.html | 214 ++++++++++++++++++ 7 files changed, 351 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/less/components/users/umb-user.less diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/users.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/users.resource.js index dd307553e7..b69098a9ae 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/users.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/users.resource.js @@ -21,7 +21,10 @@ "lastLogin": "2014-04-25T01:32:21.196Z", "invitedBy": "Edward Flores", "createdBy": "", - "state": "active" + "state": "active", + "userRoles": [], + "startNodesContent": [], + "startNodesMedia": [] }; deferred.resolve(user); return deferred.promise; diff --git a/src/Umbraco.Web.UI.Client/src/less/belle.less b/src/Umbraco.Web.UI.Client/src/less/belle.less index 887b9e7816..637b13b965 100644 --- a/src/Umbraco.Web.UI.Client/src/less/belle.less +++ b/src/Umbraco.Web.UI.Client/src/less/belle.less @@ -135,6 +135,7 @@ @import "components/users/umb-users.less"; @import "components/users/umb-user-role-picker-list.less"; @import "components/users/umb-user-role-preview.less"; +@import "components/users/umb-user.less"; // Utilities @import "utilities/_flexbox.less"; diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-avatar.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-avatar.less index 61441f16b0..85b597ab91 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-avatar.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-avatar.less @@ -50,6 +50,12 @@ font-size: 20px; } +.umb-avatar--xxl { + width: 150px; + height: 150px; + font-size: 20px; +} + /* Colors */ .umb-avatar--white { @@ -68,7 +74,7 @@ } .umb-avatar--secondary { - background-color: @purple-l1; + background-color: @purple-l3; color: @white; } diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-role-preview.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-role-preview.less index a772a8ff28..a5c9d6ace1 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-role-preview.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user-role-preview.less @@ -3,7 +3,7 @@ padding-bottom: 10px; display: flex; box-sizing: border-box; - border-bottom: 1px solid @gray-9; + border-bottom: 1px solid @gray-8; } .umb-user-role-preview:last-of-type { diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user.less new file mode 100644 index 0000000000..c4d696c6f8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-user.less @@ -0,0 +1,20 @@ +.test-group { + border: 1px solid @gray-8; + border-radius: 3px; + margin-bottom: 30px; +} + +.test-group-title { + padding: 10px 20px; + margin-bottom: 0; + background-color: @gray-10; + color: @black; + border-bottom: none; + font-size: 16px; + font-weight: bold; + color: @black; +} + +.test-group-content { + padding: 20px; +} diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js index fd3950bde6..1d8ba3ff84 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.controller.js @@ -10,6 +10,14 @@ vm.user = {}; vm.goBack = goBack; + vm.openUserRolePicker = openUserRolePicker; + vm.openContentPicker = openContentPicker; + vm.openMediaPicker = openMediaPicker; + vm.removeSelectedItem = removeSelectedItem; + vm.disableUser = disableUser; + vm.resetPassword = resetPassword; + vm.getUserStateType = getUserStateType; + vm.changeAvatar = changeAvatar; function init() { @@ -30,6 +38,102 @@ function goBack() { $location.path("/users/users/overview").search("subview", "users"); } + + function openUserRolePicker() { + vm.userRolePicker = { + title: "Select user roles", + view: "userrolepicker", + selection: vm.user.userRoles, + closeButtonLabel: "Cancel", + show: true, + submit: function(model) { + // apply changes + if(model.selection) { + vm.user.userRoles = model.selection; + } + vm.userRolePicker.show = false; + vm.userRolePicker = null; + }, + close: function(oldModel) { + // rollback on close + if(oldModel.selection) { + vm.user.userRoles = oldModel.selection; + } + vm.userRolePicker.show = false; + vm.userRolePicker = null; + } + }; + } + + function openContentPicker() { + vm.contentPicker = { + title: "Select content start node", + view: "contentpicker", + multiPicker: true, + show: true, + submit: function(model) { + if(model.selection) { + vm.user.startNodesContent = model.selection; + } + vm.contentPicker.show = false; + vm.contentPicker = null; + }, + close: function(oldModel) { + vm.contentPicker.show = false; + vm.contentPicker = null; + } + }; + } + + function openMediaPicker() { + vm.contentPicker = { + title: "Select media start node", + view: "treepicker", + section: "media", + treeAlias: "media", + entityType: "media", + multiPicker: true, + show: true, + submit: function(model) { + if(model.selection) { + vm.user.startNodesMedia = model.selection; + } + vm.contentPicker.show = false; + vm.contentPicker = null; + }, + close: function(oldModel) { + vm.contentPicker.show = false; + vm.contentPicker = null; + } + }; + } + + function removeSelectedItem(index, selection) { + selection.splice(index, 1); + } + + function disableUser() { + alert("disable user"); + } + + function resetPassword() { + alert("reset password"); + } + + function getUserStateType(state) { + switch (state) { + case "disabled" || "umbracoDisabled": + return "danger"; + case "pending": + return "warning"; + default: + return "success"; + } + } + + function changeAvatar() { + alert("change avatar"); + } init(); diff --git a/src/Umbraco.Web.UI.Client/src/views/users/user.html b/src/Umbraco.Web.UI.Client/src/views/users/user.html index 208a941200..22d9788148 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/user.html @@ -21,6 +21,199 @@ +
+ +
+ +
+ +
+
Meta
+
+ + + + + + + +
+
+ +
+
Permissions
+
+ + + + + + + + Add + + + + + + + + + + + Add + + + + + + + + + + + Add + + + + +
+
+
+ +
+ +
+ +
+ + + + +
+ + + +
+
Last login:
+
+ {{ vm.user.lastLogin }} + The user has not logged in yet +
+
+ +
+
Invited by:
+
{{ vm.user.invitedBy }}
+
+ +
+
Created by:
+
{{ vm.user.createdBy }}
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ + + + +
+ +
+ +
+ +
+ @@ -45,4 +238,25 @@ + + + + + + + + +