Commit Graph

39 Commits

Author SHA1 Message Date
petru 471cfdd161 Modified - [install] [backup] [database] [recovery] Consolidated database backup and installer recovery support.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 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)
2026-06-01 03:56:03 +03:00
petru 6ea9c8660f Modified - [migrate] [cancel] [windows] [git] [retry] Made canceled repository migrations wait for the real clone shutdown before exposing retry/delete actions, and added Windows process-tree termination for migration clones.
- 1 - Fix: canceling a repository migration no longer marks the page as failed while the Git clone is still running.
- 2 - Mod: `Retry` and `Delete This Repository` stay hidden until the migration task is fully stopped.
- 3 - Fix: canceled migrations now persist as `stopped` and no longer show the raw `clone error: context canceled ...` message.
- 4 - Fix: added an opt-in Windows process-tree kill for migration clone commands via `taskkill /T /F`, because Git helper processes could remain alive after `Cancel`, keep writing `tmp_pack_*`, and block cleanup or retry.
2026-05-24 04:11:48 +03:00
petru 70659dc6c3 Modified - [locale] [ro] Refined several Romanian UI strings for clearer wording and corrected grammar in settings, migration, repository, and admin badge messages.
- 1 - I updated `options/locale/locale_ro-RO.json` so several existing Romanian translations now use clearer and more natural phrasing, including the account deletion warning, Git migration progress text, archive action wording, workflow notification label order, and a few admin badge status messages with corrected agreement and grammar.
2026-05-24 01:28:44 +03:00
petru 26e30f5ac2 Modified - [install] [repository] [app-ini-import] Exposed repository recovery options in the installer and auto-enabled them for imported app.ini installs without a previously used database.
- 1 - I updated `services/forms/user_form.go`, `routers/install/install.go`, `templates/install.tmpl`, `routers/install/routes_test.go`, and the EN/RO locale files so the installer now shows `ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES` and `ALLOW_DELETE_OF_UNADOPTED_REPOSITORIES` under `Repository Options` with helper descriptions, defaults both checkboxes to enabled, imports their values from `app.ini`, and forces them back to `true` during save when an imported configuration is being installed against a database that has not been used before.
- 2 - I updated `custom/conf/app.example.ini` to document both repository recovery options with the live config key names and added inline explanations that match the new installer behavior, including the imported-`app.ini` recovery auto-enable case.
2026-05-23 04:54:36 +03:00
petru 0e5e7b03ab Modified - [install] [repository-release] [ui] Added release attachment limits to the installer under "Server and Third-Party Service Settings".
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I updated `services/forms/user_form.go`, `routers/install/install.go`, `templates/install.tmpl`, and the EN/RO locale files so the installer now exposes `[repository.release] MAX_FILES` and `FILE_MAX_SIZE`, preloads them from the current settings or imported `app.ini`, and persists them back into the generated configuration with inline help text.
2026-05-22 22:49:34 +03:00
petru c57da3e249 Modified - [locale] [ro] Adjusted the Romanian repo visibility badge labels to use concise badge-friendly wording.
- 1 - I updated `options/locale/locale_ro-RO.json` so `settings.visibility.public`, `settings.visibility.limited`, and `settings.visibility.private` now read `Public`, `Limitat`, and `Privat`, matching the compact badge style used in the repository UI.
2026-05-22 03:50:16 +03:00
petru 64f260a06d Modified - [migrate] [lfs] [ui] Refined the advanced LFS migration option layout on the repository migrate form.
- 1 - I updated `templates/repo/migrate/options.tmpl` and `web_src/css/modules/form.css` so the advanced LFS endpoint block now uses dedicated `lfs` layout hooks, giving the help text and inline input row a cleaner alignment on `/repo/migrate?service_type=2&org=&mirror=`.
2026-05-22 03:15:27 +03:00
petru b1db0705d8 Modified - [install] [mailer] Split the installer mail sender field into display name and address, auto-filled the sender name from Site Title, and reused that site name in test mails.
- 1 - I updated `services/forms/user_form.go`, `routers/install/install.go`, `templates/install.tmpl`, `options/locale/locale_en-US.json`, and `options/locale/locale_ro-RO.json` so the installer now edits `Send Email As` through separate sender-name and sender-address inputs on the same line, auto-fills the sender name from the part of `Site Title` before `:`, or from the first word when no `:` is present, and composes `[mailer] FROM = site_name <mail@address>` server-side during test mail and install submission.
- 2 - I updated `services/mailer/mail.go` so the installer test mail subject/body reuse that derived site name instead of the hardcoded `Gitea` label.
- 3 - I added targeted coverage in `routers/install/routes_test.go` and `services/mailer/mail_test.go` for the derived site-name logic and the composed installer `FROM` address.
- 4 - I updated `routers/install/install.go`, `templates/install.tmpl`, and the installer locale strings so the primary install button now renders `Install <site_name>` from the same derived site-name rule and updates live as `Site Title` changes.
2026-05-21 02:32:36 +03:00
petru ced65dc5cd Modified - [footer] [sticky-ui] Added a top lip show/hide toggle for the persistent footer.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I updated `templates/base/footer_content.tmpl`, `web_src/css/home.css`, and `web_src/js/features/common-page.ts` so pages with the persistent footer preference now render a top-edge toggle lip on desktop, remember the collapsed state in local user settings under `persistent-footer-collapsed`, measure the live footer height for smooth hide/show motion, and keep only the lip visible when the footer is collapsed.
- 2 - I added the new footer show/hide labels to `options/locale/locale_en-US.json` and `options/locale/locale_ro-RO.json`.
2026-05-20 19:27:41 +03:00
petru a039c0d401 Modified - [navbar] [sticky-ui] [user-settings] Added a show/hide toggle tab for the persistent navigation bar.
- 1 - I updated `templates/base/head_navbar.tmpl`, `web_src/css/modules/navbar.css`, and `web_src/css/modules/flexcontainer.css` so pages with `Keep the navigation bar visible while scrolling` now show a small bottom-right toggle tab that collapses the sticky navbar to a minimal visible handle and restores it on demand while keeping sticky offsets aligned.
- 2 - I updated `web_src/js/features/common-page.ts` so the toggle state is applied on page load and stored in local user settings under `persistent-navbar-collapsed`, preserving the chosen shown/hidden state across navigation.
- 3 - I added the new show/hide navbar labels to `options/locale/locale_en-US.json` and `options/locale/locale_ro-RO.json`.
- 4 - I refined the navbar toggle geometry in `web_src/css/modules/navbar.css` and `web_src/css/modules/flexcontainer.css` so the handle now sits like a slim tab just below the navbar border, is pushed closer to the right edge, and leaves only the handle visible when the persistent navbar is collapsed.
2026-05-19 23:25:35 +03:00
petru 725c21ef84 Fixed - [admin-users] [terminology] [locale] [en] [ro] Corrected the bootstrap-admin label from GOOD to GOD.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
(cherry picked from commit 1f2bb43f46)
(cherry picked from commit a1052dbf96)
2026-05-18 20:49:07 +00:00
petru 512e577c3f Added - Added optional sensitive-secret import for installer app.ini uploads.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I added an explicit installer checkbox for importing sensitive secrets from `app.ini` in `templates/install.tmpl`.
- 2 - I extended the installer form, submit pipeline, and final config writer so the optional import reuses `LFS_JWT_SECRET`, `INTERNAL_TOKEN`, and `oauth2.JWT_SECRET` from the uploaded `app.ini` instead of generating new values, including a submit-time fallback that re-reads the uploaded file if the checkbox was enabled after the first auto-import.
- 3 - I finalized secret resolution for both direct values and `LFS_JWT_SECRET_URI` / `INTERNAL_TOKEN_URI` / `JWT_SECRET_URI` file-based references, and added regression coverage for direct imports, URI-based imports, the real `POST /import_app_ini` flow, and the persisted `app.ini` output.
2026-05-12 20:35:52 +00:00
petru 52f3495ca0 Added - Added installer support for importing an existing app.ini.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I added an `Import Existing Configuration` section at the top of `templates/install.tmpl` with an `app.ini` upload control that imports automatically as soon as a file is selected, without a separate `Load app.ini` button.
- 2 - I kept the dedicated installer route `POST /import_app_ini` in `routers/install/routes.go`, but the page now posts to it via `fetch` and applies the imported values back into the existing form with `DOMParser`, so the browser is not visibly navigated to `/import_app_ini` and the page scripts are not re-executed.
- 3 - In `routers/install/install.go`, I factored the installer defaults into reusable helpers, added `app.ini` upload parsing with size/error handling, and mapped the imported config into the existing install form fields for database, general server paths, mailer, registration, OpenID, security, and admin policy settings.
- 4 - I added installer locale strings in both `options/locale/locale_en-US.json` and `options/locale/locale_ro-RO.json` for the new import UI, success message, and import errors, and the success flash now auto-dismisses after 5 seconds.
- 5 - I added regression coverage in `routers/install/routes_test.go` for the new upload control and the config-to-form mapping behavior.
2026-05-12 02:08:51 +00:00
petru 9ee45b3392 Modified - Finalized Register behavior for admin-created notification accounts without altering the invitation flow.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I extended `POST /user/sign_up` in `routers/web/auth/auth.go` for existing active local accounts created by an admin when `username` and `email` match, while explicitly leaving pending admin invitations on their existing flow.
- 2 - If password is correct, the user is now authenticated into that existing account; when `MustChangePassword` is enabled, the flow redirects directly to `/user/settings/change_password`, otherwise it follows the normal post-auth redirect.
- 3 - If password is incorrect, the flow now redirects to `/user/forgot_password?email=<email>` and shows a warning to use account recovery plus check Spam/Junk.
- 4 - I added the locale key `auth.admin_notify_recover_password_spam_hint` in both `options/locale/locale_en-US.json` and `options/locale/locale_ro-RO.json`.
- 5 - I added regression tests in `routers/web/auth/auth_test.go` for normal sign-in, forced change-password redirect, wrong-password recovery redirect, and a guard that the admin-invitation flow still redirects to `/user/invitation`.
2026-05-12 00:48:37 +00:00
petru d81fdfc31f Added - Added optional custom branding uploads to the install page.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I finalized the installer `Branding` section with optional uploads for `logo.svg`, `logo.png`, `loading.png`, `favicon.svg`, and `favicon.png`, including clear format/size guidance plus a shared-assets checkbox for using one SVG and one PNG upload for both logo and favicon.
- 2 - I implemented backend validation and persistence for all branding uploads in `routers/install/install.go` (expected type checks, 1 MB limit, square PNG with minimum 64x64) and save accepted overrides under `custom/public/assets/img/`.
- 3 - I completed the runtime behavior so uploaded branding files override built-in assets through layered serving, `logo.svg` is mirrored to `gitea.svg` for legacy lookups, post-install progress prefers a custom `loading.png`, and the shared-assets mode hides favicon fields while relabeling logo fields to `Logo & Favicon SVG/PNG`.
- 4 - I manually updated Romanian locale wording for the final branding texts and labels.
2026-05-11 20:38:50 +00:00
petru 3b52932acd Added - Added the password visibility toggle to the install-page database password field.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ Fix - some new correction Romanian wording and grammar in locale_ro-RO.json.
2026-05-10 23:08:40 +00:00
petru 4ff2054a83 Added - Added the password visibility toggle and confirm-password behavior to the install-page super-admin password fields.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ Fix - some new correction Romanian wording and grammar in locale_ro-RO.json.
2026-05-10 22:14:03 +00:00
petru ca7092e23c Added - Added column-wide Select all controls to the organization team-units permissions table.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ Fix - some new correction Romanian wording and grammar in locale_ro-RO.json.
2026-05-10 20:52:49 +00:00
petru 490e119254 Fix - some new correction Romanian wording and grammar in locale_ro-RO.json.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-10 05:05:16 +00:00
petru 3b121911c1 Modified - Unified the persistent appearance toggles into a single settings group. 2026-05-10 04:49:07 +00:00
petru aaaada5129 Fix - some new correction Romanian wording and grammar in locale_ro-RO.json. 2026-05-10 03:43:31 +00:00
petru bfb584f161 Added - Added password visibility toggles to the login and signup forms.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-09 19:33:09 +00:00
petru 01e3eb1306 Fix - some new correction Romanian wording and grammar in locale_ro-RO.json.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-09 18:35:37 +00:00
petru ab1135d1c6 Added - Added column-wide Select all controls to the user access-token permissions table.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-09 16:39:10 +00:00
petru a8a099edea Modified - Preserved the /user/settings left-menu scroll position across settings-page navigation
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ Fix - some new correction Romanian wording and grammar in `locale_ro-RO.json`.
2026-05-08 09:08:33 +00:00
petru 90735ea826 Modified - Added a persistent navigation-bar preference in /user/settings/appearance.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-08 00:33:34 +00:00
petru 351d6b0811 Modified - Added the persistent sticky side-menu preference and the finalized sidebar behavior for /user/settings and /-/admin.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-07 23:57:58 +00:00
petru 61a9e4bd06 Modified - Moved the persistent footer outside the page scroll area
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ some new correction Romanian wording and grammar in `locale_ro-RO.json`.
2026-05-07 09:45:13 +00:00
petru b3a7692ce9 Modified - Reverted the global fixed-footer behavior and replaced it with a persistent per-user footer preference in /user/settings/appearance.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-07 01:14:36 +00:00
petru 146013827c Fixed - Corrected the admin-created account password-setup email link to use the public recovery route
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ some new correction Romanian wording and grammar in `locale_ro-RO.json`.
2026-05-06 23:36:08 +00:00
petru 85620a4f29 Modified - Personalized the admin-created account notification email with the creator name and a direct set-password link.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-06 22:18:19 +00:00
petru 70ef46362e Fixed - Made admin-created user notification and invitation emails use the current page locale
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ ome new correction Romanian wording and grammar in `locale_ro-RO.json`.
2026-05-06 22:02:22 +00:00
petru fc43980a5c Fixed - Prevented the new-organization modal from inheriting unrelated global success flashes from the underlying page.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
+ Some new correction Romanian wording and grammar in `locale_ro-RO.json`.
2026-05-06 20:59:20 +00:00
petru f00f80bae7 Modified - Some new correction Romanian wording and grammar in locale_ro-RO.json. 2026-05-06 15:50:59 +00:00
petru c80f065a09 Modified - Somes correction Romanian wording and grammar in locale_ro-RO.json
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-06 15:05:41 +00:00
petru cc36930cdd Modified - Another visual polish of Romanian translation for locale_ro-RO.json.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-06 00:31:03 +00:00
petru cb765b81a7 Modified - Visual polish of Romanian translation for locale_ro-RO.json.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-05 23:33:12 +00:00
petru 144bc4796f Modified - Added a first complete Romanian translation pass for locale_ro-RO.json.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-02 15:07:15 +00:00
petru 414c77278b Modified - Added official bootstrap support for the Romanian locale.
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
2026-05-02 13:59:49 +00:00