[PR #2334] [MERGED] feat(gantt): add task hierarchy and relation arrows #9909

Closed
opened 2026-04-23 09:16:52 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/2334
Author: @kolaente
Created: 3/2/2026
Status: Merged
Merged: 3/3/2026
Merged by: @kolaente

Base: mainHead: feat-gantt-relations


📝 Commits (10+)

  • 98f7495 feat(gantt): add expand=subtasks to Gantt API params
  • 087d792 feat(gantt): add task tree builder utility for hierarchy
  • 44d3244 feat(gantt): add dependency arrow data builder
  • b3d6343 feat(gantt): integrate task tree into Gantt rendering with collapse
  • c231554 feat(gantt): add collapse/expand chevron and indent indicators
  • 2cffbd1 feat(gantt): render parent summary bars with diamond endpoints
  • aa8ed91 feat(gantt): create arrow SVG overlay component for relations
  • 6f50240 feat(gantt): wire relation arrows into GanttChart with toggle
  • 6986612 fix(gantt): always show relation arrows and fix arrow Y positioning
  • ac1406a fix(gantt): update relation arrows in real-time during drag and resize

📊 Changes

10 files changed (+1058 additions, -54 deletions)

View changed files

📝 frontend/src/components/gantt/GanttChart.vue (+268 -52)
frontend/src/components/gantt/GanttRelationArrows.vue (+127 -0)
📝 frontend/src/components/gantt/GanttRowBars.vue (+121 -1)
📝 frontend/src/composables/useGanttBar.ts (+3 -0)
frontend/src/helpers/ganttRelationArrows.spec.ts (+117 -0)
frontend/src/helpers/ganttRelationArrows.ts (+122 -0)
frontend/src/helpers/ganttTaskTree.spec.ts (+141 -0)
frontend/src/helpers/ganttTaskTree.ts (+154 -0)
📝 frontend/src/i18n/lang/en.json (+4 -1)
📝 frontend/src/views/project/helpers/useGanttFilters.ts (+1 -0)

📄 Description

Summary

  • Add task hierarchy support to the Gantt chart: subtasks are fetched via expand=subtasks, displayed with indentation, and can be collapsed/expanded. Parent tasks render as summary bars with diamond endpoints.
  • Add relation arrows (blocking / precedes) drawn as SVG overlays between related tasks. Blocking arrows are solid red, precedes arrows are dashed grey. Arrows update in real-time during drag and resize operations.
  • When multiple arrows share the same endpoint, they spread vertically to avoid overlap.

Test plan

  • Verify subtasks appear indented under parent tasks in the Gantt view
  • Verify clicking the chevron collapses/expands child tasks
  • Verify parent tasks render with diamond-shaped summary bars
  • Verify blocking relations show solid red arrows
  • Verify precedes relations show dashed grey arrows
  • Verify arrows follow tasks in real-time during drag and resize
  • Verify arrows targeting collapsed children re-route to the parent bar
  • Verify multiple arrows converging on the same task spread vertically

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/2334 **Author:** [@kolaente](https://github.com/kolaente) **Created:** 3/2/2026 **Status:** ✅ Merged **Merged:** 3/3/2026 **Merged by:** [@kolaente](https://github.com/kolaente) **Base:** `main` ← **Head:** `feat-gantt-relations` --- ### 📝 Commits (10+) - [`98f7495`](https://github.com/go-vikunja/vikunja/commit/98f74950bd0121efad2c10a7bf568c88d535ebbe) feat(gantt): add expand=subtasks to Gantt API params - [`087d792`](https://github.com/go-vikunja/vikunja/commit/087d79286283ffef971b6437ad858fc5ea3359b6) feat(gantt): add task tree builder utility for hierarchy - [`44d3244`](https://github.com/go-vikunja/vikunja/commit/44d324447b9972f84e963410c7a28ecf74ef53ac) feat(gantt): add dependency arrow data builder - [`b3d6343`](https://github.com/go-vikunja/vikunja/commit/b3d6343ddac8d3688d72d57e57492bd28c277b7c) feat(gantt): integrate task tree into Gantt rendering with collapse - [`c231554`](https://github.com/go-vikunja/vikunja/commit/c231554680612a01f33fd58b3336709a4b209a7c) feat(gantt): add collapse/expand chevron and indent indicators - [`2cffbd1`](https://github.com/go-vikunja/vikunja/commit/2cffbd1904db33e62f10b35933a4fada1400a521) feat(gantt): render parent summary bars with diamond endpoints - [`aa8ed91`](https://github.com/go-vikunja/vikunja/commit/aa8ed91cffbf5184bbfc8aead6bfec23303d68ef) feat(gantt): create arrow SVG overlay component for relations - [`6f50240`](https://github.com/go-vikunja/vikunja/commit/6f50240afe7d6bffcb2900186542abfd8e55e2c1) feat(gantt): wire relation arrows into GanttChart with toggle - [`6986612`](https://github.com/go-vikunja/vikunja/commit/69866129d10acdf0be488bf68edf84f8257a3d59) fix(gantt): always show relation arrows and fix arrow Y positioning - [`ac1406a`](https://github.com/go-vikunja/vikunja/commit/ac1406a243599208a34f99964117270472880837) fix(gantt): update relation arrows in real-time during drag and resize ### 📊 Changes **10 files changed** (+1058 additions, -54 deletions) <details> <summary>View changed files</summary> 📝 `frontend/src/components/gantt/GanttChart.vue` (+268 -52) ➕ `frontend/src/components/gantt/GanttRelationArrows.vue` (+127 -0) 📝 `frontend/src/components/gantt/GanttRowBars.vue` (+121 -1) 📝 `frontend/src/composables/useGanttBar.ts` (+3 -0) ➕ `frontend/src/helpers/ganttRelationArrows.spec.ts` (+117 -0) ➕ `frontend/src/helpers/ganttRelationArrows.ts` (+122 -0) ➕ `frontend/src/helpers/ganttTaskTree.spec.ts` (+141 -0) ➕ `frontend/src/helpers/ganttTaskTree.ts` (+154 -0) 📝 `frontend/src/i18n/lang/en.json` (+4 -1) 📝 `frontend/src/views/project/helpers/useGanttFilters.ts` (+1 -0) </details> ### 📄 Description ## Summary - Add task hierarchy support to the Gantt chart: subtasks are fetched via `expand=subtasks`, displayed with indentation, and can be collapsed/expanded. Parent tasks render as summary bars with diamond endpoints. - Add relation arrows (blocking / precedes) drawn as SVG overlays between related tasks. Blocking arrows are solid red, precedes arrows are dashed grey. Arrows update in real-time during drag and resize operations. - When multiple arrows share the same endpoint, they spread vertically to avoid overlap. ## Test plan - [x] Verify subtasks appear indented under parent tasks in the Gantt view - [x] Verify clicking the chevron collapses/expands child tasks - [x] Verify parent tasks render with diamond-shaped summary bars - [x] Verify blocking relations show solid red arrows - [x] Verify precedes relations show dashed grey arrows - [x] Verify arrows follow tasks in real-time during drag and resize - [x] Verify arrows targeting collapsed children re-route to the parent bar - [x] Verify multiple arrows converging on the same task spread vertically --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-23 09:16:52 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#9909