XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

feat(webui): light/dark theme selection (#2343)

Closes #2093 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2343 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

d66f1c58
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

8 个文件 +62 -31
Modified static/webui/index.html +32 -31
@@ -13,37 +13,38 @@
13 13 <span class="navbar-toggler-icon"></span>
14 14 </button>
15 15 <a class="navbar-brand">OpenWF WebUI</a>
16 <ul class="navbar-nav ms-auto mb-0">
17 <li class="nav-item dropdown">
18 <button id="active-lang-name" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"></button>
19 <ul class="dropdown-menu dropdown-menu-end">
20 <li><a class="dropdown-item active" href="#" data-lang="en" onclick="event.preventDefault();setLanguage('en');">English</a></li>
21 <li><a class="dropdown-item" href="#" data-lang="de" onclick="event.preventDefault();setLanguage('de');">Deutsch</a></li>
22 <li><a class="dropdown-item" href="#" data-lang="es" onclick="event.preventDefault();setLanguage('es');">Español</a></li>
23 <li><a class="dropdown-item" href="#" data-lang="fr" onclick="event.preventDefault();setLanguage('fr');">Français</a></li>
24 <li><a class="dropdown-item" href="#" data-lang="it" onclick="event.preventDefault();setLanguage('it');">Italiano</a></li>
25 <li><a class="dropdown-item" href="#" data-lang="ja" onclick="event.preventDefault();setLanguage('ja');">日本語</a></li>
26 <li><a class="dropdown-item" href="#" data-lang="ko" onclick="event.preventDefault();setLanguage('ko');">한국어</a></li>
27 <li><a class="dropdown-item" href="#" data-lang="pl" onclick="event.preventDefault();setLanguage('pl');">Polski</a></li>
28 <li><a class="dropdown-item" href="#" data-lang="pt" onclick="event.preventDefault();setLanguage('pt');">Português</a></li>
29 <li><a class="dropdown-item" href="#" data-lang="ru" onclick="event.preventDefault();setLanguage('ru');">Русский</a></li>
30 <li><a class="dropdown-item" href="#" data-lang="tr" onclick="event.preventDefault();setLanguage('tr');">Türkçe</a></li>
31 <li><a class="dropdown-item" href="#" data-lang="uk" onclick="event.preventDefault();setLanguage('uk');">Українська</a></li>
32 <li><a class="dropdown-item" href="#" data-lang="zh" onclick="event.preventDefault();setLanguage('zh');">简体中文</a></li>
33 <li><a class="dropdown-item" href="#" data-lang="tc" onclick="event.preventDefault();setLanguage('tc');">繁體中文</a></li>
34 <li><a class="dropdown-item" href="#" data-lang="th" onclick="event.preventDefault();setLanguage('th');">แบบไทย</a></li>
35 </ul>
36 </li>
37 <li class="nav-item dropdown user-dropdown">
38 <button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
39 <ul class="dropdown-menu dropdown-menu-end">
40 <li><a class="dropdown-item" href="/webui/" onclick="doLogout();" data-loc="navbar_logout"></a></li>
41 <li><hr class="dropdown-divider"></li>
42 <li><a class="dropdown-item" href="#" onclick="event.preventDefault();renameAccount();" data-loc="navbar_renameAccount"></a></li>
43 <li><a class="dropdown-item" href="#" onclick="event.preventDefault();deleteAccount();" data-loc="navbar_deleteAccount"></a></li>
44 </ul>
45 </li>
46 </ul>
16 <div class="ms-auto nav-item dropdown">
17 <button id="active-lang-name" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"></button>
18 <ul class="dropdown-menu dropdown-menu-end">
19 <li><a class="dropdown-item active" href="#" data-lang="en" onclick="event.preventDefault();setLanguage('en');">English</a></li>
20 <li><a class="dropdown-item" href="#" data-lang="de" onclick="event.preventDefault();setLanguage('de');">Deutsch</a></li>
21 <li><a class="dropdown-item" href="#" data-lang="es" onclick="event.preventDefault();setLanguage('es');">Español</a></li>
22 <li><a class="dropdown-item" href="#" data-lang="fr" onclick="event.preventDefault();setLanguage('fr');">Français</a></li>
23 <li><a class="dropdown-item" href="#" data-lang="it" onclick="event.preventDefault();setLanguage('it');">Italiano</a></li>
24 <li><a class="dropdown-item" href="#" data-lang="ja" onclick="event.preventDefault();setLanguage('ja');">日本語</a></li>
25 <li><a class="dropdown-item" href="#" data-lang="ko" onclick="event.preventDefault();setLanguage('ko');">한국어</a></li>
26 <li><a class="dropdown-item" href="#" data-lang="pl" onclick="event.preventDefault();setLanguage('pl');">Polski</a></li>
27 <li><a class="dropdown-item" href="#" data-lang="pt" onclick="event.preventDefault();setLanguage('pt');">Português</a></li>
28 <li><a class="dropdown-item" href="#" data-lang="ru" onclick="event.preventDefault();setLanguage('ru');">Русский</a></li>
29 <li><a class="dropdown-item" href="#" data-lang="tr" onclick="event.preventDefault();setLanguage('tr');">Türkçe</a></li>
30 <li><a class="dropdown-item" href="#" data-lang="uk" onclick="event.preventDefault();setLanguage('uk');">Українська</a></li>
31 <li><a class="dropdown-item" href="#" data-lang="zh" onclick="event.preventDefault();setLanguage('zh');">简体中文</a></li>
32 <li><a class="dropdown-item" href="#" data-lang="tc" onclick="event.preventDefault();setLanguage('tc');">繁體中文</a></li>
33 <li><a class="dropdown-item" href="#" data-lang="th" onclick="event.preventDefault();setLanguage('th');">แบบไทย</a></li>
34 <li><hr class="dropdown-divider"></li>
35 <li><a class="dropdown-item active" href="#" data-loc="theme_dark" data-theme="dark" onclick="event.preventDefault();setTheme('dark');"></a></li>
36 <li><a class="dropdown-item" href="#" data-loc="theme_light" data-theme="light" onclick="event.preventDefault();setTheme('light');"></a></li>
37 </ul>
38 </div>
39 <div class="nav-item dropdown user-dropdown">
40 <button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
41 <ul class="dropdown-menu dropdown-menu-end">
42 <li><a class="dropdown-item" href="/webui/" onclick="doLogout();" data-loc="navbar_logout"></a></li>
43 <li><hr class="dropdown-divider"></li>
44 <li><a class="dropdown-item" href="#" onclick="event.preventDefault();renameAccount();" data-loc="navbar_renameAccount"></a></li>
45 <li><a class="dropdown-item" href="#" onclick="event.preventDefault();deleteAccount();" data-loc="navbar_deleteAccount"></a></li>
46 </ul>
47 </div>
47 48 </div>
48 49 </nav>
49 50 <div class="container pt-3 pb-3" id="main-view">
Modified static/webui/script.js +12 -0
@@ -230,6 +230,18 @@ function setLanguage(lang) {
230 230 }
231 231 }
232 232
233 function setActiveTheme(theme) {
234 document.documentElement.setAttribute("data-bs-theme", theme);
235 document.querySelector("[data-theme].active").classList.remove("active");
236 document.querySelector("[data-theme=" + theme + "]").classList.add("active");
237 }
238 setActiveTheme(localStorage.getItem("theme") ?? "dark");
239
240 function setTheme(theme) {
241 setActiveTheme(theme);
242 localStorage.setItem("theme", theme);
243 }
244
233 245 const webUiModularWeapons = [
234 246 "/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon",
235 247 "/Lotus/Weapons/Ostron/Melee/LotusModularWeapon",
Modified static/webui/translations/de.js +3 -0
@@ -291,5 +291,8 @@ dict = {
291 291 upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
292 292 upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
293 293
294 theme_dark: `[UNTRANSLATED] Dark Theme`,
295 theme_light: `[UNTRANSLATED] Light Theme`,
296
294 297 prettier_sucks_ass: ``
295 298 };
Modified static/webui/translations/en.js +3 -0
@@ -290,5 +290,8 @@ dict = {
290 290 upgrade_SwiftExecute: `Speed of Mercy Kills increased by 50%`,
291 291 upgrade_OnHackInvis: `Invisible for 15 seconds after hacking`,
292 292
293 theme_dark: `Dark Theme`,
294 theme_light: `Light Theme`,
295
293 296 prettier_sucks_ass: ``
294 297 };
Modified static/webui/translations/es.js +3 -0
@@ -291,5 +291,8 @@ dict = {
291 291 upgrade_SwiftExecute: `Velocidad de ejecuciones aumentada en un 50%`,
292 292 upgrade_OnHackInvis: `Invisible durante 15 segundos después de hackear`,
293 293
294 theme_dark: `[UNTRANSLATED] Dark Theme`,
295 theme_light: `[UNTRANSLATED] Light Theme`,
296
294 297 prettier_sucks_ass: ``
295 298 };
Modified static/webui/translations/fr.js +3 -0
@@ -291,5 +291,8 @@ dict = {
291 291 upgrade_SwiftExecute: `Vitesse des miséricordes augmentée de 50%`,
292 292 upgrade_OnHackInvis: `Invisible pendant 15 secondes après un piratage`,
293 293
294 theme_dark: `[UNTRANSLATED] Dark Theme`,
295 theme_light: `[UNTRANSLATED] Light Theme`,
296
294 297 prettier_sucks_ass: ``
295 298 };
Modified static/webui/translations/ru.js +3 -0
@@ -291,5 +291,8 @@ dict = {
291 291 upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
292 292 upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
293 293
294 theme_dark: `[UNTRANSLATED] Dark Theme`,
295 theme_light: `[UNTRANSLATED] Light Theme`,
296
294 297 prettier_sucks_ass: ``
295 298 };
Modified static/webui/translations/zh.js +3 -0
@@ -291,5 +291,8 @@ dict = {
291 291 upgrade_SwiftExecute: `怜悯之击速度提升50%`,
292 292 upgrade_OnHackInvis: `入侵后隐身15秒`,
293 293
294 theme_dark: `[UNTRANSLATED] Dark Theme`,
295 theme_light: `[UNTRANSLATED] Light Theme`,
296
294 297 prettier_sucks_ass: ``
295 298 };