Skip to content

Commit

Permalink
feat(ui): add a click on all state charts
Browse files Browse the repository at this point in the history
  • Loading branch information
tchiotludo committed Mar 10, 2022
1 parent 61b9699 commit e8f376f
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 22 deletions.
19 changes: 3 additions & 16 deletions ui/src/components/flows/Flows.vue
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,9 @@

<template #cell(state)="row">
<state-chart
v-if="dailyGroupByFlowReady"
:data="chartData(row)"
/>
</template>

<template #cell(duration)="row">
<duration-chart
:duration="true"
:namespace="row.item.namespace"
:flow-id="row.item.id"
v-if="dailyGroupByFlowReady"
:data="chartData(row)"
/>
Expand Down Expand Up @@ -132,7 +128,6 @@
import DataTable from "../layout/DataTable";
import SearchField from "../layout/SearchField";
import StateChart from "../stats/StateChart";
import DurationChart from "../stats/DurationChart";
import StateGlobalChart from "../stats/StateGlobalChart";
import TriggerAvatar from "./TriggerAvatar";
import MarkdownTooltip from "../layout/MarkdownTooltip"
Expand All @@ -150,7 +145,6 @@
DataTable,
SearchField,
StateChart,
DurationChart,
StateGlobalChart,
TriggerAvatar,
MarkdownTooltip,
Expand Down Expand Up @@ -199,17 +193,10 @@
label: title("execution statistics"),
sortable: false,
class: "row-graph"
},
{
key: "duration",
label: title("duration"),
sortable: false,
class: "row-graph"
}
);
}
fields.push(
{
key: "triggers",
Expand Down
38 changes: 32 additions & 6 deletions ui/src/components/stats/StateChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import {computed, defineComponent, ref} from "@vue/composition-api"
import {BarChart} from "vue-chart-3";
import Utils from "../../utils/utils.js";
import {defaultConfig, tooltip} from "../../utils/charts.js";
import {defaultConfig, tooltip, chartClick} from "../../utils/charts.js";
import State from "../../utils/state";
export default defineComponent({
Expand All @@ -27,14 +27,29 @@
type: Array,
required: true
},
duration: {
type: Boolean,
default: () => false
},
global: {
type: Boolean,
default: () => false
},
big: {
type: Boolean,
default: () => false
}
},
namespace: {
type: String,
required: false,
default: undefined
},
flowId: {
type: String,
required: false,
default: undefined
},
},
setup(props, {root}) {
let duration = root.$i18n.t("duration")
Expand All @@ -45,6 +60,19 @@
const dataReady = computed(() => props.data.length > 0)
const options = computed(() => defaultConfig({
onClick: (e, elements) => {
if (elements.length > 0 && elements[0].index !== undefined && elements[0].datasetIndex !== undefined ) {
chartClick(
root,
{
date: e.chart.data.labels[elements[0].index],
status: e.chart.data.datasets[elements[0].datasetIndex].label,
namespace: props.namespace,
flowId: props.flowId
}
)
}
},
plugins: {
tooltip: {
external: function (context) {
Expand Down Expand Up @@ -109,16 +137,14 @@
return {
labels: props.data.map(r => r.startDate),
datasets: props.big || props.global ?
datasets: props.big || props.global || props.duration ?
[{
order: 2,
type: "line",
label: duration,
fill: "start",
pointRadius: 0,
opacity: 0.5,
borderWidth: 0.2,
backgroundColor: !darkTheme ? "#eaf0f9" : "#292e40",
backgroundColor: Utils.hexToRgba(!darkTheme ? "#eaf0f9" : "#292e40", 0.5),
borderColor: !darkTheme ? "#7081b9" : "#7989b4",
yAxisID: "yAxesB",
data: props.data
Expand Down
1 change: 1 addition & 0 deletions ui/src/components/stats/StateGlobalChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
.executions-charts {
user-select: none;
top: 0;
height: 100%;
display: flex;
Expand Down
51 changes: 51 additions & 0 deletions ui/src/utils/charts.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,54 @@ export function defaultConfig(override) {
}
}, override);
}

export function chartClick(self, event) {
const query = {};

if (event.date) {
query.start = self.$moment(event.date).toISOString(true);
query.end = self.$moment(event.date).add(1, "d").toISOString(true);
}

if (event.startDate) {
query.start = self.$moment(event.startDate).toISOString(true);
}

if (event.endDate) {
query.end = self.$moment(event.endDate).toISOString(true);
}

if (event.status) {
query.status = event.status.toUpperCase();
}

if (self.$route.query.namespace) {
query.namespace = self.$route.query.namespace;
}

if (self.$route.query.q) {
query.q = self.$route.query.q;
}

if (event.namespace && event.flowId) {
self.$router.push({
name: "flows/update",
params: {
namespace: event.namespace,
id: event.flowId,
tab: "executions",
},
query: query
});
}

if (event.namespace) {
query.namespace = event.namespace;
}

self.$router.push({
name: "executions/list",
params: {tab: "executions"},
query: query
});
}

0 comments on commit e8f376f

Please sign in to comment.