Files
truecharts/charts/stable/wekan
TrueCharts Bot d17817ed76 feat(wekan): update image docker.io/wekanteam/wekan v9.78 → v9.80 (#49956)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/wekanteam/wekan](https://redirect.github.com/wekan/wekan) |
minor | `bb5d0be` → `9b55511` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/18710) for more information.

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Release Notes

<details>
<summary>wekan/wekan (docker.io/wekanteam/wekan)</summary>

###
[`v9.80`](https://redirect.github.com/wekan/wekan/blob/HEAD/CHANGELOG.md#v980-2026-07-06-WeKan--release)

[Compare
Source](https://redirect.github.com/wekan/wekan/compare/v9.79...v9.80)

This release adds the following new features:

- **[Admin Panel Domains table: pagination, column sort and search (like
the Board Table
view)](https://redirect.github.com/wekan/wekan/issues/5850)**:
The Admin Panel > People > Domains table loaded every domain (aggregated
from all users) into the
browser at once, with a fixed order and no search. It now behaves like
the Board Table view: the
server aggregates the domains and returns only one small page, so the
whole list is never sent to
the browser. You can order by the Domain or Users column (click the
header to toggle ascending /
descending, with a ▲/▼ indicator) and filter with a search box;
prev/next controls page through the
results. The search + sort + slice runs in the new pure, unit-tested
`models/lib/domainTablePage.js`
behind a new `getDomainsWithUserCountsPage` admin method
(`server/models/users.js`), and the
`domainGeneral` template
(`client/components/settings/peopleBody.{jade,js,css}`) is now
self-contained and fetches only the current page. Covered by
`tests/domainTablePage.test.cjs`.
  Thanks to xet7.

and adds the following tests:

- **[Verified and added a regression test for the board-invitation email
language](https://redirect.github.com/wekan/wekan/commit/dfa6c78d4f032a698f6feaad189c86da903d27fb)**:
Confirmed that a board-invitation email is localised in the existing
recipient's own profile
language, or — when the invitee is a new account created by the invite —
in the inviter's profile
language, defaulting to `en` (`en.i18n.json`) when none is set. The
behaviour was already correct;
the language choice is now extracted into the pure, unit-tested
`models/lib/inviteEmailLanguage.js`
used by `inviteUserToBoard`, and locked in by
`tests/inviteEmailLanguage.test.cjs`.
  Thanks to xet7.

and fixes the following bugs:

- **[Linked-card minicard now shows the cover image of the real
card](https://redirect.github.com/wekan/wekan/commit/9ef7f4a07a6b40a2582af24b27fe133119adcd18)**:
A linked card (created by "Link card to this card") on one board did not
show the cover image of
the real card it points at on another board, even though the card's
other fields did. A linked
card is only a placeholder — its real content lives on the card at
`linkedId` — and every other
minicard getter resolves through the real card
(`getTitle`/`getReceived`/`getDue`/…), but the
cover helpers read `this.coverId` directly, and a linked card has no
`coverId` of its own. The
real card's cover attachment is already published to the linking board
(see the "linked cards" /
"attachments for linked cards" children of the `board` publication), so
this was purely a
client-side resolution gap. `Card.cover()` and the minicard `cover()`
helper now resolve the
cover id through the real card via the pure, unit-tested
`models/lib/linkedCardCover.js`; normal
  cards are unaffected. Covered by `tests/linkedCardCover.test.cjs`.
  Thanks to 32Dexter and xet7.

- **[Fix date-picker calendar stays fully visible when opened low on a
scrolled
page](https://redirect.github.com/wekan/wekan/commit/7a0eb61c0a4d3ace60f95cfbda7c1d70dff665ef)**:
Opening a date field (due/start/end date, or a date custom field) low on
the screen showed the
calendar popup extending past the visible area, and — because the
pop-over is `position: absolute`
(document coordinates) — scrolling to reach it moved the calendar along
with the page, so the full
calendar could never be seen (the workaround was to close it, drag the
field to the center and
reopen). `Popup._getOffset` computed the space above/below the opener
and the clamped `top` from
the opener's DOCUMENT offset mixed with the VIEWPORT height, ignoring
the page scroll, so on a
scrolled page the anchored popup landed outside the visible viewport.
The geometry now runs in
viewport coordinates (subtracting the page scroll) and clamps the popup
fully within the visible
viewport, then converts back to document coordinates for the absolute
style; when the page is not
scrolled the output is unchanged. Extracted the math into the pure,
unit-tested
`client/lib/popupOffset.js`, used by `client/lib/popup.js`. Covered by
`tests/popupOffset.test.cjs`.
  Thanks to MarcusDger and xet7.

Thanks to above GitHub users for their contributions and translators for
their translations.

###
[`v9.79`](https://redirect.github.com/wekan/wekan/blob/HEAD/CHANGELOG.md#v979-2026-07-06-WeKan--release)

[Compare
Source](https://redirect.github.com/wekan/wekan/compare/v9.78...v9.79)

This release fixes the following bugs:

- **[Fix #&#8203;6439: Custom (drag order) sort on All Boards page now
reorders via
drag-and-drop](https://redirect.github.com/wekan/wekan/commit/f8e31745d8104c58dc7bbcb4c1e4c615141a8e82)**:
On the All Boards page the jQuery-ui sortable that reordered boards in
the "Custom (drag order)"
mode was removed when the page switched to HTML5 drag-and-drop for
workspaces, and nothing
replaced it, so dragging a board showed a not-allowed cursor and never
updated
`profile.boardSortIndex`. Added HTML5 `dragover`/`drop` reorder handlers
on the board tiles in
`client/components/boards/boardsList.js` (active only in the custom sort
mode), a
`setBoardSortIndexes` helper in `models/users.js` to persist the new
order in one write, a
drop-hint style in `client/components/boards/boardsList.css`, and
extracted the reorder
decision/index math into the pure, unit-tested
`models/lib/boardSortReorder.js`. Covered by
  `tests/boardSortReorder.test.cjs`.
  Thanks to jullbo and xet7.

- **[Fix #&#8203;6440: '+' add-item button on minicard checklist does
nothing](https://redirect.github.com/wekan/wekan/commit/dd90995db74593228d40bc504405620ec09c175d)**:
On the minicard the checklist add-item `<form>` is rendered inside the
`a.minicard-wrapper`
anchor, so the native form `submit` event never reached the Blaze event
map — the
[#&#8203;5565](https://redirect.github.com/wekan/wekan/issues/5565)
minicard-checklist work wired only a `submit .js-add-checklist-item`
handler (which never fires
there) and gave the Save button no click handler, so clicking "+" Save
did nothing. Added an
  explicit `click .js-submit-add-checklist-item-form` handler in
`client/components/cards/minicard.js` (mirroring the working edit-item
button) that inserts the
item, with the blank-input guard and title parsing extracted into the
pure, Meteor-free
`models/lib/checklistItemTitles.js`. Card-detail checklists are
unaffected. Covered by
  `tests/checklistItemTitles.test.cjs`.
  Thanks to jullbo and xet7.

- **[Fix #&#8203;6441: label filter now applies board-wide across all
swimlanes](https://redirect.github.com/wekan/wekan/commit/9dca403782d476eb3c593fe614848ef02bb7f5a3)**:
A label filter hid non-matching cards in one swimlane (e.g. "Focus") but
left another swimlane
(e.g. "Background") unfiltered. Each list scopes its cards to the
current swimlane while also
showing shared/orphaned cards that have no swimlane; that fallback was
written as a bare
top-level `$or`, which competes with the board Filter's own top-level
`$or` (label/member
criteria) when the two selectors are combined — dropping the label
criterion in every swimlane
except the default one. The swimlane-membership fallback is now a single
`swimlaneId: { $in: [id, null, ''] }` clause (the same form already used
in `sidebarFilters.js`,
`cardDetails.js` and `dialogWithBoardSwimlaneList.js`), extracted to the
pure, unit-tested
`models/lib/swimlaneFilter.js` and used by
`client/components/lists/listBody.js` and
`models/lists.js`, so no second `$or` exists and the filter is always
`$and`-combined and applied
  board-wide. Covered by `tests/swimlaneFilter.test.cjs`.
  Thanks to jullbo and xet7.

- **[Fix flaky server-side Mocha test (i18n zh-CN "is not a
spy")](https://redirect.github.com/wekan/wekan/commit/fc4eadedc9109602ee029b60c44eeda869aa98c3)**:
The server-side Mocha suite intermittently reported "1 failing" on the
[#&#8203;5756](https://redirect.github.com/wekan/wekan/issues/5756)
`imports/i18n/i18n.test.js` region-tag test with `TypeError: [Function]
is not a spy`. The
assertion re-read `TAPi18n.i18n.addResourceBundle`, and the sinon-chai
matcher (routed through
chai-as-promised) could evaluate after this suite's `afterEach` had
already run
`sinon.restore()` — at which point the property is the original
function, not the stub. The
`.loadLanguage` tests now assert on the captured stub reference (restore
unwraps the property but
leaves the spy intact), which is deterministic. Reproduced and verified
with a standalone
  sinon/chai script.
  Thanks to xet7.

Thanks to above GitHub users for their contributions and translators for
their translations.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **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 has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEzMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImFwcC93ZWthbiIsImF1dG9tZXJnZSIsInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->
2026-07-06 20:07:12 +02:00
..

title
title
README

General Info

For more information about this Chart, please check the docs on the TrueCharts website

This chart is not maintained by the upstream project and any issues with the chart should be raised here

Installation

Helm-Chart installation

To install TrueCharts Helm charts using Helm, you can use our OCI Repository.

helm install mychart oci://oci.trueforge.org/truecharts/wekan

For more information on how to install TrueCharts Helm charts, checkout the instructions on the website

Chart Specific Guides and information

All our charts have dedicated documentation pages. The documentation for this chart can be found here: https://truecharts.org/charts/stable/wekan

Configuration Options

To view the chart specific options, please view Values.yaml included in the chart. The most recent version of which, is available here: https://github.com/trueforge-org/truecharts/blob/master/charts/stable/wekan/values.yaml

All our Charts use a shared "common" library chart that contains most of the templating and options. For the complete overview of all available options, please checkout the documentation for them on the common docs on our website

For information about the common chart and all defaults included with it, please review its values.yaml file available here: https://github.com/trueforge-org/truecharts/blob/master/charts/library/common/values.yaml

Support


Sponsor TrueCharts

TrueCharts can only exist due to the incredible effort of our staff. Please consider making a donation or contributing back to the project any way you can!

All Rights Reserved - The TrueCharts Project