2013-11-22 23:20:51 +00:00
< div class = "robots-manager-element" >
2015-07-13 12:34:46 +00:00
< div class = "feedback-bar" feedback = "feedback" > < / div >
2015-03-31 22:50:43 +00:00
< div class = "cor-loader" ng-show = "loading" > < / div >
2013-11-22 23:20:51 +00:00
2015-02-18 00:37:37 +00:00
< div ng-show = "!loading" >
2015-04-17 20:43:53 +00:00
< div class = "manager-header" header-title = "Robot Accounts" >
< span class = "popup-input-button" pattern = "ROBOT_PATTERN"
placeholder="'Robot Account Name'"
2015-04-21 20:07:24 +00:00
submitted="createRobot(value)"
ng-show="isEnabled">
2015-04-17 20:43:53 +00:00
< i class = "fa fa-plus" > < / i > Create Robot Account
< / span >
2013-11-22 23:20:51 +00:00
< / div >
2015-04-17 20:43:53 +00:00
< div class = "section-description-header" >
2015-03-31 22:50:43 +00:00
Robot Accounts are named tokens that can be granted permissions on multiple repositories
under this < span ng-if = "organization" > organization< / span > < span ng-if = "!organization" > user namespace< / span > . They are typically used in environments where credentials will
be shared, such as deployment systems.
< / div >
2015-04-20 17:23:02 +00:00
< div class = "filter-box" collection = "robots" filter-model = "robotFilter" filter-name = "Robot Accounts" > < / div >
2015-04-09 19:03:07 +00:00
2015-03-31 22:50:43 +00:00
< div class = "empty" ng-if = "!robots.length" >
< div class = "empty-primary-msg" > No robot accounts defined.< / div >
< div class = "empty-secondary-msg" >
Click the "Create Robot Account" button above to create a robot account.
< / div >
< / div >
2015-04-09 19:03:07 +00:00
< div class = "empty" ng-if = "robots.length && !(robots | filter:robotFilter).length" >
< div class = "empty-primary-msg" > No robot accounts found matching filter.< / div >
< div class = "empty-secondary-msg" >
Please change your filter to display robot accounts.
< / div >
< / div >
2015-04-17 20:43:53 +00:00
< table class = "cor-table" ng-if = "(robots | filter:robotFilter).length" >
2013-11-22 23:20:51 +00:00
< thead >
2015-06-29 09:33:00 +00:00
< td class = "caret-col hidden-xs" ng-if = "(user || organization.is_admin)" > < / td >
2015-03-31 22:50:43 +00:00
< td > Robot Account Name< / td >
2015-06-29 09:33:00 +00:00
< td ng-if = "organization" > Teams< / td >
< td > Direct Repository Permissions< / td >
2015-03-31 22:50:43 +00:00
< td class = "options-col" > < / td >
2013-11-22 23:20:51 +00:00
< / thead >
2014-11-24 21:07:38 +00:00
2015-04-23 17:56:25 +00:00
< tbody ng-repeat = "robotInfo in robots | filter:robotFilter | orderBy:getShortenedRobotName" bindonce >
2015-03-31 22:50:43 +00:00
< tr ng-class = "robotInfo.showing_permissions ? 'open' : 'closed'" >
2015-06-29 09:33:00 +00:00
< td class = "caret-col hidden-xs" bo-if = "(user || organization.is_admin)" >
2015-04-23 17:56:25 +00:00
< span bo-if = "robotInfo.repositories.length > 0" ng-click = "showPermissions(robotInfo)" >
2015-03-31 22:50:43 +00:00
< i class = "fa"
ng-class="robotInfo.showing_permissions ? 'fa-caret-down' : 'fa-caret-right'"
data-title="View Permissions List" bs-tooltip>< / i >
< / span >
< / td >
< td class = "robot" >
2015-04-23 20:41:47 +00:00
< i class = "fa ci-robot hidden-xs" > < / i >
2015-03-31 22:50:43 +00:00
< a ng-click = "showRobot(robotInfo)" >
2015-07-03 06:06:01 +00:00
< span class = "prefix" bo-text = "getPrefix(robotInfo.name) + '+'" > < / span > < span bo-text = "getShortenedName(robotInfo.name)" > < / span >
2015-03-31 22:50:43 +00:00
< / a >
< / td >
2015-06-29 09:33:00 +00:00
< td bo-if = "organization" >
2015-04-23 17:56:25 +00:00
< span class = "empty" bo-if = "robotInfo.teams.length == 0" >
2015-04-01 17:56:30 +00:00
(Not a member of any team)
< / span >
2015-04-23 17:56:25 +00:00
< span class = "empty" bo-if = "robotInfo.teams.length > 0" >
2015-04-01 17:56:30 +00:00
< span ng-repeat = "team in robotInfo.teams"
data-title="Team {{ team.name }}" bs-tooltip>
2015-05-04 02:18:04 +00:00
< span class = "anchor" is-only-text = "!organization.is_admin" href = "/organization/{{ organization.name }}/teams/{{ team.name }}" >
2015-04-01 17:56:30 +00:00
< span class = "avatar" size = "24" data = "team.avatar" > < / span >
< / span >
< / span >
< / span >
< / td >
2015-06-29 09:33:00 +00:00
< td >
2015-04-23 17:56:25 +00:00
< span class = "empty" bo-if = "robotInfo.repositories.length == 0" >
2015-04-20 17:01:51 +00:00
(No direct permissions on any repositories)
2015-04-01 17:56:30 +00:00
< / span >
2015-04-23 17:56:25 +00:00
< span class = "member-perm-summary" bo-if = "robotInfo.repositories.length > 0" >
2015-04-20 17:23:02 +00:00
Direct Permissions on
2016-03-22 18:15:54 +00:00
< a class = "hidden-xs" is-only-text = "!organization.is_admin"
2015-04-23 17:56:25 +00:00
ng-click="showPermissions(robotInfo)">
< span bo-text = "robotInfo.repositories.length" > < / span >
< span bo-if = "robotInfo.repositories.length == 1" > repository< / span >
< span bo-if = "robotInfo.repositories.length > 1" > repositories< / span >
2016-03-22 18:15:54 +00:00
< / a >
< span class = "visible-xs" >
2015-04-23 17:56:25 +00:00
< span bo-text = "robotInfo.repositories.length" > < / span >
< span bo-if = "robotInfo.repositories.length == 1" > repository< / span >
< span bo-if = "robotInfo.repositories.length > 1" > repositories< / span >
2015-03-31 22:50:43 +00:00
< / span >
< / span >
< / td >
< td class = "options-col" >
< span class = "cor-options-menu" >
< span class = "cor-option" option-click = "showRobot(robotInfo)" >
< i class = "fa fa-key" > < / i > View Credentials
< / span >
2015-04-27 18:19:50 +00:00
< span class = "cor-option" option-click = "askDeleteRobot(robotInfo)" >
2015-03-31 22:50:43 +00:00
< i class = "fa fa-times" > < / i > Delete Robot {{ robotInfo.name }}
< / span >
< / span >
< / td >
< / tr >
< tr ng-if = "robotInfo.showing_permissions" >
< td class = "permissions-display-row" colspan = "4" >
< span class = "cor-loader" ng-if = "robotInfo.loading_permissions" > < / span >
< div class = "permissions-table-wrapper" >
< table class = "permissions-table" ng-if = "!robotInfo.loading_permissions" >
< thead >
< td > Repository< / td >
< td > Permission< / td >
< / thead >
< tr ng-repeat = "permission in robotInfo.permissions" >
< td >
< span class = "repo-icon repo-circle no-background" repo = "permission.repository" > < / span >
2015-04-01 15:31:26 +00:00
< a ng-href = "/repository/{{ getPrefix(robotInfo.name) }}/{{ permission.repository.name }}?tab=settings" > {{ getPrefix(robotInfo.name) }}/{{ permission.repository.name }}< / a >
2015-03-31 22:50:43 +00:00
< / td >
< td >
< div class = "btn-group btn-group-sm" >
2015-04-20 21:42:33 +00:00
< span class = "role-group"
current-role="permission.role"
roles="repoRoles"
2015-03-31 22:50:43 +00:00
read-only="true">< / span >
< / div >
< / td >
< / tr >
< / table >
< / div >
< / td >
< / tr >
< / tbody >
2013-11-22 23:20:51 +00:00
< / table >
2013-11-23 01:14:44 +00:00
< / div >
2013-11-22 23:20:51 +00:00
2013-11-23 01:14:44 +00:00
< div class = "docker-auth-dialog" username = "shownRobot.name" token = "shownRobot.token"
2014-08-25 21:19:23 +00:00
shown="!!shownRobot" counter="showRobotCounter" supports-regenerate="true" regenerate="regenerateToken(username)">
2015-04-23 20:41:47 +00:00
< i class = "fa ci-robot" > < / i > {{ shownRobot.name }}
2013-11-22 23:20:51 +00:00
< / div >
< / div >