Frederick [Bot]
f7503c0bfe
chore(i18n): update translations via Crowdin
2026-01-29 01:11:11 +00:00
kolaente
e4b99dd31f
fix(nav): show shared sub-projects in sidebar when the parent is inaccessible ( #2176 )
...
Fixes #2175
2026-01-28 16:09:46 +00:00
kolaente
e5da54e58a
fix(editor): prevent crash when exiting edit mode in tiptap
...
Use v-show instead of v-if for EditorToolbar and BubbleMenu to avoid
a race condition between Vue's DOM reconciliation and tiptap's internal
DOM manipulation during unmount. This fixes the "Cannot read properties
of null (reading 'insertBefore')" error that occurred when saving a
task description.
Adds regression test to verify the fix.
Upstream issue: https://github.com/ueberdosis/tiptap/issues/7342
Fixes: https://github.com/go-vikunja/vikunja/issues/1770
2026-01-27 14:03:02 +01:00
renovate[bot]
f216fea2b3
fix(deps): update tiptap to v3.17.0
2026-01-27 14:03:02 +01:00
kolaente
72a928dcce
chore: use correct repo and issue url
2026-01-26 12:21:24 +01:00
renovate[bot]
662f3a1ea8
chore(deps): update dev-dependencies (major) ( #1375 )
2026-01-25 21:54:47 +01:00
renovate[bot]
233908b30b
chore(deps): update dependency sass-embedded to v1.97.3 ( #2150 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node ) |
[`1.97.2` →
`1.97.3`](https://renovatebot.com/diffs/npm/sass-embedded/1.97.2/1.97.3 )
|

|

|
---
### Release Notes
<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>
###
[`v1.97.3`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1973 )
[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.97.2...1.97.3 )
- Fix a bug where nesting an at-rule within multiple style rules in
plain CSS
could cause outer style rules to be omitted.
</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 08:59:41 +01:00
renovate[bot]
83474b76d3
fix(deps): update dependency @sentry/vue to v10.36.0 ( #2147 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
|
[@sentry/vue](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/vue )
([source](https://redirect.github.com/getsentry/sentry-javascript )) |
[`10.35.0` →
`10.36.0`](https://renovatebot.com/diffs/npm/@sentry%2fvue/10.35.0/10.36.0 )
|

|

|
---
### Release Notes
<details>
<summary>getsentry/sentry-javascript (@​sentry/vue)</summary>
###
[`v10.36.0`](https://redirect.github.com/getsentry/sentry-javascript/compare/10.35.0...10.36.0 )
[Compare
Source](https://redirect.github.com/getsentry/sentry-javascript/compare/10.35.0...10.36.0 )
</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 19:30:26 +01:00
kolaente
ff01f8e859
feat(api-tokens): support title and scopes query parameters ( #2143 )
...
This allows external integrations to link directly to the API token creation page with pre-selected title and permission scopes. URLs can now use `?title=Name&scopes=group:perm,group:perm` format to pre-populate the form.
Example URL:
```
/user/settings/api-tokens?title=My%20Integration&scopes=tasks:create,tasks:delete,projects:read_all
```
2026-01-24 18:08:23 +00:00
kolaente
1731b03c22
fix(editor): prevent file upload overlay when dragging text from editor ( #2148 )
...
Fixes the file upload overlay incorrectly appearing when dragging text from within the TipTap description editor to outside of it.
Fixes #1663
2026-01-24 18:41:42 +01:00
kolaente
acbb06e337
feat(frontend): preserve Gantt date range when switching views ( #2141 )
...
Adds a `viewFilters` Pinia store that stores query params per view ID to sync Gantt filters to the store whenever they change. This persists the custom date ranges when switching between views.
Fixes #2124
2026-01-24 13:12:35 +01:00
renovate[bot]
47bfb6a424
chore(deps): update dev-dependencies
2026-01-24 13:01:45 +01:00
renovate[bot]
8e3ed45c85
chore(deps): update pnpm to v10.28.1
2026-01-24 00:01:17 +01:00
kolaente
131f78277d
feat(quick add magic): add more test cases
2026-01-24 00:00:46 +01:00
kolaente
8419794b65
fix(quick-add-magic): prevent parsing partial keywords in words ( #2140 )
...
- Fixed date parser incorrectly extracting date components from within
words
- "Renovation - 2nd Floor Bath" no longer becomes "Reation - Floor Bath"
with a due date of November 2nd
## Changes
- `getMonthFromText` now requires word boundaries, preventing "nov" from
matching inside "Renovation" or "mar" inside "Remark"
- `getDayFromText` now only matches ordinals when followed by
end-of-string, time expressions, or month names, preventing "2nd Floor"
from being parsed as a date
Resolves
https://community.vikunja.io/t/quick-add-magic-unintended-date-parsing/4259
2026-01-23 22:23:42 +00:00
renovate[bot]
663e7ba3d4
fix(deps): update dependency @sentry/vue to v10.35.0
2026-01-23 17:21:45 +01:00
kolaente
c11ea4c87f
fix(unsplash): add utm parameters to author links
...
Resolves https://github.com/go-vikunja/vikunja/issues/2127
2026-01-23 11:58:34 +01:00
renovate[bot]
06e90bc9c2
chore(deps): update dev-dependencies
2026-01-22 11:43:42 +01:00
renovate[bot]
fa142308d2
fix(deps): update dependency vue to v3.5.27
2026-01-22 11:01:11 +01:00
renovate[bot]
34472d1358
fix(deps): update dependency ufo to v1.6.3
2026-01-18 17:37:50 +01:00
renovate[bot]
c09e63d7d8
chore(deps): update dependency happy-dom to v20.3.0
2026-01-18 17:37:43 +01:00
renovate[bot]
2a74633e4f
chore(deps): update dependency @types/node to v22.19.6
2026-01-17 21:59:09 +01:00
renovate[bot]
740ea79837
fix(deps): update dependency @sentry/vue to v10.34.0
2026-01-17 21:58:58 +01:00
renovate[bot]
81076e5309
chore(deps): update dev-dependencies to v8.53.0
2026-01-16 10:18:10 +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]
05e01b4212
chore(deps): update dev-dependencies
2026-01-15 09:42:53 +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
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]
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 )
|

|

|
---
### Release Notes
<details>
<summary>FortAwesome/vue-fontawesome
(@​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