teams_ctrl.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. ///<reference path="../../headers/common.d.ts" />
  2. import coreModule from "app/core/core_module";
  3. import { appEvents } from "app/core/core";
  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(
  21. `/api/teams/search?perpage=${this.perPage}&page=${this.page}&query=${
  22. this.query
  23. }`
  24. )
  25. .then(result => {
  26. this.teams = result.teams;
  27. this.page = result.page;
  28. this.perPage = result.perPage;
  29. this.totalPages = Math.ceil(result.totalCount / result.perPage);
  30. this.showPaging = this.totalPages > 1;
  31. this.pages = [];
  32. for (var i = 1; i < this.totalPages + 1; i++) {
  33. this.pages.push({ page: i, current: i === this.page });
  34. }
  35. });
  36. }
  37. navigateToPage(page) {
  38. this.page = page.page;
  39. this.get();
  40. }
  41. deleteTeam(team) {
  42. appEvents.emit("confirm-modal", {
  43. title: "Delete",
  44. text: "Are you sure you want to delete Team " + team.name + "?",
  45. yesText: "Delete",
  46. icon: "fa-warning",
  47. onConfirm: () => {
  48. this.deleteTeamConfirmed(team);
  49. }
  50. });
  51. }
  52. deleteTeamConfirmed(team) {
  53. this.backendSrv.delete("/api/teams/" + team.id).then(this.get.bind(this));
  54. }
  55. openTeamModal() {
  56. appEvents.emit("show-modal", {
  57. templateHtml: "<create-team-modal></create-team-modal>",
  58. modalClass: "modal--narrow"
  59. });
  60. }
  61. }
  62. coreModule.controller("TeamsCtrl", TeamsCtrl);