wire up enable users and disable users bulk actions

This commit is contained in:
Mads Rasmussen
2017-06-19 11:51:38 +02:00
parent 054fd46555
commit 79e9394b62
3 changed files with 91 additions and 50 deletions

View File

@@ -1,7 +1,7 @@
(function () {
"use strict";
function UsersController($scope, $timeout, $location, usersResource, localizationService, contentEditingHelper, usersHelper, formHelper) {
function UsersController($scope, $timeout, $location, usersResource, localizationService, contentEditingHelper, usersHelper, formHelper, notificationsService) {
var vm = this;
var localizeSaving = localizationService.localize("general_saving");
@@ -58,12 +58,12 @@
];
vm.setUsersViewState = setUsersViewState;
vm.getUserStateType = getUserStateType;
vm.selectLayout = selectLayout;
vm.selectUser = selectUser;
vm.clearSelection = clearSelection;
vm.goToUser = goToUser;
vm.disableUser = disableUser;
vm.disableUsers = disableUsers;
vm.enableUsers = enableUsers;
vm.openUserGroupPicker = openUserGroupPicker;
vm.removeSelectedUserGroup = removeSelectedUserGroup;
vm.selectAll = selectAll;
@@ -93,23 +93,10 @@
vm.usersViewState = state;
}
function getUserStateType(state) {
switch (state) {
case "disabled" || "umbracoDisabled":
return "danger";
case "pending":
return "warning";
default:
return "success";
}
}
function selectLayout(selectedLayout) {
angular.forEach(vm.layouts, function (layout) {
layout.active = false;
});
selectedLayout.active = true;
vm.activeLayout = selectedLayout;
}
@@ -123,9 +110,7 @@
user.selected = true;
vm.selection.push(user.id);
}
setBulkActions(vm.users);
}
function clearSelection() {
@@ -139,8 +124,80 @@
$location.path('users/users/user/' + user.id);
}
function disableUser() {
alert("disable users");
function disableUsers() {
vm.disableUserButtonState = "busy";
usersResource.disableUsers(vm.selection).then(function (data) {
if (data === "true") {
// update userState
angular.forEach(vm.selection, function(userId){
var user = getUserFromArrayById(userId, vm.users);
if(user) {
user.userState = 1;
}
});
// show the correct badges
setUserDisplayState(vm.users);
// show notification
localizationService.localize("speechBubbles_disableUsersSuccess", [vm.selection.length]).then(function (value) {
notificationsService.success(value);
});
vm.disableUserButtonState = "init";
clearSelection();
} else {
vm.disableUserButtonState = "error";
localizationService.localize("speechBubbles_disableUsersError").then(function (value) {
notificationsService.error(value);
});
}
}, function(error){
vm.disableUserButtonState = "error";
localizationService.localize("speechBubbles_disableUsersError").then(function (value) {
notificationsService.error(value);
});
});
}
function enableUsers() {
vm.enableUserButtonState = "busy";
usersResource.enableUsers(vm.selection).then(function (data) {
if (data === "true") {
// update userState
angular.forEach(vm.selection, function(userId){
var user = getUserFromArrayById(userId, vm.users);
if(user) {
user.userState = 0;
}
});
// show the correct badges
setUserDisplayState(vm.users);
// show notification
localizationService.localize("speechBubbles_enableUsersSuccess", [vm.selection.length]).then(function (value) {
notificationsService.success(value);
});
vm.enableUserButtonState = "init";
clearSelection();
} else {
vm.enableUserButtonState = "error";
localizationService.localize("speechBubbles_enableUsersError").then(function (value) {
notificationsService.error(value);
});
}
}, function (error) {
vm.enableUserButtonState = "error";
localizationService.localize("speechBubbles_enableUsersError").then(function (value) {
notificationsService.error(value);
});
});
}
function getUserFromArrayById(userId, users) {
var userFound;
angular.forEach(users, function(user){
if(userId === user.id) {
userFound = user;
}
});
return userFound;
}
function openUserGroupPicker(event) {
@@ -306,7 +363,6 @@
vm.usersOptions.totalItems = users.totalItems;
vm.usersOptions.totalPages = users.totalPages;
vm.userStates = getUserStates(vm.users);
formatDates(vm.users);
setUserDisplayState(vm.users);
@@ -319,30 +375,6 @@
});
}
function getUserStates(users) {
var userStates = [];
angular.forEach(users, function (user) {
var newUserState = { "name": user.state, "count": 1 };
var userStateExists = false;
angular.forEach(userStates, function (userState) {
if (newUserState.name === userState.name) {
userState.count = userState.count + 1;
userStateExists = true;
}
});
if (userStateExists === false) {
userStates.push(newUserState);
}
});
return userStates;
}
function setUserDisplayState(users) {
angular.forEach(users, function(user){
user.userDisplayState = usersHelper.getUserStateFromValue(user.userState);

View File

@@ -47,6 +47,7 @@
<umb-editor-sub-header-section>
<umb-button type="button"
label="Clear selection"
size="xs"
label-key="buttons_clearSelection"
action="vm.clearSelection()"
disabled="actionInProgress">
@@ -61,7 +62,7 @@
<div style="margin-right: 5px;">
<umb-button ng-if="vm.allowSetUserGroup"
type="button"
button-style="link"
size="xs"
label="Set group"
icon="icon-users"
action="vm.setUserGroup()">
@@ -70,19 +71,21 @@
<div style="margin-right: 5px;">
<umb-button ng-if="vm.allowEnableUser"
type="button"
button-style="link"
size="xs"
state="vm.enableUserButtonState"
label="Enable"
icon="icon-check"
action="vm.enableUser()">
action="vm.enableUsers()">
</umb-button>
</div>
<div>
<umb-button ng-if="vm.allowDisableUser"
type="button"
button-style="link"
size="xs"
state="vm.disableUserButtonState"
label="Disable"
icon="icon-block"
action="vm.disableUser()">
action="vm.disableUsers()">
</umb-button>
</div>
</umb-editor-sub-header-content-right>