Commit Graph

12846 Commits

Author SHA1 Message Date
kolaente
6733ac4e22 test: add task #47 with reminders outside window for bug #2245
Add a second reminder to task 2 (in 2019, outside the test window)
and create task #47 with two reminders that straddle the test window
(2018-08-01 and 2019-03-01) but neither falls inside it. This exposes
the multi-row matching bug where separate EXISTS subqueries can match
different rows in the same sub-table.
2026-02-19 12:40:29 +01:00
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
kolaente
50983a9bb2 fix(build): use absolute path for zip output in release
The zip command in Release.Zip() sets its working directory to the
release subfolder but used a relative output path, causing it to
resolve against the wrong directory. This was a latent bug surfaced
by e19a61479 which removed the global RootPath variable.

Fix by resolving the zip output path to an absolute path using
os.Getwd() at the start of the function.
2026-02-18 17:05:40 +01:00
Mattia Maglie
8779a28d1d fix: prevent duplicated sql condition in filters (#1546)
Proposing the fix as in #1545

Co-authored-by: mattia.maglie <mattia.maglie@alispa.com>
Co-authored-by: kolaente <k@knt.li>
2026-02-18 17:02:25 +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)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/electron-builder/26.8.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-builder/26.8.0/26.8.1?slim=true)
|
| [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) |
![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/20.6.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/20.6.1/20.6.2?slim=true)
|

---

