teams_ctrl.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. ///<reference path="../../headers/common.d.ts" />
  2. import coreModule from 'app/core/core_module';
  3. import appEvents from 'app/core/app_events';
  4. export class TeamsCtrl {
  5. teams: any;
  6. pages = [];
  7. perPage = 50;
  8. page = 1;
  9. totalPages: number;
  10. showPaging = false;
  11. query: any = '';
  12. navModel: any;
  13. /** @ngInject */
  14. constructor(private backendSrv, navModelSrv) {
  15. this.navModel = navModelSrv.getNav('cfg', 'teams', 0);
  16. this.get();
  17. }
  18. get() {
  19. this.backendSrv
  20. .get(`/api/teams/search?perpage=${this.perPage}&page=${this.page}&query=${this.query}`)
  21. .then(result => {
  22. this.teams = result.teams;
  23. this.page = result.page;
  24. this.perPage = result.perPage;
  25. this.totalPages = Math.ceil(result.totalCount / result.perPage);
  26. this.showPaging = this.totalPages > 1;
  27. this.pages = [];
  28. for (var i = 1; i < this.totalPages + 1; i++) {
  29. this.pages.push({ page: i, current: i === this.page });
  30. }
  31. });
  32. }
  33. navigateToPage(page) {
  34. this.page = page.page;
  35. this.get();
  36. }
  37. deleteTeam(team) {
  38. appEvents.emit('confirm-modal', {
  39. title: 'Delete',
  40. text: 'Are you sure you want to delete Team ' + team.name + '?',
  41. yesText: 'Delete',
  42. icon: 'fa-warning',
  43. onConfirm: () => {
  44. this.deleteTeamConfirmed(team);
  45. },
  46. });
  47. }
  48. deleteTeamConfirmed(team) {
  49. this.backendSrv.delete('/api/teams/' + team.id).then(this.get.bind(this));
  50. }
  51. openTeamModal() {
  52. appEvents.emit('show-modal', {
  53. templateHtml: '<create-team-modal></create-team-modal>',
  54. modalClass: 'modal--narrow',
  55. });
  56. }
  57. }
  58. coreModule.controller('TeamsCtrl', TeamsCtrl);