Skip to content

Commit

Permalink
feat: support the SINGLE_VALUE for table widgets (#383)
Browse files Browse the repository at this point in the history
  • Loading branch information
Fine0830 authored Apr 10, 2024
1 parent fd2c7ca commit 460b24f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
16 changes: 14 additions & 2 deletions src/hooks/useExpressionsProcessor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,14 +119,26 @@ export async function useExpressionsQueryProcessor(config: Indexable) {
} else {
for (const item of results) {
const values = item.values.map((d: { value: unknown }) => d.value) || [];
const label = item.metric.labels.map((d: any) => `${d.key}=${d.value}`).join(",");
const label = item.metric.labels
.map((d: { key: string; value: string }) => `${d.key}=${d.value}`)
.join(",");

source[label] = values;
}
}
}
if (type === ExpressionResultType.SINGLE_VALUE) {
source[c.label || name] = (results[0].values[0] || {}).value;
for (const item of results) {
const label = item.metric.labels
.map((d: { key: string; value: string }) => `${d.key}=${d.value}`)
.join(",");
const values = item.values.map((d: { value: unknown }) => d.value) || [];
if (results.length === 1) {
source[label || c.label || name] = values;
} else {
source[label] = values;
}
}
}
if (([ExpressionResultType.RECORD_LIST, ExpressionResultType.SORTED_LIST] as string[]).includes(type)) {
source[name] = results[0].values;
Expand Down
12 changes: 1 addition & 11 deletions src/views/dashboard/graphs/Table.vue
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,7 @@ limitations under the License. -->
>{{ k.split("=")[1] }}</div
>
<div class="value-col" v-if="config.showTableValues">
{{
(config.metricTypes && config.metricTypes[0] === "readMetricsValue") ||
(props.config.typesOfMQE && props.config.typesOfMQE[0] === ExpressionResultType.SINGLE_VALUE)
? data[keys[0]]
: data[(keys as string[]).join(",")][data[(keys as string[]).join(",")].length - 1 || 0]
}}
{{ data[(keys as string[]).join(",")][data[(keys as string[]).join(",")].length - 1 || 0] }}
</div>
</div>
</div>
Expand All @@ -51,7 +46,6 @@ limitations under the License. -->
import { computed } from "vue";
import type { PropType } from "vue";
import { useI18n } from "vue-i18n";
import { ExpressionResultType } from "@/views/dashboard/data";
/*global defineProps */
const props = defineProps({
data: {
Expand All @@ -76,10 +70,6 @@ limitations under the License. -->
const keys = Object.keys(props.data || {});
return keys;
}
if (props.config.typesOfMQE && props.config.typesOfMQE[0] === ExpressionResultType.SINGLE_VALUE) {
const keys = Object.keys(props.data || {});
return keys;
}
const keys = Object.keys(props.data || {}).filter(
(i: string) => Array.isArray(props.data[i]) && props.data[i].length,
);
Expand Down

0 comments on commit 460b24f

Please sign in to comment.