kolaente
362962e81e
fix(gantt): only persist dates that actually exist on partial-date tasks
...
Previously drag/resize always set both startDate and endDate, which
would persist the synthetic 7-day span and convert an open-ended task
into a fully-dated one. Now only the date fields that originally exist
on the task are updated.
2026-02-18 23:04:21 +01:00
kolaente
ceb62c63d3
refactor(gantt): extract GanttBarDateType as reusable type
2026-02-18 23:04:21 +01:00
kolaente
6f8be0905f
fix(gantt): sync task updates from detail view back to gantt chart
...
The Gantt chart maintains its own local task map, separate from the
Pinia task store. When a task is edited in the detail modal, the
update was not propagated to the Gantt's map. Add a lastUpdatedTask
signal to the task store and watch it in useGanttTaskList.
2026-02-18 23:04:21 +01:00
kolaente
6d6a1deba4
feat(gantt): right-align text for endOnly partial-date bars
2026-02-18 23:04:21 +01:00
kolaente
2bf99cf2d0
chore: fix lint issue from gantt partial dates feature
2026-02-18 23:04:21 +01:00
kolaente
65f92ac8d3
feat(gantt): update drag/resize to handle partial-date task updates
2026-02-18 23:04:21 +01:00
kolaente
29e77b44e1
feat(gantt): add i18n strings for partial-date accessibility
2026-02-18 23:04:21 +01:00
kolaente
5e69ee43fd
feat(gantt): update API filter to fetch tasks with due_date or end_date
2026-02-18 23:04:21 +01:00
kolaente
941c4f10d7
feat(gantt): render partial-date bars with gradient fade effect
2026-02-18 23:04:21 +01:00
kolaente
6b5ab85d40
feat(gantt): handle tasks with partial dates in transformation and filtering
2026-02-18 23:04:21 +01:00
kolaente
eefa48052b
feat(gantt): add dateType field to GanttBarModel meta
2026-02-18 23:04:21 +01:00
renovate[bot]
31eda396e2
chore(deps): update dev-dependencies ( #2257 )
...
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.8.0` →
`26.8.1`](https://renovatebot.com/diffs/npm/electron-builder/26.8.0/26.8.1 )
|

|

|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom ) |
[`20.6.1` →
`20.6.2`](https://renovatebot.com/diffs/npm/happy-dom/20.6.1/20.6.2 ) |

|

|
---
### Release Notes
<details>
<summary>electron-userland/electron-builder (electron-builder)</summary>
###
[`v26.8.1`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2681 )
[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.8.0...electron-builder@26.8.1 )
##### Patch Changes
<details><summary>Updated 3 dependencies</summary>
<small>
[`4edd695`](4edd695045 )
[`8940ec6`](8940ec63ba )
[`4edd695`](4edd695045 )
[`dde4309`](dde4309b91 )
</small>
- `app-builder-lib@26.8.1`
- `builder-util@26.8.1`
- `dmg-builder@26.8.1`
</details>
</details>
<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>
###
[`v20.6.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v20.6.2 )
[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2 )
##### :construction\_worker\_man: Patch fixes
- Update entities package version to resolve missing export for vue and
vue-compat v3.5 - By
**[@​acollins1991](https://redirect.github.com/acollins1991 )** in
task
[#​2066](https://redirect.github.com/capricorn86/happy-dom/issues/2066 )
</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMi4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-18 15:44:19 +00:00
Ian Driver
48074d2358
feat: add optional project column to table view ( #2182 )
...
Adds a Project column to the table view, useful when viewing tasks
across multiple projects (e.g. in saved filters).
Disabled by default to keep the current behavior.
Co-authored-by: 2ZZ <ian@driv3r.uk >
2026-02-18 15:29:51 +00:00
kolaente
2cf69c7503
chore(deps): upgrade markdown-it to 14.1.1
2026-02-18 10:22:46 +01:00
kolaente
14628ca182
chore(deps): upgrade qs to 6.15.0
2026-02-18 10:21:32 +01:00
renovate[bot]
f67802721a
chore(deps): update dependency @vue/eslint-config-typescript to v14.7.0
2026-02-17 15:38:34 +01:00
Martin Lindvik
e3695c17c6
feat: add Swedish for language selection ( #2248 )
...
The Swedish translations were finished on crowdin recently but I noticed
that the language selection was still missing so I went ahead and added
it.
2026-02-17 14:32:01 +00:00
renovate[bot]
7b7b883139
chore(deps): pin dependency eslint-plugin-depend to 1.4.0
2026-02-17 15:19:07 +01:00
kolaente
e6ae87d703
chore: downgrade depend/ban-dependencies to warning
2026-02-17 12:00:31 +01:00
kolaente
2fe66c8944
feat: add eslint-plugin-depend to frontend
2026-02-17 12:00:31 +01:00
renovate[bot]
c3b760ec04
chore(deps): update dev-dependencies to v8.56.0
2026-02-16 21:09:53 +01:00
kolaente
17360a820c
fix: correct indentation in API tokens table after thead/tbody wrap
2026-02-16 11:45:45 +01:00
kolaente
b66b75f5be
fix: wrap API tokens table rows in thead and tbody elements
2026-02-16 10:52:51 +01:00
kolaente
30e53dbd9f
fix: reset group permission checkboxes when creating a new API token
...
The group-level "select all" checkboxes (e.g. "Labels", "Backgrounds")
were not reset after creating a token, causing them to appear visually
checked when opening the form again even though the individual
permissions were unchecked.
Ref: https://community.vikunja.io/t/token-creation-malfunction-in-ticking-system/4318
2026-02-16 10:02:50 +01:00
renovate[bot]
ad1d769f5b
chore(deps): update dependency caniuse-lite to v1.0.30001770
2026-02-15 19:53:52 +01:00
renovate[bot]
e8d8f9cbec
chore(deps): update dependency eslint-plugin-vue to v10.8.0
2026-02-14 20:16:39 +01:00
renovate[bot]
5a3c17aed1
chore(deps): update dev-dependencies
2026-02-13 19:02:57 +01:00
kolaente
0e4d3ef663
test(e2e): add Playwright test for avatar cache invalidation
...
Uploads two different avatars in sequence and verifies the header
avatar src changes after the second upload. This confirms both the
backend cache (via DelPrefix) and the frontend cache are properly
invalidated when a new avatar is uploaded.
2026-02-13 09:31:28 +01:00
Frederick [Bot]
1e2b861ea5
chore(i18n): update translations via Crowdin
2026-02-12 01:15:53 +00:00
renovate[bot]
016229faad
chore(deps): update dev-dependencies
2026-02-11 22:37:26 +01:00
rhclayto
b196c986cd
feat: use credentials when accessing PWA manifest ( #2218 )
2026-02-11 22:28:52 +01:00
renovate[bot]
b25243ef62
chore(deps): update dependency happy-dom to v20.5.1
2026-02-11 22:24:47 +01:00
dependabot[bot]
ba84ac2f70
chore(deps): bump axios from 1.13.2 to 1.13.5 in /frontend
...
Bumps [axios](https://github.com/axios/axios ) from 1.13.2 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.13.5 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.5
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-11 12:36:11 +01:00
renovate[bot]
aec05b12eb
chore(deps): update dev-dependencies
2026-02-11 09:56:20 +01:00
Frederick [Bot]
be4fb77981
chore(i18n): update translations via Crowdin
2026-02-10 01:25:29 +00:00
kolaente
ed5dfa1ad4
fix(gantt): render done tasks with strikethrough and reduced opacity
...
The gantt chart rebuild lost the visual distinction for completed tasks.
Restore strikethrough on task labels and add reduced opacity on bars
for done tasks.
Regression introduced in the gantt chart rebuild in 5fc255cb3 .
Resolves #2211
2026-02-09 15:28:48 +01:00
kolaente
dd0b82f00a
fix(task): use DOMParser in task glance tooltip description preview
...
Replace innerHTML on a detached element with DOMParser for extracting
plain text from task descriptions.
2026-02-09 11:01:38 +01:00
Frederick [Bot]
3c2977b126
chore(i18n): update translations via Crowdin
2026-02-09 01:16:51 +00:00
kolaente
e90cb2631d
fix(auth): remove unnecessary fields from JWT token payloads
...
Remove email, name, emailRemindersEnabled, and isLocalUser from user JWT
claims, and isLocalUser from link share JWT claims. These fields are never
used from the token - the backend always fetches the full user from the
database by ID, and the frontend fetches user data from the /user API
endpoint immediately after login.
Also simplify GetUserFromClaims to only extract id and username, and
remove the now-unnecessary email override in the frontend's
refreshUserInfo.
2026-02-08 21:30:07 +01:00
kolaente
eb369cf3ee
fix: handle attachment upload errors with user-visible notifications
2026-02-08 15:48:04 +01:00
kolaente
7256a14194
fix: format attachment upload error messages as readable strings
2026-02-08 15:48:04 +01:00
kolaente
8830dc56ad
chore(deps): update lodash to 4.17.23
2026-02-08 11:35:27 +01:00
kolaente
5cb1787dd6
chore(deps): update @isaacs/brace-expansion to 5.0.1
2026-02-08 11:31:22 +01:00
kolaente
cdca790325
fix: guard against undefined route.name in auth layout check
...
route.name can be undefined during initial route resolution or for
unnamed routes. Without this guard, AUTH_ROUTE_NAMES.has() would
return false and the authenticated layout could flash briefly.
2026-02-06 10:58:50 +01:00
kolaente
e9a6abfe44
refactor: extract auth route names into shared constant
...
Move the list of authentication route names (login, register, password
reset, openid, link-share) into a shared constant in
src/constants/authRouteNames.ts. Use it in both App.vue (layout gate)
and router/index.ts (auth redirect guard) to keep them in sync.
2026-02-06 10:58:50 +01:00
kolaente
5d9f62cc93
fix: prevent auth layout swap while still on login/register route
...
The v-if in App.vue switches to the authenticated layout (navbar +
sidebar) as soon as authStore.authUser becomes truthy. But Vue's
reactivity flush runs before the await continuation in submit(), so
the layout swaps while the route is still /login, causing the login
form to flash inside the authenticated shell for ~250ms.
Fix by adding a route check: don't show the authenticated layout while
the current route is an auth page (login, register, password reset,
openid). The NoAuthWrapper stays visible until redirectIfSaved()
navigates away, then the authenticated layout renders cleanly.
2026-02-06 10:58:50 +01:00
kolaente
0e2ea5c42a
fix: avoid clearing saved redirect in onBeforeMount to prevent race with submit
...
When Login.vue re-mounts inside the authenticated layout after a
successful login, its onBeforeMount hook fires again. If it calls
redirectIfSaved(), it clears the saved route from localStorage before
the submit() handler's redirectIfSaved() can use it, causing a redirect
to home instead of the saved route. Use router.push({name: 'home'})
directly since the only purpose here is to redirect already-authenticated
users away from the login page.
2026-02-06 10:58:50 +01:00
kolaente
b3e95e9f4e
test: add E2E test for login form flash regression
2026-02-06 10:58:50 +01:00
kolaente
dcff454755
fix: redirect immediately after registration to prevent form flash in app shell
2026-02-06 10:58:50 +01:00
kolaente
8bccf21a81
fix: redirect immediately after login to prevent form flash in app shell
2026-02-06 10:58:50 +01:00