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

bbovenzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 77d2fa5b035 Added the download button on the assets page (#50045)
77d2fa5b035 is described below

commit 77d2fa5b035244944d10914d08e7855a20d573b0
Author: Aritra Basu <[email protected]>
AuthorDate: Thu May 1 00:40:41 2025 +0530

    Added the download button on the assets page (#50045)
    
    * Added the download button on the assets
    
    Added for consistency, not sure on if
    people do actually want to download that
    graph
    
    * Update airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx
    
    Co-authored-by: Brent Bovenzi <[email protected]>
    
    * Update AssetGraph.tsx
    
    ---------
    
    Co-authored-by: Brent Bovenzi <[email protected]>
---
 airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx | 4 ++--
 airflow-core/src/airflow/ui/src/layouts/Details/Graph/Graph.tsx     | 2 +-
 airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx          | 2 ++
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx 
b/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx
index fb4cf5f02e8..1b155a65ea9 100644
--- a/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx
+++ b/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx
@@ -23,7 +23,7 @@ import { FiDownload } from "react-icons/fi";
 
 import { toaster } from "src/components/ui";
 
-export const DownloadButton = ({ dagId }: { readonly dagId: string }) => {
+export const DownloadButton = ({ name }: { readonly name: string }) => {
   const { getNodes, getZoom } = useReactFlow();
 
   const onClick = () => {
@@ -49,7 +49,7 @@ export const DownloadButton = ({ dagId }: { readonly dagId: 
string }) => {
         .then((dataUrl) => {
           const downloadLink = document.createElement("a");
 
-          downloadLink.setAttribute("download", `${dagId}-graph.png`);
+          downloadLink.setAttribute("download", `${name}-graph.png`);
           downloadLink.setAttribute("href", dataUrl);
           downloadLink.click();
         })
diff --git a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/Graph.tsx 
b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/Graph.tsx
index be47ebd3abf..12744c7d15f 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/Graph.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/Graph.tsx
@@ -198,7 +198,7 @@ export const Graph = () => {
         style={{ height: 150, width: 200 }}
         zoomable
       />
-      <DownloadButton dagId={dagId} />
+      <DownloadButton name={dagId} />
     </ReactFlow>
   );
 };
diff --git a/airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx 
b/airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx
index 28246ed57c1..42e1c39071f 100644
--- a/airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Asset/AssetGraph.tsx
@@ -22,6 +22,7 @@ import "@xyflow/react/dist/style.css";
 import { useParams } from "react-router-dom";
 
 import type { AssetResponse } from "openapi/requests/types.gen";
+import { DownloadButton } from "src/components/Graph/DownloadButton";
 import { edgeTypes, nodeTypes } from "src/components/Graph/graphTypes";
 import type { CustomNodeProps } from "src/components/Graph/reactflowUtils";
 import { useGraphLayout } from "src/components/Graph/useGraphLayout";
@@ -84,6 +85,7 @@ export const AssetGraph = ({ asset }: { readonly asset?: 
AssetResponse }) => {
         pannable
         zoomable
       />
+      <DownloadButton name={asset?.name ?? asset?.uri ?? "asset"} />
     </ReactFlow>
   );
 };

Reply via email to