From 4c23003a936bb222bf8c38dcdd13436ed9724015 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Thu, 18 Jul 2024 23:16:08 +0100 Subject: [PATCH] Add create route and redirect buttons --- src/components/RouteRow.svelte | 4 +-- src/utils/rest-table.ts | 2 +- src/views/RedirectsView.svelte | 52 ++++++++++++++++++++++++++- src/views/RoutesView.svelte | 49 +++++++++++++++++++++++-- src/views/TargetManagementView.svelte | 4 +++ 5 files changed, 105 insertions(+), 6 deletions(-) diff --git a/src/components/RouteRow.svelte b/src/components/RouteRow.svelte index 97cbde2..fd29d51 100644 --- a/src/components/RouteRow.svelte +++ b/src/components/RouteRow.svelte @@ -4,7 +4,7 @@ import type {RestItem} from "../utils/rest-table"; import ActionMenu from "./ActionMenu.svelte"; import ActionPopup from "./ActionPopup.svelte"; - + export let value: RestItem; let editItem: Route = { src: "", @@ -37,7 +37,7 @@
Source
-
+
{editItem.src}
Destination
Flags
diff --git a/src/utils/rest-table.ts b/src/utils/rest-table.ts index d115af1..f5951a9 100644 --- a/src/utils/rest-table.ts +++ b/src/utils/rest-table.ts @@ -56,7 +56,7 @@ export class RestTable implements IPromiseLike> { addItem(item: T) { (async () => { - let f = await LOGIN.clientRequest(this.apiUrl, {method: "POST"}); + let f = await LOGIN.clientRequest(this.apiUrl, {method: "POST", body: JSON.stringify(item)}); if (f.status !== 200) throw new Error("Unexpected status code: " + f.status); this.rows.push(new RestItem(this, item)); this.updateSubs(); diff --git a/src/views/RedirectsView.svelte b/src/views/RedirectsView.svelte index 2aa81bd..7308845 100644 --- a/src/views/RedirectsView.svelte +++ b/src/views/RedirectsView.svelte @@ -1,11 +1,46 @@ -

Redirects

+
+

Redirects

+ + + +
Source
+
+
Destination
+
+
Flags
+
+
Redirect Code
+
+
Active
+
+
+
@@ -18,3 +53,18 @@ + + diff --git a/src/views/RoutesView.svelte b/src/views/RoutesView.svelte index 63856ee..fb6fbc5 100644 --- a/src/views/RoutesView.svelte +++ b/src/views/RoutesView.svelte @@ -1,13 +1,43 @@ -

Routes

+
+

Routes

+ - + +
Source
+
+
Destination
+
+
Flags
+
+
Active
+
+
+
+ + Source Destination @@ -17,3 +47,18 @@ + + diff --git a/src/views/TargetManagementView.svelte b/src/views/TargetManagementView.svelte index da16183..0be4292 100644 --- a/src/views/TargetManagementView.svelte +++ b/src/views/TargetManagementView.svelte @@ -18,6 +18,10 @@ let table = new TargetTable(apiUrl, (item: T) => ""); + export function createItem(t: T) { + table.addItem(t); + } + function rowOrdering(rows: RestItem[], domain: string): RestItem[] { return rows.filter(x => domainFilter(x.data, domain)).sort((a, b) => trimWildcards(a.data.src).localeCompare(trimWildcards(b.data.src))); }