This is an automated email from the ASF dual-hosted git repository.

vatsrahul1001 pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-2-test by this push:
     new 925ff3d9965 Show dag run duration in grid tooltip (#65787) (#66900)
925ff3d9965 is described below

commit 925ff3d9965d25ebf5272ebb31abb20e89c44943
Author: Rahul Vats <[email protected]>
AuthorDate: Fri May 15 10:16:52 2026 +0530

    Show dag run duration in grid tooltip (#65787) (#66900)
    
    * Show dag run duration in grid tooltip
    
    * Reorder grid tooltip duration
    
    ---------
    
    
    (cherry picked from commit d628ea02ccffcb80247648843bea19058c8ba7f5)
    
    Co-authored-by: PrithviBadiga 
<[email protected]>
    Co-authored-by: Prithvi Badiga <[email protected]>
---
 airflow-core/src/airflow/ui/src/layouts/Details/Grid/Bar.tsx         | 1 +
 .../src/airflow/ui/src/layouts/Details/Grid/GridButton.test.tsx      | 2 ++
 airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.tsx  | 5 +++++
 3 files changed, 8 insertions(+)

diff --git a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/Bar.tsx 
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/Bar.tsx
index c2bb3ed6d04..0cfce328ac4 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/Bar.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/Bar.tsx
@@ -84,6 +84,7 @@ export const Bar = ({ max, onClick, run, 
showVersionIndicatorMode }: Props) => {
           alignItems="center"
           color="fg"
           dagId={dagId}
+          duration={run.duration}
           flexDir="column"
           height={`${(run.duration / max) * BAR_HEIGHT}px`}
           justifyContent="flex-end"
diff --git 
a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.test.tsx 
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.test.tsx
index 6164573e68c..bb0f38b8725 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.test.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.test.tsx
@@ -31,6 +31,7 @@ describe("GridButton", () => {
     render(
       <GridButton
         dagId="example_dag"
+        duration={3661}
         label="2026-04-21T00:00:00+00:00"
         runId="manual__2026-04-21T00:00:00+00:00"
         searchParams=""
@@ -49,6 +50,7 @@ describe("GridButton", () => {
     expect(screen.getByTestId("basic-tooltip")).toHaveTextContent(
       "common:runId: manual__2026-04-21T00:00:00+00:00",
     );
+    expect(screen.getByTestId("basic-tooltip")).toHaveTextContent("duration: 
01:01:01");
 
     vi.useRealTimers();
   });
diff --git 
a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.tsx 
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.tsx
index 488ccffd0d0..8721d937c72 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridButton.tsx
@@ -22,9 +22,11 @@ import { Link } from "react-router-dom";
 
 import type { DagRunState, TaskInstanceState } from 
"openapi/requests/types.gen";
 import { BasicTooltip } from "src/components/BasicTooltip";
+import { renderDuration } from "src/utils/datetimeUtils";
 
 type Props = {
   readonly dagId: string;
+  readonly duration?: number | null;
   readonly isGroup?: boolean;
   readonly label: string;
   readonly runId: string;
@@ -36,6 +38,7 @@ type Props = {
 export const GridButton = ({
   children,
   dagId,
+  duration,
   isGroup,
   label,
   runId,
@@ -54,6 +57,8 @@ export const GridButton = ({
       <br />
       {translate("state")}:{" "}
       {state ? translate(`common:states.${state}`) : 
translate("common:states.no_status")}
+      <br />
+      {translate("duration")}: {renderDuration(duration)}
     </>
   );
 

Reply via email to