12737 Commits

Author SHA1 Message Date
renovate[bot]
e2a169757d fix(deps): update module github.com/getsentry/sentry-go/echo to v0.41.0 2026-01-16 10:18:19 +01:00
renovate[bot]
81076e5309 chore(deps): update dev-dependencies to v8.53.0 2026-01-16 10:18:10 +01:00
renovate[bot]
58286619f5 chore(deps): update mariadb:12 docker digest to f54db0c 2026-01-16 10:18:00 +01:00
renovate[bot]
a9a70c15d7 chore(deps): update ghcr.io/techknowlogick/xgo:go-1.25.x docker digest to 11ac5e6 2026-01-16 10:17:44 +01:00
renovate[bot]
adc4c39103 chore(deps): update dependency go to v1.25.6 2026-01-15 22:08:58 +01:00
renovate[bot]
843ef7218a fix(deps): update module github.com/fclairamb/afero-s3 to v0.4.0 (#2087) 2026-01-15 16:21:16 +01:00
renovate[bot]
f85e30fcb1 fix(deps): update dependency @sentry/vue to v10.33.0 2026-01-15 15:08:19 +01:00
renovate[bot]
1d660ce4f3 chore(deps): update node.js to v24.13.0 2026-01-15 09:43:02 +01:00
renovate[bot]
5b0e9563cc chore(deps): update postgres:18 docker digest to 2d417d4 2026-01-15 09:42:58 +01:00
renovate[bot]
05e01b4212 chore(deps): update dev-dependencies 2026-01-15 09:42:53 +01:00
renovate[bot]
0b1f5d0024 chore(deps): update actions/setup-node digest to 6044e13 2026-01-15 09:42:39 +01:00
kolaente
e96c20def9 fix(project): error can't access property "isArchived", V.value is null when opening list view of some projects 2026-01-14 22:05:35 +01:00
kolaente
948a73f3b9 fix(task): done button styling 2026-01-14 21:56:24 +01:00
rhclayto
c5969d9898 feat: add configurable gravatar-compatible base URL (#2083)
This adds the ability to set a base URL for a Gravatar-compatible avatar
service (Gravatar itself, or Libravatar, for instance). The default will
be www.gravatar.com, so nothing will change from current behaviour unless
the user explicitly configures another URL.

Resolves #2082
2026-01-13 14:58:08 +01:00
renovate[bot]
bdd3db68fb chore(deps): update dependency @types/node to v22.19.5 2026-01-13 12:36:01 +01:00
renovate[bot]
05adfd513f chore(deps): update pnpm to v10.28.0 2026-01-13 12:35:11 +01:00
renovate[bot]
53158b1351 chore(deps): update actions/setup-go digest to 7a3fe6c 2026-01-13 12:34:57 +01:00
renovate[bot]
37a3224066 chore(deps): update postgres:18 docker digest to fdd16e6 2026-01-13 12:34:11 +01:00
renovate[bot]
a581c682e8 fix(deps): update module golang.org/x/net to v0.49.0 2026-01-12 21:38:02 +01:00
renovate[bot]
1d65ea6f6b fix(deps): update module golang.org/x/image to v0.35.0 2026-01-12 18:58:23 +01:00
renovate[bot]
ffb7a58a23 fix(deps): update module golang.org/x/crypto to v0.47.0 2026-01-12 18:47:34 +01:00
renovate[bot]
d3639af7bc chore(deps): update dev-dependencies 2026-01-11 09:11:30 +01:00
renovate[bot]
e97798574c fix(deps): update dependency @fortawesome/vue-fontawesome to v3.1.3 (#2079)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@fortawesome/vue-fontawesome](https://redirect.github.com/FortAwesome/vue-fontawesome)
| [`3.1.2` →
`3.1.3`](https://renovatebot.com/diffs/npm/@fortawesome%2fvue-fontawesome/3.1.2/3.1.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@fortawesome%2fvue-fontawesome/3.1.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fortawesome%2fvue-fontawesome/3.1.2/3.1.3?slim=true)
|

---

### Release Notes

<details>
<summary>FortAwesome/vue-fontawesome
(@&#8203;fortawesome/vue-fontawesome)</summary>

###
[`v3.1.3`](https://redirect.github.com/FortAwesome/vue-fontawesome/blob/HEAD/CHANGELOG.md#313---2026-01-07)

[Compare
Source](https://redirect.github.com/FortAwesome/vue-fontawesome/compare/3.1.2...3.1.3)

##### Changed

- ci.yml update for node-versions
- a markdown lint fixup in CONTRIUBUTING.md
- update vitest version to 4.0.16 in `package.json`

***

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-10 22:42:20 +01:00
kolaente
e702785cf8 fix(filter): correct filter autocomplete for project names with spaces (#2012)
Filter expressions with multi-word values (such as project names with
spaces) are now automatically quoted to preserve them correctly as
single tokens in the filter syntax.

Fixes #2010

🐰 A filter's journey, refined with care,
Multi-word values now wear quotes fair,
Offsets aligned by the rabbit's precision,
Autocomplete flows with mathematical vision,
From comma to space, each boundary divine! 
2026-01-10 22:18:34 +01:00
kolaente
c0ba7210f3 chore: remove redundant is-danger class 2026-01-10 21:59:06 +01:00
kolaente
4f9681bde8 chore(form): add autocomplete attributes to a few fields 2026-01-10 21:59:06 +01:00
kolaente
a8f10a6e15 fix(register): explicitely check for username valid === true 2026-01-10 21:59:06 +01:00
kolaente
edebed151a chore(team): add disabled prop to NewTeam checkbox 2026-01-10 21:59:06 +01:00
kolaente
f06e272225 test(frontend): add test for @keyup.enter forwarding in FormField
Verify that @keyup.enter modifier is properly forwarded to the inner
input element and only triggers for Enter key, not other keys.
2026-01-10 21:59:06 +01:00
kolaente
e4e2bd33c3 refactor(frontend): simplify event handlers in Register.vue
Replace arrow function wrappers with direct expressions and ternary
no-ops with short-circuit evaluation for cleaner, more readable code.
2026-01-10 21:59:06 +01:00
kolaente
483ddc728d test(frontend): verify FormField generates unique IDs across instances
Mount multiple FormField components within the same Vue app to properly
test that useId() generates unique IDs for each instance. This validates
that labels correctly link to their respective inputs.
2026-01-10 21:59:06 +01:00
kolaente
8f0c7d504b test(frontend): add regression test for FormField $attrs event forwarding
Verify that FormField forwards $attrs event listeners (onKeyup, onFocusout)
to its inner input element. This ensures migrated templates using
@keyup.enter and @focusout continue to work correctly.
2026-01-10 21:59:06 +01:00
kolaente
182b0b63d1 fix(frontend): preserve numeric type in FormField v-model
When modelValue is a number, emit the value as a number instead of
coercing to string. This prevents subtle type bugs when using
FormField with numeric v-model bindings.
2026-01-10 21:59:06 +01:00
kolaente
4ee29f9972 refactor(frontend): use FormField scoped slot id for select elements
Update FormField usages with slotted select elements to use the
exposed id from the scoped slot, ensuring label-input association
works correctly.
2026-01-10 21:59:06 +01:00
kolaente
ac2f14945b feat(frontend): expose id via scoped slot in FormField
When using FormField with custom slot content, the slotted element
needs access to the generated inputId to ensure the label's for
attribute matches the input's id. This exposes the id via the
default slot: <template #default="{ id }">
2026-01-10 21:59:06 +01:00
kolaente
5ca600506b fix(frontend): expose focus method on FormField component
Components using FormField with a ref need to call .focus() on it.
Without exposing the method, these calls would fail since the ref
points to the component instance, not the underlying input element.
2026-01-10 21:59:06 +01:00
kolaente
fb8ee82b98 fix(frontend): restore loading state on FormField migrations
Add loading prop to FormField usages where is-loading class was
accidentally removed during migration.
2026-01-10 21:59:06 +01:00
kolaente
bb16500cb5 feat(frontend): add loading prop to FormField component
When loading is true, adds 'is-loading' class to the input element.
2026-01-10 21:59:06 +01:00
kolaente
1ea8a3cdba refactor(frontend): use FormField disabled prop instead of class
Simplify FormField usages by using the new disabled prop instead of
manually setting both :class="{ disabled: ... }" and :disabled="...".
2026-01-10 21:59:06 +01:00
kolaente
3577ba5132 feat(frontend): add disabled prop to FormField component
When disabled is true, the component now automatically adds the
'disabled' CSS class and sets the native disabled attribute on the
input element.
2026-01-10 21:59:06 +01:00
kolaente
e0235a6806 fix(project): don't focus project identifier 2026-01-10 21:59:06 +01:00
kolaente
ddd5662d66 fix(frontend): make v-focus directive work with wrapper components
When v-focus is applied to a non-focusable element (like a component
wrapper div), it now searches for the first focusable child element
(input, select, textarea, or contenteditable) and focuses that instead.

This allows v-focus to work correctly with FormField and similar
wrapper components.
2026-01-10 21:59:06 +01:00
kolaente
bad314b5e3 fix(frontend): make FormField value binding conditional
When FormField is used without v-model (modelValue undefined), the
component was clearing user input on re-render. This broke login forms
that access the input value directly via refs for browser autofill
compatibility.

Now the value attribute is only bound when modelValue is explicitly
provided, allowing native input behavior when v-model isn't used.
2026-01-10 21:59:06 +01:00
kolaente
d86465cbd7 refactor(frontend): migrate view forms to FormField component
Migrate ViewEditForm and ProjectGantt components to use the new
FormField component for title, kind select, and date range fields.
2026-01-10 21:59:06 +01:00
kolaente
1391b42c07 refactor(frontend): migrate LinkSharing to FormField component
Migrate LinkSharing component to use the new FormField component
for permission select, name, password, and share URL fields.
2026-01-10 21:59:06 +01:00
kolaente
4e2db482cd refactor(frontend): migrate project settings to FormField component
Migrate ProjectSettingsEdit and ProjectSettingsWebhooks views
to use the new FormField component.
2026-01-10 21:59:06 +01:00
kolaente
73df9b257d refactor(frontend): migrate entity forms to FormField component
Migrate NewTeam, EditTeam, NewProject, NewLabel, ListLabels,
FilterNew, and FilterEdit views to use the new FormField component.
2026-01-10 21:59:06 +01:00
kolaente
908c241ec7 refactor(frontend): migrate user settings to FormField component
Migrate ApiTokens, Caldav, DataExport, Deletion, EmailUpdate,
PasswordUpdate, TOTP, and DataExportDownload views to use the
new FormField component.
2026-01-10 21:59:06 +01:00
kolaente
0c23714a79 refactor(frontend): migrate auth views to FormField component
Migrate Login, Register, RequestPasswordReset, and LinkSharingAuth
views to use the new FormField component instead of manual
field/control/input markup.
2026-01-10 21:59:06 +01:00
kolaente
eb1f852927 feat(frontend): add FormField component for form field abstraction
Introduces a reusable FormField component that abstracts Bulma's
field/control/input pattern into a single component. This provides
a consistent API for form fields and prepares the codebase for
future CSS framework migrations.

Features:
- v-model binding for form values
- label prop with automatic for attribute linking
- error prop for validation messages
- Default slot for custom inputs (selects, editors)
- addon slot for button addons
- Attribute passthrough via v-bind="$attrs"
- Exposed value getter for browser autofill workarounds

Includes 14 unit tests covering all functionality.
2026-01-10 21:59:06 +01:00