diff --git a/src/js/client.js b/src/js/client.js index d71f02d4b..281555819 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -1386,7 +1386,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }); }; - Client.prototype.getUsers = function (search, page, perPage, callback) { + Client.prototype.getUsers = function (search, active, page, perPage, callback) { if (typeof search === 'function') { callback = search; search = ''; @@ -1402,6 +1402,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }; if (search) config.params.search = search; + if (active !== null) config.params.active = active ? 'true' : 'false'; get('/api/v1/users', config, function (error, data, status) { if (error) return callback(error); diff --git a/src/views/users.html b/src/views/users.html index bc209e068..792ab0195 100644 --- a/src/views/users.html +++ b/src/views/users.html @@ -608,6 +608,7 @@ + diff --git a/src/views/users.js b/src/views/users.js index 2da4d5130..615ec1ae3 100644 --- a/src/views/users.js +++ b/src/views/users.js @@ -42,6 +42,17 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio $scope.pageItems = 15; $scope.userRefreshBusy = true; + $scope.userStates = [ + { state: 'ALL', value: null, label: 'All users' }, + { state: 'ACTIVE', value: true, label: 'Active users' }, + { state: 'INACTIVE', value: false, label: 'Inactive users' } + ]; + $scope.userStateFilter = $scope.userStates[0]; + $scope.$watch('userStateFilter', function (newVal, oldVal) { + if (newVal === oldVal) return; + $scope.updateFilter(); + }); + $scope.groupMembers = function (group) { return group.userIds.filter(function (uid) { return !!$scope.allUsersById[uid]; }).map(function (uid) { return $scope.allUsersById[uid].username || $scope.allUsersById[uid].email; }).join(' '); }; @@ -1018,7 +1029,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio function getUsers(callback) { var users = []; - Client.getUsers($scope.userSearchString, $scope.currentPage, $scope.pageItems, function (error, results) { + Client.getUsers($scope.userSearchString, $scope.userStateFilter.value, $scope.currentPage, $scope.pageItems, function (error, results) { if (error) return console.error(error); async.eachOf(results, function (result, index, iteratorDone) {