From acf56c92fff8319c5937989c612f0b27dd3938d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de>
Date: Sat, 5 Aug 2023 23:02:04 +0200
Subject: [PATCH] Add user history page to admin panel

---
 src/routes/admin/user/UserItem.svelte              |  6 +++++-
 src/routes/admin/user/[id]/history/+page.server.js |  9 +++++++++
 src/routes/admin/user/[id]/history/+page.svelte    | 10 ++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 src/routes/admin/user/[id]/history/+page.server.js
 create mode 100644 src/routes/admin/user/[id]/history/+page.svelte

diff --git a/src/routes/admin/user/UserItem.svelte b/src/routes/admin/user/UserItem.svelte
index 03695bc..563632d 100644
--- a/src/routes/admin/user/UserItem.svelte
+++ b/src/routes/admin/user/UserItem.svelte
@@ -18,6 +18,10 @@
 	<td>{email}</td>
 	<td><span title={comment}>{(comment??"").split("\n")[0].substring(0, 30)}</span></td>
 	<td>{(balance/100).toFixed(2)}€</td>
-	<td><button on:click={()=>edit=true}>Bearbeiten</button><button on:click={()=>goto("/admin/user/"+id)}>Karten/Transaktionen</button></td>
+	<td>
+		<button on:click={()=>edit=true}>Bearbeiten</button>
+		<button on:click={()=>goto("/admin/user/"+id)}>Karten/Transaktionen</button>
+		<button on:click={()=>goto("/admin/user/"+id+"/history")}>Transaktionen</button>
+	</td>
 </tr>
 {/if}
diff --git a/src/routes/admin/user/[id]/history/+page.server.js b/src/routes/admin/user/[id]/history/+page.server.js
new file mode 100644
index 0000000..0ddcab0
--- /dev/null
+++ b/src/routes/admin/user/[id]/history/+page.server.js
@@ -0,0 +1,9 @@
+import { fetchTransactions } from '../../../../api/transactions.js';
+import { getUser } from '../../../api/users.js';
+
+export async function load(event) {
+	const userId = parseInt(event.params.id);
+	const user = await getUser(userId);
+	const { transactions, hasMore } = await fetchTransactions(userId, user.balance, Date.now(), 100);
+	return { transactions, hasMore, user };
+};
diff --git a/src/routes/admin/user/[id]/history/+page.svelte b/src/routes/admin/user/[id]/history/+page.svelte
new file mode 100644
index 0000000..7871026
--- /dev/null
+++ b/src/routes/admin/user/[id]/history/+page.svelte
@@ -0,0 +1,10 @@
+<script>
+	import UserHistory from '../../../../../components/UserHistory.svelte';
+	
+	export let data;
+</script>
+
+<a href="/admin/user">Zurück</a>
+
+<h2>Transaktionsverlauf von {data.user.name}</h2>
+<UserHistory initialData={data} userId={data.user.id} />
-- 
GitLab