team_details.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <page-header model="ctrl.navModel"></page-header>
  2. <div class="page-container page-body">
  3. <h3 class="page-sub-heading">Team Details</h3>
  4. <form name="teamDetailsForm" class="gf-form-group">
  5. <div class="gf-form max-width-30">
  6. <span class="gf-form-label width-10">Name</span>
  7. <input type="text" required ng-model="ctrl.team.name" class="gf-form-input max-width-22">
  8. </div>
  9. <div class="gf-form max-width-30">
  10. <span class="gf-form-label width-10">
  11. Email
  12. <info-popover mode="right-normal">
  13. This is optional and is primarily used for allowing custom team avatars.
  14. </info-popover>
  15. </span>
  16. <input class="gf-form-input max-width-22" type="email" ng-model="ctrl.team.email" placeholder="email@test.com">
  17. </div>
  18. <div class="gf-form-button-row">
  19. <button type="submit" class="btn btn-success" ng-click="ctrl.update()">Update</button>
  20. </div>
  21. </form>
  22. <div class="gf-form-group">
  23. <h3 class="page-heading">Team Members</h3>
  24. <form name="ctrl.addMemberForm" class="gf-form-group">
  25. <div class="gf-form">
  26. <span class="gf-form-label width-10">Add member</span>
  27. <!--
  28. Old picker
  29. <user-picker user-picked="ctrl.userPicked($user)"></user-picker>
  30. -->
  31. <select-user-picker class="width-7" handlePicked="ctrl.userPicked" backendSrv="ctrl.backendSrv"></select-user-picker>
  32. </div>
  33. </form>
  34. <table class="filter-table" ng-show="ctrl.teamMembers.length > 0">
  35. <thead>
  36. <tr>
  37. <th></th>
  38. <th>Username</th>
  39. <th>Email</th>
  40. <th></th>
  41. </tr>
  42. </thead>
  43. <tr ng-repeat="member in ctrl.teamMembers">
  44. <td class="width-4 text-center link-td">
  45. <img class="filter-table__avatar" ng-src="{{member.avatarUrl}}"></img>
  46. </td>
  47. <td>{{member.login}}</td>
  48. <td>{{member.email}}</td>
  49. <td style="width: 1%">
  50. <a ng-click="ctrl.removeTeamMember(member)" class="btn btn-danger btn-mini">
  51. <i class="fa fa-remove"></i>
  52. </a>
  53. </td>
  54. </tr>
  55. </table>
  56. <div>
  57. <em class="muted" ng-hide="ctrl.teamMembers.length > 0">
  58. This team has no members yet.
  59. </em>
  60. </div>
  61. </div>
  62. <div class="gf-form-group" ng-if="ctrl.isMappingsEnabled">
  63. <h3 class="page-heading">Mappings to external groups</h3>
  64. <form name="ctrl.addGroupForm" class="gf-form-group">
  65. <div class="gf-form">
  66. <span class="gf-form-label width-10">Add group</span>
  67. <input class="gf-form-input max-width-22" type="text" ng-model="ctrl.newGroupId">
  68. </div>
  69. <div class="gf-form-button-row">
  70. <button type="submit" class="btn btn-success" ng-click="ctrl.addGroup()">Add</button>
  71. </div>
  72. </form>
  73. <table class="filter-table" ng-show="ctrl.teamGroups.length > 0">
  74. <thead>
  75. <tr>
  76. <th>Group</th>
  77. <th></th>
  78. </tr>
  79. </thead>
  80. <tr ng-repeat="group in ctrl.teamGroups">
  81. <td>{{group.groupId}}</td>
  82. <td style="width: 1%">
  83. <a ng-click="ctrl.removeGroup(group)" class="btn btn-danger btn-mini">
  84. <i class="fa fa-remove"></i>
  85. </a>
  86. </td>
  87. </tr>
  88. </table>
  89. <div>
  90. <em class="muted" ng-hide="ctrl.teamGroups.length > 0">
  91. This team has no associated groups yet.
  92. </em>
  93. </div>
  94. </div>