2017-11-30 09:35:27 -06:00
<!-- <navbar model="ctrl.navModel"></navbar> -->
<!-- -->
<!-- <div class="page-container"> -->
<!-- <div class="page-header"> -->
<!-- <page-h1 model="ctrl.navModel"></page-h1> -->
<!-- -->
<!-- <button class="btn btn-success" ng-click="ctrl.openAddUsersView()" ng-hide="ctrl.externalUserMngLinkUrl"> -->
<!-- <span>{{ctrl.addUsersBtnName}}</span> -->
<!-- </button> -->
<!-- -->
<!-- <div class="page-header-tabs"> -->
<!-- -->
<!-- <a class="btn btn-inverse" ng-href="{{ctrl.externalUserMngLinkUrl}}" target="_blank" ng-if="ctrl.externalUserMngLinkUrl"> -->
<!-- <i class="fa fa-external-link-square"></i> -->
<!-- {{ctrl.addUsersBtnName}} -->
<!-- </a> -->
<!-- -->
<!-- <ul class="gf-tabs"> -->
<!-- <li class="gf-tabs-item"> -->
<!-- <a class="gf-tabs-link" ng-click="ctrl.editor.index = 0" ng-class="{active: ctrl.editor.index === 0}"> -->
<!-- Users ({{ctrl.users.length}}) -->
<!-- </a> -->
<!-- </li> -->
<!-- <li class="gf-tabs-item" ng-show="ctrl.pendingInvites.length"> -->
<!-- <a class="gf-tabs-link" ng-click="ctrl.editor.index = 1" ng-class="{active: ctrl.editor.index === 1}"> -->
<!-- Pending Invites ({{ctrl.pendingInvites.length}}) -->
<!-- </a> -->
<!-- </li> -->
<!-- </ul> -->
<!-- </div> -->
<!-- </div> -->
2015-02-07 05:28:47 -06:00
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" >
< div class = "page-action-bar__spacer" > < / div >
< button class = "btn btn-inverse" ng-show = "ctrl.pendingInvites.length" ng-click = "ctrl.editor.index = 1" >
Pending Invites ({{ctrl.pendingInvites.length}})
< / button >
2017-12-12 13:15:26 -06:00
< a class = "btn btn-success" href = "org/users/new" ng-hide = "ctrl.externalUserMngLinkUrl" >
2017-11-30 09:35:27 -06:00
< i class = "fa fa-plus" > < / i >
2017-08-18 07:49:04 -05:00
< span > {{ctrl.addUsersBtnName}}< / span >
2017-12-12 13:15:26 -06:00
< / a >
2017-11-30 09:35:27 -06:00
< a class = "btn btn-inverse" ng-href = "{{ctrl.externalUserMngLinkUrl}}" target = "_blank" ng-if = "ctrl.externalUserMngLinkUrl" >
< i class = "fa fa-external-link-square" > < / i >
{{ctrl.addUsersBtnName}}
< / a >
< / div >
2016-03-02 09:56:16 -06:00
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-07-31 07:39:33 -05:00
< div ng-if = "ctrl.editor.index === 0" class = "tab-content" >
< 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 >
2017-11-30 09:35:27 -06:00
< div class = "gf-form-select-wrapper width-9" >
< 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 >
2016-02-18 07:44:36 -06:00
2017-08-18 07:49:04 -05:00
< div ng-if = "ctrl.editor.index === 1" >
2017-07-31 07:39:33 -05:00
< table class = "filter-table form-inline" >
< thead >
< tr >
< th > Email< / th >
< th > Name< / th >
< th > < / th >
< / tr >
< / thead >
< tbody ng-repeat = "invite in ctrl.pendingInvites" >
< tr ng-click = "invite.expanded = !invite.expanded" ng-class = "{'expanded': invite.expanded}" >
< td > {{invite.email}}< / td >
< td > {{invite.name}}< / td >
< td class = "text-right" >
2017-08-28 02:52:19 -05:00
< button class = "btn btn-inverse btn-mini" clipboard-button = "ctrl.getInviteUrl(invite)" ng-click = "ctrl.copyInviteToClipboard($event)" >
2017-07-31 07:39:33 -05:00
< i class = "fa fa-clipboard" > < / i > Copy Invite
< / button >
< button class = "btn btn-inverse btn-mini" >
Details
< i ng-show = "!invite.expanded" class = "fa fa-caret-right" > < / i >
< i ng-show = "invite.expanded" class = "fa fa-caret-down" > < / i >
< / button >
< / td >
< / tr >
< tr ng-show = "invite.expanded" >
< td colspan = "3" >
< a href = "{{invite.url}}" > {{invite.url}}< / a > < br > < br >
< button class = "btn btn-inverse btn-mini" ng-click = "ctrl.revokeInvite(invite, $event)" >
< i class = "fa fa-remove" style = "color: red" > < / i > Revoke invite
< / button >
< span style = "padding-left: 15px" >
Invited: < em > {{invite.createdOn | date: 'shortDate'}} by {{invite.invitedBy}} < / em >
< / span >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
2015-01-15 12:14:07 -06:00
< / div >