aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/admin/repo/list.tmpl3
-rw-r--r--templates/admin/repo/unadopted.tmpl98
-rw-r--r--templates/swagger/v1_json.tmpl113
-rw-r--r--templates/user/settings/repos.tmpl152
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>