Commit Graph
100 Commits
Author SHA1 Message Date
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
0koandBeowulf 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
0koandMichael 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
0koandBeowulf 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandOtto 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
0koandOtto 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:
  ![](/attachments/4774be16-2989-4b69-bcdb-86e1acae2a85)
* 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
0koandGusted 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|
|-|-|
|![](/attachments/2e372363-4997-4831-9edb-e1a2c4839eb7)|![](/attachments/31c7be64-8f70-4287-b889-9055bc4a7a42)|

### Justify "Delete release" button away from other buttons

|Before|![](/attachments/e55124ee-b6e0-4098-ac06-d5ad8ada671f)|
|-|-|
|After|![](/attachments/22ea09b5-c6e2-4a02-ae77-d92e1dbe7a72)|

|Before|![](/attachments/2ad14280-676b-4341-ae85-a7036ea5ace2)|
|-|-|
|After|![](/attachments/6cbe7c70-8efd-4b35-bb12-21a19eaafa67)|

### Fix markdown editor on mobile

|Before|After|
|-|-|
|![](/attachments/21ed3b55-ea88-446f-b074-6242b07a38e1)|![](/attachments/d033b67f-c8bb-42e7-96a9-de48289e1ba2)|

### Buttons preview on mobile

|Before|After|Before|After|
|-|-|-|-|
|![](/attachments/2795d62c-e909-457d-9e52-81a76ab6531f)|![](/attachments/af6e534e-5300-42d6-93c3-4b763039e2ae)|![](/attachments/7812d273-c371-4ed1-8054-a80c0cfc2518)|![](/attachments/a98e8ad3-818d-4254-b9cd-70c81dd40fb9)|

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9940
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-11-30 05:08:24 +01:00
0koandGusted 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
0koandGusted 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
0koandmfenniak 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandGusted 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
0koandOtto 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
0koandGusted 62f2515138 fix(ui): improve signature box responsiveness (#8984)
This PR improves the row/box with signature information used on commit and tag pages: [commit example](https://codeberg.org/Gusted/smithy/commit/096a03eb425ff69a255c21ed72dc9b80eb2f3462), [tag example](https://codeberg.org/forgejo/forgejo/releases/tag/v1.4.0-rc2). It improves padding consistency, mainly on mobile, and cleans up code a bit. Instead of relying on min-height the box now uses paddings so overflown text is never too close to borders.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8984
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-09-11 16:20:36 +02:00
0ko 2cf5eb65a3 feat(ui): improve subscriptions screen filters (#9192)
Refreshed the screen at `/notifications/subscriptions` a little.

General improvements:
- Use the new switch style

Notable mobile usability improvements:
- Add a minimum gap between the Subscriptions/Watching switch and the Notifications button
- Add a minimum h gap between the All/Open/Closed switch and the dropdown filters
- Let the second row overflow instead of breaking the viewport

Preview:
- https://codeberg.org/attachments/1e5d2d2e-9f36-4117-a2bc-dd237aba0091
- https://codeberg.org/attachments/8c337739-3c8a-424a-ada8-20718800fe3b
- https://codeberg.org/attachments/d72027a1-5fe1-440c-9112-3a7fe7020b39

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9192
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-09-07 05:52:19 +02:00
0ko af7066de64 chore(i18n): migrate migration descriptions to json (#9041)
Followup to https://codeberg.org/forgejo/forgejo/pulls/8987

* migrate strings, get rid of the `repo.` prefix
* simplify template and test

Followup to https://codeberg.org/forgejo/forgejo/pulls/8736#issuecomment-6801385

* restore lost translations

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9041
Reviewed-by: Beowulf <beowulf@beocode.eu>
2025-08-31 08:19:19 +02:00
0ko 9b54852aad merge commit: i18n: update of translations from Codeberg Translate (#9013)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9013
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
2025-08-31 07:23:10 +02:00
0ko 654b6bf041 fix(i18n/en): update a few source strings (#9092)
Followup to https://codeberg.org/forgejo/forgejo/pulls/9064

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9092
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2025-08-30 19:50:03 +02:00
0ko 18cd9b5efa feat(ui): implement hover for switch (#9057)
Followup to https://codeberg.org/forgejo/forgejo/issues/6459

Preview:
- https://codeberg.org/attachments/cc12a227-c6eb-4ab5-91ad-0ef967f88c7a
- https://codeberg.org/attachments/a13c8cb6-f654-430c-a6c6-990a2a7f0911

Changes:
- hovered items now have background painted with transition
- added E2E testing: mostly for CSS logic introduced in this PR but also a bit for existing functionality
- variable --color-active is now consistently non-transparent: it already was in forgejo-dark but is now in all themes
- some code improvements in switch.css

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9057
Reviewed-by: Beowulf <beowulf@beocode.eu>
2025-08-30 18:54:11 +02:00
0ko ab6ea6a743 fix(ui): restore code search types (#9053)
Fix regression of https://codeberg.org/forgejo/forgejo/pulls/8736

Preview
Before: https://codeberg.org/attachments/d46743e7-beb3-404e-a103-ea8068760171
After: https://codeberg.org/attachments/0d9dcdb7-7b4f-4bbc-8776-67fd364e26a9

Reported-by: Antonin Delpeuch <antonin@delpeuch.eu>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9053
Reviewed-by: Beowulf <beowulf@beocode.eu>
Reviewed-by: Antonin Delpeuch <wetneb@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Ellen Εμιλία Άννα Zscheile <fogti@noreply.codeberg.org>
2025-08-29 18:56:54 +02:00
0ko cd08265406 ui: refactor display of review threads on pr view (#8138)
* refactored to untangle comment headers of different styles of comments from each other
* fixed misalignments
* improved consistency
* fixed missing avatar rounding
* made reactions aligned with content
* fixed text in the "Outdated" label overflowing into the toggle icon

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8138
Reviewed-by: Beowulf <beowulf@beocode.eu>
2025-08-27 06:02:56 +02:00
0ko 3f58c4de33 chore(i18n): clean up orphans (#9011)
Orphan strings are the ones left in non-en locale files after being removed from `en-US`. Weblate removes them automatically from JSONs but not from INIs.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9011
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
2025-08-24 10:55:02 +02:00
0ko b17d81c1e9 merge commit: i18n: update of translations from Codeberg Translate (#8977)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8977
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
2025-08-24 10:53:10 +02:00
0ko f58f84562a fix(ui): use correct string for pagure description (#8987)
Followup to https://codeberg.org/forgejo/forgejo/pulls/8513

As we already got translated strings w/ incorrect key, I prefer to not touch them and teach the UI a workaround. Maybe later all related INI strings will be migrated to JSON without the prefix, too.

Preview
Before: https://codeberg.org/forgejo/forgejo/attachments/8e603325-bb2b-4e32-a9bc-f1fa20b6c40b
After: https://codeberg.org/forgejo/forgejo/attachments/38e8afeb-5214-4085-bd6c-3ba8ff3894cd

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8987
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Beowulf <beowulf@beocode.eu>
2025-08-22 12:00:08 +02:00
04e04b7073 fix(ui): move file rename notice to before pagination (#8818)
Followup to https://codeberg.org/forgejo/forgejo/pulls/1442

Move the rename notice to a more suitable place.

Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8818
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>
2025-08-10 21:35:34 +02:00
0ko 4392dee96d chore(ui): improve hashbox (#8721)
Followup to https://codeberg.org/forgejo/forgejo/pulls/7822

* Fix signaturebox's background breaking out of hashbox and thus breaking it's rounded corners
* Fix a bug where an extra right margin was applied to signbox's avatar on pull request overview by unrelated rule
* Untangle hashbox's CSS from .label - it was not a good partnership between them. Some extra properties, some that we had to override
* Move CSS out of "repo.css" to a separate file - it's clearly not only related to repos

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8721
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-08-03 05:49:24 +02:00
0koandGusted 022ab86988 chore(api): update swagger method descripitons (#8728)
Speaking from personal experience, when exploring the API I find myself trying to parse the exact meaning of many descriptions for a while, and I also have to get used to many different kinds of inconsistencies and grammar issues.

This PR improves a few of these. Some I tried to reword to make them easier to understand, for others I just improved consistency a little, like capitalization. This area needs more work, this PR just makes some progress. Anything that is improved in this one can be improved further in later PRs, so in review please focus on regressions if you find any.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8728
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-07-30 18:08:28 +02:00
0koandEarl Warren 87a7bf2436 fix(ui): update i18n usage in comments (#8644)
Fix regression of https://codeberg.org/forgejo/forgejo/pulls/8214 (regressing v11 feature https://codeberg.org/forgejo/forgejo/pulls/6523)

Reporeted by @Andre601.

## Preview

![bug](/attachments/0e0c4703-537f-4adc-95f7-4047710522b4)

![fixed](/attachments/07bc5824-87ae-43da-92a2-8e6e9b9cf567)

## Testing
* go to https://v13.next.forgejo.org/, log in
* create repo, add some issue labels (on `./labels`)
* create issue
* add some labels to it and then close it
* observe that what you see looks more like the 2nd screenshot than the 1st screenshot

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Bug fixes
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/8644): <!--number 8644 --><!--line 0 --><!--description Zml4KHVpKTogdXBkYXRlIGkxOG4gdXNhZ2UgaW4gY29tbWVudHM=-->fix(ui): update i18n usage in comments<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8644
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org>
2025-07-24 07:17:11 +02:00
0koandGusted c11dd3fb46 feat(ui): improve org header with new noJS dropdown and more options (#8572)
Related: https://codeberg.org/forgejo/forgejo/pulls/6977/files#diff-fd05eba523810d46c7763db938ad5839372a074a, https://codeberg.org/forgejo/forgejo/pulls/3949, https://codeberg.org/forgejo/forgejo/pulls/7906

* use the new noJS dropdown for extra actions in org view (currently only includes report button)
    * this required some refactoring of the area because the said dropdown was not built to be placed in an area where `font-size:36px` is forced onto everything
    * this greatly improves consistently with user profiles which now use this type of dropdown
    * I decided against making the opener button mimicrate an actual button because it looks ok as is and is consitent with menu in user profiles and because I don't think this is a good design language to make a kebab menu opener look this way
* add icon to the entry
* add atom entry

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8572
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>
2025-07-23 02:06:13 +02:00
0koandDJ Phoenix 8235a9752d fix(i18n): improve en locale (#8593)
This commit has the following:
* partial port of changes from [gitea#35053](https://github.com/go-gitea/gitea/pull/35053) ([corresponding WCP](https://codeberg.org/forgejo/forgejo/pulls/8591))
    * some changes were applied
    * some strings we've fixed ourself before
    * some strings we don't have
* a few fixes I wanted to propose but didn't want to dedicate a PR just to add a full stop to one string

Co-authored-by: DJ Phoenix <dikejoshua@gmail.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8593
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-07-22 20:51:58 +02:00
0koandOtto 9b470d2709 feat(ui): use simplified visibility label in dashboard orgs list (#8582)
Followup to https://codeberg.org/forgejo/forgejo/pulls/6201

Label height making entry height inconsistent isn't a concern because this change makes them 2px shorter. _And they are already inconsistent._

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8582
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-07-21 09:20:24 +02:00
0ko 1b21719897 fix(ui): remove unused rule with unused class .tight (#8573)
There's no usage of `tight` across the codebase.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8573
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-07-19 15:49:48 +02:00
0ko 88c3b6dead chore(release notes): squash repeating localization updates (#8547)
Followup to https://codeberg.org/forgejo/forgejo/pulls/8540

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8547
Reviewed-by: Beowulf <beowulf@beocode.eu>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-07-18 14:11:14 +02:00
0koandGusted 6e9b97e377 fix(ui): prevent render failure on faulty org settings post (#8553)
Fix regression of https://codeberg.org/forgejo/forgejo/pulls/7998
Same as https://codeberg.org/forgejo/forgejo/pulls/8236 but for orgs

Amended existing tests to verify which error messages show up and not show up.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8553
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-07-18 13:13:45 +02:00
0ko 501cc5c7c5 merge commit: i18n: update of translations from Codeberg Translate (#8490)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8490
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
2025-07-16 19:47:56 +02:00
0ko 48cc6e684a fix(ui): improve branch filter help (#8509)
Followup to https://codeberg.org/forgejo/forgejo/pulls/7823.

* move `documentation` into link content
* fix software name

Preview:
	https://codeberg.org/attachments/b17b9e90-4f82-495e-914a-b481c6f82adc
	-> https://codeberg.org/attachments/bb139365-966b-4b0f-83dd-7b95e34cff32

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8509
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-07-14 19:31:26 +02:00
0ko f8d6a61157 fix(ui): make releases filtering responsive (#8399)
* Improve consistency with other list pages (issues, PRs)
* Improve mobile usability
* Refresh the look a bit

---

Bug fix:

Currently on mobile filters get squashed and are not very usable:
https://codeberg.org/attachments/5d6ad65e-6ae5-4819-a3dc-75fb4fe77960

This commit:
https://codeberg.org/attachments/6eb0843e-49fd-4687-ab38-9ba60a6cc6c8

---

Consistency fix:

Use same element order and spacing as in issue list:
https://codeberg.org/attachments/9cdb042d-cdce-4243-a610-a1eabe3f4fc3

On desktop this means full width search bar:
https://codeberg.org/attachments/bdd50c3d-76f3-4ad0-884e-5717f9c86154

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8399
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-07-08 16:58:49 +02:00
0ko 6e58d285c7 merge commit: fix(ui): Add pasted images to dropzone (#7749)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7749
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-06-30 14:30:25 +02:00
0ko c57dea336c fix(ui): small org dashboard ui cleanup (#8327)
Small UI cleanups in this area with no visual changes:
https://codeberg.org/attachments/4282f225-63e0-41b7-9edb-8b64877092b2

* remove classes `ui`, `top`, `attached`: following https://codeberg.org/forgejo/forgejo/pulls/2593, it is no longer a fomantic ui segment for those classes to be relevant to it
* use gap in flexbox as it is a cleaner way than setting margins

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8327
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
Reviewed-by: Beowulf <beowulf@beocode.eu>
2025-06-29 16:22:07 +02:00