diff options
Diffstat (limited to 'asset-sources')
| -rw-r--r-- | asset-sources/fietsboek.ts | 20 | 
1 files changed, 17 insertions, 3 deletions
diff --git a/asset-sources/fietsboek.ts b/asset-sources/fietsboek.ts index e2d7d1f..d70890f 100644 --- a/asset-sources/fietsboek.ts +++ b/asset-sources/fietsboek.ts @@ -1,4 +1,5 @@  declare const FRIENDS_URL: string; +declare const BASE_URL: string;  declare const LOCALE: string;  /** @@ -39,6 +40,19 @@ function getCookie(name: string): string | undefined {          ?.split("=")[1];  } + +/** + * Builds a URL with the correct application URL as base. + * + * Do not add the leading slash, otherwise the resolution will be wrong! + * + * @param path - Path to append to the base. + * @return The correct URL in regards to the application URL. + */ +function makeUrl(name: string): URL { +    return new URL(name, BASE_URL); +} +  /**   * Installs a listener to the given DOM objects.   * @@ -392,7 +406,7 @@ addHandler(".summary-toggler", "click", toggleSummary);   */  addHandler("#archiveDownloadButton", "click", () => {      const checked = document.querySelectorAll(".archive-checkbox:checked"); -    const url = new URL("/track/archive", window.location.href); +    const url = makeUrl("track/archive");      checked.forEach((c) => {          url.searchParams.append("track_id[]", (c as HTMLInputElement).value);      }); @@ -455,7 +469,7 @@ function toggleTrackFavourite(event: MouseEvent) {      if (trackId === null) {          return;      } -    const url = new URL("/me/toggle-favourite", window.location.href); +    const url = makeUrl("me/toggle-favourite");      const formData = new URLSearchParams();      formData.append("track-id", trackId);      formData.append("csrf_token", getCookie("csrf_token") ?? ""); @@ -493,7 +507,7 @@ function getLocalizedMonthNames(): string[] {  function loadProfileStats() {      const monthNames = getLocalizedMonthNames(); -    const url = new URL("/me/summary.json", window.location.href); +    const url = makeUrl("me/summary.json");      fetch(url)          .then(response => response.json())          .then((response: YearSummary) => {  | 
