diff --git a/.github/readme/brand-dark.svg b/.github/readme/brand-dark.svg new file mode 100644 index 00000000..3a151952 --- /dev/null +++ b/.github/readme/brand-dark.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index 06a76e02..21cabe2d 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@
+

- + + + + Shows a black logo in light color mode and a white one in dark color mode. +

+

-GitHub All Releases     Discord +GitHub All Releases     Discord

diff --git a/warpgate-protocol-http/src/error.rs b/warpgate-protocol-http/src/error.rs index 360a7780..0815d150 100644 --- a/warpgate-protocol-http/src/error.rs +++ b/warpgate-protocol-http/src/error.rs @@ -21,7 +21,7 @@ pub fn error_page(e: poem::Error) -> impl IntoResponse { }}
- +

Request failed

{e}

diff --git a/warpgate-web/package.json b/warpgate-web/package.json index e61ed4ef..8630913f 100644 --- a/warpgate-web/package.json +++ b/warpgate-web/package.json @@ -18,6 +18,7 @@ "openapi": "yarn run openapi:schema:admin && yarn run openapi:schema:gateway && yarn run openapi:client:admin && yarn run openapi:client:gateway" }, "devDependencies": { + "@fontsource/poppins": "^5.1.0", "@fontsource/work-sans": "^4.5.12", "@fortawesome/free-brands-svg-icons": "^6.7.1", "@fortawesome/free-regular-svg-icons": "^6.7.1", @@ -46,7 +47,7 @@ "format-duration": "^3.0.2", "otpauth": "^9.3.5", "qrcode": "^1.5.4", - "sass": "~1.82", + "sass": "1.78", "svelte": "^5.11.0", "svelte-check": "^4.1.1", "svelte-fa": "^4.0.3", diff --git a/warpgate-web/public/assets/brand.svg b/warpgate-web/public/assets/brand.svg new file mode 100644 index 00000000..f423c0c3 --- /dev/null +++ b/warpgate-web/public/assets/brand.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + diff --git a/warpgate-web/public/assets/favicon.svg b/warpgate-web/public/assets/favicon.svg new file mode 100644 index 00000000..ce06cd8b --- /dev/null +++ b/warpgate-web/public/assets/favicon.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + diff --git a/warpgate-web/public/assets/logo.svg b/warpgate-web/public/assets/logo.svg deleted file mode 100644 index d71431fc..00000000 --- a/warpgate-web/public/assets/logo.svg +++ /dev/null @@ -1,62 +0,0 @@ - diff --git a/warpgate-web/src/admin/App.svelte b/warpgate-web/src/admin/App.svelte index 38dfed3d..cfcf9bdb 100644 --- a/warpgate-web/src/admin/App.svelte +++ b/warpgate-web/src/admin/App.svelte @@ -5,9 +5,9 @@ import Router, { link } from 'svelte-spa-router' import active from 'svelte-spa-router/active' import { wrap } from 'svelte-spa-router/wrap' import ThemeSwitcher from 'common/ThemeSwitcher.svelte' -import Logo from 'common/Logo.svelte' import DelayedSpinner from 'common/DelayedSpinner.svelte' import AuthBar from 'common/AuthBar.svelte' +import Brand from 'common/Brand.svelte' async function init () { await reloadServerInfo() @@ -25,15 +25,6 @@ const routes = { '/recordings/:id': wrap({ asyncComponent: () => import('./Recording.svelte') as any, }), - '/tickets': wrap({ - asyncComponent: () => import('./Tickets.svelte') as any, - }), - '/tickets/create': wrap({ - asyncComponent: () => import('./CreateTicket.svelte') as any, - }), - '/config': wrap({ - asyncComponent: () => import('./Config.svelte') as any, - }), '/targets/create': wrap({ asyncComponent: () => import('./CreateTarget.svelte') as any, }), @@ -52,14 +43,32 @@ const routes = { '/users/:id': wrap({ asyncComponent: () => import('./User.svelte') as any, }), - '/ssh': wrap({ - asyncComponent: () => import('./SSH.svelte') as any, - }), '/log': wrap({ asyncComponent: () => import('./Log.svelte') as any, }), - '/parameters': wrap({ - asyncComponent: () => import('./Parameters.svelte') as any, + '/config': wrap({ + asyncComponent: () => import('./config/Config.svelte') as any, + }), + '/config/parameters': wrap({ + asyncComponent: () => import('./config/Parameters.svelte') as any, + }), + '/config/users': wrap({ + asyncComponent: () => import('./config/Users.svelte') as any, + }), + '/config/roles': wrap({ + asyncComponent: () => import('./config/Roles.svelte') as any, + }), + '/config/targets': wrap({ + asyncComponent: () => import('./config/Targets.svelte') as any, + }), + '/config/ssh': wrap({ + asyncComponent: () => import('./config/SSHKeys.svelte') as any, + }), + '/config/tickets': wrap({ + asyncComponent: () => import('./config/Tickets.svelte') as any, + }), + '/config/tickets/create': wrap({ + asyncComponent: () => import('./CreateTicket.svelte') as any, }), } @@ -69,18 +78,15 @@ const routes = { {:then}
- - + + {#if $serverInfo?.username} Sessions Config - Tickets - SSH Log {/if} +
@@ -88,7 +94,7 @@ const routes = {