Commit Graph

12658 Commits

Author SHA1 Message Date
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
kolaente e5cfe3aa13 fix(button): fix button text color to #ffffff
Fixes regression introduced in cac2690fd6
2026-01-10 18:47:50 +01:00
kolaente 61b4c1b87e fix(attachment): make sure long attachment names break the title 2026-01-10 18:46:55 +01:00
kolaente b9ccc81ec0 fix(button): white color text for is-danger variant 2026-01-10 18:36:33 +01:00
kolaente 5ab58e6bda fix(webhooks): make sure validation is re-triggered after selecting events when it was invalid the first time 2026-01-10 18:35:12 +01:00
kolaente cac2690fd6 fix(button): make sure button text color is always white 2026-01-10 18:31:18 +01:00
kolaente 84b733ec0c fix(webhooks): make sure events are initialized with false 2026-01-10 18:31:18 +01:00
kolaente 9a3e79af8e
feat(frontend): add danger prop to XButton component (#2078)
The is-danger class no longer worked on XButton because the component uses scoped CSS. This adds a proper danger boolean prop that applies danger styling (red background) as a color modifier that works alongside any variant (primary, secondary, tertiary).
2026-01-10 17:22:19 +00:00
kolaente 534483f237 fix(filter): ensure year is always within mysql allowed range
Fixes https://github.com/go-vikunja/vikunja/issues/2077
2026-01-09 23:11:22 +01:00
renovate[bot] 0ff6a348e4
fix(deps): update module golang.org/x/text to v0.33.0 (#2076)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/text](https://pkg.go.dev/golang.org/x/text) | [`v0.32.0`
→
`v0.33.0`](https://cs.opensource.google/go/x/text/+/refs/tags/v0.32.0...refs/tags/v0.33.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2ftext/v0.33.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2ftext/v0.32.0/v0.33.0?slim=true)
|

---

### 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-09 22:00:45 +00:00
kolaente e085fcaef2
feat(migration/todoist): migrate from Sync API v9 to API v1 (#2072)
Migrates the Todoist migration module from the deprecated Sync API v9 to the new unified Todoist API v1.
2026-01-09 22:50:27 +01:00
renovate[bot] ff5befcda4
fix(deps): update module golang.org/x/term to v0.39.0 (#2075)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/term](https://pkg.go.dev/golang.org/x/term) | [`v0.38.0`
→
`v0.39.0`](https://cs.opensource.google/go/x/term/+/refs/tags/v0.38.0...refs/tags/v0.39.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fterm/v0.39.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fterm/v0.38.0/v0.39.0?slim=true)
|

---

### 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-09 22:17:55 +01:00
renovate[bot] 6bcdfc50e2
fix(deps): update dependency ufo to v1.6.2 (#2074)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [ufo](https://redirect.github.com/unjs/ufo) | [`1.6.1` →
`1.6.2`](https://renovatebot.com/diffs/npm/ufo/1.6.1/1.6.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/ufo/1.6.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ufo/1.6.1/1.6.2?slim=true)
|

---

### Release Notes

<details>
<summary>unjs/ufo (ufo)</summary>

###
[`v1.6.2`](https://redirect.github.com/unjs/ufo/blob/HEAD/CHANGELOG.md#v162)

[Compare
Source](https://redirect.github.com/unjs/ufo/compare/v1.6.1...v1.6.2)

[compare
changes](https://redirect.github.com/unjs/ufo/compare/v1.6.1...v1.6.2)

##### 🩹 Fixes

- Fix `parsePath` return type
([#&#8203;293](https://redirect.github.com/unjs/ufo/pull/293))

##### 📖 Documentation

- Add more examples in jsdoc
([#&#8203;291](https://redirect.github.com/unjs/ufo/pull/291))

##### 📦 Build

- Fix exports condition order to prefer esm with default fallback
([8457581](https://redirect.github.com/unjs/ufo/commit/8457581))

##### 🏡 Chore

- **release:** V1.6.1
([b83cbea](https://redirect.github.com/unjs/ufo/commit/b83cbea))
- Update deps
([9d1833b](https://redirect.github.com/unjs/ufo/commit/9d1833b))
- Lint ([0181677](https://redirect.github.com/unjs/ufo/commit/0181677))

##### ❤️ Contributors

- Daedalus
([@&#8203;ComfortablyCoding](https://redirect.github.com/ComfortablyCoding))
- Pooya Parsa ([@&#8203;pi0](https://redirect.github.com/pi0))
- Alex Liu
([@&#8203;Mini-ghost](https://redirect.github.com/Mini-ghost))

</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-09 14:54:44 +01:00
renovate[bot] 419c791e0c
chore(deps): update dev-dependencies (#2073)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.51.0` →
`8.52.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.52.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.52.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.52.0?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.51.0` →
`8.52.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.51.0/8.52.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.52.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.51.0/8.52.0?slim=true)
|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.54.0` →
`4.55.1`](https://renovatebot.com/diffs/npm/rollup/4.54.0/4.55.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.55.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/4.54.0/4.55.1?slim=true)
|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.97.1` →
`1.97.2`](https://renovatebot.com/diffs/npm/sass-embedded/1.97.1/1.97.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.97.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.97.1/1.97.2?slim=true)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`3.2.1` →
`3.2.2`](https://renovatebot.com/diffs/npm/vue-tsc/3.2.1/3.2.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/3.2.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/3.2.1/3.2.2?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.52.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.51.0...v8.52.0)

##### 🚀 Features

- **eslint-plugin-internal:** \[no-multiple-lines-of-errors] add rule
([#&#8203;11899](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11899))

##### 🩹 Fixes

- **eslint-plugin:** \[no-base-to-string] detect
@&#8203;[@&#8203;toPrimitive](https://redirect.github.com/toPrimitive)
and valueOf
([#&#8203;11901](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11901))
- **eslint-plugin:** \[no-useless-default-assignment] handle conditional
initializer
([#&#8203;11908](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11908))

##### ❤️ Thank You

- Josh Goldberg 
- Ulrich Stark

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.52.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8520-2026-01-05)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.51.0...v8.52.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.55.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4551)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.54.0...v4.55.1)

*2026-01-05*

##### Bug Fixes

- Fix artifact reference for OpenBSD
([#&#8203;6231](https://redirect.github.com/rollup/rollup/issues/6231))

##### Pull Requests

- [#&#8203;6231](https://redirect.github.com/rollup/rollup/pull/6231):
Fix OpenBSD artifacts and ensure OIDC is working
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.97.2`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1972)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.97.1...1.97.2)

- Additional fixes for implicit configuration when nested imports are
involved.

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v3.2.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#322-2026-01-06)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.2.1...v3.2.2)

##### language-core

- **fix:** correct code features on v-bind shorthands of special
attributes - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### language-plugin-pug

- **feat:** accurate Pug shorthand mapping
([#&#8203;5906](https://redirect.github.com/vuejs/language-tools/issues/5906))
- **fix:** pre-map HTML to Pug offset attribute
([#&#8203;5905](https://redirect.github.com/vuejs/language-tools/issues/5905))

##### language-service

- **feat:** strip `=""` for boolean props completion edits
([#&#8203;5888](https://redirect.github.com/vuejs/language-tools/issues/5888))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **fix:** avoid duplicate directive modifiers in completion
([#&#8203;5920](https://redirect.github.com/vuejs/language-tools/issues/5920))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### typescript-plugin

- **fix:** only forward quick info and suggestion diagnostics for setup
bindings
([#&#8203;5892](https://redirect.github.com/vuejs/language-tools/issues/5892))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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-09 09:05:16 +01:00
kolaente 0f9a04d5d5
fix(frontend): prevent parent project field from jumping back when cleared (#2071)
Fixes the parent project field in project settings "jumping back" to the previous value after clearing the value from the input.

Fixes #2046
2026-01-08 17:25:00 +01:00
kolaente 8987f0890a
fix(mail): disable queue when mailer disabled (#2069)
- Don't create the mail queue when the mailer is disabled to prevent
`SendMail()` from blocking indefinitely
- Add guard clause in `SendMail()` to return early when mailer is
disabled or queue is nil
- Add test to verify notifications don't block when mailer is disabled

This implements the changes from #1080 with the review feedback
addressed (using `package notifications` instead of `package
notifications_test`).


Closes #1080
2026-01-08 15:51:31 +01:00
kolaente 745fde41ca
fix: prevent timezone field from overflowing container on smaller viewports (#2066)
Closes #2044
2026-01-08 14:30:04 +00:00
kolaente 909b35ea76
fix: multiselect clear button now properly clears the value (#2067)
Fixes #2045
2026-01-08 14:16:03 +00:00
kolaente 6c7a800bf4
fix: set log path before creating log handler (#2064)
Resolves #2020
2026-01-08 13:53:08 +00:00
renovate[bot] 3957a43d74
fix(deps): update module golang.org/x/sys to v0.40.0 (#2068)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [golang.org/x/sys](https://pkg.go.dev/golang.org/x/sys) | [`v0.39.0` →
`v0.40.0`](https://cs.opensource.google/go/x/sys/+/refs/tags/v0.39.0...refs/tags/v0.40.0)
|
![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsys/v0.40.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsys/v0.39.0/v0.40.0?slim=true)
|

---

### 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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-08 13:28:42 +00:00
kolaente 1bb44b70bf
fix: prevent saved filter error when viewing Favorites (#2065)
Fixes the "The saved filter does not exist" error when clicking on Favorites in the sidebar. The issue occurred because the code assumed any negative projectId was a saved filter, but Favorites has ID -1 while saved filters start at ID -2

Fixes #2058
2026-01-08 13:17:23 +00:00
kolaente ed0c9a8006 fix: invisible spinner 2026-01-08 13:23:38 +01:00
kolaente 65980423c9 fix: remove usage of .buttons 2026-01-08 13:23:38 +01:00
kolaente 40287a1570 refactor: move bulma button styles to button component 2026-01-08 13:23:38 +01:00
kolaente 672d92a3e4 fix: remove redundant button class 2026-01-08 13:23:38 +01:00
kolaente 39b4568bc5
refactor: centralize HTTP error handling (#2062)
This changes the error handling to a centralized HTTP error handler in `pkg/routes/error_handler.go` that converts all error types to proper HTTP responses. This simplifies the overall error handling because http handler now only need to return the error instead of calling HandleHTTPError as previously.
It also removes the duplication between handling errors with and without Sentry.

🐰 Hop along, dear errors, no more wrapping today!
We've centralized handlers in a shiny new way,
From scattered to unified, the code flows so clean,
ValidationHTTPError marshals JSON supreme!
Direct propagation hops forward with glee,
A refactor so grand—what a sight to see! 🎉
2026-01-08 10:02:59 +00:00
kolaente 4f31300915 fix(export): use os-level temp file to create user data export 2026-01-08 10:37:51 +01:00
kolaente 155e651eff fix(project): do not access find on current project views when none are provided
Resolves https://github.com/go-vikunja/vikunja/issues/2057
2026-01-07 18:06:53 +01:00
kolaente 49af08d3f6
feat(filters): add UI for marking saved filters as favorites (#2055)
This PR adds UI support for marking saved filters as favorites. The backend already supports the `is_favorite` field for saved filters, but the frontend didn't expose this functionality. Users can now favorite/unfavorite saved filters just like regular projects.
2026-01-07 16:21:41 +00:00
renovate[bot] 59f203298f
chore(deps): update dependency electron-builder to v26.4.0 (#2059)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[electron-builder](https://redirect.github.com/electron-userland/electron-builder)
([source](https://redirect.github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder))
| [`26.0.12` →
`26.4.0`](https://renovatebot.com/diffs/npm/electron-builder/26.0.12/26.4.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/electron-builder/26.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-builder/26.0.12/26.4.0?slim=true)
|

---

### Release Notes

<details>
<summary>electron-userland/electron-builder (electron-builder)</summary>

###
[`v26.4.0`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2640)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.6...electron-builder@26.4.0)

##### Patch Changes

<details><summary>Updated 2 dependencies</summary>

<small>


[`e70da99`](e70da99e34)
[`b66832d`](b66832d6fc)
[`9110cb4`](9110cb432e)
[`39ae6a7`](39ae6a7fb7)
[`78910a9`](78910a913b)
[`5f962f9`](5f962f9cae)

</small>

- `app-builder-lib@26.4.0`
- `dmg-builder@26.4.0`

</details>

###
[`v26.3.6`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2636)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.5...electron-builder@26.3.6)

##### Patch Changes

<details><summary>Updated 2 dependencies</summary>

<small>


[`bdfc76b`](bdfc76bf18)
[`693629c`](693629c799)

</small>

- `app-builder-lib@26.3.6`
- `dmg-builder@26.3.6`

</details>

###
[`v26.3.5`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2635)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.4...electron-builder@26.3.5)

##### Patch Changes

<details><summary>Updated 2 dependencies</summary>

<small>


[`e3f3592`](e3f3592cfa)
[`05e0bc7`](05e0bc7bec)
[`e043df5`](e043df5760)

</small>

- `app-builder-lib@26.3.5`
- `dmg-builder@26.3.5`

</details>

###
[`v26.3.4`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2634)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.3...electron-builder@26.3.4)

##### Patch Changes

<details><summary>Updated 3 dependencies</summary>

<small>


[`e34be3b`](e34be3b3e8)
[`2faee4d`](2faee4d941)
[`ada111e`](ada111ebe8)
[`da1d768`](da1d7687c6)
[`4d24ebd`](4d24ebd79e)
[`b81c253`](b81c2539c4)

</small>

- `app-builder-lib@26.3.4`
- `builder-util@26.3.4`
- `dmg-builder@26.3.4`

</details>

###
[`v26.3.3`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2633)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.2...electron-builder@26.3.3)

##### Patch Changes

<details><summary>Updated 2 dependencies</summary>

<small>


[`241c53a`](241c53a598)

</small>

- `app-builder-lib@26.3.3`
- `dmg-builder@26.3.3`

</details>

###
[`v26.3.2`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2632)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.1...electron-builder@26.3.2)

##### Patch Changes

<details><summary>Updated 2 dependencies</summary>

<small>


[`0cd0831`](0cd0831ec1)
[`7f7113d`](7f7113dc43)
[`65eecac`](65eecac1be)

</small>

- `app-builder-lib@26.3.2`
- `dmg-builder@26.3.2`

</details>

###
[`v26.3.1`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2631)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.3.0...electron-builder@26.3.1)

##### Patch Changes

- Fix: `install-app-deps` missing `workspaceRoot` for passing
`projectRootPath` into electron/rebuild
*[`#9376`](https://redirect.github.com/electron-userland/electron-builder/pull/9376)
[`45a1683`](45a1683400)
[@&#8203;mmaietta](https://redirect.github.com/mmaietta)*

<details><summary>Updated 3 dependencies</summary>

<small>


[`ec0a851`](ec0a85179b)
[`2f3e7e1`](2f3e7e1e67)
[`82c07af`](82c07af19f)
[`6171472`](617147281c)
[`ef364d3`](ef364d32c4)
[`45a1683`](45a1683400)
[`1607820`](160782067f)
[`ed8ea12`](ed8ea12f7c)

</small>

- `app-builder-lib@26.3.1`
- `builder-util@26.3.1`
- `dmg-builder@26.3.1`

</details>

###
[`v26.3.0`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2630)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.2.0...electron-builder@26.3.0)

##### Minor Changes

- Feat: support `corepack` and `packageManager` field and add related
unit tests
*[`#9309`](https://redirect.github.com/electron-userland/electron-builder/pull/9309)
[`b741b72`](b741b726da)
[@&#8203;mmaietta](https://redirect.github.com/mmaietta)*

##### Patch Changes

- Chore: bumping version packages of all packages to trigger Trusted
Signing provedance release
*[`#9362`](https://redirect.github.com/electron-userland/electron-builder/pull/9362)
[`030269b`](030269bca9)
[@&#8203;mmaietta](https://redirect.github.com/mmaietta)*

<details><summary>Updated 4 dependencies</summary>

<small>


[`030269b`](030269bca9)
[`b741b72`](b741b726da)
[`d8ad468`](d8ad468cbf)
[`811d13d`](811d13d730)
[`16c8fa1`](16c8fa19b2)
[`2e0837b`](2e0837b279)

</small>

- `app-builder-lib@26.3.0`
- `builder-util@26.3.0`
- `builder-util-runtime@9.5.1`
- `dmg-builder@26.3.0`

</details>

###
[`v26.2.0`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2620)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.1.0...electron-builder@26.2.0)

##### Patch Changes

- Updated dependencies
\[[`836a15c6c70abf8582aaa63603e14f77d5fa3f89`](836a15c6c7),
[`21623e1b037e4509af04e767ca1c1458682b0eba`](21623e1b03),
[`6a49f85c69a22844729033f023249975f47a28f1`](6a49f85c69),
[`0835fbcac0a0cfb0f34355699812cc85db035ad4`](0835fbcac0),
[`d19387174365c85968034149be43d80a39e7335f`](d193871743),
[`b6a34c00c35e42dc279a55d672558ea7badc7fcd`](b6a34c00c3),
[`f4d7924a082fbb9113d52782430f82b1f0ffcb52`](f4d7924a08)]:
  - app-builder-lib\@&#8203;26.2.0
  - dmg-builder\@&#8203;26.2.0

###
[`v26.1.0`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2610)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.20...electron-builder@26.1.0)

##### Patch Changes

- Updated dependencies
\[[`9f06a859f9c82b305d0a43c5b6e8c47d1c7451f1`](9f06a859f9),
[`08773afadfe10911ed1dff084fefe1024c5a74d8`](08773afadf),
[`85cb4d031a060976b2519665b98294bb3c735aa0`](85cb4d031a),
[`e5f5799fbb193a7a8700fcaaf1ab9e79c9c694ce`](e5f5799fbb),
[`38c2085e9a344812d32611d197d1df66d6644b45`](38c2085e9a),
[`c51f96272517c08a09504445fb31e61326e0c381`](c51f962725),
[`193abcf78691b145dd1f406ac5521e88beec0a5c`](193abcf786),
[`6fd391d9e8390c00c8b0674d8ac3a5b7b6f0f19f`](6fd391d9e8)]:
  - app-builder-lib\@&#8203;26.1.0
  - builder-util-runtime\@&#8203;9.5.0
  - dmg-builder\@&#8203;26.1.0
  - builder-util\@&#8203;26.1.0

###
[`v26.0.20`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26020)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.19...v26.0.20)

##### Patch Changes

-
[#&#8203;9228](https://redirect.github.com/electron-userland/electron-builder/pull/9228)
[`d031eeaa`](d031eeaa7e)
Thanks [@&#8203;choegyumin](https://redirect.github.com/choegyumin)! -
fix: support option to override `PublishPolicy` in publish command

-
[#&#8203;9227](https://redirect.github.com/electron-userland/electron-builder/pull/9227)
[`8f0ad06e`](8f0ad06eae)
Thanks [@&#8203;choegyumin](https://redirect.github.com/choegyumin)! -
fix: fix argument names mismatch in publish command to make it work

- Updated dependencies
\[[`f262a735`](f262a7358d),
[`44b28997`](44b28997f1),
[`7c7fd6ca`](7c7fd6ca24),
[`3735881f`](3735881f32),
[`49c782cb`](49c782cb83),
[`cf0ac45d`](cf0ac45db7),
[`e9251f47`](e9251f4725),
[`c54a0609`](c54a060975),
[`b778686f`](b778686fb7)]:
  - app-builder-lib\@&#8203;26.0.20
  - builder-util-runtime\@&#8203;9.4.0
  - builder-util\@&#8203;26.0.20
  - dmg-builder\@&#8203;26.0.20

###
[`v26.0.19`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26019)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.18...v26.0.19)

##### Patch Changes

- Updated dependencies
\[[`6cc5d2ee`](6cc5d2ee45),
[`21e4ea23`](21e4ea2381),
[`c9480bc0`](c9480bc0a1),
[`1a6ea016`](1a6ea016b7),
[`35f5f6e5`](35f5f6e557)]:
  - app-builder-lib\@&#8203;26.0.19
  - builder-util-runtime\@&#8203;9.3.3
  - builder-util\@&#8203;26.0.19
  - dmg-builder\@&#8203;26.0.19

###
[`v26.0.18`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26018)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.17...v26.0.18)

##### Patch Changes

- Updated dependencies
\[[`fc7c5a0d`](fc7c5a0d4c),
[`a2fbc8b6`](a2fbc8b666),
[`e02b939b`](e02b939bc6),
[`61aa8557`](61aa8557dc),
[`309f1dca`](309f1dcacb)]:
  - app-builder-lib\@&#8203;26.0.18
  - dmg-builder\@&#8203;26.0.18

###
[`v26.0.17`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26017)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.16...v26.0.17)

##### Patch Changes

- Updated dependencies
\[[`0b17b351`](0b17b351ca),
[`a6be444c`](a6be444c90),
[`e56977b5`](e56977b5c6),
[`b960d2fa`](b960d2fa30),
[`3128991a`](3128991a1b),
[`2d014a86`](2d014a8605),
[`092d398a`](092d398a66),
[`2c361819`](2c3618195e),
[`73696c6d`](73696c6da6)]:
  - app-builder-lib\@&#8203;26.0.17
  - builder-util\@&#8203;26.0.17
  - dmg-builder\@&#8203;26.0.17

###
[`v26.0.16`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26016)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.15...v26.0.16)

##### Patch Changes

-
[#&#8203;9117](https://redirect.github.com/electron-userland/electron-builder/pull/9117)
[`b62737d8`](b62737d8c4)
Thanks
[@&#8203;talentlessguy](https://redirect.github.com/talentlessguy)! -
chore(deps): replace `is-ci` with `ci-info`

- Updated dependencies
\[[`65de8564`](65de8564f2),
[`b62737d8`](b62737d8c4),
[`9272cf33`](9272cf33a8),
[`bacc6b44`](bacc6b44cc),
[`59fdaa9f`](59fdaa9f34),
[`9358b00b`](9358b00b39)]:
  - app-builder-lib\@&#8203;26.0.16
  - builder-util\@&#8203;26.0.16
  - dmg-builder\@&#8203;26.0.16

###
[`v26.0.15`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26015)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.14...v26.0.15)

##### Patch Changes

- Updated dependencies
\[[`312938d8`](312938d851),
[`6f3aec81`](6f3aec8106),
[`d97e7eb2`](d97e7eb20d),
[`0ce7b90e`](0ce7b90e5e)]:
  - app-builder-lib\@&#8203;26.0.15
  - dmg-builder\@&#8203;26.0.15

###
[`v26.0.14`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26014)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.13...v26.0.14)

##### Patch Changes

- Updated dependencies
\[[`3d65267a`](3d65267a6c),
[`5545e132`](5545e13254),
[`80fbf5a6`](80fbf5a6d8),
[`524fb6e0`](524fb6e042)]:
  - app-builder-lib\@&#8203;26.0.14
  - dmg-builder\@&#8203;26.0.14

###
[`v26.0.13`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#26013)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.12...v26.0.13)

##### Patch Changes

-
[#&#8203;9013](https://redirect.github.com/electron-userland/electron-builder/pull/9013)
[`c223866e`](c223866e36)
Thanks [@&#8203;beyondkmp](https://redirect.github.com/beyondkmp)! -
fix: dependency path is undefined

- Updated dependencies
\[[`33bd6706`](33bd670612),
[`1397775c`](1397775c3b),
[`8bd1a10a`](8bd1a10a2d),
[`106640dd`](106640dd42),
[`9fb2895c`](9fb2895cd0),
[`c223866e`](c223866e36),
[`bff46ec4`](bff46ec41c),
[`a2f7f735`](a2f7f7350b)]:
  - app-builder-lib\@&#8203;26.0.13
  - builder-util\@&#8203;26.0.13
  - dmg-builder\@&#8203;26.0.13
  - builder-util-runtime\@&#8203;9.3.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-07 08:23:36 +01:00