diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/admin/repo/list.tmpl | 3 | ||||
-rw-r--r-- | templates/admin/repo/unadopted.tmpl | 98 | ||||
-rw-r--r-- | templates/swagger/v1_json.tmpl | 113 | ||||
-rw-r--r-- | templates/user/settings/repos.tmpl | 152 |
4 files changed, 340 insertions, 26 deletions
diff --git a/templates/admin/repo/list.tmpl b/templates/admin/repo/list.tmpl index 4c3b77dcfb..51e329e038 100644 --- a/templates/admin/repo/list.tmpl +++ b/templates/admin/repo/list.tmpl @@ -5,6 +5,9 @@ {{template "base/alert" .}} <h4 class="ui top attached header"> {{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}}) + <div class="ui right"> + <a class="ui blue tiny button" href="{{AppSubUrl}}/admin/repos/unadopted">{{.i18n.Tr "admin.repos.unadopted"}}</a> + </div> </h4> <div class="ui attached segment"> {{template "admin/repo/search" .}} diff --git a/templates/admin/repo/unadopted.tmpl b/templates/admin/repo/unadopted.tmpl new file mode 100644 index 0000000000..7a046c6026 --- /dev/null +++ b/templates/admin/repo/unadopted.tmpl @@ -0,0 +1,98 @@ +{{template "base/head" .}} +<div class="admin user"> + {{template "admin/navbar" .}} + <div class="ui container"> + {{template "base/alert" .}} + <h4 class="ui top attached header"> + {{.i18n.Tr "admin.repos.unadopted"}} + <div class="ui right"> + <a class="ui blue tiny button" href="{{AppSubUrl}}/admin/repos">{{.i18n.Tr "admin.repos.repo_manage_panel"}}</a> + </div> + </h4> + <div class="ui attached segment"> + <form class="ui form ignore-dirty"> + <div class="ui fluid action input"> + <input name="search" value="true" type="hidden"> + <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.adopt_search"}}" autofocus> + <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button> + </div> + </form> + </div> + {{if .search}} + <div class="ui attached segment settings"> + {{if .Dirs}} + <div class="ui middle aligned divided list"> + {{range $dirI, $dir := .Dirs}} + <div class="item"> + <div class="content"> + <span class="icon">{{svg "octicon-file-directory"}}</span> + <span class="name">{{$dir}}</span> + <div class="right floated content"> + <button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button> + <div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}"> + <i class="close icon"></i> + <div class="header"> + <span class="label">{{$.i18n.Tr "repo.adopt_preexisting"}}</span> + </div> + <div class="content"> + <p>{{$.i18n.Tr "repo.adopt_preexisting_content" $dir}}</p> + </div> + <form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="id" value="{{$dir}}"> + <input type="hidden" name="action" value="adopt"> + <div class="actions"> + <div class="ui red basic inverted cancel button"> + <i class="remove icon"></i> + {{$.i18n.Tr "modal.no"}} + </div> + <button class="ui green basic inverted ok button"> + <i class="checkmark icon"></i> + {{$.i18n.Tr "modal.yes"}} + </button> + </div> + </form> + </div> + <button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.i18n.Tr "repo.delete_preexisting_label"}}</span></button> + <div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}"> + <i class="close icon"></i> + <div class="header"> + <span class="label">{{$.i18n.Tr "repo.delete_preexisting"}}</span> + </div> + <div class="content"> + <p>{{$.i18n.Tr "repo.delete_preexisting_content" $dir}}</p> + </div> + <form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="id" value="{{$dir}}"> + <input type="hidden" name="action" value="delete"> + <div class="actions"> + <div class="ui red basic inverted cancel button"> + <i class="remove icon"></i> + {{$.i18n.Tr "modal.no"}} + </div> + <button class="ui green basic inverted ok button"> + <i class="checkmark icon"></i> + {{$.i18n.Tr "modal.yes"}} + </button> + </div> + </form> + </div> + </div> + </div> + </div> + {{end}} + </div> + {{template "base/paginate" .}} + {{else}} + <div class="item"> + {{.i18n.Tr "admin.repos.unadopted.no_more"}} + </div> + {{template "base/paginate" .}} + {{end}} + </div> + {{end}} + </div> +</div> + +{{template "base/footer" .}} diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index c1847f0440..e383448933 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -120,6 +120,119 @@ } } }, + "/admin/unadopted": { + "get": { + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "List unadopted repositories", + "operationId": "adminUnadoptedList", + "parameters": [ + { + "type": "integer", + "description": "page number of results to return (1-based)", + "name": "page", + "in": "query" + }, + { + "type": "integer", + "description": "page size of results", + "name": "limit", + "in": "query" + }, + { + "type": "string", + "description": "pattern of repositories to search for", + "name": "pattern", + "in": "query" + } + ], + "responses": { + "200": { + "$ref": "#/responses/StringSlice" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, + "/admin/unadopted/{owner}/{repo}": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "Adopt unadopted files as a repository", + "operationId": "adminAdoptRepository", + "parameters": [ + { + "type": "string", + "description": "owner of the repo", + "name": "owner", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the repo", + "name": "repo", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "403": { + "$ref": "#/responses/forbidden" + }, + "404": { + "$ref": "#/responses/notFound" + } + } + }, + "delete": { + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "Delete unadopted files", + "operationId": "adminDeleteUnadoptedRepository", + "parameters": [ + { + "type": "string", + "description": "owner of the repo", + "name": "owner", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "name of the repo", + "name": "repo", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "$ref": "#/responses/empty" + }, + "403": { + "$ref": "#/responses/forbidden" + } + } + } + }, "/admin/users": { "get": { "produces": [ diff --git a/templates/user/settings/repos.tmpl b/templates/user/settings/repos.tmpl index 8d9065ec61..456647d9be 100644 --- a/templates/user/settings/repos.tmpl +++ b/templates/user/settings/repos.tmpl @@ -7,34 +7,134 @@ {{.i18n.Tr "settings.repos"}} </h4> <div class="ui attached segment"> - {{if .Repos}} - <div class="ui middle aligned divided list"> - {{range .Repos}} - <div class="item"> - <div class="content"> - {{if .IsPrivate}} - <span class="text gold iconFloat">{{svg "octicon-lock"}}</span> - {{else if .IsFork}} - <span class="iconFloat">{{svg "octicon-repo-forked"}}</span> - {{else if .IsMirror}} - <span class="iconFloat">{{svg "octicon-mirror"}}</span> - {{else}} - <span class="iconFloat">{{svg "octicon-repo"}}</span> - {{end}} - <a class="name" href="{{AppSubUrl}}/{{$.Owner.Name}}/{{.Name}}">{{$.Owner.Name}}/{{.Name}}</a> - <span>{{SizeFmt .Size}}</span> - {{if .IsFork}} - {{$.i18n.Tr "repo.forked_from"}} - <span><a href="{{AppSubUrl}}/{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}">{{.BaseRepo.Owner.Name}}/{{.BaseRepo.Name}}</a></span> - {{end}} + {{if or .allowAdopt .allowDelete}} + {{if .Dirs}} + <div class="ui middle aligned divided list"> + {{range $dirI, $dir := .Dirs}} + {{ $repo := index $.ReposMap $dir}} + <div class="item"> + <div class="content"> + {{if $repo}} + {{if $repo.IsPrivate}} + <span class="text gold icon">{{svg "octicon-lock"}}</span> + {{else if $repo.IsFork}} + <span class="icon">{{svg "octicon-repo-forked"}}</span> + {{else if $repo.IsMirror}} + <span class="icon">{{svg "octicon-mirror"}}</span> + {{else if $repo.IsTemplate}} + <span class="icon">{{svg "octicon-repo-template"}}</span> + {{else}} + <span class="icon">{{svg "octicon-repo"}}</span> + {{end}} + <a class="name" href="{{AppSubUrl}}/{{$repo.OwnerName}}/{{$repo.Name}}">{{$repo.OwnerName}}/{{$repo.Name}}</a> + <span>{{SizeFmt $repo.Size}}</span> + {{if $repo.IsFork}} + {{$.i18n.Tr "repo.forked_from"}} + <span><a href="{{AppSubUrl}}/{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}">{{$repo.BaseRepo.OwnerName}}/{{$repo.BaseRepo.Name}}</a></span> + {{end}} + {{else}} + <span class="icon">{{svg "octicon-file-directory"}}</span> + <span class="name">{{$.Owner.Name}}/{{$dir}}</span> + <div class="right floated content"> + {{if $.allowAdopt}} + <button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button> + <div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}"> + <i class="close icon"></i> + <div class="header"> + <span class="label">{{$.i18n.Tr "repo.adopt_preexisting"}}</span> + </div> + <div class="content"> + <p>{{$.i18n.Tr "repo.adopt_preexisting_content" $dir}}</p> + </div> + <form class="ui form" method="POST" action="{{AppSubUrl}}/user/settings/repos/unadopted"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="id" value="{{$dir}}"> + <input type="hidden" name="action" value="adopt"> + <div class="actions"> + <div class="ui red basic inverted cancel button"> + <i class="remove icon"></i> + {{$.i18n.Tr "modal.no"}} + </div> + <button class="ui green basic inverted ok button"> + <i class="checkmark icon"></i> + {{$.i18n.Tr "modal.yes"}} + </button> + </div> + </form> + </div> + {{end}} + {{if $.allowDelete}} + <button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.i18n.Tr "repo.delete_preexisting_label"}}</span></button> + <div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}"> + <i class="close icon"></i> + <div class="header"> + <span class="label">{{$.i18n.Tr "repo.delete_preexisting"}}</span> + </div> + <div class="content"> + <p>{{$.i18n.Tr "repo.delete_preexisting_content" $dir}}</p> + </div> + <form class="ui form" method="POST" action="{{AppSubUrl}}/user/settings/repos/unadopted"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="id" value="{{$dir}}"> + <input type="hidden" name="action" value="delete"> + <div class="actions"> + <div class="ui red basic inverted cancel button"> + <i class="remove icon"></i> + {{$.i18n.Tr "modal.no"}} + </div> + <button class="ui green basic inverted ok button"> + <i class="checkmark icon"></i> + {{$.i18n.Tr "modal.yes"}} + </button> + </div> + </form> + </div> + {{end}} + </div> + {{end}} + </div> </div> - </div> - {{end}} - </div> + {{end}} + </div> + {{template "base/paginate" .}} + {{else}} + <div class="item"> + {{.i18n.Tr "settings.repos_none"}} + </div> + {{end}} {{else}} - <div class="item"> - {{.i18n.Tr "settings.repos_none"}} - </div> + {{if .Repos}} + <div class="ui middle aligned divided list"> + {{range .Repos}} + <div class="item"> + <div class="content"> + {{if .IsPrivate}} + <span class="text gold iconFloat">{{svg "octicon-lock"}}</span> + {{else if .IsFork}} + <span class="iconFloat">{{svg "octicon-repo-forked"}}</span> + {{else if .IsMirror}} + <span class="iconFloat">{{svg "octicon-mirror"}}</span> + {{else if .IsTemplate}} + <span class="iconFloat">{{svg "octicon-repo-template"}}</span> + {{else}} + <span class="iconFloat">{{svg "octicon-repo"}}</span> + {{end}} + <a class="name" href="{{AppSubUrl}}/{{$.OwnerName}}/{{.Name}}">{{$.OwnerName}}/{{.Name}}</a> + <span>{{SizeFmt .Size}}</span> + {{if .IsFork}} + {{$.i18n.Tr "repo.forked_from"}} + <span><a href="{{AppSubUrl}}/{{.BaseRepo.OwnerName}}/{{.BaseRepo.Name}}">{{.BaseRepo.OwnerName}}/{{.BaseRepo.Name}}</a></span> + {{end}} + </div> + </div> + {{end}} + </div> + {{template "base/paginate" .}} + {{else}} + <div class="item"> + {{.i18n.Tr "settings.repos_none"}} + </div> + {{end}} {{end}} </div> </div> |