orgUsers.html 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <navbar icon="icon-gf icon-gf-users" title="Organization Users" title-url="org">
  2. </navbar>
  3. <div class="page-container">
  4. <div class="page-header">
  5. <h1>Organization users</h1>
  6. <button class="btn btn-success" ng-click="ctrl.openInviteModal()">
  7. <i class="fa fa-plus"></i>
  8. Add or Invite
  9. </button>
  10. </div>
  11. <tabset>
  12. <tab heading="Users ({{ctrl.users.length}})">
  13. <table class="filter-table form-inline">
  14. <thead>
  15. <tr>
  16. <th>Login</th>
  17. <th>Email</th>
  18. <th>Role</th>
  19. <th style="width: 34px;"></th>
  20. </tr>
  21. </thead>
  22. <tr ng-repeat="user in ctrl.users">
  23. <td>{{user.login}}</td>
  24. <td><span class="ellipsis">{{user.email}}</span></td>
  25. <td>
  26. <select type="text" ng-model="user.role" class="input-medium" ng-options="f for f in ['Viewer', 'Editor', 'Read Only Editor', 'Admin']" ng-change="ctrl.updateOrgUser(user)">
  27. </select>
  28. </td>
  29. <td>
  30. <a ng-click="ctrl.removeUser(user)" class="btn btn-danger btn-mini">
  31. <i class="fa fa-remove"></i>
  32. </a>
  33. </td>
  34. </tr>
  35. </table>
  36. </tab>
  37. <tab heading="Pending Invitations ({{ctrl.pendingInvites.length}})">
  38. <table class="filter-table form-inline">
  39. <thead>
  40. <tr>
  41. <th>Email</th>
  42. <th>Name</th>
  43. <th></th>
  44. </tr>
  45. </thead>
  46. <tbody ng-repeat="invite in ctrl.pendingInvites">
  47. <tr ng-click="invite.expanded = !invite.expanded" ng-class="{'expanded': invite.expanded}">
  48. <td>{{invite.email}}</td>
  49. <td>{{invite.name}}</td>
  50. <td class="text-right">
  51. <button class="btn btn-inverse btn-mini " data-clipboard-text="{{invite.url}}" clipboard-button ng-click="ctrl.copyInviteToClipboard($event)">
  52. <i class="fa fa-clipboard"></i> Copy Invite
  53. </button>
  54. &nbsp;
  55. <button class="btn btn-inverse btn-mini">
  56. Details
  57. <i ng-show="!invite.expanded" class="fa fa-caret-right"></i>
  58. <i ng-show="invite.expanded" class="fa fa-caret-down"></i>
  59. </button>
  60. </td>
  61. </tr>
  62. <tr ng-show="invite.expanded">
  63. <td colspan="3">
  64. <a href="{{invite.url}}">{{invite.url}}</a><br><br>
  65. &nbsp;
  66. <button class="btn btn-inverse btn-mini" ng-click="ctrl.revokeInvite(invite, $event)">
  67. <i class="fa fa-remove" style="color: red"></i> Revoke invite
  68. </button>
  69. <span style="padding-left: 15px">
  70. Invited: <em> {{invite.createdOn | date: 'shortDate'}} by {{invite.invitedBy}} </em>
  71. </span>
  72. </td>
  73. </tr>
  74. </tbody>
  75. </table>
  76. </tab>
  77. </tabset>
  78. </div>
  79. </div>