2013-11-22 23:20:51 +00:00
< div class = "robots-manager-element" >
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-03-31 22:50:43 +00:00
< div class = "manager-header" >
< div class = "side-controls" >
< span class = "popup-input-button" pattern = "ROBOT_PATTERN"
placeholder="'Robot Account Name'"
submitted="createRobot(value)">
< i class = "fa fa-plus" > < / i > Create Robot Account
< / span >
< / div >
< h3 > Robot Accounts< / h3 >
2013-11-22 23:20:51 +00:00
< / div >
2015-03-31 22:50:43 +00:00
< div class = "manager-header section-description-header" >
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 >
< 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 >
< table class = "co-table" ng-if = "robots.length" >
2013-11-22 23:20:51 +00:00
< thead >
2015-04-02 20:34:41 +00:00
< td class = "caret-col" ng-if = "(user || organization.is_admin) && Config.isNewLayout()" > < / td >
2015-03-31 22:50:43 +00:00
< td > Robot Account Name< / td >
2015-04-01 17:56:30 +00:00
< td ng-if = "organization && Config.isNewLayout()" > Teams< / td >
< td ng-if = "Config.isNewLayout()" > 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-03-31 22:50:43 +00:00
< tbody ng-repeat = "robotInfo in robots" >
< tr ng-class = "robotInfo.showing_permissions ? 'open' : 'closed'" >
2015-04-02 20:34:41 +00:00
< td class = "caret-col" ng-if = "(user || organization.is_admin) && Config.isNewLayout()" >
2015-04-01 17:56:30 +00:00
< span ng-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" >
< i class = "fa fa-wrench" > < / i >
< a ng-click = "showRobot(robotInfo)" >
< span class = "prefix" > {{ getPrefix(robotInfo.name) }}+< / span > {{ getShortenedName(robotInfo.name) }}
< / a >
< / td >
2015-04-01 17:56:30 +00:00
< td ng-if = "organization && Config.isNewLayout()" >
< span class = "empty" ng-if = "robotInfo.teams.length == 0" >
(Not a member of any team)
< / span >
< span class = "empty" ng-if = "robotInfo.teams.length > 0" >
< span ng-repeat = "team in robotInfo.teams"
data-title="Team {{ team.name }}" bs-tooltip>
< span class = "anchor" is-text-only = "!organization.admin" href = "/organization/{{ organization.name }}/teams/{{ team.name }}" >
< span class = "avatar" size = "24" data = "team.avatar" > < / span >
< / span >
< / span >
< / span >
< / td >
< td ng-if = "Config.isNewLayout()" >
< span class = "empty" ng-if = "robotInfo.repositories.length == 0" >
(No permissions on any repositories)
< / span >
< span class = "member-perm-summary" ng-if = "robotInfo.repositories.length > 0" >
2015-03-31 22:50:43 +00:00
Permissions on
2015-04-01 17:56:30 +00:00
< span class = "anchor" href = "javascript:void(0)" is-text-only = "!organization.is_admin" ng-click = "showPermissions(robotInfo)" > {{ robotInfo.repositories.length }}
< span ng-if = "robotInfo.repositories.length == 1" > repository< / span >
< span ng-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 >
< span class = "cor-option" option-click = "deleteRobot(robotInfo)" >
< 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" >
< span class = "role-group" current-role = "permission.role" roles = "roles"
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)">
2013-11-23 01:14:44 +00:00
< i class = "fa fa-wrench" > < / i > {{ shownRobot.name }}
2013-11-22 23:20:51 +00:00
< / div >
< / div >