[PR #1001] [MERGED] feat: rebuild the gantt chart #1140

Closed
opened 2025-11-01 21:11:50 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/1001
Author: @kolaente
Created: 6/24/2025
Status: Merged
Merged: 8/12/2025
Merged by: @kolaente

Base: mainHead: codex/reimplement-gantt-chart-based-on-spec


📝 Commits (10+)

📊 Changes

19 files changed (+1520 additions, -359 deletions)

View changed files

📝 frontend/cypress/e2e/project/project-view-gantt.spec.ts (+41 -12)
📝 frontend/package.json (+0 -1)
📝 frontend/pnpm-lock.yaml (+0 -50)
frontend/src/components/gantt/GanttChart.vue (+507 -0)
frontend/src/components/gantt/GanttChartBody.vue (+41 -0)
frontend/src/components/gantt/GanttRow.vue (+40 -0)
frontend/src/components/gantt/GanttRowBars.vue (+308 -0)
frontend/src/components/gantt/GanttTimelineHeader.vue (+157 -0)
frontend/src/components/gantt/GanttVerticalGridLines.vue (+45 -0)
frontend/src/components/gantt/primitives/GanttBarPrimitive.vue (+81 -0)
frontend/src/components/gantt/primitives/GanttChartPrimitive.vue (+81 -0)
frontend/src/components/gantt/primitives/GanttRowPrimitive.vue (+43 -0)
📝 frontend/src/components/misc/keyboard-shortcuts/shortcuts.ts (+30 -0)
📝 frontend/src/components/project/views/ProjectGantt.vue (+1 -2)
frontend/src/components/tasks/GanttChart.vue (+0 -288)
frontend/src/composables/useGanttBar.ts (+108 -0)
frontend/src/helpers/color/getTextColor.ts (+11 -0)
📝 frontend/src/i18n/lang/en.json (+24 -1)
📝 frontend/src/models/label.ts (+2 -5)

📄 Description

Things left to do

  • Use the GanttBarPrimitive and the styled variant - currently it is implemented directly into NewGanttChart
  • Rename NewGanttChart and remove the old implementation
  • Make the vertical lines in the background work
  • Adjust cypress tests
  • Clean up the structure of the new chart, remove everything that's not useful
  • Inline all prop type definitions for consistsency
  • Fix focus handling

Closes https://github.com/go-vikunja/vikunja/pull/1053
Resolves https://github.com/go-vikunja/vikunja/issues/855

Summary by CodeRabbit

  • New Features

    • Rebuilt interactive Gantt chart with drag-to-move, resize handles, and double‑click to open tasks
    • Keyboard navigation and focus management for rows/cells
    • Sticky timeline header with months and days (includes year) and vertical grid lines
    • Enhanced accessibility with ARIA labels and improved bar text contrast
    • Alternating row backgrounds for readability
  • Translations

    • Added comprehensive Gantt-related strings (chart label, month/day labels, resize prompts, date types)
  • Tests

    • Updated end-to-end tests to new DOM structure and pointer-based interactions
  • Chores

    • Removed an unused Gantt dependency

🔄 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/1001 **Author:** [@kolaente](https://github.com/kolaente) **Created:** 6/24/2025 **Status:** ✅ Merged **Merged:** 8/12/2025 **Merged by:** [@kolaente](https://github.com/kolaente) **Base:** `main` ← **Head:** `codex/reimplement-gantt-chart-based-on-spec` --- ### 📝 Commits (10+) - [`1b5bbf2`](https://github.com/go-vikunja/vikunja/commit/1b5bbf24947191988ebff7b978841a4385a1f1a4) feat(frontend): scaffold new gantt chart library - [`4a2c139`](https://github.com/go-vikunja/vikunja/commit/4a2c1392c58de097abf94b201048085e269b1343) fix lint - [`42df77d`](https://github.com/go-vikunja/vikunja/commit/42df77dd0a862bfc976ae6a94687e2c9cf7e07cd) make the build work - [`565264c`](https://github.com/go-vikunja/vikunja/commit/565264cae1ac2cc05146c01ced21ad4e36477182) chore: remove useTheme - [`335ea70`](https://github.com/go-vikunja/vikunja/commit/335ea70d04152d14b3553f43ffd7c637a4ee9a72) feat: replace gantt chart - [`77fa5a7`](https://github.com/go-vikunja/vikunja/commit/77fa5a7bfbd1bdac469b62ff24d7f2fb7f24fcc0) foo - [`5c121da`](https://github.com/go-vikunja/vikunja/commit/5c121da1eabd662094f034d06841f2f98de276a3) fix timeline month - [`ece3321`](https://github.com/go-vikunja/vikunja/commit/ece3321373b1b8cda8b26fdce3df9619d0660237) fix stuff - [`2773cf7`](https://github.com/go-vikunja/vikunja/commit/2773cf7c661c9455e21527ecf613b09af5958781) remove debug - [`a2cc405`](https://github.com/go-vikunja/vikunja/commit/a2cc405e9dfec0c27176319ea24f59ef1e841447) only emit on drop ### 📊 Changes **19 files changed** (+1520 additions, -359 deletions) <details> <summary>View changed files</summary> 📝 `frontend/cypress/e2e/project/project-view-gantt.spec.ts` (+41 -12) 📝 `frontend/package.json` (+0 -1) 📝 `frontend/pnpm-lock.yaml` (+0 -50) ➕ `frontend/src/components/gantt/GanttChart.vue` (+507 -0) ➕ `frontend/src/components/gantt/GanttChartBody.vue` (+41 -0) ➕ `frontend/src/components/gantt/GanttRow.vue` (+40 -0) ➕ `frontend/src/components/gantt/GanttRowBars.vue` (+308 -0) ➕ `frontend/src/components/gantt/GanttTimelineHeader.vue` (+157 -0) ➕ `frontend/src/components/gantt/GanttVerticalGridLines.vue` (+45 -0) ➕ `frontend/src/components/gantt/primitives/GanttBarPrimitive.vue` (+81 -0) ➕ `frontend/src/components/gantt/primitives/GanttChartPrimitive.vue` (+81 -0) ➕ `frontend/src/components/gantt/primitives/GanttRowPrimitive.vue` (+43 -0) 📝 `frontend/src/components/misc/keyboard-shortcuts/shortcuts.ts` (+30 -0) 📝 `frontend/src/components/project/views/ProjectGantt.vue` (+1 -2) ➖ `frontend/src/components/tasks/GanttChart.vue` (+0 -288) ➕ `frontend/src/composables/useGanttBar.ts` (+108 -0) ➕ `frontend/src/helpers/color/getTextColor.ts` (+11 -0) 📝 `frontend/src/i18n/lang/en.json` (+24 -1) 📝 `frontend/src/models/label.ts` (+2 -5) </details> ### 📄 Description ## Things left to do - [x] Use the `GanttBarPrimitive` and the styled variant - currently it is implemented directly into NewGanttChart - [x] Rename `NewGanttChart` and remove the old implementation - [x] Make the vertical lines in the background work - [x] Adjust cypress tests - [x] Clean up the structure of the new chart, remove everything that's not useful - [x] Inline all prop type definitions for consistsency - [x] Fix focus handling Closes https://github.com/go-vikunja/vikunja/pull/1053 Resolves https://github.com/go-vikunja/vikunja/issues/855 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Rebuilt interactive Gantt chart with drag-to-move, resize handles, and double‑click to open tasks - Keyboard navigation and focus management for rows/cells - Sticky timeline header with months and days (includes year) and vertical grid lines - Enhanced accessibility with ARIA labels and improved bar text contrast - Alternating row backgrounds for readability - Translations - Added comprehensive Gantt-related strings (chart label, month/day labels, resize prompts, date types) - Tests - Updated end-to-end tests to new DOM structure and pointer-based interactions - Chores - Removed an unused Gantt dependency <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <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 2025-11-01 21:11:50 -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#1140