Make changes to fix special characters in Criterion labels (#1819) (#2301)

Reverse the '&' and '+' replacement done on StringCriterion
Decodes special characters in IHierarchicalLabeledIdCriterion
This commit is contained in:
DampToast
2022-02-09 19:49:25 -06:00
committed by GitHub
parent 47670d1e94
commit 67b1d15efc

View File

@@ -206,7 +206,10 @@ export function createStringCriterionOption(
export class StringCriterion extends Criterion<string> {
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<string> {
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<IHierarchicalLabe
}
public getLabelValue(): string {
const labels = (this.value.items ?? []).map((v) => v.label).join(", ");
const labels = decodeURI(
(this.value.items ?? []).map((v) => v.label).join(", ")
);
if (this.value.depth === 0) {
return labels;