From 0523cebdfe9b971e3a561d341f940761d57392d6 Mon Sep 17 00:00:00 2001 From: David Lane <42013603+ReenigneArcher@users.noreply.github.com> Date: Thu, 14 May 2026 23:23:02 -0400 Subject: [PATCH] feat(web-ui): add logout (#5121) --- src/confighttp.cpp | 1 + src_assets/common/assets/web/Navbar.vue | 71 ++++++++++++++++--- src_assets/common/assets/web/logout.html | 41 +++++++++++ .../assets/web/public/assets/css/sunshine.css | 1 + .../assets/web/public/assets/locale/en.json | 6 ++ vite.config.js | 1 + 6 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 src_assets/common/assets/web/logout.html diff --git a/src/confighttp.cpp b/src/confighttp.cpp index 32f504ee6..2f703dbca 100644 --- a/src/confighttp.cpp +++ b/src/confighttp.cpp @@ -1755,6 +1755,7 @@ namespace confighttp { server.resource["^/clients/?$"]["GET"] = page_handler("clients.html"); server.resource["^/config/?$"]["GET"] = page_handler("config.html"); server.resource["^/featured/?$"]["GET"] = page_handler("featured.html"); + server.resource["^/logout/?$"]["GET"] = page_handler("logout.html", false); server.resource["^/password/?$"]["GET"] = page_handler("password.html"); server.resource["^/pin/?$"]["GET"] = page_handler("pin.html"); server.resource["^/troubleshooting/?$"]["GET"] = page_handler("troubleshooting.html"); diff --git a/src_assets/common/assets/web/Navbar.vue b/src_assets/common/assets/web/Navbar.vue index 4dc347375..a943b51ad 100644 --- a/src_assets/common/assets/web/Navbar.vue +++ b/src_assets/common/assets/web/Navbar.vue @@ -41,21 +41,38 @@ {{ $t('navbar.configuration') }} - + + @@ -65,7 +82,7 @@ diff --git a/src_assets/common/assets/web/logout.html b/src_assets/common/assets/web/logout.html new file mode 100644 index 000000000..41bc8f5b2 --- /dev/null +++ b/src_assets/common/assets/web/logout.html @@ -0,0 +1,41 @@ + + + + + <%- header %> + + + +
+
+
+
+
+ Sunshine +

{{ $t('logout.logged_out') }}

+

{{ $t('logout.logged_out_desc') }}

+ + + {{ $t('logout.login') }} + +
+
+
+
+
+ + + + diff --git a/src_assets/common/assets/web/public/assets/css/sunshine.css b/src_assets/common/assets/web/public/assets/css/sunshine.css index 970f2e2e9..6dbde5df3 100644 --- a/src_assets/common/assets/web/public/assets/css/sunshine.css +++ b/src_assets/common/assets/web/public/assets/css/sunshine.css @@ -802,6 +802,7 @@ body { color: var(--navbar-text-muted) !important; font-weight: 500; padding: 0.5rem 1rem !important; + min-height: calc(1.5em + 1rem); border-radius: var(--radius-md); transition: all var(--transition-fast); display: flex; diff --git a/src_assets/common/assets/web/public/assets/locale/en.json b/src_assets/common/assets/web/public/assets/locale/en.json index 30289b1ee..1165ed886 100644 --- a/src_assets/common/assets/web/public/assets/locale/en.json +++ b/src_assets/common/assets/web/public/assets/locale/en.json @@ -426,6 +426,7 @@ "configuration": "Configuration", "featured": "Featured Apps", "home": "Home", + "logout": "Log Out", "password": "Change Password", "pin": "PIN", "theme_auto": "Auto", @@ -446,6 +447,11 @@ "toggle_theme": "Theme", "troubleshoot": "Troubleshooting" }, + "logout": { + "logged_out": "Logged Out", + "logged_out_desc": "You have successfully logged out.", + "login": "Log In" + }, "password": { "confirm_password": "Confirm Password", "current_creds": "Current Credentials", diff --git a/vite.config.js b/vite.config.js index c430a4371..568aae41c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -70,6 +70,7 @@ export default defineConfig({ config: resolve(assetsSrcPath, 'config.html'), featured: resolve(assetsSrcPath, 'featured.html'), index: resolve(assetsSrcPath, 'index.html'), + logout: resolve(assetsSrcPath, 'logout.html'), password: resolve(assetsSrcPath, 'password.html'), pin: resolve(assetsSrcPath, 'pin.html'), troubleshooting: resolve(assetsSrcPath, 'troubleshooting.html'),