2014-01-20 22:03:16 +00:00
< div class = "container" ng-show = "deleting" > < div class = "quay-spinner" > < / div > < / div >
2013-12-17 18:19:59 +00:00
< div class = "resource-view" resource = "repository" error-message = "'No repository found'" > < / div >
2014-02-13 02:39:23 +00:00
< div class = "container repo repo-admin" ng-show = "accessDenied" >
You do not have permission to view this page
< / div >
2014-01-20 22:03:16 +00:00
< div class = "container repo repo-admin" ng-show = "repo && !deleting" >
2013-11-15 21:40:16 +00:00
< div class = "header row" >
2013-10-24 21:41:37 +00:00
< a href = "{{ '/repository/' + repo.namespace + '/' + repo.name }}" class = "back" > < i class = "fa fa-chevron-left" > < / i > < / a >
2013-09-27 19:26:16 +00:00
< h3 >
2014-01-31 18:52:35 +00:00
< span class = "repo-circle no-background" repo = "repo" > < / span >
2014-02-13 23:58:28 +00:00
< span class = "repo-breadcrumb" repo = "repo" subsection-icon = "'fa-cog'"
subsection="'Admin'">< / span >
2013-09-27 19:26:16 +00:00
< / h3 >
2013-11-15 21:40:16 +00:00
< / div >
2013-09-28 21:11:10 +00:00
2013-11-15 21:40:16 +00:00
< div class = "row" >
<!-- Side tabs -->
< div class = "col-md-2" >
< ul class = "nav nav-pills nav-stacked" >
< li class = "active" > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#permissions" > Permissions< / a > < / li >
2014-08-22 22:03:22 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#trigger" ng-click = "loadTriggers()"
quay-require="['BUILD_SUPPORT']">Build Triggers< / a > < / li >
2014-02-28 21:23:36 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#badge" > Status Badge< / a > < / li >
2014-07-17 17:32:39 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#notification" ng-click = "loadNotifications()" > Notifications< / a > < / li >
2013-11-15 21:40:16 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#publicprivate" > Public/Private< / a > < / li >
2013-11-15 21:50:11 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#delete" > Delete< / a > < / li >
2013-12-02 19:55:04 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#logs" ng-click = "loadLogs()" > Usage Logs< / a > < / li >
2013-11-15 21:40:16 +00:00
< / ul >
2013-10-17 18:46:23 +00:00
< / div >
2013-09-28 05:23:00 +00:00
2013-11-15 21:40:16 +00:00
<!-- Content -->
< div class = "col-md-10" >
2013-12-02 19:55:04 +00:00
< div class = "tab-content" >
<!-- Logs tab -->
< div id = "logs" class = "tab-pane" >
2014-07-15 18:17:57 +00:00
< div class = "logs-view" repository = "repo" makevisible = "logsShown" > < / div >
2013-12-02 19:55:04 +00:00
< / div >
2014-02-28 21:23:36 +00:00
<!-- Badge tab -->
< div id = "badge" class = "tab-pane" >
< div class = "panel panel-default" >
< div class = "panel-heading" > Status Badge
< i class = "info-icon fa fa-info-circle" data-placement = "left" data-content = "Embeddable widget for displaying the status of the repository" > < / i >
< / div >
< div class = "panel-body" >
< div class = "alert alert-warning" ng-if = "!repo.is_public" >
Note: This repository is currently < b > private< / b > . Publishing this badge will reveal the status information of your repository (and links may
not work for unregistered users).
< / div >
<!-- Status Image -->
< a ng-href = "/repository/{{ repo.namespace }}/{{ repo.name }}" ng-if = "repo && repo.name" >
2014-04-11 22:21:13 +00:00
< img ng-src = "/repository/{{ repo.namespace }}/{{ repo.name }}/status?token={{ repo.status_token }}" data-title = "Docker Repository on Quay.io" >
2014-02-28 21:23:36 +00:00
< / a >
<!-- Embed formats -->
< table style = "margin-top: 20px; width: 600px;" >
< thead >
< th style = "width: 150px" > < / th >
< th > < / th >
< / thead >
< tr >
< td > Image (SVG):< / td >
< td >
< div class = "copy-box" hovering-message = "true" value = "getBadgeFormat('svg', repo)" > < / div >
< / td >
< / tr >
< tr >
< td > Markdown:< / td >
< td >
< div class = "copy-box" hovering-message = "true" value = "getBadgeFormat('md', repo)" > < / div >
< / td >
< / tr >
< tr >
< td > AsciiDoc:< / td >
< td >
< div class = "copy-box" hovering-message = "true" value = "getBadgeFormat('asciidoc', repo)" > < / div >
< / td >
< / tr >
< / table >
< / div >
< / div >
< / div >
2013-12-17 18:19:59 +00:00
2013-11-15 21:40:16 +00:00
<!-- Permissions tab -->
< div id = "permissions" class = "tab-pane active" >
<!-- User Access Permissions -->
< div class = "panel panel-default" >
2013-11-23 01:14:44 +00:00
< div class = "panel-heading" > Access Permissions
2013-10-16 18:24:10 +00:00
2013-11-23 01:14:44 +00:00
< i class = "info-icon fa fa-info-circle" data-placement = "left" data-content = "Allow any number of users, robot accounts or teams to read, write or administer this repository" > < / i >
2013-11-15 21:40:16 +00:00
< / div >
< div class = "panel-body" >
< table class = "permissions" >
< thead >
< tr >
2013-11-23 01:14:44 +00:00
< td style = "min-width: 400px;" > User< span ng-show = "repo.is_organization" > /Team< / span > /Robot Account< / td >
2013-11-15 21:40:16 +00:00
< td > Permissions< / td >
< td style = "width: 95px;" > < / td >
< / tr >
< / thead >
<!-- Team Permissions -->
< tr ng-repeat = "(name, permission) in permissions['team']" >
< td class = "team entity" >
2014-01-21 21:23:00 +00:00
< span class = "entity-reference" namespace = "repo.namespace"
entity="buildEntityForPermission(name, permission, 'team')">
< / span >
2013-11-15 21:40:16 +00:00
< / td >
< td class = "user-permissions" >
< span class = "role-group" current-role = "permission.role" role-changed = "setRole(role, name, 'team')" roles = "roles" > < / span >
< / td >
< td >
2014-03-12 04:49:46 +00:00
< span class = "delete-ui" delete-title = "'Delete Permission'" perform-delete = "deleteRole(name, 'team')" > < / span >
2013-11-15 21:40:16 +00:00
< / td >
< / tr >
<!-- User Permissions -->
< tr ng-repeat = "(name, permission) in permissions['user']" >
2013-11-21 00:43:19 +00:00
< td class = "{{ 'user entity ' + (permission.is_org_member ? '' : 'outside') }}" >
2014-01-21 21:23:00 +00:00
< span class = "entity-reference" namespace = "repo.namespace"
entity="buildEntityForPermission(name, permission, 'user')">
< / span >
2013-11-15 21:40:16 +00:00
< / td >
< td class = "user-permissions" >
< div class = "btn-group btn-group-sm" >
< span class = "role-group" current-role = "permission.role" role-changed = "setRole(role, name, 'user')" roles = "roles" > < / span >
< / div >
< / td >
< td >
2014-03-12 04:49:46 +00:00
< span class = "delete-ui" delete-title = "'Delete Permission'" perform-delete = "deleteRole(name, 'user')" > < / span >
2013-11-15 21:40:16 +00:00
< / td >
< / tr >
2013-10-17 18:46:23 +00:00
2013-11-15 21:40:16 +00:00
< tr >
2014-02-07 18:00:07 +00:00
< td id = "add-entity-permission" colspan = "2" class = "admin-search" >
2014-07-18 17:45:08 +00:00
< span class = "entity-search" namespace = "repo.namespace"
placeholder="'Add a ' + (repo.is_organization ? 'team or ' : '') + 'user...'"
entity-selected="addNewPermission(entity)"
current-entity="selectedEntity"
auto-clear="true">< / span >
2013-11-15 21:40:16 +00:00
< / td >
< / tr >
< / table >
< / div >
< / div >
2013-10-17 20:50:58 +00:00
2013-11-15 21:40:16 +00:00
<!-- Token Permissions -->
< div class = "panel panel-default" >
< div class = "panel-heading" > Access Token Permissions
2013-09-28 21:11:10 +00:00
2013-11-15 21:40:16 +00:00
< i class = "info-icon fa fa-info-circle" data-placement = "left" data-content = "Grant permissions to this repository by creating unique tokens that can be used without entering account passwords<br><br>To use in docker:<br><dl class='dl-horizontal'><dt>Username</dt><dd>$token</dd><dt>Password</dt><dd>(token value)</dd><dt>Email</dt><dd>(any value)</dd></dl>" > < / i >
< / div >
< div class = "panel-body" >
< form name = "createTokenForm" ng-submit = "createToken()" >
< table class = "permissions" >
< thead >
< tr >
2013-11-23 01:14:44 +00:00
< td style = "min-width: 400px;" > Token Description< / td >
2013-11-15 21:40:16 +00:00
< td > Permissions< / td >
< td > < / td >
< / tr >
< / thead >
< tr ng-repeat = "(code, token) in tokens" >
< td class = "user token" >
< i class = "fa fa-key" > < / i >
< a ng-click = "showToken(token.code)" > {{ token.friendlyName }}< / a >
< / td >
< td class = "user-permissions" >
< div class = "btn-group btn-group-sm" >
< button type = "button" class = "btn btn-default" ng-click = "changeTokenAccess(token.code, 'read')" ng-class = "{read: 'active', write: ''}[token.role]" > Read only< / button >
< button type = "button" class = "btn btn-default" ng-click = "changeTokenAccess(token.code, 'write')" ng-class = "{read: '', write: 'active'}[token.role]" > Write< / button >
< / div >
< / td >
< td >
2014-03-12 04:49:46 +00:00
< span class = "delete-ui" delete-title = "'Delete Token'" perform-delete = "deleteToken(token.code)" > < / span >
2013-11-15 21:40:16 +00:00
< / td >
< / tr >
2013-10-01 23:36:57 +00:00
2013-11-15 21:40:16 +00:00
< tr >
2013-11-23 01:14:44 +00:00
< td class = "admin-search" >
2014-07-29 22:53:23 +00:00
< input type = "text" class = "form-control" placeholder = "New token description" ng-model = "newTokenName" required >
2013-11-15 21:40:16 +00:00
< / td >
2013-11-23 01:14:44 +00:00
< td class = "admin-search" >
2013-11-15 21:40:16 +00:00
< button type = "submit" ng-disabled = "createTokenForm.$invalid" class = "btn btn-sm btn-default" > Create< / button >
< / td >
< / tr >
< / table >
< / form >
< / div >
< / div >
2013-10-01 23:36:57 +00:00
< / div >
2013-09-28 21:11:10 +00:00
2014-07-17 17:32:39 +00:00
<!-- Notification tab -->
< div id = "notification" class = "tab-pane" >
2013-11-15 22:51:20 +00:00
< div class = "panel panel-default" >
2014-07-17 17:32:39 +00:00
< div class = "panel-heading" > Repository Notifications
< i class = "info-icon fa fa-info-circle" data-placement = "left" data-content = "Notifications to call to external services (web, email, etc) on repository events" > < / i >
2013-11-15 22:51:20 +00:00
< / div >
2013-11-15 22:45:37 +00:00
2013-12-18 03:56:28 +00:00
< div class = "panel-body" >
2014-07-17 17:32:39 +00:00
<!-- Notifications list -->
< div class = "resource-view" resource = "notificationsResource" error-message = "'Could not load notifications'" >
< div class = "empty" ng-if = "!notifications.length" >
There are no notifications defined for this repository
< / div >
< div class = "nonempty" ng-show = "notifications.length" >
< div class = "external-notification-view" notification = "notification" repository = "repo"
notification-deleted="handleNotificationDeleted(notification)"
ng-repeat="notification in notifications">< / div >
< / div >
2013-12-18 03:56:28 +00:00
< / div >
2014-07-17 17:32:39 +00:00
<!-- Right controls -->
< div class = "right-controls" >
< button class = "btn btn-success" ng-click = "showNewNotificationDialog()" >
< i class = "fa fa-paper-plane" > < / i >
New Notification
< / button >
2013-11-21 21:03:11 +00:00
< / div >
2013-11-15 22:45:37 +00:00
< / div >
< / div >
< / div >
2014-02-18 20:50:15 +00:00
<!-- Triggers tab -->
2014-08-22 22:03:22 +00:00
< div id = "trigger" class = "tab-pane" quay-require = "['BUILD_SUPPORT']" >
2014-02-18 20:50:15 +00:00
< div class = "panel panel-default" >
< div class = "panel-heading" > Build Triggers
2014-02-20 18:27:59 +00:00
< i class = "info-icon fa fa-info-circle" data-placement = "left" data-content = "Triggers from various services (such as GitHub) which tell the repository to be built and updated." > < / i >
2014-02-18 20:50:15 +00:00
< / div >
< div class = "panel-body" >
2014-02-19 22:38:00 +00:00
<!-- Resource view -->
< div class = "resource-view" resource = "triggersResource" error-message = "'Could not load build triggers'" >
< div ng-show = "!triggers.length" > No build triggers defined for this repository< / div >
< table class = "permissions" ng-show = "triggers.length" >
< thead >
< tr >
< td style = "width: 562px;" > Trigger< / td >
< td style = "width: 104px;" > < / td >
< / tr >
< / thead >
< tbody >
< tr ng-repeat = "trigger in triggers" >
< td >
2014-02-20 23:57:49 +00:00
< div ng-show = "!trigger.is_active" style = "color: #444;" >
< span class = "quay-spinner" style = "vertical-align: middle; margin-right: 6px;" > < / span >
Setting up trigger
< / div >
< div ng-show = "trigger.is_active" class = "trigger-description" trigger = "trigger" > < / div >
2014-04-02 01:49:06 +00:00
< div class = "trigger-pull-credentials" ng-if = "trigger.is_active && trigger.pull_robot" >
2014-04-11 22:21:13 +00:00
< span class = "context-tooltip" data-title = "The credentials used by the builder when pulling images" bs-tooltip >
2014-03-27 22:33:13 +00:00
Pull Credentials:
< / span >
2014-04-02 01:49:06 +00:00
< span class = "entity-reference" entity = "trigger.pull_robot" > < / span >
2014-03-27 22:33:13 +00:00
< / div >
2014-02-19 22:38:00 +00:00
< / td >
< td style = "white-space: nowrap;" >
2014-02-20 23:57:49 +00:00
< div class = "dropdown" style = "display: inline-block" ng-visible = "trigger.is_active" >
2014-04-11 22:21:13 +00:00
< button class = "btn btn-default dropdown-toggle" data-toggle = "dropdown" data-title = "Build History" bs-tooltip = "tooltip.title" data-container = "body"
2014-02-19 22:38:00 +00:00
ng-click="loadTriggerBuildHistory(trigger)">
< i class = "fa fa-tasks" > < / i >
< b class = "caret" > < / b >
< / button >
< ul class = "dropdown-menu dropdown-menu-right pull-right" >
< li ng-show = "trigger.$loadingHistory" style = "text-align: center" > < span class = "quay-spinner" style = "padding: 4px;" > < / span > < / li >
< li role = "presentation" class = "dropdown-header" ng-show = "!trigger.$loadingHistory && !trigger.$builds.length" > No builds have been triggered< / li >
< li role = "presentation" class = "dropdown-header" ng-show = "!trigger.$loadingHistory && trigger.$builds.length" > Build History< / li >
< li ng-repeat = "buildInfo in trigger.$builds" >
< div class = "build-info clickable" ng-click = "showBuild(buildInfo)" >
< span class = "build-status" build = "buildInfo" > < / span >
< / div >
< / li >
< / ul >
< / div >
< div class = "dropdown" style = "display: inline-block" >
2014-04-11 22:21:13 +00:00
< button class = "btn btn-default dropdown-toggle" data-toggle = "dropdown" data-title = "Trigger Settings" bs-tooltip = "tooltip.title" data-container = "body" >
2014-02-19 22:38:00 +00:00
< i class = "fa fa-cog" > < / i >
< b class = "caret" > < / b >
< / button >
< ul class = "dropdown-menu dropdown-menu-right pull-right" >
2014-02-20 23:57:49 +00:00
< li > < a href = "javascript:void(0)" ng-click = "setupTrigger(trigger)" ng-show = "!trigger.is_active" > < i class = "fa fa-wrench" > < / i > Resume Setup< / a > < / li >
2014-02-26 00:53:41 +00:00
< li > < a href = "javascript:void(0)" ng-click = "startTrigger(trigger)" ng-show = "trigger.is_active" > < i class = "fa fa-tasks" > < / i > Build Now< / a > < / li >
2014-02-19 22:38:00 +00:00
< li > < a href = "javascript:void(0)" ng-click = "deleteTrigger(trigger)" > < i class = "fa fa-times" > < / i > Delete Trigger< / a > < / li >
< / ul >
< / div >
< / td >
< / tr >
< / tbody >
< / table >
<!-- Right controls -->
< div class = "right-controls" >
2014-05-30 22:28:18 +00:00
< span ng-show = "!Features.GITHUB_BUILD" class = "pull-left" > No build trigger types enabled.< / span >
2014-02-19 22:38:00 +00:00
< div class = "dropdown" >
2014-05-30 22:28:18 +00:00
< button class = "btn btn-primary dropdown-toggle" data-toggle = "dropdown" ng-disabled = "!Features.GITHUB_BUILD" >
2014-02-19 22:38:00 +00:00
New Trigger
< b class = "caret" > < / b >
< / button >
< ul class = "dropdown-menu dropdown-menu-right pull-right" >
2014-03-06 20:26:23 +00:00
< li > < a href = "https://github.com/login/oauth/authorize?client_id={{ githubClientId }}&scope=repo,user:email&redirect_uri={{ githubRedirectUri }}/trigger/{{ repo.namespace }}/{{ repo.name }}" > < i class = "fa fa-github fa-lg" > < / i > GitHub - Repository Push< / a > < / li >
2014-02-19 22:38:00 +00:00
< / ul >
< / div >
< / div >
2014-02-18 20:50:15 +00:00
< / div >
< / div >
< / div >
< / div >
2013-11-15 21:40:16 +00:00
<!-- Public/private tab -->
< div id = "publicprivate" class = "tab-pane" >
<!-- Public/Private -->
< div class = "panel panel-default" >
< div class = "panel-body" >
< div class = "repo-access-state" ng-show = "!repo.is_public" >
< div class = "state-icon" > < i class = "fa fa-lock" > < / i > < / div >
2013-09-28 21:11:10 +00:00
2013-11-15 21:41:45 +00:00
This repository is currently < b > private< / b > . Only users on the permissions list may view and interact with it.
2013-11-15 21:40:16 +00:00
< div class = "change-access" >
< button class = "btn btn-danger" ng-click = "askChangeAccess('public')" > Make Public< / button >
< / div >
< / div >
2013-09-28 21:11:10 +00:00
2013-11-15 21:40:16 +00:00
< div class = "repo-access-state" ng-show = "repo.is_public" >
< div class = "state-icon" > < i class = "fa fa-unlock" > < / i > < / div >
This repository is currently < b > public< / b > and is visible to all users, and may be pulled by all users.
< div class = "change-access" >
< button class = "btn btn-danger" ng-click = "askChangeAccess('private')" > Make Private< / button >
< / div >
< / div >
< / div >
< / div >
2013-10-01 23:36:57 +00:00
< / div >
2013-10-01 18:14:30 +00:00
2013-11-15 21:40:16 +00:00
<!-- Delete tab -->
< div id = "delete" class = "tab-pane" >
<!-- Delete Repo -->
< div class = "panel panel-default" >
< div class = "panel-body" >
< div class = "repo-delete" >
< div class = "alert alert-danger" > Deleting a repository < b > cannot be undone< / b > . Here be dragons!< / div >
< button class = "btn btn-danger" ng-click = "askDelete()" > Delete Repository< / button >
< / div >
< / div >
< / div >
< / div >
2013-10-01 18:14:30 +00:00
< / div >
< / div >
< / div >
2013-12-17 18:19:59 +00:00
< / div >
< / div >
2013-09-27 19:26:16 +00:00
2013-12-17 18:19:59 +00:00
<!-- Auth dialog -->
< div class = "docker-auth-dialog" username = "'$token'" token = "shownToken.code"
shown="!!shownToken" counter="shownTokenCounter">
< i class = "fa fa-key" > < / i > {{ shownToken.friendlyName }}
< / div >
2013-10-16 18:24:10 +00:00
2014-04-03 03:33:58 +00:00
<!-- Setup trigger dialog -->
< div class = "setup-trigger-dialog" repository = "repo"
trigger="currentSetupTrigger"
canceled="cancelSetupTrigger(trigger)"
counter="showTriggerSetupCounter">< / div >
2014-02-20 23:57:49 +00:00
2014-07-17 17:32:39 +00:00
<!-- New notification dialog -->
< div class = "create-external-notification-dialog" repository = "repo"
counter="showNewNotificationCounter"
notification-created="handleNotificationCreated(notification)">< / div >
2013-12-17 18:19:59 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "makepublicModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button >
< h4 class = "modal-title" > Make Repository Public< / h4 >
< / div >
< div class = "modal-body" >
< div class = "alert alert-warning" >
Warning: This will allow < b > anyone< / b > to pull from this repository
2013-09-28 21:11:10 +00:00
< / div >
2013-12-17 18:19:59 +00:00
Are you sure you want to make this repository public?
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-danger" ng-click = "changeAccess('public')" > Make Public< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2013-09-28 21:11:10 +00:00
2013-09-27 19:48:54 +00:00
2013-12-17 18:19:59 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "makeprivateModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button >
< h4 class = "modal-title" > Make Repository Private< / h4 >
< / div >
< div class = "modal-body" >
< div class = "alert alert-warning" >
Warning: Only users on the permissions list will be able to access this repository.
2013-10-01 18:14:30 +00:00
< / div >
2013-12-17 18:19:59 +00:00
Are you sure you want to make this repository private?
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-success" ng-click = "changeAccess('private')" > Make Private< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2013-10-01 18:14:30 +00:00
2013-11-02 01:48:10 +00:00
2013-12-17 18:19:59 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "confirmdeleteModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button >
< h4 class = "modal-title" > Delete Repository?< / h4 >
< / div >
< div class = "modal-body" >
Are you < b > absolutely, positively< / b > sure you would like to delete this repository? This < b > cannot be undone< / b > .
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-danger" ng-click = "deleteRepo()" > Delete Repository< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Close< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
<!-- Modal message dialog -->
< div class = "modal fade" id = "confirmaddoutsideModal" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > × < / button >
< h4 class = "modal-title" > Add User?< / h4 >
< / div >
< div class = "modal-body" >
The selected user is outside of your organization. Are you sure you want to grant the user access to this repository?
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-primary" ng-click = "grantRole()" > Yes, I'm sure< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2013-11-02 01:48:10 +00:00