diff --git a/frontend/src/routes/+error.svelte b/frontend/src/routes/+error.svelte new file mode 100644 index 0000000..983436b --- /dev/null +++ b/frontend/src/routes/+error.svelte @@ -0,0 +1,13 @@ + + +
+
+

{page.status}

+

{page.error?.message || 'Page not found'}

+ + Go home + +
+
diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 7ddbf6b..22b9798 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -1,33 +1,294 @@ -{#if !mounted || isLoading()} +{#if isAuthPage} + {@render children()} +{:else if auth.loading}
-

Loading...

+
+
+

{t('common.loading')}

+
+
+{:else if auth.user} +
+ + + + + + + +
+ {#key page.url.pathname} +
+ {@render children()} +
+ {/key} +
{:else} - {@render children()} +
+
+
+

{t('common.loading')}

+
+
{/if} + + + { showPasswordForm = false; pwdMsg = ''; pwdSuccess = false; }}> +
+
+ + +
+
+ + +
+ {#if pwdMsg} +

{pwdMsg}

+ {/if} + +
+
+ + + + diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 6a4cd9a..18492f9 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,18 +1,13 @@ - -
-
-

{t('app.name')}

-

{t('app.tagline')}

- -
+ + +
+

{t('dashboard.noEvents')}

diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte index b6d0762..2660884 100644 --- a/frontend/src/routes/login/+page.svelte +++ b/frontend/src/routes/login/+page.svelte @@ -1,47 +1,272 @@ -
-
-

{t('app.name')}

+
+ +
+
-
{ e.preventDefault(); handleLogin(); }} class="space-y-4"> -
- - + +
+
+ +
+ +
-
- - + + +
+
+ +
+

+ Notify Bridge +

+

{t('auth.signInTitle')}

{#if error} -

{error}

+
+ + {error} +
{/if} - - +
+
+ + +
+
+ + +
+ +
+
+ + diff --git a/frontend/src/routes/providers/new/+page.svelte b/frontend/src/routes/providers/new/+page.svelte new file mode 100644 index 0000000..c17091e --- /dev/null +++ b/frontend/src/routes/providers/new/+page.svelte @@ -0,0 +1,133 @@ + + +
+ + +

{t('provider.addProvider')}

+ +
+ +
+ + +
+ + +
+ + +
+ + {#if providerType === 'immich'} + +
+ + +
+ + +
+ + +
+ + +
+ + +

Public-facing URL for notification links. Falls back to server URL.

+
+ {/if} + + {#if error} +

{error}

+ {/if} + + {#if testResult} +
+ {testResult.message} +
+ {/if} + +
+ + + + {t('common.cancel')} + +
+
+
diff --git a/frontend/src/routes/setup/+page.svelte b/frontend/src/routes/setup/+page.svelte index fbc44f0..d754808 100644 --- a/frontend/src/routes/setup/+page.svelte +++ b/frontend/src/routes/setup/+page.svelte @@ -1,48 +1,229 @@ -
-
-

{t('app.name')}

-

Create your admin account

+
+
+
-
{ e.preventDefault(); handleSetup(); }} class="space-y-4"> -
- - -
-
- - +
+
+
+
+ +
+

+ Notify Bridge +

+

{t('auth.setupDescription')}

{#if error} -

{error}

+
+ + {error} +
{/if} - - +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ +