Skip to content

Commit b0fa3dd

Browse files
committedFeb 19, 2025
chore(ui): improve the labels behavior
1 parent 4c2317d commit b0fa3dd

File tree

3 files changed

+10
-18
lines changed

3 files changed

+10
-18
lines changed
 

‎ui/src/components/executions/Executions.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,8 @@
632632
const toIgnore = this.configs.hiddenLabelsPrefixes || [];
633633
634634
// Extract only the keys from the route query labels
635-
const allowedLabels = this.$route.query.labels ? this.$route.query.labels.map(label => label.split(":")[0]) : [];
635+
const helper = Array.isArray(this.$route.query.labels) ? this.$route.query.labels : [this.$route.query.labels];
636+
const allowedLabels = this.$route.query.labels ? helper.map(label => label.split(":")[0]) : [];
636637
637638
return labels?.filter(label => {
638639
// Check if the label key matches any prefix but allow it if it's in the query

‎ui/src/components/filter/KestraFilter.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@
581581
() => route.query,
582582
(q: any) => {
583583
// Handling change of label filters from direct click events
584-
const routeFilters = decodeParams(route.path, q, props.include, OPTIONS);
584+
const routeFilters = decodeParams(q, props.include, OPTIONS);
585585
currentFilters.value = routeFilters;
586586
},
587587
{immediate: true},

‎ui/src/components/layout/Labels.vue

+7-16
Original file line numberDiff line numberDiff line change
@@ -30,33 +30,24 @@
3030
{labels: () => [], readOnly: false},
3131
);
3232
33-
import {decodeParams} from "../../components/filter/utils/helpers";
3433
let query: any[] = [];
3534
watch(
3635
() => route.query,
37-
(q: any) => (query = decodeParams(q, undefined, [])),
36+
(q: any) => (query = [].concat(q.labels ?? null)),
3837
{immediate: true},
3938
);
4039
41-
const isChecked = (label: Label) => {
42-
return query.some((l) => {
43-
if (typeof l?.value !== "string") return false;
44-
45-
const [key, value] = l.value.split(":");
46-
return key === label.key && value === label.value;
47-
});
48-
};
40+
const isChecked = (label: Label) =>
41+
query.some((l) => l === `${label.key}:${label.value}`);
4942
5043
const updateLabel = (label: Label) => {
51-
const getKey = (key: string) => `filters[labels][$eq][${key}]`;
52-
5344
if (isChecked(label)) {
54-
const replacementQuery = {...route.query};
55-
delete replacementQuery[getKey(label.key)];
56-
router.replace({query: replacementQuery});
45+
const helper = {...route.query};
46+
delete helper.labels;
47+
router.replace({query: helper});
5748
} else {
5849
router.replace({
59-
query: {...route.query, [getKey(label.key)]: label.value},
50+
query: {...route.query, labels: `${label.key}:${label.value}`},
6051
});
6152
}
6253
};

0 commit comments

Comments
 (0)
Please sign in to comment.