From f044c4dde13b3051902e2355fe0e06b80e46a6e9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 May 2017 14:16:02 +0200 Subject: [PATCH] add functionality for bulk actions --- .../src/common/resources/users.resource.js | 18 +++++- .../src/less/components/users/umb-users.less | 13 ++++- .../src/views/usersV2/edit.html | 1 + .../src/views/usersV2/overview.controller.js | 34 ++++++++++- .../src/views/usersV2/overview.html | 58 +++++++++++++++---- 5 files changed, 111 insertions(+), 13 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/views/usersV2/edit.html 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 f493b50cb2..4498e33786 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 @@ -15,6 +15,7 @@ var deferred = $q.defer(); var users = [ { + "id": 1, "name": "Tammy Contreras", "userGroups": [ { @@ -25,6 +26,7 @@ "state": "active" }, { + "id": 2, "name": "Edward Flores", "userGroups": [ { @@ -35,6 +37,7 @@ "state": "active" }, { + "id": 3, "name": "Benjamin Mills", "userGroups": [ { @@ -45,6 +48,7 @@ "state": "disabled" }, { + "id": 4, "name": "Samantha Martinez", "userGroups": [ { @@ -55,6 +59,7 @@ "state": "pending" }, { + "id": 5, "name": "Angela Stone", "userGroups": [ { @@ -65,6 +70,7 @@ "state": "active" }, { + "id": 6, "name": "Beverly Silva", "userGroups": [ { @@ -75,6 +81,7 @@ "state": "active" }, { + "id": 7, "name": "Arthur Welch", "userGroups": [ { @@ -85,6 +92,7 @@ "state": "active" }, { + "id": 8, "name": "Ruth Turner", "userGroups": [ { @@ -97,13 +105,15 @@ "avatar": "", "state": "pending" }, - { + { + "id": 9, "name": "Tammy Contreras", "userGroupName": "Admin", "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/adellecharles/128.jpg", "state": "active" }, { + "id": 10, "name": "Edward Flores", "userGroups": [ { @@ -114,6 +124,7 @@ "state": "active" }, { + "id": 11, "name": "Benjamin Mills", "userGroups": [ { @@ -127,6 +138,7 @@ "state": "disabled" }, { + "id": 12, "name": "Samantha Martinez", "userGroupName": "Editor", "userGroups": [ @@ -138,6 +150,7 @@ "state": "pending" }, { + "id": 13, "name": "Angela Stone", "userGroups": [ { @@ -148,6 +161,7 @@ "state": "active" }, { + "id": 14, "name": "Beverly Silva", "userGroups": [ { @@ -158,6 +172,7 @@ "state": "active" }, { + "id": 15, "name": "Arthur Welch", "userGroups": [ { @@ -168,6 +183,7 @@ "state": "active" }, { + "id": 16, "name": "Ruth Turner", "userGroups": [ { diff --git a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-users.less b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-users.less index d65b3e7aae..bc207662ea 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/users/umb-users.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/users/umb-users.less @@ -17,6 +17,11 @@ align-items: center; margin: 10px; cursor: pointer; + position: relative; +} + +.umb-user--selected { + border-color: @turquoise; } .umb-user:hover { @@ -33,6 +38,12 @@ font-weight: bold; } -.umb-user__group { +.umb-user__checkmark { + position: absolute; + top: 10px; + right: 10px; +} +.umb-user__group { + font-size: 14px; } \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/usersV2/edit.html b/src/Umbraco.Web.UI.Client/src/views/usersV2/edit.html new file mode 100644 index 0000000000..a500a1d625 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/usersV2/edit.html @@ -0,0 +1 @@ +
Edit user
\ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.controller.js b/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.controller.js index e9691952c4..183bc62969 100644 --- a/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function UsersOverviewController($scope, $timeout, usersResource) { + function UsersOverviewController($scope, $timeout, $location, usersResource) { var vm = this; @@ -10,6 +10,7 @@ vm.users = []; vm.userGroups = []; vm.userStates = []; + vm.selection = []; vm.usersViewState = 'overview'; vm.usersPagination = { "pageNumber": 1, @@ -55,6 +56,10 @@ vm.setUsersViewState = setUsersViewState; vm.getUserStateType = getUserStateType; vm.selectLayout = selectLayout; + vm.selectUser = selectUser; + vm.clearSelection = clearSelection; + vm.goToUser = goToUser; + vm.disableUser = disableUser; function init() { @@ -107,6 +112,33 @@ vm.activeLayout = selectedLayout; } + function selectUser(user, selection) { + // deselect if already selected, else select + if(user.selected) { + var index = selection.indexOf(user.id); + selection.splice(index, 1); + user.selected = false; + } else { + user.selected = true; + vm.selection.push(user.id); + } + } + + function clearSelection() { + angular.forEach(vm.users, function(user){ + user.selected = false; + }); + vm.selection = []; + } + + function goToUser(user, event) { + $location.path('users/usersV2/edit/' + user.id); + } + + function disableUser() { + console.log(vm.selection); + alert("disable users"); + } // helpers function getUserStates(users) { diff --git a/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.html b/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.html index 30457c3aa0..155270b30c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.html +++ b/src/Umbraco.Web.UI.Client/src/views/usersV2/overview.html @@ -18,9 +18,11 @@
+ - - + + + - - + -
@@ -56,10 +56,44 @@
-
+ + + + + + + + + {{ vm.selection.length }} of {{ vm.users.length }} selected + + + + + + + + + +
+ +
-
+
-
{{user.name}}
+
+ {{user.name}}
- {{ group.name }} + {{ group.name }},