8509932b41
Add a dropdown on the admin dashboard to switch between update streams (stable, rc, beta, alpha, development) matching the Joomla pattern. Changes: - Admin dashboard shows channel selector with descriptions - POST handler validates and applies channel change in-memory - Triggers immediate re-check against updates.xml after switch - updates.xml has all 5 standard channels with descriptions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
100 lines
5.8 KiB
Handlebars
100 lines
5.8 KiB
Handlebars
{{template "admin/layout_head" (dict "pageClass" "admin dashboard")}}
|
|
<div class="admin-setting-content">
|
|
{{if .NeedUpdate}}
|
|
<div class="ui positive message">
|
|
<div class="header">{{svg "octicon-info"}} MokoGitea Update Available</div>
|
|
<p>A new version <strong>{{.LatestVersion}}</strong> is available{{if .UpdateChannel}} ({{.UpdateChannel}} channel){{end}}.
|
|
{{if .ReleaseURL}}<a href="{{.ReleaseURL}}" target="_blank" rel="noopener noreferrer">View release notes</a>{{end}}</p>
|
|
{{if .DockerImage}}<p><code>docker pull {{.DockerImage}}</code></p>{{end}}
|
|
</div>
|
|
{{end}}
|
|
<div class="ui segment">
|
|
<h4 class="ui header">{{svg "octicon-broadcast" 16}} Update Channel</h4>
|
|
<form method="post" action="{{AppSubUrl}}/-/admin" class="tw-flex tw-items-end tw-gap-4">
|
|
{{.CsrfTokenHtml}}
|
|
<div class="field tw-flex-1">
|
|
<select name="update_channel" class="ui dropdown">
|
|
{{range .UpdateChannels}}
|
|
<option value="{{.value}}" {{if eq $.CurrentUpdateChannel .value}}selected{{end}}>{{.label}} — {{.desc}}</option>
|
|
{{end}}
|
|
</select>
|
|
</div>
|
|
<button type="submit" class="ui primary button">{{svg "octicon-sync" 14}} Apply</button>
|
|
</form>
|
|
</div>
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "admin.dashboard.maintenance_operations"}}
|
|
</h4>
|
|
<div class="ui attached table segment">
|
|
<form method="post" action="{{AppSubUrl}}/-/admin">
|
|
<table class="ui very basic table tw-mt-0 tw-px-4">
|
|
<tbody>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.delete_inactive_accounts"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="delete_inactive_accounts">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.delete_repo_archives"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="delete_repo_archives">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.delete_missing_repos"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="delete_missing_repos">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.git_gc_repos"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="git_gc_repos">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
{{if and (not .SSH.Disabled) (not .SSH.StartBuiltinServer)}}
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.resync_all_sshkeys"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="resync_all_sshkeys">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.resync_all_sshprincipals"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="resync_all_sshprincipals">{{svg "octicon-play" 16}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
{{end}}
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.resync_all_hooks"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="resync_all_hooks">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.reinit_missing_repos"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="reinit_missing_repos">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.sync_external_users"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="sync_external_users">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.repo_health_check"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="repo_health_check">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.delete_generated_repository_avatars"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="delete_generated_repository_avatars">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.sync_repo_branches"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="sync_repo_branches">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ctx.Locale.Tr "admin.dashboard.sync_repo_tags"}}</td>
|
|
<td class="tw-text-right"><button type="submit" class="ui primary button" name="op" value="sync_repo_tags">{{svg "octicon-play"}} {{ctx.Locale.Tr "admin.dashboard.operation_run"}}</button></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
</div>
|
|
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "admin.dashboard.system_status"}}
|
|
</h4>
|
|
{{/* TODO: make these stats work in multi-server deployments, likely needs per-server stats in DB */}}
|
|
<div class="ui attached table segment">
|
|
{{template "admin/system_status" .}}
|
|
</div>
|
|
</div>
|
|
{{template "admin/layout_footer" .}}
|