admin_list_users_ctrl.ts 1.3 KB

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