admin_list_users_ctrl.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. export default class AdminListUsersCtrl {
  2. users: any;
  3. pages = [];
  4. perPage = 50;
  5. page = 1;
  6. totalPages: number;
  7. showPaging = false;
  8. query: any;
  9. navModel: any;
  10. /** @ngInject */
  11. constructor(private $scope, private backendSrv, navModelSrv) {
  12. this.navModel = navModelSrv.getNav('cfg', 'admin', 'global-users', 1);
  13. this.query = '';
  14. this.getUsers();
  15. }
  16. getUsers() {
  17. this.backendSrv
  18. .get(
  19. `/api/users/search?perpage=${this.perPage}&page=${this.page}&query=${
  20. this.query
  21. }`
  22. )
  23. .then(result => {
  24. this.users = result.users;
  25. this.page = result.page;
  26. this.perPage = result.perPage;
  27. this.totalPages = Math.ceil(result.totalCount / result.perPage);
  28. this.showPaging = this.totalPages > 1;
  29. this.pages = [];
  30. for (var i = 1; i < this.totalPages + 1; i++) {
  31. this.pages.push({ page: i, current: i === this.page });
  32. }
  33. });
  34. }
  35. navigateToPage(page) {
  36. this.page = page.page;
  37. this.getUsers();
  38. }
  39. deleteUser(user) {
  40. this.$scope.appEvent('confirm-modal', {
  41. title: 'Delete',
  42. text: 'Do you want to delete ' + user.login + '?',
  43. icon: 'fa-trash',
  44. yesText: 'Delete',
  45. onConfirm: () => {
  46. this.backendSrv.delete('/api/admin/users/' + user.id).then(() => {
  47. this.getUsers();
  48. });
  49. },
  50. });
  51. }
  52. }