Add button to delete undeleted repositories from failed migrations (#16197)
This PR adds a button to delete failed repositories if there has been a failure during migration and for whatever reason the repository doesn't get deleted automatically. Fix #16154 Signed-off-by: Andrew Thornton <art27@cantab.net>release/v1.15
parent
71c7d0a993
commit
365c4e9316
|
@ -29,6 +29,7 @@ import (
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/structs"
|
||||||
"code.gitea.io/gitea/modules/typesniffer"
|
"code.gitea.io/gitea/modules/typesniffer"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -624,6 +625,7 @@ func Home(ctx *context.Context) {
|
||||||
ctx.Data["Repo"] = ctx.Repo
|
ctx.Data["Repo"] = ctx.Repo
|
||||||
ctx.Data["MigrateTask"] = task
|
ctx.Data["MigrateTask"] = task
|
||||||
ctx.Data["CloneAddr"] = safeURL(cfg.CloneAddr)
|
ctx.Data["CloneAddr"] = safeURL(cfg.CloneAddr)
|
||||||
|
ctx.Data["Failed"] = task.Status == structs.TaskStatusFailed
|
||||||
ctx.HTML(http.StatusOK, tplMigrating)
|
ctx.HTML(http.StatusOK, tplMigrating)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,12 @@
|
||||||
<p>{{.i18n.Tr "repo.migrate.migrating_failed" .CloneAddr | Safe}}</p>
|
<p>{{.i18n.Tr "repo.migrate.migrating_failed" .CloneAddr | Safe}}</p>
|
||||||
<p id="repo_migrating_failed_error"></p>
|
<p id="repo_migrating_failed_error"></p>
|
||||||
</div>
|
</div>
|
||||||
|
{{if and .Failed .Permission.IsAdmin}}
|
||||||
|
<div class="ui divider"></div>
|
||||||
|
<div class="item">
|
||||||
|
<button class="ui basic red show-modal button" data-modal="#delete-repo-modal">{{.i18n.Tr "repo.settings.delete"}}</button>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,4 +41,37 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="ui small modal" id="delete-repo-modal">
|
||||||
|
<div class="header">
|
||||||
|
{{.i18n.Tr "repo.settings.delete"}}
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="ui warning message text left">
|
||||||
|
{{.i18n.Tr "repo.settings.delete_notices_1" | Safe}}<br>
|
||||||
|
{{.i18n.Tr "repo.settings.delete_notices_2" .Repository.FullName | Safe}}
|
||||||
|
{{if .Repository.NumForks}}<br>
|
||||||
|
{{.i18n.Tr "repo.settings.delete_notices_fork_1"}}
|
||||||
|
{{end}}
|
||||||
|
</div>
|
||||||
|
<form class="ui form" action="{{.Link}}/settings" method="post">
|
||||||
|
{{.CsrfTokenHtml}}
|
||||||
|
<input type="hidden" name="action" value="delete">
|
||||||
|
<div class="field">
|
||||||
|
<label>
|
||||||
|
{{.i18n.Tr "repo.settings.transfer_form_title"}}
|
||||||
|
<span class="text red">{{.Repository.Name}}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="required field">
|
||||||
|
<label for="repo_name">{{.i18n.Tr "repo.repo_name"}}</label>
|
||||||
|
<input id="repo_name" name="repo_name" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text right actions">
|
||||||
|
<div class="ui cancel button">{{.i18n.Tr "settings.cancel"}}</div>
|
||||||
|
<button class="ui red button">{{.i18n.Tr "repo.settings.confirm_delete"}}</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{{template "base/footer" .}}
|
{{template "base/footer" .}}
|
||||||
|
|
Loading…
Reference in New Issue