orgUsers.html 2.4 KB

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