admin_list_users_ctrl.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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.get(`/api/users/search?perpage=${this.perPage}&page=${this.page}&query=${this.query}`).then((result) => {
  18. this.users = result.users;
  19. this.page = result.page;
  20. this.perPage = result.perPage;
  21. this.totalPages = Math.ceil(result.totalCount / result.perPage);
  22. this.showPaging = this.totalPages > 1;
  23. this.pages = [];
  24. for (var i = 1; i < this.totalPages+1; i++) {
  25. this.pages.push({ page: i, current: i === this.page});
  26. }
  27. });
  28. }
  29. navigateToPage(page) {
  30. this.page = page.page;
  31. this.getUsers();
  32. }
  33. deleteUser(user) {
  34. this.$scope.appEvent('confirm-modal', {
  35. title: 'Delete',
  36. text: 'Do you want to delete ' + user.login + '?',
  37. icon: 'fa-trash',
  38. yesText: 'Delete',
  39. onConfirm: () => {
  40. this.backendSrv.delete('/api/admin/users/' + user.id).then(() => {
  41. this.getUsers();
  42. });
  43. }
  44. });
  45. }
  46. }