mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-03 14:13:56 +08:00
⛅ Sync 2026-03-22 20:18:41
This commit is contained in:
1 parent
8d097e3078
commit
a660863dba
38 files changed
+705
-4060
No files matched your search
@@ -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
|
||||
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
});
|
||||
@@ -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 |
@@ -410,7 +410,8 @@ img.bawah {
|
||||
display: block;
|
||||
padding: 20px;
|
||||
text-decoration: none;
|
||||
width: 25rem;
|
||||
width: 14rem;
|
||||
max-width: 80vw;
|
||||
}
|
||||
|
||||
.icon-credits a {
|
||||
|
||||
@@ -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>
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in new issue
Block a user