From ac71bb7372e550d5de63746d5b1fc0d263b6ea28 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 5 Sep 2024 08:47:36 +0000 Subject: [PATCH] fix handling of bound parameters of urlhelper in js, fixes #4564 Closes #4564 Merge request studip/studip!3376 --- resources/assets/javascripts/lib/url_helper.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/assets/javascripts/lib/url_helper.ts b/resources/assets/javascripts/lib/url_helper.ts index b9ebbf60d90..8815142ed69 100644 --- a/resources/assets/javascripts/lib/url_helper.ts +++ b/resources/assets/javascripts/lib/url_helper.ts @@ -16,7 +16,7 @@ class URLHelper { base_url: string; parameters: Record<string, string>; - constructor(base_url = "", parameters = {}) { + constructor(base_url: string = "", parameters: any = {}) { //the base url for all links this.base_url = base_url; @@ -33,7 +33,7 @@ class URLHelper { * @param ignore_params boolean: ignore previously bound parameters * @return: url with all necessary and additional parameters, encoded */ - getURL(url: string, param_object: any, ignore_params: boolean): string { + getURL(url: string, param_object: any = {}, ignore_params: boolean = false): string { let result; if (url === '' || url.match(/^[?#]/)) { @@ -44,9 +44,11 @@ class URLHelper { if (!ignore_params) { for (const key in this.parameters) { - if (!result.searchParams.has(key)) { - result.searchParams.set(key, this.parameters[key]); + if (result.searchParams.has(key) || this.parameters[key] === null) { + continue; } + + result.searchParams.set(key, this.parameters[key]); } } -- GitLab