### 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
**[@&#8203;acollins1991](https://redirect.github.com/acollins1991)** in
task
[#&#8203;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
renovate[bot]
b9e571fd0d chore(deps): update dependency electron-builder to v26.8.0 (#2253)
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.7.0` →
`26.8.0`](https://renovatebot.com/diffs/npm/electron-builder/26.7.0/26.8.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/electron-builder/26.8.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-builder/26.7.0/26.8.0?slim=true)
|

---

### Release Notes

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

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

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

##### Minor Changes

- Feat(win): adding support for latest artifacts for win-codesign
tooling to be pulled from `electron-builder-binaries`
*[`#9430`](https://redirect.github.com/electron-userland/electron-builder/pull/9430)
[`1b39a8e`](1b39a8e23c)
[@&#8203;mmaietta](https://redirect.github.com/mmaietta)*

##### Patch Changes

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

<small>


[`cd7c0d9`](cd7c0d9a73)
[`c18f0eb`](c18f0eb26b)
[`769b608`](769b6080a7)
[`9ba36f9`](9ba36f9879)
[`1b113b7`](1b113b758d)
[`1b39a8e`](1b39a8e23c)

</small>

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

</details>

</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yMi4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-18 16:28:29 +01: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
kolaente
500920b7c1 chore(deps): upgrade qs to 6.15.0 2026-02-18 10:20:29 +01:00
kolaente
0fd53cda4b chore(deps): upgrade node-tar to 7.5.9 2026-02-18 10:18:54 +01:00
Quiwy
6dbc108be8 feat(auth): allow LDAP authentication with anonymous bind (#2226)
As discussed on Matrix, Vikunja currently prevents users from using LDAP
authentication if the server allows anonymous binds (common in local
environments like YunoHost). The application would previously trigger a
`log.Fatal` if `AuthLdapBindDN` or `AuthLdapBindPassword` were left
empty in the configuration.

#### **How this fixes the problem:**

* **Validation:** Removed the strict requirement for Bind credentials in
`InitializeLDAPConnection`.
* **Connection Logic:** Updated `ConnectAndBindToLDAPDirectory` to
attempt an `UnauthenticatedBind` from the `go-ldap` library when no
credentials are provided.
* **Safety:** If a Bind DN is provided, the behavior remains unchanged
(authenticated bind).

#### **Testing:**

* Tested manually on a **YunoHost** instance by replacing the binary.
* Confirmed that Vikunja now successfully starts and authenticates users
via the local LDAP (localhost) without requiring a service account.
* Added a basic unit test in `pkg/modules/auth/ldap/ldap_test.go` to
ensure the initialization logic doesn't crash with empty credentials.

*Note: This is my first contribution to a Go project (assisted by an LLM
for syntax). Feedback on code style is more than welcome!*
2026-02-17 22:24:35 +01:00
dependabot[bot]
ae06956364 chore(deps): bump github.com/labstack/echo/v5 from 5.0.0 to 5.0.3 (#2252)
Bumps [github.com/labstack/echo/v5](https://github.com/labstack/echo)
from 5.0.0 to 5.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/labstack/echo/releases">github.com/labstack/echo/v5's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.3 security (static middleware directory traversal under
Windows)</h2>
<p>Fix directory traversal vulnerability under Windows in Static
middleware when default Echo filesystem is used. Reported by <a
href="https://github.com/shblue21"><code>@​shblue21</code></a> (<a
href="https://redirect.github.com/labstack/echo/pull/2891">labstack/echo#2891</a>).</p>
<p>This applies to cases when:</p>
<ul>
<li>Windows is used as OS</li>
<li><code>middleware.StaticConfig.Filesystem</code> is <code>nil</code>
(default)</li>
<li><code>echo.Filesystem</code> is has not been set explicitly
(default)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/labstack/echo/compare/v5.0.2...v5.0.3">https://github.com/labstack/echo/compare/v5.0.2...v5.0.3</a></p>
<h2>v5.0.2 security (static middleware folder browsing)</h2>
<p><strong>Security</strong></p>
<ul>
<li>Fix Static middleware when folder browsing is enabled
(<code>config.Browse=true</code> , defaults to <code>false</code>) lists
all files/subfolders from <code>config.Filesystem</code> root folder and
not starting from <code>config.Root</code> and requested folder in <a
href="https://redirect.github.com/labstack/echo/pull/2887">labstack/echo#2887</a>
. Reported by <a
href="https://github.com/shblue21"><code>@​shblue21</code></a> in <a
href="https://redirect.github.com/labstack/echo/issues/2886">labstack/echo#2886</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/labstack/echo/compare/v5.0.1...v5.0.2">https://github.com/labstack/echo/compare/v5.0.1...v5.0.2</a></p>
<h2>v5.0.1 small fixes</h2>
<h2>What's Changed</h2>
<ul>
<li>Panic MW: will now return a custom PanicStackError with stack trace
by <a href="https://github.com/aldas"><code>@​aldas</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2871">labstack/echo#2871</a></li>
<li>Docs: add missing err parameter to DenyHandler example by <a
href="https://github.com/cgalibern"><code>@​cgalibern</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2878">labstack/echo#2878</a></li>
<li>Context: improve websocket checks in IsWebSocket() [per RFC 6455] by
<a
href="https://github.com/raju-mechatronics"><code>@​raju-mechatronics</code></a>
in <a
href="https://redirect.github.com/labstack/echo/pull/2875">labstack/echo#2875</a></li>
<li>Fix: Context.Json() should not send status code before serialization
is complete by <a
href="https://github.com/aldas"><code>@​aldas</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2877">labstack/echo#2877</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/cgalibern"><code>@​cgalibern</code></a>
made their first contribution in <a
href="https://redirect.github.com/labstack/echo/pull/2878">labstack/echo#2878</a></li>
<li><a
href="https://github.com/raju-mechatronics"><code>@​raju-mechatronics</code></a>
made their first contribution in <a
href="https://redirect.github.com/labstack/echo/pull/2875">labstack/echo#2875</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/labstack/echo/compare/v5.0.0...v5.0.1">https://github.com/labstack/echo/compare/v5.0.0...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/labstack/echo/blob/master/CHANGELOG.md">github.com/labstack/echo/v5's
changelog</a>.</em></p>
<blockquote>
<h2>v5.0.3 - 2026-02-06</h2>
<p><strong>Security</strong></p>
<ul>
<li>Fix directory traversal vulnerability under Windows in Static
middleware when default Echo filesystem is used. Reported by <a
href="https://github.com/shblue21"><code>@​shblue21</code></a>.</li>
</ul>
<p>This applies to cases when:</p>
<ul>
<li>Windows is used as OS</li>
<li><code>middleware.StaticConfig.Filesystem</code> is <code>nil</code>
(default)</li>
<li><code>echo.Filesystem</code> is has not been set explicitly
(default)</li>
</ul>
<p>Exposure is restricted to the active process working directory and
its subfolders.</p>
<h2>v5.0.2 - 2026-02-02</h2>
<p><strong>Security</strong></p>
<ul>
<li>Fix Static middleware with <code>config.Browse=true</code> lists all
files/subfolders from <code>config.Filesystem</code> root and not
starting from <code>config.Root</code> in <a
href="https://redirect.github.com/labstack/echo/pull/2887">labstack/echo#2887</a></li>
</ul>
<h2>v5.0.1 - 2026-01-28</h2>
<ul>
<li>Panic MW: will now return a custom PanicStackError with stack trace
by <a href="https://github.com/aldas"><code>@​aldas</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2871">labstack/echo#2871</a></li>
<li>Docs: add missing err parameter to DenyHandler example by <a
href="https://github.com/cgalibern"><code>@​cgalibern</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2878">labstack/echo#2878</a></li>
<li>improve: improve websocket checks in IsWebSocket() [per RFC 6455] by
<a
href="https://github.com/raju-mechatronics"><code>@​raju-mechatronics</code></a>
in <a
href="https://redirect.github.com/labstack/echo/pull/2875">labstack/echo#2875</a></li>
<li>fix: Context.Json() should not send status code before serialization
is complete by <a
href="https://github.com/aldas"><code>@​aldas</code></a> in <a
href="https://redirect.github.com/labstack/echo/pull/2877">labstack/echo#2877</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b1d443086e"><code>b1d4430</code></a>
Merge pull request <a
href="https://redirect.github.com/labstack/echo/issues/2891">#2891</a>
from aldas/fix_staticmw</li>
<li><a
href="48f25a6c16"><code>48f25a6</code></a>
Fix test reporting different size due Windows / Linux line ending
inconsisten...</li>
<li><a
href="6c162596b4"><code>6c16259</code></a>
Fix directory traversal vulnerability under Windows in Static middleware
when...</li>
<li><a
href="88d975a83d"><code>88d975a</code></a>
Fix directory traversal vulnerability under Windows in Static middleware
when...</li>
<li><a
href="09ccfbaace"><code>09ccfba</code></a>
Fill c.Request().Pattern field with route path to help standard library
based...</li>
<li><a
href="68aaf3a429"><code>68aaf3a</code></a>
Changelog for version 5.0.2</li>
<li><a
href="26ec148ea7"><code>26ec148</code></a>
security (static middleware): fix bowser=true listing all file names
from giv...</li>
<li><a
href="ba104908b9"><code>ba10490</code></a>
Merge pull request <a
href="https://redirect.github.com/labstack/echo/issues/2880">#2880</a>
from aldas/changelog_501</li>
<li><a
href="0954d6e36e"><code>0954d6e</code></a>
Changelog for v5.0.1 release</li>
<li><a
href="8e4c91f736"><code>8e4c91f</code></a>
Create SECURITY.md</li>
<li>Additional commits viewable in <a
href="https://github.com/labstack/echo/compare/v5.0.0...v5.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/labstack/echo/v5&package-manager=go_modules&previous-version=5.0.0&new-version=5.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/go-vikunja/vikunja/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-17 21:26:04 +01:00
John Starich
122ba30339 fix: replace stray panic with return err 2026-02-17 18:01:05 +01:00
John Starich
b2715bb56d refactor: use Go idioms for running tests 2026-02-17 18:01:05 +01:00
John Starich
c773e2e828 refactor: switch to native filepath.Walk for gofmt file discovery 2026-02-17 18:01:05 +01:00
John Starich
d8983b740a refactor: return errors to Mage instead of os.Exit and stream to stdout/stderr 2026-02-17 18:01:05 +01:00
John Starich
fc0e0f5ea0 feat: toggle test verbosity based on Mage verbose flag 2026-02-17 18:01:05 +01:00
John Starich
8dbff21834 fix: add missing error checks in filepath.Walk and defer Close locations 2026-02-17 18:01:05 +01:00
John Starich
e19a61479e refactor: remove root path in favor of Magefile default directory 2026-02-17 18:01:05 +01:00
John Starich
cba5f6b2f4 style: fix doc comments to match godoc style 2026-02-17 18:01:05 +01:00
John Starich
591a646f84 refactor: remove environment variable requirements for go test 2026-02-17 18:01:05 +01:00
John Starich
65ef54f623 style: run gofmt -s to update octal literals 2026-02-17 18:01:05 +01:00
Micah
31da3c4533 fix(migration): make migration from Microsoft Todo work for those with previously migrated wunderlist accounts (#2126) 2026-02-17 16:54:03 +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
8f48b585b7 feat: add dependency diff and provenance GitHub Action for PRs 2026-02-17 12:00:31 +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]
0dff1bba0b chore(deps): update dependency electron to v40.4.1 2026-02-13 20:20:31 +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
kolaente
79d0942780 fix: use DelPrefix in upload avatar FlushCache to clear all cached sizes
FlushCache was using keyvalue.Del with the base key
(avatar_upload_{userID}) but the actual cache entries are stored with
size suffixes (avatar_upload_{userID}_{size}). The Del call targeted a
key that never existed, so cached avatars were never invalidated.

Switch to keyvalue.DelPrefix to delete all size variants at once,
matching the pattern the gravatar provider already uses correctly.
2026-02-13 09:31:28 +01:00