+
{@render children()}
diff --git a/frontend/src/routes/(custom-group)/+page.svelte b/frontend/src/routes/(root)/+page.svelte
similarity index 100%
rename from frontend/src/routes/(custom-group)/+page.svelte
rename to frontend/src/routes/(root)/+page.svelte
diff --git a/frontend/src/routes/(root)/[...missing]/+page.server.ts b/frontend/src/routes/(root)/[...missing]/+page.server.ts
new file mode 100644
index 0000000..0d721bf
--- /dev/null
+++ b/frontend/src/routes/(root)/[...missing]/+page.server.ts
@@ -0,0 +1,7 @@
+import { error } from "@sveltejs/kit";
+import type { PageServerLoad } from "./$types";
+
+// This is to catch all unfound pages and redirect them to the error page with the layout
+export const load = (async () => {
+ throw error(404, "No page found...");
+}) satisfies PageServerLoad;
diff --git a/frontend/src/routes/(root)/[evaNumber=int]/+page.server.ts b/frontend/src/routes/(root)/[evaNumber=int]/+page.server.ts
new file mode 100644
index 0000000..cedb3ac
--- /dev/null
+++ b/frontend/src/routes/(root)/[evaNumber=int]/+page.server.ts
@@ -0,0 +1,6 @@
+import { redirect } from "@sveltejs/kit";
+import type { PageServerLoad } from "./$types";
+
+export const load = (async ({ url }) => {
+ return redirect(308, `${url.pathname}/departures`);
+}) satisfies PageServerLoad;
diff --git a/frontend/src/routes/[evaNumber]/[type=type]/+layout.server.ts b/frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.server.ts
similarity index 79%
rename from frontend/src/routes/[evaNumber]/[type=type]/+layout.server.ts
rename to frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.server.ts
index 6d5bf0a..ca37c82 100644
--- a/frontend/src/routes/[evaNumber]/[type=type]/+layout.server.ts
+++ b/frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.server.ts
@@ -13,13 +13,14 @@ const loadStation = async (evaNumber: string): Promise
=> {
const response = await fetch(`${env.BACKEND_DOCKER_BASE_URL}/api/v1/stations/${evaNumber}`, {
method: "GET"
});
+
if (!response.ok) {
- throw error(404, `No station found for ${evaNumber}`);
+ throw error(404, `No station found for ${evaNumber}. Maybe try a different one?`);
}
const station = (await response.json()) as Station;
if (station.evaNumber === undefined) {
- throw error(404, `No station found for ${evaNumber}`);
+ throw error(404, `No station found for ${evaNumber}. Maybe try a different one?`);
}
return station;
};
diff --git a/frontend/src/routes/[evaNumber]/[type=type]/+layout.svelte b/frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.svelte
similarity index 65%
rename from frontend/src/routes/[evaNumber]/[type=type]/+layout.svelte
rename to frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.svelte
index 419fe47..3c2719c 100644
--- a/frontend/src/routes/[evaNumber]/[type=type]/+layout.svelte
+++ b/frontend/src/routes/(root)/[evaNumber=int]/[type=type]/+layout.svelte
@@ -1,10 +1,10 @@
+
+{#await data.journeys}
+
+
+
+{:then journeys}
+
+ {#each journeys as journey}
+ {#if !matchesFilter(journey)}{:else if journey.connections.length > 1}
+
+ {:else}
+
+ {/if}
+ {/each}
+
+
+
+
+
+{/await}
diff --git a/frontend/src/routes/journey/coach-sequence/+error.svelte b/frontend/src/routes/(root)/journey/coach-sequence/+error.svelte
similarity index 100%
rename from frontend/src/routes/journey/coach-sequence/+error.svelte
rename to frontend/src/routes/(root)/journey/coach-sequence/+error.svelte
diff --git a/frontend/src/routes/journey/coach-sequence/+page.server.ts b/frontend/src/routes/(root)/journey/coach-sequence/+page.server.ts
similarity index 100%
rename from frontend/src/routes/journey/coach-sequence/+page.server.ts
rename to frontend/src/routes/(root)/journey/coach-sequence/+page.server.ts
diff --git a/frontend/src/routes/journey/coach-sequence/+page.svelte b/frontend/src/routes/(root)/journey/coach-sequence/+page.svelte
similarity index 100%
rename from frontend/src/routes/journey/coach-sequence/+page.svelte
rename to frontend/src/routes/(root)/journey/coach-sequence/+page.svelte
diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte
new file mode 100644
index 0000000..4fafff3
--- /dev/null
+++ b/frontend/src/routes/+layout.svelte
@@ -0,0 +1,8 @@
+
+
+{@render children()}
diff --git a/frontend/src/routes/[evaNumber]/[type=type]/+error.svelte b/frontend/src/routes/[evaNumber]/[type=type]/+error.svelte
deleted file mode 100644
index 6ba8036..0000000
--- a/frontend/src/routes/[evaNumber]/[type=type]/+error.svelte
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- {page.status}
-
-
This station does not exist. Maybe you want to try a different?
-
-
diff --git a/frontend/src/routes/[evaNumber]/[type=type]/+page.svelte b/frontend/src/routes/[evaNumber]/[type=type]/+page.svelte
deleted file mode 100644
index 111467d..0000000
--- a/frontend/src/routes/[evaNumber]/[type=type]/+page.svelte
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- {#each data.journeys as journey}
- {#if !matchesFilter(journey)}{:else if journey.connections.length > 1}
-
- {:else}
-
- {/if}
- {/each}
-
-
-
-
-
diff --git a/frontend/src/routes/journey/coach-sequence/+layout.svelte b/frontend/src/routes/journey/coach-sequence/+layout.svelte
deleted file mode 100644
index 18820c4..0000000
--- a/frontend/src/routes/journey/coach-sequence/+layout.svelte
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- {@render children()}
-
diff --git a/frontend/src/routes/login/+layout.svelte b/frontend/src/routes/login/+layout.svelte
deleted file mode 100644
index 37822dc..0000000
--- a/frontend/src/routes/login/+layout.svelte
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Login
- Please login to continue.
-
-
- {@render children()}
-
-
diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte
index 5565dbc..3305761 100644
--- a/frontend/src/routes/login/+page.svelte
+++ b/frontend/src/routes/login/+page.svelte
@@ -1,12 +1,46 @@
-
+
+
+
+
+
+
+
+
+
+ Login
+ Please login to continue.
+
+
+
+
+