2015-04-02 20:34:41 +00:00
< div class = "resource-view user-view"
resource="userResource"
error-message="'User not found'">
< div class = "page-content" >
< div class = "cor-title" >
< span class = "cor-title-link" > < / span >
< span class = "cor-title-content" >
2015-12-28 21:29:17 +00:00
< span class = "avatar" size = "32" data = "context.viewuser.avatar" > < / span >
< span class = "user-name" > {{ context.viewuser.username }}< / span >
2015-04-02 20:34:41 +00:00
< / span >
2015-12-28 21:29:17 +00:00
< span class = "cor-title-action" ng-if = "context.viewuser.is_me" >
< a href = "/new/?namespace={{ context.viewuser.username }}" >
2015-04-30 16:50:11 +00:00
< i class = "fa fa-plus" data-title = "Create new repository" > < / i >
Create New Repository
< / a >
< / span >
2015-04-02 20:34:41 +00:00
< / div >
2015-12-28 21:29:17 +00:00
< div class = "co-main-content-panel user-repo-list" ng-if = "!context.viewuser.is_me" >
2016-04-14 19:12:54 +00:00
< div class = "repo-list-view padded" namespaces = "[context.viewuser]" > < / div >
2015-04-03 18:55:09 +00:00
< / div >
2017-05-29 22:39:14 +00:00
< cor-tab-panel ng-if = "context.viewuser.is_me"
orientation="vertical"
cor-nav-tabs>
2017-04-28 21:03:38 +00:00
< cor-tabs quay-show = "context.viewuser.is_me" >
< cor-tab tab-active = "true" tab-title = "Repositories" tab-id = "repos" >
2015-04-02 20:34:41 +00:00
< i class = "fa fa-hdd-o" > < / i >
2017-04-28 21:03:38 +00:00
< / cor-tab >
< cor-tab tab-title = "Robot Accounts" tab-init = "showRobots()" tab-id = "robots" >
2015-04-23 20:41:47 +00:00
< i class = "fa ci-robot" > < / i >
2017-04-28 21:03:38 +00:00
< / cor-tab >
< cor-tab tab-title = "External Logins And Applications" tab-id = "external"
2016-04-25 19:17:18 +00:00
tab-init="showApplications()">
2015-04-02 20:34:41 +00:00
< i class = "fa fa-external-link-square" > < / i >
2017-04-28 21:03:38 +00:00
< / cor-tab >
< cor-tab tab-title = "Usage Logs" tab-id = "logs" tab-init = "showLogs()"
2016-04-25 19:17:18 +00:00
quay-show="Features.USER_LOG_ACCESS">
< i class = "fa fa-bar-chart" > < / i >
2017-04-28 21:03:38 +00:00
< / cor-tab >
< cor-tab tab-title = "User Settings" tab-id = "settings" tab-init = "showBilling()" >
2016-04-25 19:17:18 +00:00
< i class = "fa fa-gears" > < / i >
2017-04-28 21:03:38 +00:00
< / cor-tab >
< / cor-tabs >
2015-04-02 20:34:41 +00:00
2017-04-28 21:03:38 +00:00
< cor-tab-content >
2015-04-02 20:34:41 +00:00
<!-- Repositories -->
2017-04-28 21:03:38 +00:00
< cor-tab-pane id = "repos" >
2015-12-28 21:29:17 +00:00
< div class = "repo-list-view" namespaces = "[context.viewuser]" > < h3 > Repositories< / h3 > < / div >
2017-04-28 21:03:38 +00:00
< / cor-tab-pane >
2015-04-02 20:34:41 +00:00
<!-- Robot Accounts -->
2017-04-28 21:03:38 +00:00
< cor-tab-pane id = "robots" >
2015-04-21 20:07:24 +00:00
< div class = "robots-manager" user = "viewuser" is-enabled = "showRobotsCounter" > < / div >
2017-04-28 21:03:38 +00:00
< / cor-tab-pane >
2015-04-02 20:34:41 +00:00
2016-04-25 19:17:18 +00:00
<!-- Usage Logs -->
2017-04-28 21:03:38 +00:00
< cor-tab-pane id = "logs" >
2016-04-25 19:17:18 +00:00
< div class = "logs-view" user = "viewuser" makevisible = "showLogsCounter" > < / div >
2017-04-28 21:03:38 +00:00
< / cor-tab-pane >
2015-04-02 20:34:41 +00:00
2016-04-25 19:17:18 +00:00
<!-- External Logins And Applications -->
2017-04-28 21:03:38 +00:00
< cor-tab-pane id = "external" quay-show = "!hasSingleSignin" >
2016-04-25 19:17:18 +00:00
< div class = "external-logins-manager" user = "viewuser"
quay-show="!hasSingleSignin">< / div >
< div style = "margin: 50px" quay-show = "!hasSingleSignin" >
< / div >
2015-04-07 22:33:43 +00:00
< div class = "authorized-apps-manager" user = "viewuser" is-enabled = "showAppsCounter" > < / div >
2017-04-28 21:03:38 +00:00
< / cor-tab-pane >
2015-04-02 20:34:41 +00:00
<!-- Settings -->
2017-04-28 21:03:38 +00:00
< cor-tab-pane id = "settings" >
2016-04-25 19:17:18 +00:00
<!-- Encrypted Password -->
< div class = "settings-section" >
< h3 > Docker CLI Password< / h3 >
< div ng-if = "!Features.REQUIRE_ENCRYPTED_BASIC_AUTH" >
The Docker CLI stores passwords entered on the command line in < strong > plaintext< / strong > . It is therefore highly recommended to generate an an encrypted version of your password to use for < code > docker login< / code > .
2015-04-02 20:34:41 +00:00
< / div >
2016-04-25 19:17:18 +00:00
< div ng-if = "Features.REQUIRE_ENCRYPTED_BASIC_AUTH" >
This installation is set to < strong > require< / strong > encrypted passwords when
using the Docker command line interface.
2015-04-02 20:34:41 +00:00
< / div >
2016-04-25 19:17:18 +00:00
< table class = "co-list-table" style = "margin-top: 10px;" >
< tr >
< td > CLI Password:< / td >
< td >
< a ng-click = "generateClientToken()" > Generate Encrypted Password< / a >
< / td >
< / tr >
< / table >
2015-04-02 20:34:41 +00:00
< / div >
2016-04-25 19:17:18 +00:00
<!-- User Settings -->
< div class = "settings-section" >
< h3 > User Settings< / h3 >
< table class = "co-list-table" >
< tr >
< td > Username:< / td >
< td >
{{ context.viewuser.username }}
< div class = "help-text" > Usernames cannot currently be changed. Please < a href = "/contact" > contact support< / a > to migrate accounts.< / div >
< / td >
< / tr >
< tr >
< td > Avatar:< / td >
< td >
< span class = "avatar" size = "48" data = "context.viewuser.avatar" > < / span >
< div class = "help-text" ng-if = "Config.AVATAR_KIND == 'local'" > Avatar is generated based off of your username.< / div >
< div class = "help-text" ng-if = "Config.AVATAR_KIND == 'gravatar'" > Avatar is served by < a href = "http://gravatar.com" rel = "nofollow" target = "_blank" > Gravatar< / a > based on the {{ context.viewuser.email }} e-mail address.< / div >
< / td >
< / tr >
< tr quay-show = "Features.MAILING" >
< td > Email Address:< / td >
< td >
2016-08-16 17:13:52 +00:00
< div ng-if = "context.emailAwaitingChange" >
An email has been sent to < code > {{ context.emailAwaitingChange }}< / code > . Please click the Confirm button
to apply the email change.
< / div >
< a class = "co-modify-link" ng-click = "showChangeEmail()" ng-if = "!context.emailAwaitingChange" > {{ context.viewuser.email }}< / a >
2016-04-25 19:17:18 +00:00
< / td >
< / tr >
< tr quay-show = "Config.AUTHENTICATION_TYPE == 'Database'" >
< td > Password:< / td >
< td >
< a class = "co-modify-link" ng-click = "showChangePassword()" > Change password< / a >
< / td >
< / tr >
< tr quay-show = "Config.AUTHENTICATION_TYPE == 'Database'" >
< td > Account Type:< / td >
< td >
< a class = "co-modify-link" ng-click = "showChangeAccount()" > Individual account< / a >
< / td >
< / tr >
< / table >
2017-04-28 21:03:38 +00:00
< / div >
2016-08-09 21:58:33 +00:00
2017-04-28 21:03:38 +00:00
< div class = "delete-namespace-view" subscription-status = "subscriptionStatus" user = "context.viewuser" namespace-title = "account" quay-show = "Config.AUTHENTICATION_TYPE == 'Database'" > < / div >
2017-04-05 18:01:55 +00:00
2017-04-28 21:03:38 +00:00
< time-machine-settings user = "context.viewuser" > < / time-machine-settings >
2016-04-25 19:17:18 +00:00
<!-- Billing Information -->
2016-04-28 19:41:32 +00:00
< div class = "settings-section" quay-show = "Features.BILLING" >
2016-04-25 19:17:18 +00:00
< h3 > Billing Information< / h3 >
2016-08-09 21:58:33 +00:00
< div class = "billing-management-panel" user = "context.viewuser" is-enabled = "showBillingCounter" subscription-status = "subscriptionStatus" > < / div >
2016-04-25 19:17:18 +00:00
< / div >
2017-04-28 21:03:38 +00:00
< / cor-tab-pane >
< / cor-tab-content >
< / cor-tab-panel >
2015-04-02 20:34:41 +00:00
2016-04-25 19:17:18 +00:00
<!-- Change email dialog -->
< div class = "cor-confirm-dialog"
dialog-context="changeEmailInfo"
dialog-action="changeEmail(info, callback)"
dialog-title="Change E-mail Address"
dialog-action-title="Change Email"
dialog-form="context.emailform">
< form name = "context.emailform" class = "co-single-field-dialog" >
2016-08-16 17:13:52 +00:00
Please enter a new email address. A verification email will be sent before the change is applied.
2016-04-25 19:17:18 +00:00
< input type = "email" class = "form-control" placeholder = "Your new e-mail address"
ng-model="changeEmailInfo.email" required>
< / form >
< / div >
<!-- Change password dialog -->
< div class = "cor-confirm-dialog"
dialog-context="changePasswordInfo"
dialog-action="changePassword(info, callback)"
dialog-title="Change Password"
dialog-action-title="Change Password"
dialog-form="context.passwordform">
< form name = "context.passwordform" class = "co-single-field-dialog" >
Enter a new password. Passwords must be at least 8 characters in length.
< input type = "password" class = "form-control" placeholder = "Your new password" ng-model = "changePasswordInfo.password" required
ng-pattern="/^.{8,}$/">
< input type = "password" class = "form-control" placeholder = "Verify your new password" ng-model = "changePasswordInfo.repeatPassword"
match="changePasswordInfo.password" required ng-pattern="/^.{8,}$/">
< / form >
< / div >
<!-- Convert account dialog -->
< div class = "convert-user-to-org" info = "convertAccountInfo" > < / div >
2016-04-29 23:37:35 +00:00
<!-- Credentials for encrypted passwords -->
< div class = "credentials-dialog" credentials = "context.encryptedPasswordCredentials" secret-title = "Encrypted Password" entity-title = "encrypted password" entity-icon = "fa-key" >
2015-04-02 20:34:41 +00:00
< / div >