⛅ Sync 2026-03-22 20:18:41

This commit is contained in:
github-actions[bot] committed 2026-03-22 20:18:41 +08:00
1 parent 8d097e3078
commit a660863dba
38 files changed
+705 -4060

No files matched your search

+2 -2
View File
@@ -10,8 +10,8 @@ THEME_NAME:=alpha
THEME_TITLE:=Alpha
PKG_NAME:=luci-theme-$(THEME_NAME)
PKG_VERSION:=3.9.6_beta
PKG_RELEASE:=2
PKG_VERSION:=3.9.7_beta
PKG_RELEASE:=3
include $(INCLUDE_DIR)/package.mk
+56 -18
View File
@@ -30,29 +30,42 @@ return baseclass.extend({
);
document.querySelector(".main > .loading").style.opacity = "0";
document.querySelector(".main > .loading").style.visibility = "hidden";
if (window.innerWidth <= 1152)
document.querySelector(".main-left").style.width = "0";
if (window.innerWidth <= 1152) {
document.querySelector(".main-left").style.transform = "translateX(-20rem)";
}
window.addEventListener("resize", this.handleSidebarToggle, true);
},
handleMenuExpand: function (ev) {
var a = ev.target,
ul1 = a.parentNode,
ul2 = a.nextElementSibling;
ul2 = a.nextElementSibling,
isActive = ul1.classList.contains("active");
document.querySelectorAll("li.slide.active").forEach(function (li) {
if (li !== a.parentNode || li == ul1) {
var menu = li.querySelector("ul");
if (menu) {
if (!menu.style.maxHeight || menu.style.maxHeight === "1200px") {
menu.style.maxHeight = menu.scrollHeight + "px";
}
void menu.offsetHeight; // Force layout
menu.style.maxHeight = "0px";
}
li.classList.remove("active");
li.childNodes[0].classList.remove("active");
}
if (li == ul1) return;
});
if (!ul2) return;
if (
ul2.parentNode.offsetLeft + ul2.offsetWidth <=
ul1.offsetLeft + ul1.offsetWidth
)
ul2.classList.add("align-left");
ul1.classList.add("active");
a.classList.add("active");
if (!isActive) {
if (
ul2.parentNode.offsetLeft + ul2.offsetWidth <=
ul1.offsetLeft + ul1.offsetWidth
)
ul2.classList.add("align-left");
ul1.classList.add("active");
a.classList.add("active");
ul2.style.maxHeight = ul2.scrollHeight + "px";
}
a.blur();
ev.preventDefault();
ev.stopPropagation();
@@ -167,13 +180,38 @@ return baseclass.extend({
darkMask = document.querySelector(".darkMask"),
mainRight = document.querySelector(".main-right"),
mainLeft = document.querySelector(".main-left"),
open = mainLeft.style.width == "";
if (width > 1152 || ev.type == "resize") open = true;
darkMask.style.visibility = open ? "" : "visible";
darkMask.style.opacity = open ? "" : 1;
if (width <= 1152) mainLeft.style.width = open ? "0" : "";
else mainLeft.style.width = "";
mainLeft.style.visibility = open ? "" : "visible";
mainRight.style["overflow-y"] = open ? "visible" : "hidden";
open = mainLeft.style.transform === ""; // true if currently open
// If it's a resize event, we simulate that the sidebar was "open" so the logic below closes it for mobile, and opens it for desktop
if (ev.type == "resize") {
open = true;
}
// Logics: 'open' true means we want to CLOSE it on mobile, but OPEN it on desktop.
// Actually, let's make it clearer: we toggle the state.
var willOpen = !open;
if (ev.type == "resize") {
willOpen = width > 1152;
}
if (width <= 1152) {
// Mobile behavior
mainLeft.style.width = ""; // Reset width
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "";
darkMask.style.visibility = willOpen ? "visible" : "";
darkMask.style.opacity = willOpen ? 1 : "";
mainRight.style.width = "";
} else {
// Desktop behavior
mainLeft.style.width = ""; // Reset width
mainLeft.style.transform = willOpen ? "" : "translateX(-20rem)";
mainLeft.style.visibility = willOpen ? "visible" : "hidden";
mainRight.style.width = willOpen ? "" : "100%";
darkMask.style.visibility = "";
darkMask.style.opacity = "";
}
if (ev && ev.preventDefault) ev.preventDefault();
if (ev && ev.stopPropagation) ev.stopPropagation();
},
});
+53 -20
View File
@@ -783,6 +783,7 @@
float: right;
width: calc(100% - 16rem);
height: 100%;
transition: width 450ms cubic-bezier(0.16, 1, 0.3, 1);
}
.nowrap:not(.td) {
@@ -795,6 +796,17 @@
}
/* Sidebar */
.showSide {
position: -webkit-sticky;
position: sticky;
top: 0rem;
display: inline-flex;
align-items: center;
height: 100%;
margin-right: 0.7rem;
cursor: pointer;
}
.main>.main-left {
position: fixed;
top: 4.8rem;
@@ -802,7 +814,7 @@
float: left;
overflow-x: auto;
background-color: #2222359a;
transition: visibility 400ms, width 400ms;
transition: visibility 450ms, transform 450ms cubic-bezier(0.16, 1, 0.3, 1);
border-top-left-radius: 0px;
border-top-right-radius: 20px;
border-bottom-left-radius: 0px;
@@ -2499,7 +2511,7 @@
width: 100%;
height: 100%;
content: "";
transition: opacity 400ms, visibility 400ms;
transition: opacity 450ms cubic-bezier(0.16, 1, 0.3, 1), visibility 450ms;
visibility: hidden;
opacity: 0;
background-color: #2222359a;
@@ -2840,7 +2852,10 @@
.alert-message .btn,
.modal .btn {
padding: 0.3rem 0.6rem;
padding: 0 1.2rem;
display: inline-flex;
align-items: center;
justify-content: center;
}
.container .alert,
@@ -2866,14 +2881,8 @@
border-radius: 10px;
}
.main>.main-left>.nav>.slide>ul,
.main>.main-left[style*="overflow: hidden"]>.nav>.slide>.menu::before,
.tr.placeholder .td[data-title]::before,
.cbi-dropdown>ul.preview,
.cbi-dropdown>ul>li .hide-close,
.cbi-dropdown[open]>ul.dropdown>li .hide-open,
.hidden,
.showSide,
.node-main-login>.main>.main-left,
[data-page^="admin-system-commands"] .panel-title,
[data-page^="command-cfg"] .mobile-hide,
@@ -2881,7 +2890,6 @@
display: none;
}
.main>.main-left>.nav>.slide.active>ul,
.cbi-dropdown[empty]>ul>li,
.cbi-dropdown[optional][open]>ul.dropdown>li[placeholder],
.cbi-dropdown[multiple][open]>ul.dropdown>li>form,
@@ -2892,6 +2900,21 @@
display: block;
}
.main>.main-left>.nav>.slide>ul {
display: block;
overflow: hidden;
max-height: 0;
opacity: 0;
visibility: hidden;
transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease-out, visibility 0.4s;
}
.main>.main-left>.nav>.slide.active>ul {
max-height: 1200px; /* Fallback for initial load */
opacity: 1;
visibility: visible;
transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease-in, visibility 0s;
}
.main>.main-left>.nav>li:hover,
.main>.main-left>.nav>.slide>.menu:hover,
.main>.main-left>.nav>.slide>.slide-menu>li:hover {
@@ -3194,16 +3217,26 @@
width: 100%;
}
.showSide {
position: -webkit-sticky;
position: sticky;
top: 0rem;
display: inline-flex;
align-items: center;
height: 100%;
margin-right: 0.7rem;
cursor: pointer;
}
.showSide {
position: -webkit-sticky !important;
position: sticky !important;
top: 0rem;
display: inline-flex !important;
align-items: center;
min-width: 40px;
height: 100%;
margin-right: 0.7rem;
cursor: pointer;
flex-shrink: 0 !important;
z-index: 3000 !important;
}
.showSide img {
width: 30px !important;
height: auto !important;
display: block !important;
visibility: visible !important;
opacity: 1 !important;
}
body:not(.logged-in) .showSide {
visibility: hidden;
File diff suppressed because it is too large. Load diff
@@ -1 +0,0 @@
buat tambah login page disini
Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 124 KiB

+2 -1
View File
@@ -410,7 +410,8 @@ img.bawah {
display: block;
padding: 20px;
text-decoration: none;
width: 25rem;
width: 14rem;
max-width: 80vw;
}
.icon-credits a {
+95 -114
View File
@@ -1,127 +1,108 @@
<%#
Alpha os is made from me for all .. especially for indo wrt members and fan of OpenWrt or DBAI Community
luci-theme-alpha
Copyright 2024 derisamedia <facebook.com/derisamedia>
<%# Alpha os is made from me for all .. especially for indo wrt members and fan of OpenWrt or DBAI Community
luci-theme-alpha Copyright 2024 derisamedia <facebook.com/derisamedia>
Have a bug? Please create an issue here on GitHub!
luci-theme-material
Copyright 2015 Lutty Yang <lutty@wcan.in>
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
MUI:
https://github.com/muicss/mui
MUI:
https://github.com/muicss/mui
Licensed to the public under the Apache License 2.0
-%>
<%
local ver = require "luci.version"
local uci = require "luci.model.uci".cursor()
local config = uci:get_all("alpha", "theme")
Licensed to the public under the Apache License 2.0
-%>
<% local ver=require "luci.version" local uci=require "luci.model.uci" .cursor() local
config=uci:get_all("alpha", "theme" ) -- Table to store navbar icons local icon={} -- Iterate
through all navbar entries uci:foreach("alpha", "navbar" , function(section) local
address=section.address local icon_url=section.icon if address and icon_url then --
Remove '/www/luci-static/alpha/' from icon_url
icon_url=string.gsub(icon_url, "^/www/luci%-static/alpha/" , "" ) icon[address]=icon_url end
end) -- Check navbar enable status local navbar_enabled=config.navbar=="1" -- Calculate number
of enabled navbar links local num_links=0 uci:foreach("alpha", "navbar" , function(section) if
section.enable=="Enable" then num_links=num_links + 1 end end) -- Calculate link width for
responsive design local link_width=string.format("calc(100%% / %d)", num_links) -- Retrieve
theme properties local background_color=config.color or '#2222359a' local
blur_value=tonumber(config.blur) or 20 local link_blur=string.format("blur(%dpx)", blur_value)
%>
-- Table to store navbar icons
local icon = {}
<style>
.main>.main-left,
.cbi-section,
.cbi-section-error,
#iptables,
.Firewall form,
#cbi-network>.cbi-section-node,
#cbi-wireless>.cbi-section-node,
#cbi-wireless>#wifi_assoclist_table,
[data-tab-title],
[data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
[data-page="admin-system-opkg"] #maincontent>.container,
.tabs,
.cbi-tabmenu,
.cbi-tooltip {
background-color: <%=background_color%>;
backdrop-filter: <%=link_blur%>;
-webkit-backdrop-filter: <%=link_blur%>;
}
-- Iterate through all navbar entries
uci:foreach("alpha", "navbar", function(section)
local address = section.address
local icon_url = section.icon
@media screen and (max-width: 720px) {
.navbar a {
width: <%=link_width%>;
}
}
if address and icon_url then
-- Remove '/www/luci-static/alpha/' from icon_url
icon_url = string.gsub(icon_url, "^/www/luci%-static/alpha/", "")
icon[address] = icon_url
end
end)
<% if not navbar_enabled then %>.navbar {
display: none;
}
-- Check navbar enable status
local navbar_enabled = config.navbar == "1"
<% end %>
</style>
-- Calculate number of enabled navbar links
local num_links = 0
uci:foreach("alpha", "navbar", function(section)
if section.enable == "Enable" then
num_links = num_links + 1
end
end)
</div>
<footer class="mobile">
<a href="https://github.com/derisamedia/luci-theme-alpha">
<%=ver.luciname%> | Alpha OS Theme v3.9.7
</a>
</footer>
</div>
<div class="navbar active">
<% if navbar_enabled then %>
<div class="dropdown">
<% uci:foreach("alpha", "navbar" , function(section) local address=section.address
local icon_url=icon[address] or 'default/icon.png' local
target_blank=section.newtab=="Yes" and 'target="_blank"' or '' if
section.enable=="Enable" then %>
<a href="<%=address%>" <%=target_blank%>>
<img src="<%=media%>/<%=icon_url%>" />
</a>
<% end end) %>
</div>
<% end %>
<label class="toggler">
<img src="<%=media%>/gaya/icon/arrow.svg">
</label>
</div>
<script>
{
const nav = document.querySelector(".navbar");
let lastScrollY = window.scrollY;
window.addEventListener("scroll", () => {
if (lastScrollY < window.scrollY) {
nav.classList.add("navbar--hidden");
} else {
nav.classList.remove("navbar--hidden");
}
lastScrollY = window.scrollY;
});
}
</script>
</div>
<script type="text/javascript">L.require('menu-alpha')</script>
<script src="<%=media%>/app.js"></script>
</body>
-- Calculate link width for responsive design
local link_width = string.format("calc(100%% / %d)", num_links)
-- Retrieve theme properties
local background_color = config.color or '#2222359a'
local blur_value = tonumber(config.blur) or 20
local link_blur = string.format("blur(%dpx)", blur_value)
%>
<style>
.main > .main-left, .cbi-section, .cbi-section-error, #iptables, .Firewall form, #cbi-network > .cbi-section-node, #cbi-wireless > .cbi-section-node, #cbi-wireless > #wifi_assoclist_table, [data-tab-title], [data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear), [data-page="admin-system-opkg"] #maincontent > .container, .tabs, .cbi-tabmenu, .cbi-tooltip {
background-color: <%=background_color%>;
backdrop-filter: <%=link_blur%>;
-webkit-backdrop-filter: <%=link_blur%>;
}
@media screen and (max-width: 720px) {
.navbar a {
width: <%=link_width%>;
}
}
<% if not navbar_enabled then %>
.navbar {
display: none;
}
<% end %>
</style>
</div>
<footer class="mobile">
<a href="https://github.com/derisamedia/luci-theme-alpha"><%=ver.luciname%> | Alpha OS Theme v3.9.5</a>
</footer>
</div>
<div class="navbar active">
<% if navbar_enabled then %>
<div class="dropdown">
<%
uci:foreach("alpha", "navbar", function(section)
local address = section.address
local icon_url = icon[address] or 'default/icon.png'
local target_blank = section.newtab == "Yes" and 'target="_blank"' or ''
if section.enable == "Enable" then
%>
<a href="<%=address%>" <%=target_blank%>>
<img src="<%=media%>/<%=icon_url%>" />
</a>
<%
end
end)
%>
</div>
<% end %>
<label class="toggler">
<img src="<%=media%>/gaya/icon/arrow.svg">
</label>
</div>
<script>
{
const nav = document.querySelector(".navbar");
let lastScrollY = window.scrollY;
window.addEventListener("scroll", () => {
if (lastScrollY < window.scrollY) {
nav.classList.add("navbar--hidden");
} else {
nav.classList.remove("navbar--hidden");
}
lastScrollY = window.scrollY;
});
}
</script>
</div>
<script type="text/javascript">L.require('menu-alpha')</script>
<script src="<%=media%>/app.js"></script>
</body>
</html>
</html>
+1 -1
View File
@@ -54,7 +54,7 @@
</div>
<footer class="mobile">
<a href="https://github.com/derisamedia/luci-theme-alpha">{{ version.luciname }} | Alpha OS Theme v3.9.5</a>
<a href="https://github.com/derisamedia/luci-theme-alpha">{{ version.luciname }} | Alpha OS Theme v3.9.7</a>
</footer>
</div>
<div class="navbar active">
+98 -86
View File
@@ -1,96 +1,108 @@
<%#
Alpha os is made from me for all .. especially for indo wrt members and fan of OpenWrt or DBAI Community
luci-theme-alpha
Copyright 2022 derisamedia <facebook.com/derisamedia>
<%# Alpha os is made from me for all .. especially for indo wrt members and fan of OpenWrt or DBAI Community
luci-theme-alpha Copyright 2022 derisamedia <facebook.com/derisamedia>
Have a bug? Please create an issue here on GitHub!
luci-theme-material
Copyright 2015-2017 Lutty Yang <lutty@wcan.in>
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
MUI:
https://github.com/muicss/mui
MUI:
https://github.com/muicss/mui
Licensed to the public under the Apache License 2.0
-%>
Licensed to the public under the Apache License 2.0
-%>
<%
local sys = require "luci.sys"
local util = require "luci.util"
local http = require "luci.http"
local disp = require "luci.dispatcher"
local ver = require "luci.version"
<% local sys=require "luci.sys" local util=require "luci.util" local http=require "luci.http" local
disp=require "luci.dispatcher" local ver=require "luci.version" local
boardinfo=util.ubus("system", "board" ) or { } local node=disp.context.dispatched local
path=table.concat(disp.context.path, "-" ) http.prepare_content("text/html; charset=UTF-8") -%>
<!DOCTYPE html>
<html lang="<%=luci.i18n.context.lang%>">
local boardinfo = util.ubus("system", "board") or { }
<head>
<meta charset="utf-8">
<meta name="color-scheme" content="dark">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
name="viewport" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="theme-color" content="#09c">
<meta name="msapplication-tap-highlight" content="no">
<meta name="msapplication-TileColor" content="#09c">
<meta name="application-name" content="<%=striptags( (boardinfo.hostname or " ?") ) %> -
LuCI">
<meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or " ?")
) %> - LuCI">
<link rel="stylesheet" href="<%=media%>/gaya/gaya.css">
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
<% if node and node.css then %>
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
<% end -%>
<script
src="<%=url('admin/translations', luci.i18n.context.lang)%>?v=git-21.295.66888-fc702bc"></script>
<script src="<%=resource%>/cbi.js?v=git-21.295.66888-fc702bc"></script>
<title>
<%=striptags( (boardinfo.hostname or "?" ) .. ( (node and node.title) and ' - '
.. translate(node.title) or '' )) %> - LuCI
</title>
<% if css then %>
<style title="text/css">
<%=css %>
</style>
<% end -%>
</head>
local node = disp.context.dispatched
local path = table.concat(disp.context.path, "-")
<body
class="lang_<%=luci.i18n.context.lang%> <% if luci.dispatcher.context.authsession then %>logged-in<% end %> <% if not (path == "") then %>node-<%= path %><% else %>node-main-login<% end %>"
data-page="<%= pcdata(path) %>"
style="background-image:url('/luci-static/alpha/background/dashboard.png')">
<header>
<div class="fill">
<div class="container">
<a id="logo"
href="<% if luci.dispatcher.context.authsession then %><%=url('admin/status/overview')%><% else %>#<% end %>">
<img src="<%=media%>/brand.png" alt="OpenWrt">
</a>
<div class="status" id="indicators"></div>
<div class="logout">
<a href="/cgi-bin/luci/admin/logout" data-title="Logout">Keluar</a>
</div>
<div class="showSide">
<img src="<%=media%>/gaya/icon/menu_icon.svg" alt="">
</div>
</div>
</div>
</header>
<div class="main">
<div style="" class="loading"><span>
<div class="loading-img"></div>
</span></div>
<div class="main-left" id="mainmenu" style="display:none"></div>
<div class="main-right">
<div class="modemenu-buttons" style="display:none">
<ul id="modemenu"></ul>
</div>
<div class="darkMask"></div>
<div id="maincontent">
<div class="container">
<%- if luci.sys.process.info("uid")==0 and luci.sys.user.getuser("root") and
not luci.sys.user.getpasswd("root") and path
~="admin-system-admin-password" then -%>
<%- end -%>
http.prepare_content("text/html; charset=UTF-8")
-%>
<!DOCTYPE html>
<html lang="<%=luci.i18n.context.lang%>">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="theme-color" content="#09c">
<meta name="msapplication-tap-highlight" content="no">
<meta name="msapplication-TileColor" content="#09c">
<meta name="application-name" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
<meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
<link rel="stylesheet" href="<%=media%>/gaya/gaya.css">
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
<% if node and node.css then %>
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
<% end -%>
<script src="<%=url('admin/translations', luci.i18n.context.lang)%>?v=git-21.295.66888-fc702bc"></script>
<script src="<%=resource%>/cbi.js?v=git-21.295.66888-fc702bc"></script>
<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
<% if css then %><style title="text/css">
<%= css %>
</style>
<% end -%>
</head>
<body class="lang_<%=luci.i18n.context.lang%> <% if luci.dispatcher.context.authsession then %>logged-in<% end %> <% if not (path == "") then %>node-<%= path %><% else %>node-main-login<% end %>" data-page="<%= pcdata(path) %>" style="background-image:url('/luci-static/alpha/background/dashboard.png')">
<header>
<div class="fill">
<div class="container">
<a id="logo" href="<% if luci.dispatcher.context.authsession then %><%=url('admin/status/overview')%><% else %>#<% end %>">
<img src="<%=media%>/brand.png" alt="OpenWrt">
</a>
<div class="status" id="indicators"></div>
<div class="logout" >
<a href="/cgi-bin/luci/admin/logout" data-title="Logout">Keluar</a>
</div>
<div class="showSide">
<img src="<%=media%>/gaya/icon/menu_icon.svg" alt="">
</div>
</div>
</div>
</header>
<div class="main">
<div style="" class="loading"><span><div class="loading-img"></div></span></div>
<div class="main-left" id="mainmenu" style="display:none"></div>
<div class="main-right">
<div class="modemenu-buttons" style="display:none">
<ul id="modemenu"></ul>
</div>
<div class="darkMask"></div>
<div id="maincontent">
<div class="container">
<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") and path ~= "admin-system-admin-password" then -%>
<%- end -%>
<noscript>
<div class="alert-message warning">
<h4><%:JavaScript required!%></h4>
<p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
</div>
</noscript>
<div id="tabmenu" style="display:none"></div>
<noscript>
<div class="alert-message warning">
<h4>
<%:JavaScript required!%>
</h4>
<p>
<%:You must enable JavaScript in your browser or LuCI
will not work properly.%>
</p>
</div>
</noscript>
<div id="tabmenu" style="display:none"></div>
+1
View File
@@ -14,6 +14,7 @@
<html lang="{{ dispatcher.lang }}">
<head>
<meta charset="utf-8">
<meta name="color-scheme" content="dark">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
+1 -1
View File
@@ -2,7 +2,7 @@
<!-- saved from url=(0014)about:internet -->
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="color-scheme" content="dark">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
+1 -1
View File
@@ -3,7 +3,7 @@
<html lang="{{ dispatcher.lang }}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="color-scheme" content="dark">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">