Skip to content

fix: board notify-due - #7990

Merged
samin-z merged 1 commit into
mainfrom
fix/board-preference-permissions
May 29, 2026
Merged

fix: board notify-due#7990
samin-z merged 1 commit into
mainfrom
fix/board-preference-permissions

Conversation

@samin-z

Copy link
Copy Markdown
Contributor

No description provided.

Signed-off-by: samin-z <samin.zavarkesh@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 97474 was 93102 (+4.69%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

@samin-z
samin-z merged commit 8e60fe8 into mainMay 29, 2026
43 checks passed
@samin-z
samin-z deleted the fix/board-preference-permissions branch May 29, 2026 08:58
@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable33

@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable32

@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable31

@backportbotbackportbotBot mentioned this pull request May 29, 2026
3 tasks
@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable30

@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable29

@backportbotbackportbotBot mentioned this pull request May 29, 2026
3 tasks
Pavlinchen added a commit to Pavlinchen/deck that referenced this pull request Jun 13, 2026
Adds an optional swimlane view that groups cards into horizontal lanes
by label or assignee, with a "No label" / "Unassigned" catchall lane.
Cards with multiple labels appear in every matching lane with a
duplicate badge. The flat board stays the default.
Implementation:
- Swimlane mode and lane order are shared board settings (setAppValue),
gated by PERMISSION_EDIT in ConfigController::setValue() following the
pattern from nextcloud#7990. ConfigService rejects non-numeric board ids on
the shared path and shape-validates values (mode enum, JSON array of
lane ids, max 1000 entries / 8KB) before storing.
- Lane collapse state is per-user in localStorage.
- New components: Swimlane.vue, SwimlaneHeader.vue. Stack.vue gained
`header-only` / `hide-header` props so list headers render once in a
sticky row above the lanes, sharing one horizontal scroll context.
- Lanes computed reactively from cards' labels/assignees; lane order is
deterministic (saved order first, ID fallback). Store mutations are
optimistic with rollback on dispatch failure.
Tests: PHPUnit ConfigServiceTest covers all three config keys, board
id validation, value validation, and the per-user vs shared storage
split. Cypress swimlanesFeatures covers grouping modes, multi-label
cards, persistence across reload, and the editor-only restriction
(API 403 + disabled UI controls).
Closesnextcloud#32
Signed-off-by: Pavlinchen <69079839+Pavlinchen@users.noreply.github.com>
@samin-z

Copy link
Copy Markdown
ContributorAuthor

/backport to stable34

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@samin-z@benjaminfrueh