AdminListUsersCtrl.ts 1.3 KB

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