diff --git a/ui/v2.5/src/models/list-filter/criteria/criterion.ts b/ui/v2.5/src/models/list-filter/criteria/criterion.ts index 3819bd417..b40209795 100644 --- a/ui/v2.5/src/models/list-filter/criteria/criterion.ts +++ b/ui/v2.5/src/models/list-filter/criteria/criterion.ts @@ -206,7 +206,10 @@ export function createStringCriterionOption( export class StringCriterion extends Criterion { public getLabelValue() { - return this.value; + let ret = this.value; + ret = StringCriterion.unreplaceSpecialCharacter(ret, "&"); + ret = StringCriterion.unreplaceSpecialCharacter(ret, "+"); + return ret; } public encodeValue() { @@ -221,6 +224,10 @@ export class StringCriterion extends Criterion { return str.replaceAll(c, encodeURIComponent(c)); } + private static unreplaceSpecialCharacter(str: string, c: string) { + return str.replaceAll(encodeURIComponent(c), c); + } + constructor(type: CriterionOption) { super(type, ""); } @@ -435,7 +442,9 @@ export class IHierarchicalLabeledIdCriterion extends Criterion v.label).join(", "); + const labels = decodeURI( + (this.value.items ?? []).map((v) => v.label).join(", ") + ); if (this.value.depth === 0) { return labels;