0ko
766c9c64f5
fix(rna): prioritize breaking changes without a feature or bug label over non-breaking changes ( #12124 )
...
Related: https://codeberg.org/forgejo/website/pulls/843#issuecomment-13131897
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12124
Reviewed-by: Robert Wolff <mahlzahn@posteo.de >
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2026-04-17 15:24:58 +02:00
0ko
3fe02a2175
merge commit: i18n: translations update from Codeberg Translate ( #11963 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11963
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-04-15 19:04:26 +02:00
0ko
8cdfe1d57a
fix(ui): a few small runners UI fixes ( #12115 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/11516
The string will be fixed in other languages though Weblate after this PR is merged
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12115
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
2026-04-14 18:50:29 +02:00
0ko
fd489b6963
chore(i18n): migrate strings to json, unhardcode one, improve plurals ( #11879 )
...
* migrate 17 strings related to repository migrations from INI to JSON
* changed templates to get rid of unhelpful prefix `repo`
* migrate 4 strings related to counters
* also changed templates to get rid of `repo`, but it had to be done anyway to use `TrPluralString`
* Unhardcode the header on migraiton type selector page, which I haven't noticed in https://codeberg.org/forgejo/forgejo/pulls/6795 or in two other PRs I did on this template since
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11879
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Beowulf <beowulf@beocode.eu >
2026-04-03 14:11:48 +02:00
0ko
3291f06749
merge commit: i18n: translations update from Codeberg Translate ( #11810 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11810
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-04-03 13:23:56 +02:00
0ko
30ee20582e
merge commit: i18n: translations update from Codeberg Translate ( #11460 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11460
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-25 13:49:12 +01:00
0ko
7d2f1c2ee7
feat(ui): use better contrast color for required field indicator ( #11677 )
...
Use purpose-specific variable with better contrast on dark theme with fallback to generic variable, similarly to this rule: https://codeberg.org/forgejo/forgejo/src/commit/ce73827b7e516f3d8ccec59d1fab2295807b1557/web_src/css/base.css#L664-L666
### Preview

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11677
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-03-17 19:45:18 +01:00
0ko and Gusted
d7de47ea23
fix(ui): cleanup css deadcode related to stackable menus ( #11719 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/11597#issuecomment-11486785
We only have two stackable menus in the UI:
https://codeberg.org/forgejo/forgejo/src/commit/c1787d06e2917e75eb8901ac0586abb34a54f669/templates/user/dashboard/navbar.tmpl#L2
https://codeberg.org/forgejo/forgejo/src/commit/c1787d06e2917e75eb8901ac0586abb34a54f669/web_src/js/components/DashboardRepoList.vue#L328
None of them have classes `right` or `pointing`. Not normally, not through JS.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11719
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-17 18:45:50 +01:00
0ko and Mathieu Fenniak
fd750f39b6
fix(ui): improve consistency in new runner management pages ( #11675 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/11516 which I didn't have time to review. Some consistency fixes.
Haven't done anything with the [actions in the table](https://codeberg.org/attachments/5a7eb4f2-c45c-4189-b952-ca4cd4085eb5 ) but something will need to be done. Like an ellipsis menu.
## Preview


Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11675
Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org >
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-15 15:29:01 +01:00
0ko and Mathieu Fenniak
a480324595
fix(i18n): reuse string for repository access, fix capitalization consistency ( #11683 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/11604
These strings are used in similar contexts and can be reused. Fixed capitalization consistency (`specific_repo_access` inherited capitalization from `repo_and_org_access` which was nearby in the UI)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11683
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-15 15:09:43 +01:00
0ko and Gusted
d665904a22
feat(ui): improve visibility of counters inside of switch items ( #11472 )
...
Apply the feature from https://codeberg.org/forgejo/forgejo/pulls/2935 on element from https://codeberg.org/forgejo/forgejo/pulls/6459 (which was applied to notifications page in https://codeberg.org/forgejo/forgejo/pulls/6542 ).
A few small semi-related refactors. One of them (nested CSS commit) actually revealed a hole in testing: there are no test cases for hover in `evaluateSwitchItem`. I would like to address this but this PR already conflicts with https://codeberg.org/forgejo/forgejo/pulls/11341 , so I won't do that until either is merged to save on rebase work.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11472
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Beowulf <beowulf@beocode.eu >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-08 18:09:13 +01:00
0ko and Gusted
8d6812df25
fix(ui): use overflow:auto to avoid scrollbars when they are not needed ( #11469 )
...
Closes forgejo/forgejo#11407
I looked at related Gitea discussions for when it was implemented and it looks like what to use exactly for `overflow` was not discussed, the intention was just to have overflowing content scroll, not to have irrelevant scrollbars appear at all times.
- https://github.com/go-gitea/gitea/pull/31683
- https://github.com/go-gitea/gitea/issues/31667
- https://github.com/go-gitea/gitea/pull/26561
But with `max-height` restrictions that are in place only horizontal scrollbars are ever needed on demand. Vertical ones are not needed. For this `auto` works much better than `scroll`.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11469
Reviewed-by: Beowulf <beowulf@beocode.eu >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-04 00:36:54 +01:00
0ko and Gusted
a0faae2764
fix(ui/mde): inputs in table/link insertion modals ( #11341 )
...
Fixes #11268
Fixes regression of #9614
Calling `initDisabledInputs` wasn't effective for template contents, so inputs in MDEs spawned by repo-legacy.js on comment editing were broken. Now repo-legacy.js also calls it when it spawns a new MDE.
Co-authored-by: Gusted <Gusted@noreply.codeberg.org >
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11341
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-02 23:32:40 +01:00
0ko
7055fb7056
merge commit: i18n: translations update from Codeberg Translate ( #11344 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11344
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-03-01 10:32:14 +01:00
0ko
f9a22b335e
fix(ui): hardcode sort options in search syntax hint, improve look ( #11381 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9109
Fix issue reported by @mahlzahn that the string was confusing translators and they translated the part that wasn't meant to be translated.
Part of this fix was to replace custom IterWithTr with simple dict iteration to allow for placeholders in strings.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11381
Reviewed-by: Shiny Nematoda <snematoda@noreply.codeberg.org >
Reviewed-by: Ellen Εμιλία Άννα Zscheile <fogti@noreply.codeberg.org >
2026-02-23 06:03:23 +01:00
0ko
8c2bb0f65b
chore(i18n): deduplicate common packages related strings ( #11345 )
...
Our package registries types have many things in common, so they have many shared strings like
```json
"packages.installation": "Installation",
```
but not all and not consistently. For example, some packages duplicate these strings:
```json
"packages.*.install": "To install the package, run the following command:",
"packages.*.registry": "Setup this registry from the command line:",
"packages.*.repository": "Repository info",
"packages.*.dependencies": "Dependencies",
```
while other packages have them customized:
```json
"packages.cargo.install": "To install the package using Cargo, run the following command:",
"packages.composer.install": "To install the package using Composer, run the following command:",
"packages.conan.install": "To install the package using Conan, run the following command:",
"packages.conda.install": "To install the package using Conda, run the following command:",
```
While it's ok for them to have custom strings, I don't see need to duplicate the same generic strings. Even though Weblate provides tools to simplify maintenance of duplicated strings, our files still end up being bloated.
In this PR I deduplicated the strings listed above under a `common` key. There already was a generic shared string for Dependencies, that I just re-used.
Also fixed strings in Arch packages, which were saying Depends with meaning of Dependencies.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11345
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-02-18 04:07:14 +01:00
0ko
149f9a9ba9
fix(ui): improve a few English strings ( #11343 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11343
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Robert Wolff <mahlzahn@posteo.de >
2026-02-18 04:06:15 +01:00
0ko
f8bee35e77
fix(i18n): unhardcode label exclusion tooltips ( #11333 )
...
Followup to #10702 where two new strings were hardcoded in the template.
## Changes
- added as translatable strings
- made the template use a variable to avoid making it a long unreadable
- an unrelated change where tests related to this area of the template are moved to a separate file
- they were created in Forgejo: c92b4b12c8 , 192177fc88
## Testing
Testing translations of all individual strings is considered not needed.
Added test for tmpl logic which was missing and that I've touched.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11333
Reviewed-by: Luis Adame <luisadame@noreply.codeberg.org >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-02-17 04:28:27 +01:00
0ko and Otto
32c6f64f39
fix(e2e): use empty user for overflow menu test ( #11337 )
...
Potentially fixes one of the E2E failures that started to occur lately where the last tab (Starred repos) can overflow on user2's profile on CI.
Replaced the user by the one that has no counters on the tabs.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11337
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-02-16 23:03:19 +01:00
0ko
b085be779c
i18n(*): migrate 92 strings to json ( #11325 )
...
Previous migration: https://codeberg.org/forgejo/forgejo/pulls/10979
The white holes in between the red diff lines of the INI files aren't a migration bug: they are orphan strings that weren't cleaned up yet from those files.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11325
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2026-02-16 17:38:56 +01:00
0ko
7c4f684c68
merge commit: i18n(next): translations update from Codeberg Translate ( #10978 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10978
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-02-16 16:41:12 +01:00
0ko
89bff31287
fix(ui): apply navbar min-height correctly, fix jitter on mobile ( #11274 )
...
Replaces https://codeberg.org/forgejo/forgejo/pulls/11271
This rule was problematic and didn't quite make sense:
* the intention is to have a navbar that is 48px+1px border
* we apply `min-height:49px` to: `#navbar` with intention of making it 49px tall total, with border
* but we also apply it to `#navbar .navbar-left/right`
* elements `#navbar .navbar-left/right` become 49px tall
* their parent `#navbar` becomes 49px+1px border = 50px, overriding what was done in step 2
This height missmatch had an incompatibility with this definition for open menu inside of navbar on mobile, causing jitter when the menu is opened/closed, because it was expecting navbar body to be 48px, but due to the rule that was removed it was actually 49px.
```css
#navbar.navbar-menu-open .navbar-left .navbar-mobile-right {
min-height: 48px;
}
```
The fix is to only apply `min-height` to `#navbar`'s children. At least `.navbar-left` is always expected to be present unconditionally on all pages. This does make the navbar 1px shorter. If we still want a 50px navbar but without the bug let me know and I'll adjust.
### Preview by @panc
From https://codeberg.org/forgejo/forgejo/pulls/11271 , also applies to this PR.
| Before | After |
|----|----|
| <video src="/attachments/515fdfc1-cb97-46af-88ac-9bb0e216a996" title="Screencast From 2026-02-13 19-56-32" controls></video> | <video src="/attachments/133d1499-4660-402d-8082-f407b3644e5c" title="Screencast From 2026-02-13 19-57-29" controls></video> |
Reported-by: panc <panc@noreply.codeberg.org >
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11274
Reviewed-by: Robert Wolff <mahlzahn@posteo.de >
2026-02-14 14:57:44 +01:00
0ko
bd5685812e
feat(ui): convert org members list to grid ( #11127 )
...
Replaces #10789
Convert the layout from flex-list helpers to a CSS-native grid. This allows to having buttons in different rows aligned to each other while keeping the layout responsive, i.e. looking good on both desktop and mobile.
### Preview (desktop)
|Before|After|
|-|-|
|||
### Preview (mobile)
|Before|After|
|-|-|
|||
### Preview (Guest)
|Before|After|
|-|-|
|||
## Testing
Automated tests were added to make sure that actions in this list are still working, and for basic template logic. No tests were added for layout because layout being correct is an abstract concept that is difficult to explain to Playwright.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11127
Reviewed-by: Antonin Delpeuch <wetneb@noreply.codeberg.org >
2026-02-10 12:50:55 +01:00
0ko and Gusted
ccf61c93bf
feat(ui): consistently use AppVerNoMetadata in the footer ( #11196 )
...
Display version without compat metadata for admins too, not just for regular users. It was confusing to some, though I don't remember who got confused.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11196
Reviewed-by: Beowulf <beowulf@beocode.eu >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-02-09 05:32:34 +01:00
0ko and Beowulf
31965f2dd7
chore(ui): add integration tests for footer tmpl logic ( #11197 )
...
Slightly related to https://codeberg.org/forgejo/forgejo/pulls/11196 , but it has no tests related to the change in that PR.
Added tests because I wanted those config options be tested, but haven't found any existing tests.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11197
Reviewed-by: Beowulf <beowulf@beocode.eu >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-02-08 23:55:30 +01:00
0ko
7e4619df83
feat(ui): responsive releases list ( #11080 )
...
## Changes
I've made releases list more usable on narrow viewports while trying keep the layout unchanged for desktop viewports.
To support these changes large amount of Tailwind classes were converted to regular CSS to be applied conditionally via `@media`. While it was possible to just adjust the Tailwind classes to achieve the same behavior, there's a positive effect which is that the repeating HTML of releases generated by template's range is much less verbose and contains fewer long duplicated lines of Tailwind classes.
## Preview
### Desktop
Not much changed, but the dot between tag and release name is no more.
|Before|After|
|-|-|
|||
### Mobile
|Before|After|
|-|-|
|||
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11080
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Beowulf <beowulf@beocode.eu >
2026-02-07 19:15:14 +01:00
0ko
3cafb7fa6c
chore(ui): change /devtest to /-/demo ( #11019 )
...
It has always been largely used for showcasing UI elements but that name didn't work too well for it.
Testing:
Some of existing tests depend on these pages, making it redundant to create extra tests.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11019
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-01-26 13:12:25 +01:00
0ko and Beowulf
2f8ae54b0f
fix(ui): tippy menu styles too broad, affecting switch in PR review ( #10969 )
...
The custom styles for tippy-enabled menus had too broad selectors, conflicting with styles of other .item elements in tippy boxes.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10969
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-22 23:38:09 +01:00
0ko
1978afdb65
i18n(*): migrate ini section [packages] to json ( #10979 )
...
The following strings were skipped because they will need a separate template update for plurals:
```ini
[packages]
owner.settings.cleanuprules.keep.count.1
owner.settings.cleanuprules.keep.count.n
```
Repro command:
```sh
python remap.py --config --write \
--insertion-mode s+p \
--remap [packages]title:packages.title \
--remap [packages]empty:packages.empty \
--remap [packages]empty.documentation:packages.empty.documentation \
--remap [packages]empty.repo:packages.empty.repo \
--remap [packages]registry.documentation:packages.registry.documentation \
--remap [packages]filter.type:packages.filter.type \
--remap [packages]filter.type.all:packages.filter.type.all \
--remap [packages]filter.no_result:packages.filter.no_result \
--remap [packages]filter.container.tagged:packages.filter.container.tagged \
--remap [packages]filter.container.untagged:packages.filter.container.untagged \
--remap [packages]published_by:packages.published_by \
--remap [packages]published_by_in:packages.published_by_in \
--remap [packages]installation:packages.installation \
--remap [packages]about:packages.about \
--remap [packages]requirements:packages.requirements \
--remap [packages]dependencies:packages.dependencies \
--remap [packages]keywords:packages.keywords \
--remap [packages]details:packages.details \
--remap [packages]details.author:packages.details.author \
--remap [packages]details.project_site:packages.details.project_site \
--remap [packages]details.repository_site:packages.details.repository_site \
--remap [packages]details.documentation_site:packages.details.documentation_site \
--remap [packages]details.license:packages.details.license \
--remap [packages]assets:packages.assets \
--remap [packages]versions:packages.versions \
--remap [packages]versions.view_all:packages.versions.view_all \
--remap [packages]dependency.id:packages.dependency.id \
--remap [packages]dependency.version:packages.dependency.version \
--remap [packages]search_in_external_registry:packages.search_in_external_registry \
--remap [packages]alpine.registry:packages.alpine.registry \
--remap [packages]alpine.registry.key:packages.alpine.registry.key \
--remap [packages]alpine.registry.info:packages.alpine.registry.info \
--remap [packages]alpine.install:packages.alpine.install \
--remap [packages]alpine.repository:packages.alpine.repository \
--remap [packages]alpine.repository.branches:packages.alpine.repository.branches \
--remap [packages]alpine.repository.repositories:packages.alpine.repository.repositories \
--remap [packages]alpine.repository.architectures:packages.alpine.repository.architectures \
--remap [packages]arch.pacman.helper.gpg:packages.arch.pacman.helper.gpg \
--remap [packages]arch.pacman.repo.multi:packages.arch.pacman.repo.multi \
--remap [packages]arch.pacman.repo.multi.item:packages.arch.pacman.repo.multi.item \
--remap [packages]arch.pacman.conf:packages.arch.pacman.conf \
--remap [packages]arch.pacman.sync:packages.arch.pacman.sync \
--remap [packages]arch.version.properties:packages.arch.version.properties \
--remap [packages]arch.version.description:packages.arch.version.description \
--remap [packages]arch.version.provides:packages.arch.version.provides \
--remap [packages]arch.version.groups:packages.arch.version.groups \
--remap [packages]arch.version.depends:packages.arch.version.depends \
--remap [packages]arch.version.optdepends:packages.arch.version.optdepends \
--remap [packages]arch.version.makedepends:packages.arch.version.makedepends \
--remap [packages]arch.version.checkdepends:packages.arch.version.checkdepends \
--remap [packages]arch.version.conflicts:packages.arch.version.conflicts \
--remap [packages]arch.version.replaces:packages.arch.version.replaces \
--remap [packages]arch.version.backup:packages.arch.version.backup \
--remap [packages]cargo.registry:packages.cargo.registry \
--remap [packages]cargo.install:packages.cargo.install \
--remap [packages]chef.registry:packages.chef.registry \
--remap [packages]chef.install:packages.chef.install \
--remap [packages]composer.registry:packages.composer.registry \
--remap [packages]composer.install:packages.composer.install \
--remap [packages]composer.dependencies:packages.composer.dependencies \
--remap [packages]composer.dependencies.development:packages.composer.dependencies.development \
--remap [packages]conan.registry:packages.conan.registry \
--remap [packages]conan.install:packages.conan.install \
--remap [packages]conda.registry:packages.conda.registry \
--remap [packages]conda.install:packages.conda.install \
--remap [packages]container.images.title:packages.container.images.title \
--remap [packages]container.details.type:packages.container.details.type \
--remap [packages]container.details.platform:packages.container.details.platform \
--remap [packages]container.pull:packages.container.pull \
--remap [packages]container.digest:packages.container.digest \
--remap [packages]container.multi_arch:packages.container.multi_arch \
--remap [packages]container.layers:packages.container.layers \
--remap [packages]container.labels:packages.container.labels \
--remap [packages]container.labels.key:packages.container.labels.key \
--remap [packages]container.labels.value:packages.container.labels.value \
--remap [packages]cran.registry:packages.cran.registry \
--remap [packages]cran.install:packages.cran.install \
--remap [packages]debian.registry:packages.debian.registry \
--remap [packages]debian.registry.info:packages.debian.registry.info \
--remap [packages]debian.install:packages.debian.install \
--remap [packages]debian.repository:packages.debian.repository \
--remap [packages]debian.repository.distributions:packages.debian.repository.distributions \
--remap [packages]debian.repository.components:packages.debian.repository.components \
--remap [packages]debian.repository.architectures:packages.debian.repository.architectures \
--remap [packages]generic.download:packages.generic.download \
--remap [packages]go.install:packages.go.install \
--remap [packages]helm.registry:packages.helm.registry \
--remap [packages]helm.install:packages.helm.install \
--remap [packages]maven.registry:packages.maven.registry \
--remap [packages]maven.install:packages.maven.install \
--remap [packages]maven.install2:packages.maven.install2 \
--remap [packages]maven.download:packages.maven.download \
--remap [packages]nuget.registry:packages.nuget.registry \
--remap [packages]nuget.install:packages.nuget.install \
--remap [packages]nuget.dependency.framework:packages.nuget.dependency.framework \
--remap [packages]npm.registry:packages.npm.registry \
--remap [packages]npm.install:packages.npm.install \
--remap [packages]npm.install2:packages.npm.install2 \
--remap [packages]npm.dependencies:packages.npm.dependencies \
--remap [packages]npm.dependencies.development:packages.npm.dependencies.development \
--remap [packages]npm.dependencies.bundle:packages.npm.dependencies.bundle \
--remap [packages]npm.dependencies.peer:packages.npm.dependencies.peer \
--remap [packages]npm.dependencies.optional:packages.npm.dependencies.optional \
--remap [packages]npm.details.tag:packages.npm.details.tag \
--remap [packages]pub.install:packages.pub.install \
--remap [packages]pypi.requires:packages.pypi.requires \
--remap [packages]pypi.install:packages.pypi.install \
--remap [packages]rpm.registry:packages.rpm.registry \
--remap [packages]rpm.distros.redhat:packages.rpm.distros.redhat \
--remap [packages]rpm.distros.suse:packages.rpm.distros.suse \
--remap [packages]rpm.install:packages.rpm.install \
--remap [packages]rpm.repository:packages.rpm.repository \
--remap [packages]rpm.repository.architectures:packages.rpm.repository.architectures \
--remap [packages]rpm.repository.multiple_groups:packages.rpm.repository.multiple_groups \
--remap [packages]alt.registry:packages.alt.registry \
--remap [packages]alt.registry.install:packages.alt.registry.install \
--remap [packages]alt.install:packages.alt.install \
--remap [packages]alt.setup:packages.alt.setup \
--remap [packages]alt.repository:packages.alt.repository \
--remap [packages]alt.repository.architectures:packages.alt.repository.architectures \
--remap [packages]alt.repository.multiple_groups:packages.alt.repository.multiple_groups \
--remap [packages]rubygems.install:packages.rubygems.install \
--remap [packages]rubygems.install2:packages.rubygems.install2 \
--remap [packages]rubygems.dependencies.runtime:packages.rubygems.dependencies.runtime \
--remap [packages]rubygems.dependencies.development:packages.rubygems.dependencies.development \
--remap [packages]rubygems.required.ruby:packages.rubygems.required.ruby \
--remap [packages]rubygems.required.rubygems:packages.rubygems.required.rubygems \
--remap [packages]swift.registry:packages.swift.registry \
--remap [packages]swift.install:packages.swift.install \
--remap [packages]swift.install2:packages.swift.install2 \
--remap [packages]vagrant.install:packages.vagrant.install \
--remap [packages]settings.link:packages.settings.link \
--remap [packages]settings.link.description:packages.settings.link.description \
--remap [packages]settings.link.select:packages.settings.link.select \
--remap [packages]settings.link.button:packages.settings.link.button \
--remap [packages]settings.link.success:packages.settings.link.success \
--remap [packages]settings.link.error:packages.settings.link.error \
--remap [packages]settings.delete:packages.settings.delete \
--remap [packages]settings.delete.description:packages.settings.delete.description \
--remap [packages]settings.delete.notice:packages.settings.delete.notice \
--remap [packages]settings.delete.success:packages.settings.delete.success \
--remap [packages]settings.delete.error:packages.settings.delete.error \
--remap [packages]owner.settings.cargo.title:packages.owner.settings.cargo.title \
--remap [packages]owner.settings.cargo.initialize:packages.owner.settings.cargo.initialize \
--remap [packages]owner.settings.cargo.initialize.description:packages.owner.settings.cargo.initialize.description \
--remap [packages]owner.settings.cargo.initialize.error:packages.owner.settings.cargo.initialize.error \
--remap [packages]owner.settings.cargo.initialize.success:packages.owner.settings.cargo.initialize.success \
--remap [packages]owner.settings.cargo.rebuild:packages.owner.settings.cargo.rebuild \
--remap [packages]owner.settings.cargo.rebuild.description:packages.owner.settings.cargo.rebuild.description \
--remap [packages]owner.settings.cargo.rebuild.error:packages.owner.settings.cargo.rebuild.error \
--remap [packages]owner.settings.cargo.rebuild.success:packages.owner.settings.cargo.rebuild.success \
--remap [packages]owner.settings.cargo.rebuild.no_index:packages.owner.settings.cargo.rebuild.no_index \
--remap [packages]owner.settings.cleanuprules.title:packages.owner.settings.cleanuprules.title \
--remap [packages]owner.settings.cleanuprules.add:packages.owner.settings.cleanuprules.add \
--remap [packages]owner.settings.cleanuprules.edit:packages.owner.settings.cleanuprules.edit \
--remap [packages]owner.settings.cleanuprules.none:packages.owner.settings.cleanuprules.none \
--remap [packages]owner.settings.cleanuprules.preview:packages.owner.settings.cleanuprules.preview \
--remap [packages]owner.settings.cleanuprules.preview.overview:packages.owner.settings.cleanuprules.preview.overview \
--remap [packages]owner.settings.cleanuprules.preview.none:packages.owner.settings.cleanuprules.preview.none \
--remap [packages]owner.settings.cleanuprules.pattern_full_match:packages.owner.settings.cleanuprules.pattern_full_match \
--remap [packages]owner.settings.cleanuprules.keep.title:packages.owner.settings.cleanuprules.keep.title \
--remap [packages]owner.settings.cleanuprules.keep.count:packages.owner.settings.cleanuprules.keep.count \
--remap [packages]owner.settings.cleanuprules.keep.pattern:packages.owner.settings.cleanuprules.keep.pattern \
--remap [packages]owner.settings.cleanuprules.keep.pattern.container:packages.owner.settings.cleanuprules.keep.pattern.container \
--remap [packages]owner.settings.cleanuprules.remove.title:packages.owner.settings.cleanuprules.remove.title \
--remap [packages]owner.settings.cleanuprules.remove.days:packages.owner.settings.cleanuprules.remove.days \
--remap [packages]owner.settings.cleanuprules.remove.pattern:packages.owner.settings.cleanuprules.remove.pattern \
--remap [packages]owner.settings.cleanuprules.success.update:packages.owner.settings.cleanuprules.success.update \
--remap [packages]owner.settings.cleanuprules.success.delete:packages.owner.settings.cleanuprules.success.delete \
--remap [packages]owner.settings.chef.title:packages.owner.settings.chef.title \
--remap [packages]owner.settings.chef.keypair:packages.owner.settings.chef.keypair \
--remap [packages]owner.settings.chef.keypair.description:packages.owner.settings.chef.keypair.description
```
In en-US the strings were manually moved lower in the file, before the `actions` section. Weblate proposes strings sequentially to translators, and would be really awkward to start a translation with `packages`.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10979
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2026-01-22 11:42:52 +01:00
0ko
9fd0fc36a0
merge commit: i18n: translations update from Codeberg Translate ( #10660 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10660
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-22 10:08:01 +01:00
953c468b32
fix(ui): improve force-push layout alignment ( #10939 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/7746
Replaces https://codeberg.org/forgejo/forgejo/pulls/10938
grid layout (desktop): give the Compare button a wrapper with same height as the first text line so it stays aligned to it (and to timeline badge)
inline layout (mobile): give the Compare button left margin so there's a gap between it and the text line
Initial fix for grid was proposed by luisadame.
Co-authored-by: Luis <luis@adame.dev >
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10939
Reviewed-by: Beowulf <beowulf@beocode.eu >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-20 19:23:31 +01:00
0ko
10aaef5c7b
feat(perf): remove unused size url parameter for local avatars ( #10932 )
...
Avatars storage handler ignores the size= url parameter, and we don't have any code for creating multiple sizes of the same avatar.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10932
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2026-01-20 04:59:15 +01:00
0ko
bfef19d39d
chore(ui): remove obsolete var --color-nav-text ( #10898 )
...
This variable isn't needed because all themes are setting it to `--color-text`, but the relevant UI elements are already inheriting it from `body`.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10898
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-01-18 05:39:28 +01:00
0ko and Michael Kriese
05269232b8
fix(release): move reverted v14.0.0 feature line to Included for completeness ( #10866 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9409#issuecomment-9894122
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10866
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-16 12:14:27 +01:00
0ko
f6ca985739
chore(release): delete 10037 and 9840 release notes ( #10837 )
...
Same as https://codeberg.org/forgejo/forgejo/pulls/10835 but for main branch since release-notes-assistant recently gained ability to search on both branches.
It was already announced in release notes of v13 and v11 point releases and shouldn't be in release notes of v14, which this file is causing.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10837
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2026-01-14 17:30:03 +01:00
0ko and Beowulf
581227f20a
chore(ui): cleanup PR checks area ( #10768 )
...
Mostly a UI followup to https://codeberg.org/forgejo/forgejo/pulls/9397 with a few fixes.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10768
Reviewed-by: Beowulf <beowulf@beocode.eu >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-10 23:44:42 +01:00
0ko
59c721d26b
i18n(next): convert indention style to tabs: en, editorconfig ( #10661 )
...
Followup to #10659
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10661
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2026-01-02 05:56:48 +01:00
0ko
b8e7d7c9d8
merge commit: i18n(next): convert indention to tabs ( #10659 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10659
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-01 11:45:11 +01:00
0ko
3f358608cd
merge commit: i18n: update of translations from Codeberg Translate ( #10599 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10599
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2026-01-01 10:06:26 +01:00
0ko and Gusted
0a6a5cb73e
chore: remove obsolete code from button-legacy.css ( #10581 )
...
Fixes #10580
Remove obsolete styles so that people do not trip over them.
I went through the codebase with `rg` and made sure that the only elements which had potential to use such mix of classes were doing so accidentally, and removed all the unused code.
### A small fix for Forgejo themes
Ref https://codeberg.org/forgejo/forgejo/pulls/10581#issuecomment-9245399 . The missing variable was used in one place outside of devtest.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10581
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Beowulf <beowulf@beocode.eu >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-31 03:13:05 +01:00
0ko
c53ea1ba2f
merge commit: i18n: update of translations from Codeberg Translate ( #10417 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10417
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-27 15:56:32 +01:00
0ko
973ff28f44
chore(test): separate and move around i18n testing ( #10539 )
...
Closes #10534
The primary code change is that `TestMissingTranslationHandling` was converted to a unit test.
However translation unit tests were a mix of mostly unrelated old (INI) and new (JSON) code with unclear licensing. It was cleaned up with help of Git history.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10539
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-12-23 04:39:26 +01:00
0ko
7a1935795d
chore: 13.0 is now stable ( #10482 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10482
2025-12-19 12:43:47 +01:00
0ko and Gusted
1ef5496055
feat: use AppDomain for key verification ( #10429 )
...
Fixes #10416
Followup to a hardcoded string in [gitea#17743](https://github.com/go-gitea/gitea/pull/17743 )
* instead of using a hardcoded namespace, use the configured application domain
* `ssh-keygen` refuses to work with empty namespace, but `Domain` falls back to `localhost`:
https://codeberg.org/forgejo/forgejo/src/commit/95dca7ff57955f5a08e656caf8ceb61c88201ff8/modules/setting/server.go#L192
* since `VerifySSHKey` verifies the namespace, I think that using a mostly-unique string instead of a hardcoded one doesn't hurt. Here's what `man ssh-keygen` says on the topic:
> An additional signature namespace, used to prevent signature confusion across different domains of use (e.g. file signing vs email signing) must be provided via the -n flag. Namespaces are arbitrary strings, and may include: “file” for file signing, “email” for email signing. For custom uses, it is recommended to use
names following a NAMESPACE@YOUR.DOMAIN pattern to generate unambiguous namespaces.
## Testing
There's a test `TestFromOpenSSH` but it uses a hardcoded default namespace `file`:
https://codeberg.org/forgejo/forgejo/src/commit/95dca7ff57955f5a08e656caf8ceb61c88201ff8/models/asymkey/ssh_key_test.go#L334
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10429
Reviewed-by: Beowulf <beowulf@beocode.eu >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-17 17:01:14 +01:00
0ko
5088d3ab12
fix(ui/buttons): implement .disabled class ( #10410 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9359 . `templates/repo/issue/list.tmpl` had buttons changed which had `.disabled` on them conditionally.
* adjust devtest page to have such buttons
* implement `.disabled` for the newer buttons that does the same thing as the `.ui` buttons do: apply custom opacity, disable pointer events
* this is the most boring way of implementing this
Reported-by: @Gusted
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10410
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-12-16 14:18:08 +01:00
0ko
95dca7ff57
merge commit: i18n: update of translations from Codeberg Translate ( #10249 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10249
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-13 14:17:10 +01:00
0ko and Gusted
2bde157a0d
feat(i18n): translate system status data units in runtime ( #10358 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/2528
Instead of storing translated strings in memory, store raw numbers and translate at template rendering time.
Our implementation of `TrSize` is not very efficient and is more expensive than just the underlying `humanize.IBytes`, but for me on localhost both ways render response to HTMLX's request to `/admin/system_status` in 0-1 ms.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10358
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-09 14:38:40 +01:00
0ko
fe53015fe4
fix(ui): do not wrongly highlight devtest link in navbar menu ( #10357 )
...
Fix copypaste induced bug. Followup to https://codeberg.org/forgejo/forgejo/pulls/10263 .
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10357
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: floss4good <floss4good@noreply.codeberg.org >
2025-12-07 17:44:28 +01:00
0ko and Otto
3f207017a8
feat(ui): improve admin dashboard cron list ( #10270 )
...
* in both `/admin` and `/admin/cron`: use new buttons, they are slightly more compact, which i think fits this place well as currently rows here feel too tall
* in `/admin/cron`: use `octicon-play` consistently with `/admin` instead of `octicon-triangle-right`
* in `/admin`: replace verbose template HTML with Range-based generator
* added integration test to verify page content
<!--start release-notes-assistant-->
## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-- >
- User Interface features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/10270 ): <!--number 10270 --><!--line 0 --><!--description ZmVhdCh1aSk6IGltcHJvdmUgYWRtaW4gZGFzaGJvYXJkIGNyb24gbGlzdA==-->feat(ui): improve admin dashboard cron list<!--description-->
<!--end release-notes-assistant-->
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10270
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-01 15:19:36 +01:00
0ko and Otto
1000a0da3a
chore(ui): cleanup reviews css, improve consistency ( #10268 )
...
* show/hide resolved: got rid of classes `ui labeled button` - ignoring them overriding each other, they were contributing three useful CSS properties in total:
```css
padding: 0;
background: none;
font-weight: 500;
```
and were also contributing an undesired margin:

* also fixed inconsistent font size between two views
* additionally got rid of verbose fomantic classes since there was already a rule that could accept their properties
* got rid of unused class `add-code-comment-right`
* added testing for the hide/show/resolve/unresolved buttons, but not related to CSS, just thought it might be useful
<!--start release-notes-assistant-->
## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-- >
- User Interface changes without a feature or bug label
- [PR](https://codeberg.org/forgejo/forgejo/pulls/10268 ): <!--number 10268 --><!--line 0 --><!--description Y2hvcmUodWkpOiBjbGVhbnVwIHJldmlld3MgY3NzLCBpbXByb3ZlIGNvbnNpc3RlbmN5-->chore(ui): cleanup reviews css, improve consistency<!--description-->
<!--end release-notes-assistant-->
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10268
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-12-01 01:30:25 +01:00
0ko and Gusted
d4068e6bcf
feat: improve devtest, link to it from user menu ( #10263 )
...
Addition to the user menu in navbar:
* display a link to `/devtest` if the instance run mode is dev instead of prod
* I think this is useful because:
* devtest pages are in general useful in development, but are not easy to discover by newcomers
* if the instance uses incorrect run mode, this entry should annoy it's admin into fixing the issue
Improvements to `/devtest`:
* fix error pages links
* add a few headers and explanation for what this page is for
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10263
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-30 17:03:22 +01:00
0ko
6edfeb60f9
ui: improve release editing ( #9940 )
...
Converted 8 buttons, fixed a few bugs with markdown editor, added some testing for template logic. The fixes are not auto-testable within reasonable effort and the changes like button conversion have nothing specific to be tested for.
### Convert form buttons to new buttons
|Before|After|
|-|-|
|||
### Justify "Delete release" button away from other buttons
|Before||
|-|-|
|After||
|Before||
|-|-|
|After||
### Fix markdown editor on mobile
|Before|After|
|-|-|
|||
### Buttons preview on mobile
|Before|After|Before|After|
|-|-|-|-|
|||||
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9940
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-11-30 05:08:24 +01:00
0ko and Gusted
3bf4f0275a
chore(e2e): use expect().toBeCloseTo instead of Math.round ( #10257 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/6799 , https://codeberg.org/forgejo/forgejo/pulls/9057
toBeCloseTo() recently popped in autocomplete suggestions and it seems like a cleaner way than using Math.round
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10257
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-29 16:59:17 +01:00
0ko
79c47c2e50
feat(ui): improve modal width rules ( #10246 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9636 , https://codeberg.org/forgejo/forgejo/pulls/8859#issuecomment-6651595 .
1. Due to lack of `min-width`, currently the new consistent dialogs can get disproportionally small to the screen. This PR adds a min-width of 400px. No deep consideration went into choosing this particular width.
* To make the test not depend on modals we have in the UI with some arbitrary widths a devtest page was added instead
2. Use more horizontal space on narrow screens
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10246
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-11-28 19:38:50 +01:00
0ko
d02db83bbb
merge commit: i18n: update of translations from Codeberg Translate ( #10131 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10131
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-28 07:26:52 +01:00
0ko
de3f376882
feat(ui): convert disable/enable workflow menu to JS-less dropdown ( #10133 )
...
* convert the dropdown (overflow menu) to the JS-less one
* the "link" still relies on JS to make a POST, changing this is not in scope of this PR
* fixed the weird behavior where opener changes it's color when hovering over the "link"
* the bug where the script that refreshes the list once in a while closes an open dropdown is not fixed and is not in scope of this PR
* use border in the opener
* it might not look as sleek but it is easier to see and better for the user to be able to understand that this is an active intractable element
* global dropdown improvements
* add rounding rules for dropdowns with only one item - the first such case
* add testing for rounding rules
* added a devtest page to play with the dropdown component on
Preview
B: https://codeberg.org/forgejo/forgejo/attachments/1462cdda-71f5-45d0-a206-33bb17740cb8
A: https://codeberg.org/forgejo/forgejo/attachments/d3c265cb-6b77-40c8-9944-d9327f3bec65
B: https://codeberg.org/forgejo/forgejo/attachments/17f17c29-4dcd-4015-b5b9-6d438bd2eb0b
A: https://codeberg.org/forgejo/forgejo/attachments/d94e196c-725e-47de-b4de-ed97b148ceb6
B: https://codeberg.org/forgejo/forgejo/attachments/1813ded9-f619-47d9-bf15-ad4bcd3535ab
A: https://codeberg.org/forgejo/forgejo/attachments/09042e58-331e-414d-ac8f-0f1091033b7f
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10133
Reviewed-by: Otto <otto@codeberg.org >
2025-11-21 16:59:01 +01:00
0ko
499ef1e599
fix(i18n/en): improve search syntax hints ( #10187 )
...
Followup to https://codeberg.org/forgejo/forgejo/issues/9109 .
Fixed a few confusing ones:
* "Filter by reviewed user" sounded more related to "requested review", but it is really about users who already left one, even if it wasn't requested
* "Filter by sort type" only does sorting, not filtering
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10187
Reviewed-by: Shiny Nematoda <snematoda@noreply.codeberg.org >
Reviewed-by: Beowulf <beowulf@beocode.eu >
2025-11-21 10:09:17 +01:00
0ko and Gusted
f0b4e3b943
feat(ui): JS-less dropdowns in navbar ( #10025 )
...
Replaced dropdowns in the navbar with JS-less ones from https://codeberg.org/forgejo/forgejo/pulls/7906 .
Also made some changes to the dropdown component:
* fixed variable name
* painted backgrounds (hover, focus) are now consistently applied to the actual interactive items (`<a>`, `<button>`), not to `<li>`. This is consistent with how backgrounds are conditionally applied to pre-selected (`.active`) items and is better, as it allows to place additional things to `<li>`...
* ...`<hr>` can now be placed in some `<li>` instead of requiring splitting into multiple `<ul>`. This is simpler in code and I am guessing this should be better for a11y as screen readers can cast one continuous list instead of multiple ones. But have no hard proof that this is actually better. My main motivation was to avoid ugly mistake-prone tmpl logic where unconditional `<ul>` was getting closed and reopened inside of a condition.
I should note that on mobile all items, including these dropdowns, are hidden in another dropdown, and it stays JS-dependand for now. So this PR only makes this part of the UI JS-less for desktop.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10025
Reviewed-by: Robert Wolff <mahlzahn@posteo.de >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-16 14:56:42 +01:00
0ko
094f42f6b7
merge commit: i18n: update of translations from Codeberg Translate ( #9917 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9917
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-16 06:12:05 +01:00
0ko and mfenniak
ed4be8bf54
fix(test): improve reliability of E2E "Button text replaced by JS" ( #10075 )
...
Potentially addresses https://codeberg.org/forgejo/forgejo/pulls/9959#issuecomment-8214671
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10075
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: mfenniak <mfenniak@noreply.codeberg.org >
2025-11-16 04:45:20 +01:00
0ko and Gusted
a51a8d5701
chore(test): cleanup NewRequest which no longer supply CSRF values ( #10119 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9830 , which greatly simplified the tests that previously had to supply a csrf token in values map, but left behind the more complex funcs with empty maps.
Also fixed a few typos which popped up in the diff.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10119
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-14 23:21:10 +01:00
0ko and Gusted
5c9a909c03
feat(ui): arrow key navigation in dropdown ( #10033 )
...
Addresses https://codeberg.org/forgejo/forgejo/pulls/7906#issuecomment-5455662 , https://codeberg.org/forgejo/forgejo/pulls/10025#issuecomment-8182184
Add arrow navigation to the JS-less/JS-enchanced dropdown component.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10033
Reviewed-by: Otto <otto@codeberg.org >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-10 13:35:38 +01:00
0ko
2f6ca55a1c
fix(ui): replace obsolete gt- helpers ( #9964 )
...
Resolved a few obsolete (no longer functional) `gt-` helpers that were not converted into other classes at some point.
`gt-interact-bg` was replaced by `interact-bg`. The remaining one was on action view page in a gear icon, which lacked proper background change on hover.
`gt-font-18` & `gt-font-normal` were remaining in the repo name on repo page. I left out the `*-font-18` one out and kept fixed the font-weight, but also made the `/` use normal font-weight instead of semibold, which looks better.
Preview
Before: https://codeberg.org/attachments/e52d5ebc-7fa8-4057-8e4b-05d219525092
Gitea: https://codeberg.org/attachments/a9a50928-6e0e-483c-82fe-73b6c244f4d5
After: https://codeberg.org/attachments/fd04d5b1-1965-478f-9d45-97c5d994c780
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9964
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-11-08 18:21:05 +01:00
0ko
d05002fbfb
fix(ui): prevent JS from removing icon from close/reopen button ( #9959 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9598 . A bug surfaced.
When typing text in, JS was updating button's `textContent`, which also affected the icon included in the button. To avoid complex rebuilding of the button element in JS I just placed the text it it's own span, `textContent` of which is now updated by JS instead of the whole button.
Preview
Normal state from template:
https://codeberg.org/attachments/f504bcc3-c1bc-4b10-96ae-e8b666c4a828
https://codeberg.org/attachments/5e72109c-04c7-49b0-ba05-e8f17c949fcb
After editing text, without the fix:
https://codeberg.org/attachments/2c61b02f-b36a-4b80-8816-98bed3fc48e0
https://codeberg.org/attachments/923d4419-97ee-48c6-b60d-9719e36ae6ff
With the fix:
https://codeberg.org/attachments/458c1f6a-549e-4ef7-8822-8529351b7bc4
https://codeberg.org/attachments/839032f7-2f4a-488a-a8a5-d3fbfc45504b
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9959
Reviewed-by: Otto <otto@codeberg.org >
2025-11-05 05:02:52 +01:00
0ko
382c3c3228
feat(ui): allow dropdown to contain not just items ( #9951 )
...
Currently the dropdown component only supports having one `<summary>` and one `<ul>` (with interactive items) in it. This PR refactors it to add a `.content` container so that it is possible for the dropdown to contain things the more complex dropdowns do like `<hr>` and a searchbar.
Also adds an `<hr>` to user actions as a little demo.
Preview
B: https://codeberg.org/attachments/8dfb98d2-52be-4c3c-8fc0-8fe470f34703
A: https://codeberg.org/attachments/53f2acfb-2e61-4420-b616-13d563f5c257
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9951
Reviewed-by: Otto <otto@codeberg.org >
2025-11-05 05:00:15 +01:00
0ko and Gusted
0932c3ad71
chore(ui): remove unused css of id create-page-form ( #9933 )
...
`create-page-form` is currently only referenced in CSS files.
I've tried researching this with `git log -S 'create-page-form'` and here are the results:
* 80701d45bb - first mention. Introduced `create-page-form` as a Less function/inclusion or something
* 8e0a69f86a - added another usage of it in Less
* 4465c58f4b - seemingly added usage of it as of an actual ID to `gogs.css` (later renamed to `index.css`), still no use in templates
* 045f14fbd0 - unrelated mention in minified bundle
* 3d3faa2624 - ditto + did one property change to it like if it actually changed anything
* d9c67a8c90 - removed built bundle
* 202803fc69 - turned the strange Less thing into a proper pack of `#create-page-form` like if it was used, for some reason, duplicated the new code twice
* ee9e83b230 - removed some of the unused selectors by retiring the `.captcha-field` class, likely not knowing that nothing under `#create-page-form` is used
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9933
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-03 13:45:51 +01:00
0ko and Gusted
b7460058ce
feat(ui): add a little padding-top to form .help ( #9932 )
...
Ever since some forms were refactored into the new style I felt like the help texts were too close to the fields. So today I got to fixing this.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9932
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-11-03 03:22:31 +01:00
0ko and Gusted
c13f3cae95
feat(ui): improve new buttons, use in more areas ( #9863 )
...
* Make danger buttons brighter - followup https://codeberg.org/forgejo/forgejo/pulls/9652#issuecomment-7803875
The new lightness 0.26 is same as lightness of --color-box-body instead of being darker than it, so the form controls aren't darker than the background they're on which might look bad. Looks pretty good, the calculated contrast is fine.
* Apply new buttons to avatar upload/removal forms
* Better responds to overflowing
* Consistently apply medium font-weight to all buttons - followup https://codeberg.org/forgejo/forgejo/pulls/9652#issuecomment-7783718
* This improves readability a lot. The previous normal weight was only chosen because some of the buttons had it, which wasn't a good excuse. We also have buttons with medium, and they are easier to read.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9863
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-10-28 00:10:38 +01:00
0ko
693e73b25f
fix(ui/dropdown): ensure same height for all items ( #9762 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/7906 .
Depending on type (`a`, `button`) the height could have been different because of default styles:
* `base.css` supplies `body {line-height: 20px;}` which applies to `a`
* `normalize.css` supplies `button {line-height: 1.15;}`, making `button` shorter than `a`
To avoid this I refactored dropdown items' properties in the same way as I did to switch in `web_src/css/modules/switch.css` `min-height` is now used while `padding-block` is 0.
Preview
B: https://codeberg.org/forgejo/forgejo/attachments/29d9d9aa-bfb6-46a6-a368-23137e1ac60b
A: https://codeberg.org/forgejo/forgejo/attachments/026a0af2-9481-4335-930c-9c92ad00ef03
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9762
Reviewed-by: Otto <otto@codeberg.org >
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-20 12:05:03 +02:00
0ko
22771fad30
fix(ui): remove extra helpers from statuspages ( #9753 )
...
These helpers are harmless for the normal Forgejo UI but are causing the viewport to break if the page is taller than the screen, causing overflow scroll in both directions.
Example: 404 page on Codeberg breaks because Codeberg is making the content of all pages full screen height before footer.
Originally added in bb50ab2861 but were likely made unused by some change at a later point, maybe in 91b5aa0e5f . I was not able to find a viewport where toggling this class via devtools would make any visual difference.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9753
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-10-20 12:03:58 +02:00
0ko
b1ba9b06b2
feat(ui): dangerous buttons ( #9652 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9359 :
* add dangerous buttons type
* they will be replacing `red` and `negative` buttons and don't have some of their problems:
* they aren't as eye-catching and bright like `red` on dark and `negative` on both themes
* they aren't as bland as `red` on light theme
* ...they are consistent!
* added them to the danger zone of repo settings for this initial PR
Preview:
- https://codeberg.org/attachments/e4d71f45-9455-4435-ab99-6e1bd2628d05
- https://codeberg.org/attachments/3056d3e1-d7b0-4417-8f2c-8fa34b399911
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9652
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Otto <otto@codeberg.org >
2025-10-20 12:03:17 +02:00
0ko
bf80842b4f
chore(ui): a few consistency improvements for modals ( #9746 )
...
A bucket of water for a lake of acidic modal inconsistencies but this PR exists.
## Change 1
Followup to https://codeberg.org/forgejo/forgejo/pulls/9636/files#diff-ed78a3f2bb5b010be9410d4a6be8ab08e50df2c4 . Remove a few extra `center` wraps from the HTML. They are no longer doing anything anymore.
No visual changes.
## Change 2
Improve a few titles:
Preview:
- https://codeberg.org/attachments/4216f29f-687c-4b88-8a56-246282ae699b
- https://codeberg.org/attachments/14c493d1-21f2-4433-ac4d-fc2e985239b0
- https://codeberg.org/attachments/d18bd923-a46e-427c-9132-4e60a8ba0a9d
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9746
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-10-19 18:35:25 +02:00
0ko
609ce8c268
feat: improve tooltips and aria-labels of stars/forks/watchers links ( #9754 )
...
Followup: https://codeberg.org/forgejo/forgejo/pulls/2634 , https://codeberg.org/forgejo/forgejo/pulls/2862
* i18n: migrate aria-label counters `n stars`, `n forks` to JSON in effort to eliminate the use of the old-style plurals
* previous such migration https://codeberg.org/forgejo/forgejo/pulls/9625
* testing: present, inherited from other changes
* a11y: add these aria-labels to usercards links on repo homepages
* add a new one for `n watchers`
* testing: present, minimal
* ui: re-use the counters in the tooltips so that they include a measurement unit and look better
* testing: present, minimal
* ui: pretty-print the numbers in the tooltips
* but not in aria labels
* testing: missing: IDK how to work around the condition `{{if ge .NumStars 1000}}`
* but `PrettyNumber` it relies on has test coverage, so it seems fine
Preview:
- https://codeberg.org/attachments/6d726bbd-fd84-4ca0-9aa4-cd5492512305
- https://codeberg.org/attachments/686eb429-93a7-4268-98d7-84863d6eb5ee
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9754
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org >
2025-10-19 18:33:26 +02:00
0ko
f200d53eb1
refactor(ui): re-implement icon colors but for all thin elements ( #9643 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/3702 .
* replace `--color-icon-*` with `--color-thin-*`
* use proper fallbacks instead of variables just referencing other variables
* Forgejo dark:
* fix contrast of red and green texts (also purple if they exist)
* improve contrast of orange texts
* normalize chroma/lightness properties of all colors with `oklch`
Diff stats
B: https://codeberg.org/attachments/76c54dda-a6ac-4d87-b174-54eb97a71643
A: https://codeberg.org/attachments/7852d2f2-7db1-4480-91b1-ca809ffcd03e
Repo activity
B: https://codeberg.org/attachments/beb6ab5b-bcdb-464f-8d7d-038c1a082492
A: https://codeberg.org/attachments/b12be151-4ab3-4471-b6fb-ea60653580a5
Due date
B: https://codeberg.org/attachments/cdffc5bc-3379-451d-b99f-587d56821a26
A: https://codeberg.org/attachments/cf610300-f7aa-4c4f-ba11-0cd973ef8c94
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9643
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-12 10:01:24 +02:00
0ko
e9528ec4a8
chore(e2e): disable webkit/safari in some tests ( #9642 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9599#issuecomment-7670890 .
I analyzed a bunch more recent runs and adding skipping for ones that fail very often. Coincidentally all of the most failing tests were already skipped for either Webkit or Safari, just not for both.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9642
Reviewed-by: Otto <otto@codeberg.org >
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
2025-10-11 16:08:23 +02:00
0ko
e13da8aae3
chore: remove branding from application run helper ( #9640 )
...
Rel: https://codeberg.org/forgejo/forgejo/pulls/9628 .
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9640
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-11 12:14:13 +02:00
0ko
688a83e405
chore(ui): remove unused class .small-menu-items ( #9639 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/8399/files . That PR turned `small-menu-items` completely unused.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9639
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-11 10:39:43 +02:00
0ko
edc6072da2
fix(ui): make it possible to post issues and comments w/o JS ( #9614 )
...
Fix regression of https://codeberg.org/forgejo/forgejo/pulls/5589 & https://codeberg.org/forgejo/forgejo/pulls/7006 .
Both added invisible input fields with `required` attribute into the forms used for creating issues and adding comments via `combomarkdowneditor.tmpl`. These fields were not related to the form and were only used for the modal dialogs.
* When JS is on, modals are moved out of the form to the bottom of the page by JS that handles modals
* When JS is off, the forms are stuck with invisible inputs preventing form submission
* Another side effect is that request data contains these unwanted fields
This was fixed by adding attribute `disabled` to unwanted inputs. Then JS removes it on initialization. Thanks to @Beowulf for helping with choosing the approach!
When a field is `disabled`, the browser doesn't consider it in form validation and doesn't even include it in the request data.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9614
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Beowulf <beowulf@beocode.eu >
2025-10-11 10:38:48 +02:00
0ko
03d77fd465
fix(ui/releases): strech elements apart when no search bar ( #9626 )
...
Fix minor visual defect, which is a regression of https://codeberg.org/forgejo/forgejo/pulls/8399 .
When viewing individual releases, there's no search bar.
B: https://codeberg.org/attachments/5621e544-6d18-4f58-b4f5-f15bf2c10e3b
A: https://codeberg.org/attachments/f6ebc7bb-9168-4a3f-86ba-0b526c2ede89
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9626
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
2025-10-11 05:39:10 +02:00
0ko and Gusted
9a35b6ba77
chore: remove branding from context imports ( #9628 )
...
Kind of followup to https://codeberg.org/forgejo/forgejo/pulls/7337 .
With cherry-picking being no more, this shouldn't cause too much chaos.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9628
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-10-11 01:52:51 +02:00
0ko and Gusted
220c8d173b
chore(i18n): migrate download counts to json ( #9625 )
...
Previous such PR: https://codeberg.org/forgejo/forgejo/pulls/9463
As long as changes here do not conflict with https://codeberg.org/forgejo/forgejo/pulls/9597 it is safe to merge without merging that one first.
* removals from the INI are included to preserve traceability of strings being moved around
* in non-base items are prepended to the top to avoid conflict with Weblate
* in English insertion happened in a semi-random place to avoid conflict with PRs that append strings at the end
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9625
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-10-10 22:15:36 +02:00
0ko
39f389eb17
fix(e2e): disable webkit/safari in tests where they are too falky ( #9599 )
...
These tests often appear as failing with one failed retry in e2e logs for either browsers.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9599
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
Reviewed-by: Otto <otto@codeberg.org >
2025-10-10 15:36:21 +02:00
0ko
84e9b566a0
feat(ui): improve close/reopen/comment buttons ( #9598 )
...
Related: https://codeberg.org/forgejo/forgejo/issues/2650 , https://codeberg.org/forgejo/forgejo/pulls/6044
* improve consistency by getting rid of the less usual button kinds
* same as changes to profile buttons in https://codeberg.org/forgejo/forgejo/pulls/9359
* transparent outline button is now secondary
* bulb-bright red button is now secondary
* I think that actions like Close and Reopen shouldn't attract much attention, so they are secondary
* add icons to better visually indicate the action
* yes this is inspired by GitHub
* unlike in GitHub, the icons are monochrome:
* colored icons had bad contrast due to buttons being brighter than the usual areas with colored icons
* they are not at all common inside of buttons in our UI
* convert the buttons to the new CSS
* differences are described in https://codeberg.org/forgejo/forgejo/pulls/9359
* a few general CSS improvements
* prevent 1px vertical padding on `<button>` provided by browser defaults
* wasn't noticed before because no `<buttons>` were converted yet
* increased the default gap (for buttons with such icons) to 0.5rem
* looks much better than Fomantic's 0.25rem
* I took this opportunity because no buttons with icons were converted yet, so there's no blast radius to worry about yet
Preview
B: https://codeberg.org/attachments/3cdb2fc8-3887-4e82-8213-45dde42a5b33
A: https://codeberg.org/attachments/133b59c2-470f-4f97-8e85-e374e0a0b52e
B: https://codeberg.org/attachments/d814d2dc-d2a2-4daf-ba65-70d9097bb046
A: https://codeberg.org/attachments/2f2e0214-33e5-4ca9-a315-21252dc27525
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9598
Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org >
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-10 07:11:53 +02:00
0ko
2b4754c1d7
feat(ui): JSfree sorting on /explore/{users,organizations} ( #9556 )
...
This PR replaces the sort dropdowns on Users and Organizations pages of Explore with the one we've got earlier in two other areas. Previous such replacement happened in #8572 .
This implies a few positive changes such as:
* larger font size
* larger clickable area for coarse cursor
* it is possible to use while scripts are still loading
* it is possible to use w/o JS
Some refactors were made to support this change and as general improvements.
Desktop, closed
B: https://codeberg.org/attachments/354f7194-b247-4ecd-8875-2e95dadc7445
A: https://codeberg.org/attachments/0fa49cf5-e8e5-4c15-b2b0-7d13e8505945
Desktop, open
B: https://codeberg.org/attachments/b01b75d1-dbe4-458c-abd5-64cd8c121bc1
A: https://codeberg.org/attachments/94baccc4-fe36-4ae1-ace0-9b4d5fbd9f42
Mobile, open
B: https://codeberg.org/attachments/f868720a-ec71-4829-87f7-a1cfab860e37
A: https://codeberg.org/attachments/bbe72710-6824-4107-8086-d2bd50897038
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9556
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-10-09 14:33:33 +02:00
0ko
563291579e
fix(ui/mde): fix switch height and buttons alignment ( #9545 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9359 .
The custom height override for the switch in MDE was not taken into account in that PR.
* How it used to be: constant height + variable padding for different scenarios
* How it works now: there's no padding, just variable height
After the change the override that was supposed to decrease the padding started increasing it from 0, making the switch too tall.
Also two of the buttons on the toolbar used to have a completely unused `button` class, which detonated them after it was globally implemented, so it was removed.
First time a button with this class was added in 4615891b9d , then it was duplicated in 6dad457552 . Modals do not depend on presence of this class:
https://codeberg.org/forgejo/forgejo/src/commit/6610eb1dbfa16f88e4f685141735b7b719cb3de8/web_src/js/features/common-global.js#L441
Preview:
B: https://codeberg.org/attachments/5d10ac6e-45b3-4cd3-8083-f446824d4310
A: https://codeberg.org/attachments/93a00f69-56a6-4c02-93d8-6080f51d273f
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9545
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-10-08 17:53:50 +02:00
0ko and Otto
abd69183ea
feat(ui): responsive, JS-free repo language stats panel ( #9532 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/6700 & https://codeberg.org/forgejo/forgejo/pulls/9429
## Testing
Test coverage is already present in `tests/e2e/repo-home.test.e2e.ts` - there are no changes in behavior, so just selectors were updated.
## Changes
* Re-make stats using details+summary: it now works without JS, works immediately after page is displayed, responds to clicking more quickly
* Make the clickable bar taller on coarse screens
* Fix broken overflowing on narrow screens
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9532
Reviewed-by: Otto <otto@codeberg.org >
Co-authored-by: 0ko <0ko@noreply.codeberg.org >
Co-committed-by: 0ko <0ko@noreply.codeberg.org >
2025-10-05 20:36:35 +02:00
0ko
f8d25228ce
chore(release-notes): add chroma update to v13.0.0 release notes
2025-10-05 17:50:35 +05:00
0ko
fd08eba8d2
chore(release-notes): add chroma update to v12.0.0 release notes
...
There were no chroma updates in v11.
2025-10-05 17:43:06 +05:00
0ko
f2570811a4
chore(release-notes): add chroma update to v10.0.0 release notes
2025-10-05 17:24:51 +05:00
0ko
1e113fd8dc
chore(release-notes): fix release notes of chroma update in v8.0.0
2025-10-05 17:10:38 +05:00
0ko
9a29241cde
feat(ui): implement new buttons for better cohesiveness ( #9359 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/9317#issuecomment-7214470 .
Summary of changes:
- implement new CSS for buttons that doesn't have problems Fomantic buttons have:
- button height doesn't depend on it's content - `min-height:` is used instead of `padding-{top,bottom}:`
- no margins to fit right in with the other elements while relying on `display:flex` and `flex-gap:`
- other `.button` changes compared to `.ui.button`:
- no semi-bold black text for now, I think it looks just as fine with normal weight
- no variable `font-size` - should give better readability compared to existing `.small` and `.tiny` buttons
- variable height depending on specified size (currently normal or `.small`) and on `@media (pointer: )`
- apply the new buttons to areas where there are switches or dropdown openers near them
Before:
- https://codeberg.org/forgejo/forgejo/attachments/8d9a3941-8889-4420-8f4f-f44cb8c3726f
- https://codeberg.org/forgejo/forgejo/attachments/e5804fae-a71f-43ba-918b-20d4f742124c
- https://codeberg.org/forgejo/forgejo/attachments/65d4e31c-01b7-4050-89a1-4afe74aa574c
- https://codeberg.org/forgejo/forgejo/attachments/c8057262-a834-4b61-a87f-70dab60b5506
- https://codeberg.org/forgejo/forgejo/attachments/aa9508e3-dca1-4ffe-913e-9cbddbb0d6ff
- https://codeberg.org/forgejo/forgejo/attachments/4b2daa07-e0ca-4b44-8795-1609dff8968f
- https://codeberg.org/forgejo/forgejo/attachments/93f7803f-1338-44dc-a428-e44e26231517
After:
- https://codeberg.org/forgejo/forgejo/attachments/ca5426c4-d75e-493d-8b29-64eee1e1c9de
- https://codeberg.org/forgejo/forgejo/attachments/f21c7219-6880-4a2e-9117-6267d46b3081
- https://codeberg.org/forgejo/forgejo/attachments/da3ee771-b5d5-4b4f-8c88-9a8de11b1a45
- https://codeberg.org/forgejo/forgejo/attachments/56f974c3-f72e-4f80-9bbd-5bc785a4a624
- https://codeberg.org/forgejo/forgejo/attachments/17f6e360-dfe5-4bb6-a6b5-dd747dbc2af8
- https://codeberg.org/forgejo/forgejo/attachments/91cd10e1-6c5e-4134-be4c-18223ed2a4f4
- https://codeberg.org/forgejo/forgejo/attachments/f0322c5c-ee9d-4889-9840-0c46838566cc
- https://codeberg.org/forgejo/forgejo/attachments/96560fe7-3436-46dc-8456-c43bfaee2daf
- https://codeberg.org/forgejo/forgejo/attachments/273cf795-6bb4-479f-804f-f40010fae825
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9359
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org >
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-10-05 05:22:32 +02:00
0ko
16e66254c6
chore(i18n): move some plural strings to json ( #9463 )
...
* move two strings to json so they have good culture aware plurals
* move formatting tags out of the strings
* simplify keys
* add basic testing
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9463
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org >
2025-09-29 09:27:50 +02:00
0ko
b470c6c454
merge commit: i18n: update of translations from Codeberg Translate ( #9423 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9423
Reviewed-by: 0ko <0ko@noreply.codeberg.org >
2025-09-29 09:14:20 +02:00
0ko
0a18c04a4b
feat(ui): add legends to storage overview ( #9429 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/6602
* added nontransparent background to the empty part of the bar
* the rule is now a `details` with a legend that can be opened so it is easier to see categories that take up space:
1. when they are tiny
2. when on touchscreen where tooltips are less easy to use
3. when a better overview is needed instead of checking one tooltip at a time
4. when having JS disabled so tooltips aren't available
* made the bars slightly taller (0.714285714rem -> 0.75rem)
* made them more taller for coarse pointer
Preview-on: https://codeberg.org/attachments/54065bf8-5e7b-46cd-ad8f-57e8278f59a3
Preview-on: https://codeberg.org/attachments/a3d57a76-a607-4e8b-8112-fe83c9db4026
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9429
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-09-28 10:35:07 +02:00
0ko
21798fa0d0
feat(ui): improve display of repo topics ( #9402 )
...
* removed unused class `label-list`
* introduced a new class `repo-topics` to better maintain consistency across two different places - explore and repo overview
* fixed vertical gap via flex on on explore
* decreased usage of Tailwind in overview, decreased gaps - usually where topics or more often labels are shown in the UI they are quite dense and it makes sense as they also have padding
Explore - normal (desktop) - no changes
Before: https://codeberg.org/attachments/a4ea53b2-c38c-4dd8-adcc-bc6a3804dfe8
After: https://codeberg.org/attachments/94209a72-8b5f-45d7-b24a-5fa13ced3157
Explore - overflowing (mobile or too many tags) - fixed vertical margin
Before: https://codeberg.org/attachments/bad9531f-d4c7-4043-ac94-e57895c45b67
After: https://codeberg.org/attachments/269c39b8-939b-4dbb-af6a-938c2c2fd820
Repo - normal - decreased gap
Before: https://codeberg.org/attachments/74ce2114-7aea-47ec-883d-4115d81a96b4
After: https://codeberg.org/attachments/551ba599-a87d-4538-82c4-761e0c3098c9
Repo - overflowing - decreased gap while maintaining good gap for the manage button
Before: https://codeberg.org/attachments/a2ab2cd2-3080-475f-875a-8885981a554d
After: https://codeberg.org/attachments/8a33fe42-57e1-4aba-9e7c-da79bfe7d776
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9402
Reviewed-by: Lucas <sclu1034@noreply.codeberg.org >
2025-09-24 17:45:31 +02:00
0ko
a0011375b7
fix(ui): fix alignment of items in tag signature ( #9398 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/8984 . (62f2515138 )
Before: https://codeberg.org/attachments/01a29d33-adae-4e6f-971b-d4871341bd9c
After: https://codeberg.org/attachments/c11b7391-aeab-4451-a5be-00f700bf3746
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9398
Reviewed-by: Antonin Delpeuch <wetneb@noreply.codeberg.org >
2025-09-24 14:54:24 +02:00
0ko
98f2d40599
feat(ui): improve the global noJS notice ( #9336 )
...
- added centering
- added padding so the message cannot touch the end of the viewport on narrow screens
- made text less bright, to make it less annoying
Preview
Before: https://codeberg.org/attachments/85f91678-f2b9-4187-8d2d-9bdd918af994
After: https://codeberg.org/attachments/a8351624-e6fe-45c2-82aa-3e6f06ad8368
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9336
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-09-18 06:48:28 +02:00
0ko
cddfc7749b
chore(ui): improve dropdown opener visibility ( #9317 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/7906 .
This part of Mastodon default web ui theme was used as inspiration:
https://codeberg.org/attachments/f8d41c67-24df-48e5-8bf7-ed023b92ff34
Screenshots of changes are below:
Profile
Before: https://codeberg.org/attachments/c758f98e-b4a4-45cb-b3bf-eb22ffbe2a39
After: https://codeberg.org/attachments/1f2880b6-339c-4e18-86cf-9caadfde3430
Org homepage
Before: https://codeberg.org/attachments/b8606ead-f282-4149-97c9-c28765a25c5d
After: https://codeberg.org/attachments/87169d58-2ada-49f0-a349-acde22598c7e
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9317
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
2025-09-17 20:29:52 +02:00
0ko
f9f50ac382
merge commit: refactor init & clearing of panel forms without jQuery ( #9062 )
...
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9062
Reviewed-by: Gusted <gusted@noreply.codeberg.org >
Reviewed-by: Michael Kriese <michael.kriese@gmx.de >
2025-09-17 14:56:30 +02:00
0ko
3780b93fad
feat(ui): improve display of tags in commit list ( #9257 )
...
Followup to https://codeberg.org/forgejo/forgejo/pulls/8759 , https://codeberg.org/forgejo/forgejo/pulls/9251 . Addresses first part of https://codeberg.org/forgejo/forgejo/issues/9231 .
* further polish up the looks of the labels
* restore IsRelease logic to only give accent border to tags with releases
* for the preview I purposefully created a release for existing tag 5.13.1
* change height from 25px to 21.6px (https://codeberg.org/forgejo/forgejo/pulls/9257#issuecomment-7119712 )
Preview:
- before: https://codeberg.org/attachments/6974996a-9c54-4f05-8742-31fb5f373448
- after: https://codeberg.org/attachments/18c99315-e968-4a09-a2d6-0403f23a1d4f
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9257
Reviewed-by: Beowulf <beowulf@beocode.eu >
2025-09-12 14:31:08 +02:00