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 d10f1ccd03d Refactor Dashboard to enhance layout (#50026)
d10f1ccd03d is described below
commit d10f1ccd03de6e6cd1f771bb60aadf552ea8e8fb
Author: Guan Ming(Wesley) Chiu <[email protected]>
AuthorDate: Thu May 1 03:09:23 2025 +0800
Refactor Dashboard to enhance layout (#50026)
---
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 31 +++++++++--------
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 2 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 39 ++++++++++++----------
3 files changed, 39 insertions(+), 33 deletions(-)
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/DagRunMetrics.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/DagRunMetrics.tsx
index dc0bb6b5cf7..5ff72147093 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/DagRunMetrics.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/DagRunMetrics.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { Box, Heading, HStack } from "@chakra-ui/react";
+import { Box, Separator, Heading, HStack, Stack } from "@chakra-ui/react";
import type { DAGRunStates } from "openapi-gen/requests/types.gen";
import { FiBarChart } from "react-icons/fi";
import { Link as RouterLink } from "react-router-dom";
@@ -35,8 +35,8 @@ type DagRunMetricsProps = {
const DAGRUN_STATES: Array<keyof DAGRunStates> = ["queued", "running",
"success", "failed"];
export const DagRunMetrics = ({ dagRunStates, endDate, startDate, total }:
DagRunMetricsProps) => (
- <Box borderRadius={5} borderWidth={1} p={2}>
- <HStack mb={4}>
+ <Box borderRadius={5} borderWidth={1} p={4}>
+ <HStack>
<RouterLink
to={`/dag_runs?start_date=${startDate}${endDate === undefined ? "" :
`&end_date=${endDate}`}`}
>
@@ -47,16 +47,19 @@ export const DagRunMetrics = ({ dagRunStates, endDate,
startDate, total }: DagRu
</RouterLink>
<Heading size="md">Dag Runs</Heading>
</HStack>
- {DAGRUN_STATES.map((state) => (
- <MetricSection
- endDate={endDate}
- key={state}
- kind="dag_runs"
- runs={dagRunStates[state]}
- startDate={startDate}
- state={state}
- total={total}
- />
- ))}
+ <Separator my={2} />
+ <Stack gap={4}>
+ {DAGRUN_STATES.map((state) => (
+ <MetricSection
+ endDate={endDate}
+ key={state}
+ kind="dag_runs"
+ runs={dagRunStates[state]}
+ startDate={startDate}
+ state={state}
+ total={total}
+ />
+ ))}
+ </Stack>
</Box>
);
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/MetricSection.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/MetricSection.tsx
index cf50400fab9..01550ba4efc 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/MetricSection.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/MetricSection.tsx
@@ -49,7 +49,7 @@ export const MetricSection = ({ endDate, kind, runs,
startDate, state, total }:
}
return (
- <VStack align="left" gap={1} mb={4} ml={0} pl={0}>
+ <VStack align="left" gap={1} ml={0} pl={0}>
<Flex justify="space-between">
<HStack>
<RouterLink to={`/${kind}?${searchParams.toString()}`}>
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/TaskInstanceMetrics.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/TaskInstanceMetrics.tsx
index a9975032e9b..081a8de935f 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/TaskInstanceMetrics.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/HistoricalMetrics/TaskInstanceMetrics.tsx
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { Box, Heading, HStack } from "@chakra-ui/react";
+import { Box, Separator, Heading, HStack, Stack } from "@chakra-ui/react";
import type { TaskInstanceState, TaskInstanceStateCount } from
"openapi-gen/requests/types.gen";
import { MdOutlineTask } from "react-icons/md";
import { Link as RouterLink } from "react-router-dom";
@@ -54,8 +54,8 @@ export const TaskInstanceMetrics = ({
taskInstanceStates,
total,
}: TaskInstanceMetricsProps) => (
- <Box borderRadius={5} borderWidth={1} mt={2} p={2}>
- <HStack mb={4}>
+ <Box borderRadius={5} borderWidth={1} mt={2} p={4}>
+ <HStack>
<RouterLink
to={`/task_instances?start_date=${startDate}${endDate === undefined ?
"" : `&end_date=${endDate}`}`}
>
@@ -66,20 +66,23 @@ export const TaskInstanceMetrics = ({
</RouterLink>
<Heading size="md">Task Instances</Heading>
</HStack>
- {TASK_STATES.sort((stateA, stateB) =>
- taskInstanceStates[stateA] > taskInstanceStates[stateB] ? -1 : 1,
- ).map((state) =>
- taskInstanceStates[state] > 0 ? (
- <MetricSection
- endDate={endDate}
- key={state}
- kind="task_instances"
- runs={taskInstanceStates[state]}
- startDate={startDate}
- state={state as TaskInstanceState}
- total={total}
- />
- ) : undefined,
- )}
+ <Separator my={2} />
+ <Stack gap={4}>
+ {TASK_STATES.sort((stateA, stateB) =>
+ taskInstanceStates[stateA] > taskInstanceStates[stateB] ? -1 : 1,
+ ).map((state) =>
+ taskInstanceStates[state] > 0 ? (
+ <MetricSection
+ endDate={endDate}
+ key={state}
+ kind="task_instances"
+ runs={taskInstanceStates[state]}
+ startDate={startDate}
+ state={state as TaskInstanceState}
+ total={total}
+ />
+ ) : undefined,
+ )}
+ </Stack>
</Box>
);