From cdc3a2677c8728af27084024daba288153c2bd52 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 16 Mar 2023 23:04:32 -0700 Subject: admin route --- src/locales/en.json | 2 +- src/locales/es.json | 2 +- src/locales/pt.json | 4 ++-- .../(app)/[username]/(profile)/followers/+page.svelte | 4 +++- .../(app)/[username]/(profile)/follows/+page.svelte | 4 +++- .../(app)/[username]/payments/[...page]/+page.svelte | 2 +- .../(app)/[username]/settings/[...tab]/+page.svelte | 19 ++++++++++++++----- src/routes/(app)/admin/+layout.server.js | 11 +++++++++++ src/routes/(app)/admin/+layout.svelte | 10 ++++++++++ src/routes/(app)/admin/+page.server.js | 10 ++++++++++ src/routes/(app)/admin/+page.svelte | 11 +++++++++++ src/routes/(app)/payment/[id]/+page.svelte | 2 +- src/routes/(app)/sent/+page.svelte | 2 +- 13 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 src/routes/(app)/admin/+layout.server.js create mode 100644 src/routes/(app)/admin/+layout.svelte create mode 100644 src/routes/(app)/admin/+page.server.js create mode 100644 src/routes/(app)/admin/+page.svelte (limited to 'src') diff --git a/src/locales/en.json b/src/locales/en.json index 180a15f2..28f7db2b 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -185,7 +185,7 @@ "placeholder": "Paste a bitcoin address, lightning invoice or coinos username" }, "settings": { - "saveSettings": "Save Settings", + "saveSettings": "Save Settings", "bannerImage": "Banner Image", "profileImage": "Profile Image", "oneTimeCode": "Enter one-time code", diff --git a/src/locales/es.json b/src/locales/es.json index 5a2a5123..9f6c6e1b 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -178,7 +178,7 @@ "placeholder": "Asigne una dirección de bitcoin, una factura lightning o un usuario de coinos" }, "settings": { - "saveSettings": "Guardar ajustes", + "saveSettings": "Guardar ajustes", "tipPrompt": "Solicitar propinas", "tipPromptDescription": "Pregunta a las personas si quieren agregar una propina antes de pagar sus facturas", "bannerImage": "Imagen del Banner", diff --git a/src/locales/pt.json b/src/locales/pt.json index f73431e3..309511f9 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -1,5 +1,5 @@ { - "404": { + "404": { "404": "404", "pageNotFound": "Página não encontrada." }, @@ -185,7 +185,7 @@ "placeholder": "Colar um endereço de bitcoin, fatura lightning ou nome de usuário na coinos" }, "settings": { - "saveSettings": "Salvar ajustes", + "saveSettings": "Salvar ajustes", "bannerImage": "Imagem do banner", "profileImage": "Imagem do perfil", "oneTimeCode": "Entre com o código único", diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.svelte b/src/routes/(app)/[username]/(profile)/followers/+page.svelte index 9c425449..56b3ba16 100644 --- a/src/routes/(app)/[username]/(profile)/followers/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/followers/+page.svelte @@ -15,7 +15,9 @@
-

{$t('user.followers')}

+

+ {$t('user.followers')} +

{#if browser} {#if followers.length} diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte index b6256a71..b238c3a7 100644 --- a/src/routes/(app)/[username]/(profile)/follows/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte @@ -14,7 +14,9 @@
-

{$t('user.following')}

+

+ {$t('user.following')} +

{#if browser} {#if follows.length} diff --git a/src/routes/(app)/[username]/payments/[...page]/+page.svelte b/src/routes/(app)/[username]/payments/[...page]/+page.svelte index 4e2e6ede..c9cc5c40 100644 --- a/src/routes/(app)/[username]/payments/[...page]/+page.svelte +++ b/src/routes/(app)/[username]/payments/[...page]/+page.svelte @@ -64,7 +64,7 @@ amount_fiat: f((p.amount * p.rate) / sats, p.currency), fee_fiat: p.fee ? f((p.fee * p.rate) / sats, p.currency) : null, tip_fiat: p.tip ? f((p.tip * p.rate) / sats, p.currency) : null, - total_fiat: f(((p.amount + (p.tip || 0)) * p.rate) / sats, p.currency) + total_fiat: f(((p.amount + (p.tip || 0)) * p.rate) / sats, p.currency) })); let keys = [ diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 06e80c8c..997d8b4a 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -5,7 +5,7 @@ import { Icon, Spinner, Pin } from '$comp'; import { t } from '$lib/translations'; - import { fail, post, success } from '$lib/utils'; + import { fail, post, warning, success } from '$lib/utils'; import { avatar, banner, password, pin } from '$lib/store'; import { upload } from '$lib/upload'; import { page } from '$app/stores'; @@ -55,7 +55,12 @@ let data = new FormData(formElement); if (data.get('password')) { - data.set('cipher', await reEncryptEntropy(user, data.get('password'))); + try { + data.set('cipher', await reEncryptEntropy(user, data.get('password'))); + } catch (e) { + console.log('Failed to encrypt keys with new password'); + throw e; + } } if ($avatar) { @@ -80,8 +85,12 @@ tags: [] }; - await sign({ event, user }); - await send(event); + try { + await sign({ event, user }); + await send(event); + } catch (e) { + warning('nostr profile could not be updated'); + } const response = await fetch(formElement.action, { method: 'POST', @@ -150,7 +159,7 @@ {#if loading} {:else} -
{$t('user.settings.saveSettings')}
+
{$t('user.settings.saveSettings')}
{/if}
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 @@ + + + +
+ +
diff --git a/src/routes/(app)/admin/+page.server.js b/src/routes/(app)/admin/+page.server.js new file mode 100644 index 00000000..c4079a2f --- /dev/null +++ b/src/routes/(app)/admin/+page.server.js @@ -0,0 +1,10 @@ +import { get } from '$lib/utils'; +import { redirect } from '@sveltejs/kit'; + +export async function load({ parent }) { + let { user } = await parent(); + if (!user) throw redirect(307, '/login'); + + let users = (await get('/users')).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..1a747f1f --- /dev/null +++ b/src/routes/(app)/admin/+page.svelte @@ -0,0 +1,11 @@ + + +{#each users as { balance, username }} +
+
{username}
+
{balance}
+
+{/each} diff --git a/src/routes/(app)/payment/[id]/+page.svelte b/src/routes/(app)/payment/[id]/+page.svelte index 34e2d327..cf30db35 100644 --- a/src/routes/(app)/payment/[id]/+page.svelte +++ b/src/routes/(app)/payment/[id]/+page.svelte @@ -62,7 +62,7 @@ Total
{f(fiat(a + (tip || 0), rate), currency)} - ⚡️{`${s(a + (tip || 0))}`} + ⚡️{`${s(a + (tip || 0))}`}
{/if} diff --git a/src/routes/(app)/sent/+page.svelte b/src/routes/(app)/sent/+page.svelte index 72973c50..dbd18c2e 100644 --- a/src/routes/(app)/sent/+page.svelte +++ b/src/routes/(app)/sent/+page.svelte @@ -20,7 +20,7 @@
-

{$t('payments.sent')}!

+

{$t('payments.sent')}!

{f(fiat(amount, rate), currency)} {#if tip} -- cgit v1.2.3