From ab8803a5d67715da55033c214318ab3ea2021d01 Mon Sep 17 00:00:00 2001 From: Stan Silvert Date: Mon, 3 Oct 2016 08:09:46 -0400 Subject: [PATCH] KEYCLOAK-3633: Unable to delete multiple users without re-entering search. --- .../admin/resources/js/controllers/users.js | 24 ++++++++++++------- .../theme/base/admin/resources/js/services.js | 7 ++++++ .../admin/resources/partials/user-list.html | 3 +-- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/themes/src/main/resources/theme/base/admin/resources/js/controllers/users.js b/themes/src/main/resources/theme/base/admin/resources/js/controllers/users.js index e8484928fe..fe2d7824d8 100755 --- a/themes/src/main/resources/theme/base/admin/resources/js/controllers/users.js +++ b/themes/src/main/resources/theme/base/admin/resources/js/controllers/users.js @@ -240,16 +240,17 @@ module.controller('UserOfflineSessionsCtrl', function($scope, $location, realm, }); -module.controller('UserListCtrl', function($scope, realm, User, UserImpersonation, BruteForce, Notifications, $route, Dialog) { - $scope.realm = realm; - $scope.page = 0; - - $scope.query = { - realm: realm.realm, - max : 20, - first : 0 +module.controller('UserListCtrl', function($scope, realm, User, UserSearchState, UserImpersonation, BruteForce, Notifications, $route, Dialog) { + + $scope.init = function() { + $scope.realm = realm; + + UserSearchState.query.realm = realm.realm; + $scope.query = UserSearchState.query; + + $scope.searchQuery(); }; - + $scope.impersonate = function(userId) { UserImpersonation.save({realm : realm.realm, user: userId}, function (data) { if (data.sameRealm) { @@ -302,6 +303,11 @@ module.controller('UserListCtrl', function($scope, realm, User, UserImpersonatio userId : user.id }, function() { $route.reload(); + + if ($scope.users.length === 1 && $scope.query.first > 0) { + $scope.previousPage(); + } + Notifications.success("The user has been deleted."); }, function() { Notifications.error("User couldn't be deleted"); diff --git a/themes/src/main/resources/theme/base/admin/resources/js/services.js b/themes/src/main/resources/theme/base/admin/resources/js/services.js index a063143fff..cd69f87f3f 100755 --- a/themes/src/main/resources/theme/base/admin/resources/js/services.js +++ b/themes/src/main/resources/theme/base/admin/resources/js/services.js @@ -346,6 +346,13 @@ module.factory('User', function($resource) { }); }); +module.service('UserSearchState', function() { + this.query = { + max : 20, + first : 0 + }; +}); + module.factory('UserFederationInstances', function($resource) { return $resource(authUrl + '/admin/realms/:realm/user-federation/instances/:instance', { realm : '@realm', diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/user-list.html b/themes/src/main/resources/theme/base/admin/resources/partials/user-list.html index f0cd97ecf2..36510c57bb 100755 --- a/themes/src/main/resources/theme/base/admin/resources/partials/user-list.html +++ b/themes/src/main/resources/theme/base/admin/resources/partials/user-list.html @@ -1,4 +1,4 @@ -
+

{{:: 'users' | translate}}

@@ -33,7 +33,6 @@ -
{{:: 'first-name' | translate}} {{:: 'actions' | translate}}