diff options
| author | Adam Soltys <[email protected]> | 2023-03-16 23:04:32 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-03-16 23:04:36 -0700 |
| commit | cdc3a2677c8728af27084024daba288153c2bd52 (patch) | |
| tree | 06330e17d9c5efa4bb52a8b8db955d195a25972f /src | |
| parent | bee2cdd4a24787c4bf808de4d03783955610c905 (diff) | |
| download | coinos-ui-cdc3a2677c8728af27084024daba288153c2bd52.tar.gz coinos-ui-cdc3a2677c8728af27084024daba288153c2bd52.zip | |
admin route
Diffstat (limited to 'src')
| -rw-r--r-- | src/locales/en.json | 2 | ||||
| -rw-r--r-- | src/locales/es.json | 2 | ||||
| -rw-r--r-- | src/locales/pt.json | 4 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/followers/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/follows/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/payments/[...page]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/+page.svelte | 19 | ||||
| -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 | 11 | ||||
| -rw-r--r-- | src/routes/(app)/payment/[id]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/(app)/sent/+page.svelte | 2 |
13 files changed, 69 insertions, 14 deletions
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 @@ <svelte:window bind:innerWidth={w} /> <div class="px-3 md:px-0 w-full md:w-[400px] mx-auto space-y-8"> - <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold">{$t('user.followers')}</h1> + <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold"> + {$t('user.followers')} + </h1> {#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 @@ <svelte:window bind:innerWidth={w} /> <div class="px-3 md:px-0 w-full md:w-[400px] mx-auto space-y-8"> - <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold">{$t('user.following')}</h1> + <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold"> + {$t('user.following')} + </h1> {#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} <Spinner /> {:else} - <div class="my-auto">{$t('user.settings.saveSettings')}</div> + <div class="my-auto">{$t('user.settings.saveSettings')}</div> {/if} </button> </div> 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..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 @@ +<script> + export let data; + let { users } = data; +</script> + +{#each users as { balance, username }} + <div class="grid grid-cols-2"> + <div>{username}</div> + <div>{balance}</div> + </div> +{/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 @@ <span class="text-lg text-secondary">Total</span> <div> {f(fiat(a + (tip || 0), rate), currency)} - <span class="text-secondary text-lg">⚡️{`${s(a + (tip || 0))}`} </span> + <span class="text-secondary text-lg">⚡️{`${s(a + (tip || 0))}`} </span> </div> </div> {/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 @@ <div class="flex w-full max-w-[200px] mx-auto py-20" in:scale={{ start: 0.5 }}> <Icon icon="check" style="mx-auto" /> </div> - <h1 class="text-3xl md:text-4xl font-bold mb-6">{$t('payments.sent')}!</h1> + <h1 class="text-3xl md:text-4xl font-bold mb-6">{$t('payments.sent')}!</h1> <h2 class="text-2xl md:text-3xl font-semibold"> {f(fiat(amount, rate), currency)} {#if tip} |
