diff options
| author | Adam Soltys <[email protected]> | 2023-04-20 08:42:02 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-04-20 08:42:02 -0700 |
| commit | aa187ee0a4c5d5132fae5255800efaa0c0d425ce (patch) | |
| tree | 50287dcf34b182b68d3493424d40024b688c47ff /src/routes/(app)/admin | |
| parent | d7af57e0e48dfce401e486a572664ac11112a164 (diff) | |
| parent | 4b82d5755b52979c11046b6328a95b7f52212f2c (diff) | |
| download | coinos-ui-aa187ee0a4c5d5132fae5255800efaa0c0d425ce.tar.gz coinos-ui-aa187ee0a4c5d5132fae5255800efaa0c0d425ce.zip | |
Merge branch 'master' into static-qr
Diffstat (limited to 'src/routes/(app)/admin')
| -rw-r--r-- | src/routes/(app)/admin/+layout.server.js | 11 | ||||
| -rw-r--r-- | src/routes/(app)/admin/+layout.svelte | 10 | ||||
| -rw-r--r-- | src/routes/(app)/admin/+page.server.js | 10 | ||||
| -rw-r--r-- | src/routes/(app)/admin/+page.svelte | 22 |
4 files changed, 53 insertions, 0 deletions
diff --git a/src/routes/(app)/admin/+layout.server.js b/src/routes/(app)/admin/+layout.server.js new file mode 100644 index 00000000..26449467 --- /dev/null +++ b/src/routes/(app)/admin/+layout.server.js @@ -0,0 +1,11 @@ +import { auth, get } from '$lib/utils'; +import { redirect } from '@sveltejs/kit'; + +export async function load({ cookies, parent }) { + let token = cookies.get('token'); + if (!token) throw redirect(307, '/login'); + let user = await get('/me', auth(cookies)); + if (!user) throw redirect(307, '/login'); + + return { user }; +} diff --git a/src/routes/(app)/admin/+layout.svelte b/src/routes/(app)/admin/+layout.svelte new file mode 100644 index 00000000..d7561e32 --- /dev/null +++ b/src/routes/(app)/admin/+layout.svelte @@ -0,0 +1,10 @@ +<script> + import { LandingHeader } from '$comp'; + export let data; + let { user } = data; +</script> + +<LandingHeader {user} /> +<main class="container px-10 md:px-40 mx-auto min-h-[600px] pb-20"> + <slot /> +</main> diff --git a/src/routes/(app)/admin/+page.server.js b/src/routes/(app)/admin/+page.server.js new file mode 100644 index 00000000..e19f894c --- /dev/null +++ b/src/routes/(app)/admin/+page.server.js @@ -0,0 +1,10 @@ +import { auth, get } from '$lib/utils'; +import { redirect } from '@sveltejs/kit'; + +export async function load({ cookies, parent }) { + let { user } = await parent(); + if (!user) throw redirect(307, '/login'); + + let users = (await get('/users', auth(cookies))).sort((a, b) => b.balance - a.balance); + return { users }; +} diff --git a/src/routes/(app)/admin/+page.svelte b/src/routes/(app)/admin/+page.svelte new file mode 100644 index 00000000..529d2f77 --- /dev/null +++ b/src/routes/(app)/admin/+page.svelte @@ -0,0 +1,22 @@ +<script> + import { post } from '$lib/utils'; + export let data; + let reset = (username) => post(`/${username}/reset`, { password }); + let { users } = data; + let password; +</script> + +{#each users as { balance, username, expected }} + <div class="grid grid-cols-5"> + <div>{username}</div> + <div>{balance}</div> + <div>{expected}</div> + <div><input bind:value={password} /></div> + <div> + <button + class="text-sm md:text-lg rounded-full border py-2 px-4 hover:opacity-80 min-w-[72px] bg-black text-white" + on:click={() => reset(username)}>Reset</button + > + </div> + </div> +{/each} |
