2015-04-06 16:45:12 +00:00
< div class = "new-repo" >
< div class = "page-content" >
< div class = "cor-title" >
< span class = "cor-title-link" >
< a class = "back-link" href = "/repository" >
Repositories
< / a >
< / span >
< span class = "cor-title-content" >
Create New Repository
< / span >
< / div >
2013-10-26 20:03:11 +00:00
2015-04-06 16:45:12 +00:00
< div class = "co-main-content-panel" >
< div class = "" ng-show = "user.anonymous" >
< div class = "col-sm-6 col-sm-offset-3" >
< div class = "user-setup" redirect-url = "'/new/'" > < / div >
2013-10-24 21:41:55 +00:00
< / div >
< / div >
2014-11-24 21:07:38 +00:00
2015-04-06 16:45:12 +00:00
< div class = "cor-loader" ng-show = "!user.anonymous && building" > < / div >
< div class = "cor-loader" ng-show = "!user.anonymous && creating" > < / div >
< div class = "new-repo" ng-show = "!user.anonymous && !creating && !building" >
< form method = "post" name = "newRepoForm" id = "newRepoForm" ng-submit = "createNewRepo()" >
<!-- Header -->
< div class = "row" >
< div class = "col-md-12" >
< div class = "section" >
< div class = "new-header" >
2015-08-04 20:41:31 +00:00
< div class = "namespace-selector-header" >
2015-04-17 16:17:44 +00:00
< span class = "visible-xs xs-label" > Namespace:< / span >
2015-04-06 16:45:12 +00:00
< span class = "namespace-selector" user = "user" namespace = "repo.namespace" require-create = "true" > < / span >
2015-04-17 16:17:44 +00:00
< span class = "slash hidden-xs" > /< / span >
< span class = "visible-xs xs-label" > Repository Name:< / span >
2015-04-06 16:45:12 +00:00
< span class = "name-container" >
< input id = "repoName" name = "repoName" type = "text" class = "form-control" placeholder = "Repository Name" ng-model = "repo.name"
required autofocus data-trigger="manual" data-content="{{ createError }}" data-placement="right" ng-pattern="/^[.a-z0-9_-]+$/">
< / span >
< span class = "co-alert co-alert-warning" ng-show = "!newRepoForm.repoName.$error.required && !newRepoForm.repoName.$valid" style = "margin-left: 10px;" >
Repository names must match [a-z0-9_-]+
< / span >
2015-08-04 20:41:31 +00:00
< / div >
2015-04-06 16:45:12 +00:00
< / div >
< / div >
< div class = "section" >
< div class = "section-title" > Repository Description< / div >
< br >
< div class = "description markdown-input" content = "repo.description" can-write = "true"
field-title="'repository description'">< / div >
< / div >
2013-10-24 21:41:55 +00:00
< / div >
< / div >
2014-11-24 21:07:38 +00:00
2015-04-06 16:45:12 +00:00
<!-- Private/public -->
< div class = "row" >
< div class = "col-md-12" >
< div class = "section" >
2015-04-17 16:17:44 +00:00
< div class = "section-title" > Repository Visibility< / div >
< br >
2015-04-06 16:45:12 +00:00
< div class = "repo-option" >
2015-04-17 16:17:44 +00:00
< div class = "repo-option-title" >
< input type = "radio" id = "publicrepo" name = "publicorprivate" ng-model = "repo.is_public" value = "1" >
< i class = "fa fa-unlock fa-large" data-title = "Public Repository" > < / i >
< label for = "publicrepo" > < strong > Public< / strong > < / label >
< / div >
2015-04-06 16:45:12 +00:00
< div class = "option-description" >
< span class = "description-text" > Anyone can see and pull from this repository. You choose who can push.< / span >
< / div >
< / div >
< div class = "repo-option" >
2015-04-17 16:17:44 +00:00
< div class = "repo-option-title" >
< input type = "radio" id = "privaterepo" name = "publicorprivate" ng-model = "repo.is_public" value = "0" >
< i class = "fa fa-lock fa-large" data-title = "Private Repository" > < / i >
< label for = "privaterepo" > < strong > Private< / strong > < / label >
< / div >
2015-04-06 16:45:12 +00:00
< div class = "option-description" >
< span class = "description-text" > You choose who can see, pull and push from/to this repository.< / span >
< / div >
< / div >
<!-- Payment -->
< div class = "required-plan" ng-show = "repo.is_public == '0' && planRequired && planRequired.title" >
< div class = "co-alert co-alert-warning" >
2015-04-27 18:36:43 +00:00
In order to make this repository private under
< strong ng-if = "isUserNamespace" > your personal namespace< / strong >
< strong ng-if = "!isUserNamespace" > organization < b > {{ repo.namespace }}< / b > < / strong > , you will need to upgrade your plan to
2015-04-06 16:45:12 +00:00
< b style = "border-bottom: 1px dotted black;" data-html = "true"
data-title="{{ '< b > ' + planRequired.title + '< / b > < br > ' + planRequired.privateRepos + ' private repositories' }}" bs-tooltip>
{{ planRequired.title }}
< / b > .
This will cost $< span > {{ planRequired.price / 100 }}< / span > /month.
< / div >
< a class = "btn btn-primary" ng-click = "upgradePlan()" ng-show = "!planChanging" > Upgrade now< / a >
< span ng-if = "isUserNamespace && user.organizations.length == 1" style = "margin-left: 6px; display: inline-block;" > or did you mean to create this repository
under < a href = "javascript:void(0)" ng-click = "changeNamespace(user.organizations[0].name)" > < b > {{ user.organizations[0].name }}< / b > < / a > ?< / span >
2015-04-27 18:39:16 +00:00
< div class = "cor-loader-inline" ng-show = "planChanging" > < / div >
2015-04-06 16:45:12 +00:00
< / div >
2015-04-27 18:39:16 +00:00
< div class = "cor-loader-inline" ng-show = "repo.is_public == '0' && checkingPlan" > < / div >
2015-04-06 16:45:12 +00:00
< div class = "required-plan" ng-show = "repo.is_public == '0' && planRequired && !isUserNamespace && !planRequired.title" >
< div class = "co-alert co-alert-warning" >
This organization has reached its private repository limit. Please contact your administrator.
< / div >
< / div >
< / div >
2013-10-24 21:41:55 +00:00
< / div >
< / div >
2013-10-28 21:08:26 +00:00
2015-04-06 16:45:12 +00:00
< div class = "row" ng-show = "Features.BUILD_SUPPORT" >
< div class = "col-md-12" >
< div class = "section" >
< div class = "section-title" > Initialize repository< / div >
< div style = "padding-top: 10px;" >
<!-- Empty -->
< div class = "repo-option" >
< input type = "radio" id = "initEmpty" name = "initialize" ng-model = "repo.initialize" value = "" >
< i class = "fa fa-hdd-o fa-lg" style = "padding: 6px; padding-left: 8px; padding-right: 6px;" > < / i >
< label for = "initEmpty" style = "color: #aaa;" > (Empty repository)< / label >
< / div >
<!-- Dockerfile -->
< div class = "repo-option" >
< input type = "radio" id = "initDockerfile" name = "initialize" ng-model = "repo.initialize" value = "dockerfile" >
< i class = "fa fa-file fa-lg" style = "padding: 6px; padding-left: 10px; padding-right: 8px;" > < / i >
< label for = "initDockerfile" > Initialize from a < b > Dockerfile< / b > < / label >
< / div >
2015-05-12 16:40:26 +00:00
<!-- SCM -->
< div class = "repo-option"
ng-repeat="type in TriggerService.getTypes()"
ng-if="TriggerService.isEnabled(type)">
< input type = "radio" id = "init{{type}}" name = "initialize" ng-model = "repo.initialize" value = "{{ type }}" >
< i class = "fa fa-lg" ng-class = "TriggerService.getIcon(type)"
style="padding: 6px; padding-left: 10px; padding-right: 12px;">< / i >
< label for = "init{{type}}" > Link to a {{ TriggerService.getTitle(type) }}< / label >
2015-04-06 16:45:12 +00:00
< / div >
< / div >
< / div >
2013-10-28 21:08:26 +00:00
< / div >
< / div >
2013-11-01 23:13:58 +00:00
2015-04-06 16:45:12 +00:00
< div class = "row" ng-show = "repo.initialize == 'dockerfile' || repo.initialize == 'zipfile'" >
< div class = "col-md-12" >
< div class = "section" >
2015-04-17 16:17:44 +00:00
< div class = "section-title" > Initialize from Dockerfile< / div >
2015-04-06 16:45:12 +00:00
< div style = "padding-top: 20px;" >
< div class = "initialize-repo" >
2015-04-17 16:17:44 +00:00
< div class = "dockerfile-build-form" repository = "createdForBuild || repo"
upload-failed="handleBuildFailed(message)"
build-started="handleBuildStarted()"
build-failed="handleBuildFailed(message)"
start-now="createdForBuild"
2015-04-06 16:45:12 +00:00
is-ready="hasDockerfile" uploading="uploading" building="building">< / div >
< / div >
< / div >
< / div >
2013-11-01 23:13:58 +00:00
< / div >
< / div >
2014-11-24 21:07:38 +00:00
2015-05-12 16:40:26 +00:00
< div class = "row"
ng-repeat="type in TriggerService.getTypes()"
ng-if="TriggerService.isEnabled(type) & & repo.initialize == type">
2015-04-06 16:45:12 +00:00
< div class = "col-md-12" >
< div class = "co-alert co-alert-info" >
2015-05-12 16:40:26 +00:00
You will be redirected to authorize for {{ TriggerService.getTitle(type) }} once the repository has been created
2015-04-06 16:45:12 +00:00
< / div >
2014-03-13 19:25:38 +00:00
< / div >
2013-10-24 21:41:55 +00:00
< / div >
2015-04-06 16:45:12 +00:00
< div class = "row" >
2014-11-24 21:07:38 +00:00
2015-04-06 16:45:12 +00:00
< div class = "col-md-12" >
< button class = "btn btn-large btn-primary" type = "submit"
ng-disabled="uploading || building || newRepoForm.$invalid || (repo.is_public == '0' & & (planRequired || checkingPlan)) || ((repo.initialize == 'dockerfile' || repo.initialize == 'zipfile') & & !hasDockerfile)">
< i class = "fa fa-large" ng-class = "repo.is_public == '1' ? 'fa-unlock' : 'fa-lock'" style = "margin-right: 4px" > < / i >
Create {{ repo.is_public == '1' ? 'Public' : 'Private' }} Repository
< / button >
2014-03-13 19:25:38 +00:00
< / div >
2013-10-24 21:41:55 +00:00
< / div >
2015-04-06 16:45:12 +00:00
< / form >
2014-03-13 19:25:38 +00:00
< / div >
< / div >
< / div >
2013-10-24 21:41:55 +00:00
< / div >
<!-- Modal edit for the description -->
< div class = "modal fade" id = "editModal" >
< 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" > Edit Repository Description< / h4 >
< / div >
< div class = "modal-body" >
< div class = "wmd-panel" >
2014-11-24 21:07:38 +00:00
< div id = "wmd-button-bar-description" > < / div >
2013-10-24 21:41:55 +00:00
< textarea class = "wmd-input" id = "wmd-input-description" placeholder = "Enter description" > {{ repo.description }}< / textarea >
< / div >
2014-11-24 21:07:38 +00:00
2013-10-24 21:41:55 +00:00
< div id = "wmd-preview-description" class = "wmd-panel wmd-preview" > < / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Close< / button >
< button type = "button" class = "btn btn-primary" ng-click = "saveDescription()" > Save changes< / button >
< / div >
< / div > <!-- /.modal - content -->
< / div > <!-- /.modal - dialog -->
< / div > <!-- /.modal -->
2013-10-26 20:03:11 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "cannotcreateModal" >
< 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 create repository< / h4 >
< / div >
< div class = "modal-body" >
The repository could not be created.
< / 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 -->
2013-10-26 21:20:59 +00:00
2013-10-28 21:08:26 +00:00
<!-- Modal message dialog -->
< div class = "modal fade" id = "couldnotsubscribeModal" >
< 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 upgrade plan< / h4 >
< / div >
< div class = "modal-body" >
Your current plan could not be upgraded. Please try again.
< / 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 -->