-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Add Gantt chart view #51667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Gantt chart view #51667
Conversation
|
Known issue: the row alignment between grid view and gantt view would break when the Thanks in advance! |
|
Very cool! I'll pull this down and play with it some more. But my quick thoughts:
|
|
Very cool! |
b82c025 to
fb91fb7
Compare
|
I've fixed the HeaderCard height for Gantt page and do some rwd implementation for Screen.Recording.2025-06-14.at.4.25.38.PM.mov |
Lee-W
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Taiwanese Mandarin translation looks good to me
airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridTI.tsx
Outdated
Show resolved
Hide resolved
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstance.tsx
Outdated
Show resolved
Hide resolved
airflow-core/src/airflow/ui/src/layouts/Details/Gantt/Gantt.tsx
Outdated
Show resolved
Hide resolved
|
I was thinking about the UX of this after #51764 Perhaps instead of putting the gantt in a tab on the right-hand panel, it should be an option to add onto the grid view on the left panel. Let's discuss first before you refactor everything though. |
|
I’m back! The only trade-off I see is that we might lose the shared scroll between the grid and the Gantt. What are your thoughts on that? |
Either, the gantt chart can be a separate view on the left panel (easier) |
|
I think the second idea is great and aligns better with the UX, especially since users will likely want to use both the grid and Gantt views at the same time. I’ll try implementing it first and see how it feels. My only concern is that it might get a bit cramped, so I might increase the min-width of the left pane to help with that. Thanks! |
|
Yeah, when the gantt is shown we can change the minWidth! |
d6f2fef to
b7b5ac6
Compare
0e85698 to
16d7377
Compare
airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
Outdated
Show resolved
Hide resolved
airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
Outdated
Show resolved
Hide resolved
|
Looking really good! Let's fix some spacing issues and merge this. Then we can work on the tooltips and clicking on a gantt bar to select the task |
airflow-core/src/airflow/ui/src/layouts/Details/Gantt/Gantt.tsx
Outdated
Show resolved
Hide resolved
Co-authored-by: Brent Bovenzi <brent.bovenzi@gmail.com>
|
#protm |
|
Indeed #protm |
|
Thanks for all reviews! I would keep working on improving the chart. |
* Add Gantt chart * Fix grid color in dark mode * Sync selected color with Grid * Enable showGantt button for run or TI selected * Set minimum width for TI * Fix spacing * Fix single task layout * Update auto-refresh for TI and useMemo * Fix button visibility condition * Update fixedHeight * Update DetailsLayout and Grid layout * Update airflow-core/src/airflow/ui/src/layouts/Details/Gantt/Gantt.tsx Co-authored-by: Brent Bovenzi <brent.bovenzi@gmail.com> --------- Co-authored-by: Brent Bovenzi <brent.bovenzi@gmail.com>

Related Issue
#44672
cc @bbovenzi
Why
Our ui currently lack of gantt chart compared with AF2
How
Reimplement the gantt chart with chart.js
chartjs-adapter-dayjs-4to use dayjs to format time in chart.jsRun,TIandGroupTIpageScreen.Recording.2025-06-13.at.1.49.32.AM.mov
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.