trackslash
TRACK-85 P2

Show a small sprint badge on issues in the All issues list when sprints are enabled

0
All issues

Description

Problem

When a project has sprints enabled, the All issues list (project-all-issue-page, project_issue_lists.html:11) doesn't show whether each issue is assigned to a sprint. Each row uses issue-summary-row (components.html:366), which shows the key, priority, title, tags, sub-issue progress, due date and status. Nothing indicates the sprint, so you can't see at a glance which issues are sprinted and which are still unplanned.

Expected behavior

  • In projects with sprints enabled, an issue that is assigned to a sprint shows a very small badge in its row: an "S" in a small box, sized to match the other row badges.
  • Hovering the badge shows which sprint the issue is in: the sprint's name and ref, e.g. "sprint-3 · UI polish", plus its state (active / planned / completed).
  • Issues that aren't in a sprint show no badge. Unsprinted issues stand out by having no badge.
  • In projects with sprints disabled, no badge is shown.

Acceptance criteria

  • The badge is rendered only when the project has SprintsEnabled and the issue has a SprintID (model.Issue.SprintID).
  • The tooltip shows the sprint name and ref. The existing convention is a title attribute (see components.html:184). The badge also has an aria-label / sr-only text such as "In sprint UI polish", so screen readers don't just hear "S".
  • The badge sits inside the row's <a>, so it must not add a nested link or interactive element.
  • Sprint names are loaded once per list request, e.g. a map from sprint ID to sprint for the project. No per-row queries.
  • Rows loaded by infinite scroll (NextHXGet) include the badge too.
  • Decide which other lists that use issue-summary-row should show it. It's redundant in views already grouped by sprint (sprint pages, backlog), so hide it there.
  • Works on mobile, where the row stacks, and in light and dark modes.
  • Tests cover: badge shown for a sprinted issue with the right sprint name, no badge for an unsprinted issue, and no badge when sprints are disabled.

Related

TRACK-68 added the per-project sprints setting.

Sub-issues

0

Linked issues

0

GitHub

0

No branches or pull requests linked.

Comments

1
Bradley

Fixed in https://github.com/badbundle/track-slash-app/pull/176 (merged as 835203b).

In sprint mode, each All-list row whose issue is in a sprint shows a new issue-sprint-badge: a 20px indigo "S" square.

  • Hover: the shared app tooltip shows In sprint-3 · UI polish (active). An sr-only label says the same, and the "S" itself is aria-hidden.
  • Loading: the All page and its infinite-scroll pages load every sprint they need in one query through the new store.ListSprintsByID, which leaves out deleted sprints and other projects' sprints.
  • Where it doesn't show: rows not in a sprint, projects with sprints off, and views already grouped by sprint (the Sprint board, Planned, Sprint history).