diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js
index f5b9e3e6d7..fad2820f56 100644
--- a/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js
+++ b/src/Umbraco.Web.UI.Client/src/common/resources/usergroups.resource.js
@@ -7,69 +7,69 @@
* Used by the users section to get users and send requests to create, invite, delete, etc. users.
*/
(function () {
- 'use strict';
+ 'use strict';
- function userGroupsResource($http, umbRequestHelper, $q, umbDataFormatter) {
-
- function getUserGroupScaffold() {
+ function userGroupsResource($http, umbRequestHelper, $q, umbDataFormatter) {
- return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "userGroupsApiBaseUrl",
- "GetEmptyUserGroup")),
- 'Failed to get the user group scaffold');
- }
-
- function saveUserGroup(userGroup, isNew) {
- if (!userGroup) {
- throw "userGroup not specified";
- }
+ function getUserGroupScaffold() {
- //need to convert the user data into the correctly formatted save data - it is *not* the same and we don't want to over-post
- var formattedSaveData = umbDataFormatter.formatUserGroupPostData(userGroup, "save" + (isNew ? "New" : ""));
+ return umbRequestHelper.resourcePromise(
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "userGroupsApiBaseUrl",
+ "GetEmptyUserGroup")),
+ 'Failed to get the user group scaffold');
+ }
- return umbRequestHelper.resourcePromise(
- $http.post(
- umbRequestHelper.getApiUrl(
- "userGroupsApiBaseUrl",
- "PostSaveUserGroup"),
- formattedSaveData),
- "Failed to save user group");
- }
+ function saveUserGroup(userGroup, isNew) {
+ if (!userGroup) {
+ throw "userGroup not specified";
+ }
- function getUserGroup(id) {
+ //need to convert the user data into the correctly formatted save data - it is *not* the same and we don't want to over-post
+ var formattedSaveData = umbDataFormatter.formatUserGroupPostData(userGroup, "save" + (isNew ? "New" : ""));
+
+ return umbRequestHelper.resourcePromise(
+ $http.post(
+ umbRequestHelper.getApiUrl(
+ "userGroupsApiBaseUrl",
+ "PostSaveUserGroup"),
+ formattedSaveData),
+ "Failed to save user group");
+ }
+
+ function getUserGroup(id) {
+
+ return umbRequestHelper.resourcePromise(
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "userGroupsApiBaseUrl",
+ "GetUserGroup",
+ { id: id })),
+ "Failed to retrieve data for user group " + id);
+
+ }
+
+ function getUserGroups() {
+ return umbRequestHelper.resourcePromise(
+ $http.get(
+ umbRequestHelper.getApiUrl(
+ "userGroupsApiBaseUrl",
+ "GetUserGroups")),
+ "Failed to retrieve user groups");
+ }
+
+ var resource = {
+ saveUserGroup: saveUserGroup,
+ getUserGroup: getUserGroup,
+ getUserGroups: getUserGroups,
+ getUserGroupScaffold: getUserGroupScaffold
+ };
+
+ return resource;
- return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "userGroupsApiBaseUrl",
- "GetUserGroup",
- { id: id })),
- "Failed to retrieve data for user group " + id);
-
}
- function getUserGroups() {
- return umbRequestHelper.resourcePromise(
- $http.get(
- umbRequestHelper.getApiUrl(
- "userGroupsApiBaseUrl",
- "GetUserGroups")),
- "Failed to retrieve user groups");
- }
-
- var resource = {
- saveUserGroup: saveUserGroup,
- getUserGroup: getUserGroup,
- getUserGroups: getUserGroups,
- getUserGroupScaffold: getUserGroupScaffold
- };
-
- return resource;
-
- }
-
- angular.module('umbraco.resources').factory('userGroupsResource', userGroupsResource);
+ angular.module('umbraco.resources').factory('userGroupsResource', userGroupsResource);
})();
diff --git a/src/Umbraco.Web.UI.Client/src/less/belle.less b/src/Umbraco.Web.UI.Client/src/less/belle.less
index 45afc9a3f6..fe5ab704da 100644
--- a/src/Umbraco.Web.UI.Client/src/less/belle.less
+++ b/src/Umbraco.Web.UI.Client/src/less/belle.less
@@ -123,6 +123,7 @@
@import "components/umb-badge.less";
@import "components/umb-nested-content.less";
@import "components/umb-checkmark.less";
+@import "components/umb-list.less";
@import "components/buttons/umb-button.less";
@import "components/buttons/umb-button-group.less";
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-list.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-list.less
new file mode 100644
index 0000000000..be63bb3a9c
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-list.less
@@ -0,0 +1,25 @@
+.umb-list-item {
+ border-bottom: 1px solid @gray-9;
+ padding-top: 15px;
+ padding-bottom: 15px;
+ display: flex;
+}
+
+a.umb-list-item:hover,
+a.umb-list-item:focus {
+ text-decoration: none;
+}
+
+.umb-list-item:hover .umb-list-checkbox,
+.umb-list-item--selected .umb-list-checkbox {
+ opacity: 1;
+}
+
+.umb-list-checkbox {
+ position: absolute;
+ opacity: 0;
+}
+
+.umb-list-checkbox--visible {
+ opacity: 1;
+}
\ No newline at end of file
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
index 351414b0d7..22ca2498d3 100644
--- 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
@@ -34,4 +34,4 @@
.test-group-content {
padding: 20px;
-}
+}
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js
index 7a647b9e27..862393968b 100644
--- a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.controller.js
@@ -9,7 +9,7 @@
vm.selection = [];
vm.createUserGroup = createUserGroup;
- vm.goToUserGroup = goToUserGroup;
+ vm.clickUserGroup = clickUserGroup;
vm.clearSelection = clearSelection;
vm.selectUserGroup = selectUserGroup;
@@ -32,8 +32,17 @@
$location.path('users/users/group/-1').search("create", "true");;
}
- function selectUserGroup(userGroup, selection) {
- if(userGroup.selected) {
+ function clickUserGroup(userGroup) {
+ if (vm.selection.length > 0) {
+ selectUserGroup(userGroup, vm.selection);
+ } else {
+ goToUserGroup(userGroup.id);
+ }
+ }
+
+ function selectUserGroup(userGroup, selection, event) {
+
+ if (userGroup.selected) {
var index = selection.indexOf(userGroup.id);
selection.splice(index, 1);
userGroup.selected = false;
@@ -41,17 +50,22 @@
userGroup.selected = true;
vm.selection.push(userGroup.id);
}
+
+ if(event){
+ event.preventDefault();
+ event.stopPropagation();
+ }
}
function clearSelection() {
- angular.forEach(vm.userGroups, function(userGroup){
+ angular.forEach(vm.userGroups, function (userGroup) {
userGroup.selected = false;
});
vm.selection = [];
}
- function goToUserGroup(userGroup) {
- $location.path('users/users/group/' + userGroup.id).search("create", null);
+ function goToUserGroup(userGroupId) {
+ $location.path('users/users/group/' + userGroupId).search("create", null);
}
onInit();
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html
index 4aef5a2458..9c3c84d520 100644
--- a/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html
+++ b/src/Umbraco.Web.UI.Client/src/views/users/views/groups/groups.html
@@ -17,10 +17,9 @@
+ size="xs">
@@ -31,19 +30,31 @@
+ action="vm.deleteUserGroup()"
+ size="xs">
-
-
-
{{userGroup.name}}
-
Edit
+
\ No newline at end of file