471cfdd161
- 1 - Add: Gitea now creates timestamped database backup bundles under `[backup].PATH`, exposes the backup schedule in the installer, and surfaces the `database_backup` cron task in admin monitoring. - 2 - Add: installed instances now use `.gitea-installed` and `.gitea-recovery.ini` to enter email-gated recovery instead of falling back to public install mode when configuration or database access is broken. - 3 - Mod: the installer recovery flow now covers backup-bundle restore, bundled or manual `app.ini` reuse, uploaded SQL/GZ database restores, and repository-filesystem recovery with source-specific validation, confirmations, and preserved launcher state. - 4 - Fix: recovery now restores bundled `app.ini` snapshots when needed, discovers backup bundles from both the active backup path and persisted `.gitea-recovery.ini` path, and preserves SMTP and other rebuilt settings correctly when `app.ini` is missing or incomplete. - 5 - Fix: recovery validation and restore handling now accept either a selected backup bundle or an uploaded SQL/GZ dump, keep sensitive secrets and existing `LFS_JWT_SECRET` when appropriate, clear SQLite restore targets before import, and complete the post-install handoff without redirect loops. - 6 - Mod: fresh installs now default recovery email authorization to enabled with first-admin fallback, and the install/recovery UI, styling, and EN/RO wording were refined to match the final launcher behavior. Co-Authored-By: petru @ codex (GPT-5) <codex@openai.com> (cherry picked from commit 9879caf2292691b0cb521d12e6fee924b066bae2)
57 lines
2.6 KiB
Handlebars
57 lines
2.6 KiB
Handlebars
<footer class="page-footer{{if .PageIsInstall}} page-footer-install{{end}}" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
|
{{if .ShowPersistentFooter}}
|
|
<button
|
|
type="button"
|
|
id="persistent-footer-visibility-toggle"
|
|
data-show-text="{{ctx.Locale.Tr "footer.show"}}"
|
|
data-hide-text="{{ctx.Locale.Tr "footer.hide"}}"
|
|
data-tooltip-content="{{ctx.Locale.Tr "footer.hide"}}"
|
|
data-tooltip-placement="top"
|
|
aria-label="{{ctx.Locale.Tr "footer.hide"}}"
|
|
aria-pressed="false"
|
|
>
|
|
{{svg "octicon-chevron-up" 16 "persistent-footer-visibility-icon persistent-footer-visibility-icon-show tw-hidden"}}
|
|
{{svg "octicon-chevron-down" 16 "persistent-footer-visibility-icon persistent-footer-visibility-icon-hide"}}
|
|
</button>
|
|
{{end}}
|
|
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
|
|
{{if ShowFooterPoweredBy}}
|
|
<a target="_blank" href="https://about.gitea.com">{{ctx.Locale.Tr "powered_by" "Gitea"}}</a>
|
|
{{end}}
|
|
{{if (or .ShowFooterVersion .PageIsAdmin)}}
|
|
<span>
|
|
{{ctx.Locale.Tr "version"}}:
|
|
{{if .IsAdmin}}
|
|
<a href="{{AppSubUrl}}/-/admin/config">{{AppVer}}</a>
|
|
{{else}}
|
|
{{AppVer}}
|
|
{{end}}
|
|
</span>
|
|
{{end}}
|
|
{{if and .TemplateLoadTimes ShowFooterTemplateLoadTime}}
|
|
<span>
|
|
{{ctx.Locale.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong>
|
|
{{ctx.Locale.Tr "template"}}{{if .TemplateName}} {{.TemplateName}}{{end}}: <strong>{{call .TemplateLoadTimes}}</strong>
|
|
</span>
|
|
{{end}}
|
|
{{if $.ViteModeIsDev}}<span class="ui basic label primary">ViteDevMode</span>{{end}}
|
|
</div>
|
|
<div class="right-links" role="group" aria-label="{{ctx.Locale.Tr "aria.footer.links"}}">
|
|
<div class="ui dropdown custom" id="footer-theme-selector">
|
|
<span class="default-text">{{ctx.RenderUtils.RenderThemeItem ctx.CurrentWebTheme 16}}</span>
|
|
<div class="menu theme-menu"></div>
|
|
</div>
|
|
<div class="ui dropdown upward" id="footer-language-selector">
|
|
<span class="flex-text-inline">{{svg "octicon-globe" 14}} {{ctx.Locale.LangName}}</span>
|
|
<div class="menu language-menu">
|
|
{{range .AllLangs -}}
|
|
<a lang="{{.Lang}}" data-url="{{QueryBuild $.CurrentRequestURI "lang" .Lang}}" class="item {{if eq ctx.Locale.Lang .Lang}}selected{{end}}">{{.Name}}</a> <!-- edit/add - by petru @ codex -->
|
|
{{end -}}
|
|
</div>
|
|
</div>
|
|
<a target="_blank" rel="noreferrer" href="{{AssetUrlPrefix}}/licenses.txt">{{ctx.Locale.Tr "licenses"}}</a>
|
|
{{if .EnableSwagger}}<a target="_blank" rel="noreferrer" href="{{AppSubUrl}}/api/swagger">API</a>{{end}}
|
|
{{template "custom/extra_links_footer" .}}
|
|
</div>
|
|
</footer>
|