2013-12-18 03:56:28 +00:00
< div class = "loading" ng-show = "!user" >
< div class = "quay-spinner" > < / div >
2013-11-06 22:59:16 +00:00
< / div >
2013-12-18 03:56:28 +00:00
< div class = "loading" ng-show = "user.anonymous" >
2013-11-06 22:59:16 +00:00
No matching user found
< / div >
2013-12-18 03:56:28 +00:00
< div class = "user-admin container" ng-show = "!user.anonymous" >
2013-11-06 22:59:16 +00:00
< div class = "row" >
< div class = "organization-header-element" >
< img src = "//www.gravatar.com/avatar/{{ user.gravatar }}?s=24&d=identicon" >
< span class = "organization-name" >
{{ user.username }}
< / span >
2013-10-02 05:40:11 +00:00
< / div >
< / div >
2013-11-06 22:59:16 +00:00
2013-10-10 17:44:34 +00:00
< div class = "row" ng-show = "askForPassword" >
< div class = "col-md-12" >
< div class = "alert alert-warning" > Your account does not currently have a password. You will need to create a password before you will be able to < strong > push< / strong > or < strong > pull< / strong > repositories.< / div >
< / div >
< / div >
2013-11-06 22:59:16 +00:00
2013-10-10 17:44:34 +00:00
< div class = "row" >
2013-11-06 22:59:16 +00:00
<!-- 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 = "#plan" > Plan and Usage< / a > < / li >
2013-12-21 03:38:53 +00:00
< li ng-show = "hasPaidPlan" > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#billingoptions" > Billing Options< / a > < / li >
< li ng-show = "hasPaidBusinessPlan" > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#billing" ng-click = "loadInvoices()" > Billing History< / a > < / li >
2013-11-22 23:20:51 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#robots" > Robot Accounts< / a > < / li >
2014-01-17 22:04:05 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#email" > Account E-mail< / a > < / li >
2014-01-15 19:11:49 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#password" > Change Password< / a > < / li >
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#github" > GitHub Login< / a > < / li >
2013-12-21 03:38:53 +00:00
< li ng-show = "hasPaidBusinessPlan" > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#logs" ng-click = "loadLogs()" > Usage Logs< / a > < / li >
2013-11-07 21:33:56 +00:00
< li > < a href = "javascript:void(0)" data-toggle = "tab" data-target = "#migrate" id = "migrateTab" > Convert to Organization< / a > < / li >
2013-11-06 22:59:16 +00:00
< / ul >
2013-10-10 17:44:34 +00:00
< / div >
2013-11-06 22:59:16 +00:00
<!-- Content -->
< div class = "col-md-10" >
2013-12-21 03:38:53 +00:00
< div class = "tab-content" >
<!-- Logs tab -->
< div id = "logs" class = "tab-pane" >
< div class = "logs-view" user = "user" visible = "logsShown" > < / div >
< / div >
2013-11-06 22:59:16 +00:00
<!-- Plans tab -->
< div id = "plan" class = "tab-pane active" >
2013-11-15 23:17:12 +00:00
< div class = "plan-manager" user = "user.username" ready-for-plan = "readyForPlan()" plan-changed = "planChanged(plan)" > < / div >
2013-10-10 17:44:34 +00:00
< / div >
2013-11-06 22:59:16 +00:00
2014-01-17 22:04:05 +00:00
<!-- E - mail address tab -->
< div id = "email" class = "tab-pane" >
< div class = "row" >
< div class = "alert alert-success" ng-show = "changeEmailSent" > An e-mail has been sent to {{ sentEmail }} to verify the change.< / div >
< div class = "loading" ng-show = "updatingUser" >
< div class = "quay-spinner 3x" > < / div >
< / div >
< div class = "panel" ng-show = "!updatingUser" >
< div class = "panel-title" > Account e-mail address< / div >
< div class = "panel-setting-content" >
{{ user.email }}
< / div >
< / div >
< div class = "panel" ng-show = "!updatingUser" >
< div class = "panel-title" > Change e-mail address< / div >
< div class = "panel-body" >
< form class = "form-change col-md-6" id = "changeEmailForm" name = "changeEmailForm" ng-submit = "changeEmail()" data-trigger = "manual"
data-content="{{ changeEmailError }}" data-placement="right" ng-show="!awaitingConfirmation & & !registering">
< input type = "email" class = "form-control" placeholder = "Your new e-mail address" ng-model = "cuser.email" required >
< button class = "btn btn-primary" ng-disabled = "changeEmailForm.$invalid || cuser.email == user.email" type = "submit" > Change E-mail Address< / button >
< / form >
< / div >
< / div >
< / div >
< / div >
2013-11-06 22:59:16 +00:00
<!-- Change password tab -->
2014-01-15 19:11:49 +00:00
< div id = "password" class = "tab-pane" >
< div class = "loading" ng-show = "updatingUser" >
2013-12-18 03:56:28 +00:00
< div class = "quay-spinner 3x" > < / div >
2013-11-06 22:59:16 +00:00
< / div >
2013-11-07 22:18:25 +00:00
< div class = "row" >
2014-01-15 18:55:57 +00:00
< div class = "panel" >
< div class = "panel-title" > Change Password< / div >
2013-12-18 03:56:28 +00:00
2014-01-15 18:55:57 +00:00
< span class = "help-block" ng-show = "changePasswordSuccess" > Password changed successfully< / span >
< div ng-show = "!updatingUser" class = "panel-body" >
2014-01-17 22:04:05 +00:00
< form class = "form-change col-md-6" id = "changePasswordForm" name = "changePasswordForm" ng-submit = "changePassword()" data-trigger = "manual"
2014-01-15 18:55:57 +00:00
data-content="{{ changePasswordError }}" data-placement="right" ng-show="!awaitingConfirmation & & !registering">
< input type = "password" class = "form-control" placeholder = "Your new password" ng-model = "cuser.password" required >
< input type = "password" class = "form-control" placeholder = "Verify your new password" ng-model = "cuser.repeatPassword"
match="cuser.password" required>
< button class = "btn btn-danger" ng-disabled = "changePasswordForm.$invalid" type = "submit"
analytics-on analytics-event="change_pass">Change Password< / button >
< / form >
< / div >
2013-12-18 03:56:28 +00:00
< / div >
2013-11-07 22:18:25 +00:00
< / div >
2014-01-15 19:11:49 +00:00
< / div >
2014-01-14 20:23:44 +00:00
2014-01-17 22:04:05 +00:00
<!-- Github tab -->
2014-01-15 19:11:49 +00:00
< div id = "github" class = "tab-pane" >
< div class = "loading" ng-show = "!cuser" >
< div class = "quay-spinner 3x" > < / div >
< / div >
2014-01-15 18:55:57 +00:00
< div class = "row" ng-show = "cuser" >
< div class = "panel" >
< div class = "panel-title" > GitHub Login< / div >
< div class = "panel-body" >
< div ng-show = "githubLogin" class = "lead col-md-8" >
< span class = "fa-stack" >
< i class = "fa fa-circle fa-stack-2x check-green" > < / i >
< i class = "fa fa-check fa-stack-1x fa-inverse" > < / i >
< / span >
This account is connected with GitHub account: < b > {{githubLogin}}< / b >
< / div >
< div ng-show = "!githubLogin" class = "col-md-8" >
< a href = "https://github.com/login/oauth/authorize?client_id={{ githubClientId }}&scope=user:email{{ github_state_clause }}&redirect_uri={{ githubRedirectUri }}/attach" class = "btn btn-primary" > < i class = "fa fa-github fa-lg" > < / i > Connect with GitHub< / a >
< / div >
< / div >
< / div >
2014-01-14 20:23:44 +00:00
< / div >
< / div >
2013-11-15 19:42:31 +00:00
2013-11-22 23:20:51 +00:00
<!-- Robot accounts tab -->
< div id = "robots" class = "tab-pane" >
< div class = "robots-manager" user = "user" > < / div >
< / div >
2013-11-15 19:42:31 +00:00
<!-- Billing options tab -->
2013-12-21 03:38:53 +00:00
< div id = "billingoptions" class = "tab-pane" >
2013-11-15 19:42:31 +00:00
< div class = "billing-options" user = "user" > < / div >
< / div >
2013-11-07 21:33:56 +00:00
2013-12-21 03:38:53 +00:00
<!-- Billing History tab -->
< div id = "billing" class = "tab-pane" >
< div class = "billing-invoices" user = "user" visible = "invoicesShown" > < / div >
< / div >
2013-11-07 21:33:56 +00:00
<!-- Convert to organization tab -->
< div id = "migrate" class = "tab-pane" >
<!-- Step 0 -->
< div class = "panel" ng-show = "convertStep == 0" >
< div class = "panel-body" ng-show = "user.organizations.length > 0" >
< div class = "alert alert-info" >
Cannot convert this account into an organization, as it is a member of {{user.organizations.length}} other
organization{{user.organizations.length > 1 ? 's' : ''}}. Please leave
{{user.organizations.length > 1 ? 'those organizations' : 'that organization'}} first.
< / div >
< / div >
< div class = "panel-body" ng-show = "user.organizations.length == 0" >
2013-12-21 03:38:53 +00:00
< div class = "alert alert-warning" >
Note: Converting a user account into an organization < b > cannot be undone< / b >
2013-11-07 21:33:56 +00:00
< / div >
2013-12-21 03:38:53 +00:00
< button class = "btn btn-primary" ng-click = "showConvertForm()" > Start conversion process< / button >
2013-11-07 21:33:56 +00:00
< / div >
< / div >
<!-- Step 1 -->
< div class = "convert-form" ng-show = "convertStep == 1" >
< h3 > Convert to organization< / h3 >
< form method = "post" name = "convertForm" id = "convertForm" ng-submit = "convertToOrg()" >
< div class = "form-group" >
< label for = "orgName" > Organization Name< / label >
< div class = "existing-data" >
< img src = "//www.gravatar.com/avatar/{{ user.gravatar }}?s=24&d=identicon" >
{{ user.username }}< / div >
< span class = "description" > This will continue to be the namespace for your repositories< / span >
< / div >
< div class = "form-group" >
< label for = "orgName" > Admin User< / label >
< input id = "adminUsername" name = "adminUsername" type = "text" class = "form-control" placeholder = "Admin Username"
ng-model="org.adminUser" required autofocus>
< input id = "adminPassword" name = "adminPassword" type = "password" class = "form-control" placeholder = "Admin Password"
ng-model="org.adminPassword" required>
2014-01-30 18:11:44 +00:00
< span class = "description" >
2014-01-30 21:06:48 +00:00
The username and password for the account that will become an administrator of the organization.
Note that this account < b > must be a separate Quay.io account< / b > from the account that you are
trying to convert, and < b > must already exist< / b > .
2014-01-30 18:11:44 +00:00
< / span >
2013-11-07 21:33:56 +00:00
< / div >
2013-11-08 03:08:23 +00:00
<!-- Plans Table -->
< div class = "form-group plan-group" >
< label > Organization Plan< / label >
< div class = "plans-table" plans = "orgPlans" current-plan = "org.plan" > < / div >
< / div >
2013-11-07 21:33:56 +00:00
< div class = "button-bar" >
2013-12-21 03:38:53 +00:00
< button class = "btn btn-large btn-danger" type = "submit" ng-disabled = "convertForm.$invalid || !org.plan"
analytics-on analytics-event="convert_to_organization">
2013-11-07 21:33:56 +00:00
Convert To Organization
< / button >
< / div >
< / form >
< / div >
< / div >
2013-10-10 17:44:34 +00:00
< / div >
< / div >
2013-11-06 22:59:16 +00:00
2013-10-10 17:44:34 +00:00
< / div >
2013-10-02 18:50:02 +00:00
< / div >
2013-11-07 21:33:56 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "cannotconvertModal" >
< 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" > Cannot convert account< / h4 >
< / div >
< div class = "modal-body" >
Your account could not be converted. Please try again in a moment.
< / div >
< div class = "modal-footer" >
< 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 = "invalidadminModal" >
< 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" > Username or password invalid< / h4 >
< / div >
< div class = "modal-body" >
The username or password specified for the admin account is not valid.
< / div >
< div class = "modal-footer" >
< 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 = "reallyconvertModal" >
< 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" > Convert to organization?< / h4 >
< / div >
< div class = "modal-body" >
< div class = "alert alert-danger" > You will not be able to login to this account once converted< / div >
< div > Are you < b > absolutely sure< / b > you would like to convert this account to an organization? Once done, there is no going back.< / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-danger" data-dismiss = "modal" ng-click = "reallyConvert()" > Absolutely: Convert Now< / button >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->