nextcloud / deck

🗂 Kanban-style project & personal management tool for Nextcloud, similar to Trello
https://apps.nextcloud.com/apps/deck
GNU Affero General Public License v3.0
1.22k stars 278 forks source link

Links to Stacks of Cards in a Board #6390

Open MaykGyver opened 1 month ago

MaykGyver commented 1 month ago

Scenario

A user wants to link to a specific stack of cards in a deck board.

Attempts

  1. Links to the URL of the board (schema: https://example.org/apps/deck/board/NNNN) are easy. But if the referenced stack is outside of the initial viewport, the user has to close the conceptual gap and search for the referenced stack by scrolling.
  2. Links to the board with a text highlight (schema: https://example.org/apps/deck/board/NNNN#:~:text=foo%20bar) are possible. Closing the gap (see 1) is easier as the stack's caption is highlighted. If the stack is outside the viewport, the user is assisted by the browser. If there are multiple occurrences of the stack's caption the user has to figure that the stack was meant and not one of the other occurrences on the page.
  3. Inspected the DOM of a board view. Found no anchors, ids nor names in the branch of the stack.
  4. My humble search skills yielded no discussion of the usage scenario.

Proposed Solution

The most concise DOM element for referencing a stack might be the h3 element with title="stack.title" and class="stack__title". Its id attribute is not used yet. The id might be generated from a distinguishing prefix (e.g. stack-) and an identifying suffix (e.g. foo-bar) might yield an id of stack-foo-bar for a stack with the caption "Foo Bar". A link to the stack's id (schema: https://example.org/apps/deck/board/NNNN#stack-foo-bar) focusses the stack on a potentially huge page with all of the browser's capabilities.

Alternative and Optional Solutions

luka-nextcloud commented 1 month ago

@MaykGyver I prefer solution A distinct page for a stack (schema: https://example.org/apps/deck/board/NNNN/stack/foo-bar) but url should be https://example.org/apps/deck/board/{boardId}/stack/{stackId}