grafana/public/app/features/org/partials/orgUsers.html

97 lines
3.1 KiB
HTML
Raw Normal View History

2017-11-30 09:35:27 -06:00
<page-header model="ctrl.navModel"></page-header>
2017-08-18 07:49:04 -05:00
2017-11-30 09:35:27 -06:00
<div class="page-container page-body">
<div class="page-action-bar">
2017-12-13 06:16:44 -06:00
<div class="gf-form">
<label class="gf-form-label">Search</label>
<input type="text" class="gf-form-input width-20" ng-model="ctrl.searchQuery" ng-change="ctrl.onQueryUpdated()" give-focus="true" placeholder="Filter by username or email" />
</div>
2017-11-30 09:35:27 -06:00
<div class="page-action-bar__spacer"></div>
2017-12-13 06:16:44 -06:00
<button class="btn btn-inverse" ng-show="ctrl.pendingInvites.length" ng-click="ctrl.showInvites = true">
2017-11-30 09:35:27 -06:00
Pending Invites ({{ctrl.pendingInvites.length}})
</button>
2017-12-13 06:16:44 -06:00
<a class="btn btn-success" href="org/users/invite" ng-show="ctrl.canInvite">
2017-11-30 09:35:27 -06:00
<i class="fa fa-plus"></i>
2017-12-13 06:16:44 -06:00
<span>Invite</span>
</a>
2017-12-13 06:16:44 -06:00
<a class="btn btn-success" ng-href="{{ctrl.externalUserMngLinkUrl}}" target="_blank" ng-if="ctrl.externalUserMngLinkUrl">
2017-11-30 09:35:27 -06:00
<i class="fa fa-external-link-square"></i>
2017-12-13 06:16:44 -06:00
{{ctrl.externalUserMngLinkName}}
2017-11-30 09:35:27 -06:00
</a>
</div>
2017-07-31 07:39:33 -05:00
<div class="grafana-info-box" ng-if="ctrl.externalUserMngInfo">
<span ng-bind-html="ctrl.externalUserMngInfo"></span>
</div>
2015-02-08 03:23:35 -06:00
2017-12-13 06:16:44 -06:00
<div ng-hide="ctrl.showInvites">
2017-07-31 07:39:33 -05:00
<table class="filter-table form-inline">
<thead>
<tr>
2017-08-18 01:17:35 -05:00
<th></th>
2017-07-31 07:39:33 -05:00
<th>Login</th>
<th>Email</th>
2017-11-30 09:35:27 -06:00
<th>
Seen
<tip>Time since user was seen using Grafana</tip>
</th>
2017-07-31 07:39:33 -05:00
<th>Role</th>
<th style="width: 34px;"></th>
</tr>
</thead>
<tr ng-repeat="user in ctrl.users">
2017-08-18 01:34:10 -05:00
<td class="width-4 text-center">
2017-11-30 09:35:27 -06:00
<img class="filter-table__avatar" ng-src="{{user.avatarUrl}}"></img>
</td>
2017-07-31 07:39:33 -05:00
<td>{{user.login}}</td>
<td><span class="ellipsis">{{user.email}}</span></td>
2017-11-30 09:35:27 -06:00
<td>{{user.lastSeenAtAge}}</td>
2017-07-31 07:39:33 -05:00
<td>
<div class="gf-form-select-wrapper width-12">
2017-11-30 09:35:27 -06:00
<select type="text" ng-model="user.role" class="gf-form-input" ng-options="f for f in ['Viewer', 'Editor', 'Read Only Editor', 'Admin']" ng-change="ctrl.updateOrgUser(user)">
</select>
</div>
2017-07-31 07:39:33 -05:00
</td>
<td>
<a ng-click="ctrl.removeUser(user)" class="btn btn-danger btn-mini">
<i class="fa fa-remove"></i>
</a>
</td>
</tr>
</table>
</div>
2017-12-13 06:16:44 -06:00
<div ng-if="ctrl.showInvites">
2017-07-31 07:39:33 -05:00
<table class="filter-table form-inline">
<thead>
<tr>
<th>Email</th>
<th>Name</th>
<th></th>
2017-12-13 06:16:44 -06:00
<th style="width: 34px;"></th>
2017-07-31 07:39:33 -05:00
</tr>
</thead>
2017-12-13 06:16:44 -06:00
<tr ng-repeat="invite in ctrl.pendingInvites">
<td>{{invite.email}}</td>
<td>{{invite.name}}</td>
<td class="text-right">
<button class="btn btn-inverse btn-mini" clipboard-button="ctrl.getInviteUrl(invite)" ng-click="ctrl.copyInviteToClipboard($event)">
<i class="fa fa-clipboard"></i> Copy Invite
</button>
&nbsp;
</td>
<td>
<button class="btn btn-danger btn-mini" ng-click="ctrl.revokeInvite(invite, $event)">
<i class="fa fa-remove"></i>
</button>
</td>
</tr>
2017-07-31 07:39:33 -05:00
</table>
</div>
</div>