summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm21
-rw-r--r--applications/luci-app-adblock/luasrc/view/adblock/query.htm1
-rw-r--r--applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm1
-rw-r--r--applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm1
-rw-r--r--applications/luci-app-commands/luasrc/view/commands.htm1
-rw-r--r--applications/luci-app-cshark/luasrc/view/cshark.htm1
-rw-r--r--applications/luci-app-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm1
-rw-r--r--applications/luci-app-lxc/luasrc/view/lxc.htm1
-rw-r--r--applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm1
-rw-r--r--applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm1
-rw-r--r--applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm1
-rw-r--r--applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm1
-rw-r--r--applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm1
-rw-r--r--applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm1
-rw-r--r--applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm1
-rwxr-xr-xapplications/luci-app-olsr-viz/htdocs/cgi-bin/vizdata.sh2
-rw-r--r--applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm1
-rw-r--r--applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm1
-rw-r--r--applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm1
-rw-r--r--applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm1
-rw-r--r--applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm1
-rw-r--r--applications/luci-app-splash/luasrc/view/admin_status/splash.htm1
-rw-r--r--applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm1
-rw-r--r--applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm1
-rw-r--r--applications/luci-app-wireguard/luasrc/view/wireguard.htm1
-rw-r--r--collections/luci-ssl-nginx/Makefile10
-rw-r--r--collections/luci-ssl-openssl-nginx/Makefile21
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/cbi.js13
-rw-r--r--modules/luci-base/luasrc/view/cbi/apply_widget.htm1
-rw-r--r--modules/luci-base/luasrc/view/cbi/header.htm25
-rw-r--r--modules/luci-base/luasrc/view/cbi/simpleform.htm1
-rw-r--r--modules/luci-base/po/ja/base.po59
-rw-r--r--modules/luci-base/po/pl/base.po18
-rw-r--r--modules/luci-mod-admin-full/htdocs/luci-static/resources/bandwidth.svg12
-rw-r--r--modules/luci-mod-admin-full/htdocs/luci-static/resources/connections.svg14
-rw-r--r--modules/luci-mod-admin-full/htdocs/luci-static/resources/load.svg14
-rw-r--r--modules/luci-mod-admin-full/htdocs/luci-static/resources/wifirate.svg10
-rw-r--r--modules/luci-mod-admin-full/htdocs/luci-static/resources/wireless.svg12
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_network/diagnostics.htm1
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm1
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm1
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/bandwidth.htm5
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm46
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm5
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm1
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/load.htm3
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm1
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_status/wireless.htm5
-rw-r--r--modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm1
-rw-r--r--modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm1
-rw-r--r--protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua12
-rw-r--r--themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css6
-rw-r--r--themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm1
-rw-r--r--themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm1
-rwxr-xr-xthemes/luci-theme-material/htdocs/luci-static/material/css/style.css205
-rw-r--r--themes/luci-theme-material/luasrc/view/themes/material/header.htm1
-rw-r--r--themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css18
-rw-r--r--themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm11
58 files changed, 329 insertions, 253 deletions
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
index 81622e9bc6..93713c92b1 100644
--- a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
+++ b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
@@ -33,7 +33,6 @@ end
margin-left:0px;
padding-left:2px;
line-height:20px;
- height:20px;
}
.table.cbi-section-table .th
{
@@ -55,6 +54,11 @@ end
}
</style>
+<%-
+ local anonclass = (not self.anonymous or self.sectiontitle) and "named" or "anonymous"
+ local titlename = ifattr(not self.anonymous or self.sectiontitle, "data-title", translate("Name"))
+-%>
+
<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
<% if self.title then -%>
<legend><%=self.title%></legend>
@@ -62,12 +66,7 @@ end
<div class="cbi-section-descr"><%=self.description%></div>
<div class="cbi-section-node">
<div class="table cbi-section-table">
- <div class="tr cbi-section-table-titles">
- <%- if self.sectionhead then -%>
- <div class="th cbi-section-table-cell"><%=self.sectionhead%></div>
- <%- else -%>
- <div class="th">&#160;</div>
- <%- end -%>
+ <div class="tr cbi-section-table-titles <%=anonclass%>"<%=titlename%>>
<%- for i, k in pairs(self.children) do -%>
<div class="th cbi-section-table-cell"<%=width(k)%>>
<%-=k.title-%>
@@ -76,12 +75,14 @@ end
</div>
<%- local isempty = true
for i, k in ipairs(self:cfgsections()) do
- section = k
+ local section = k
+ local sectionname = striptags((type(self.sectiontitle) == "function") and self:sectiontitle(section) or k)
+ local sectiontitle = ifattr(sectionname and (not self.anonymous or self.sectiontitle), "data-title", sectionname)
+
isempty = false
scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
-%>
- <div class="tr cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>">
- <div class="th"><%=k%></div>
+ <div class="tr cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>"<%=sectiontitle%>>
<%-
for k, node in ipairs(self.children) do
node:render(section, scope or {})
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/query.htm b/applications/luci-app-adblock/luasrc/view/adblock/query.htm
index 8bbed3a53e..72dc16b1d8 100644
--- a/applications/luci-app-adblock/luasrc/view/adblock/query.htm
+++ b/applications/luci-app-adblock/luasrc/view/adblock/query.htm
@@ -5,7 +5,6 @@ This is free software, licensed under the Apache License, Version 2.0
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">
//<![CDATA[
var stxhr = new XHR();
diff --git a/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm b/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm
index fb40335f99..1c58b0a02c 100644
--- a/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm
+++ b/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm
@@ -58,7 +58,6 @@
<form method="post" action="<%=url('admin/asterisk/dialplans')%>" enctype="multipart/form-data">
<div>
- <script type="text/javascript" src="/luci-static/resources/cbi.js"></script>
<input type="hidden" name="cbi.submit" value="1" />
<input type="submit" value="Save" class="hidden" />
</div>
diff --git a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
index e48da608a6..66a06b20f7 100644
--- a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
+++ b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
@@ -49,7 +49,6 @@
<form method="post" action="<%=url('admin/asterisk/dialplans/zones')%>" enctype="multipart/form-data">
<div>
- <script type="text/javascript" src="/luci-static/resources/cbi.js"></script>
<input type="hidden" name="cbi.submit" value="1" />
<input type="submit" value="Save" class="hidden" />
</div>
diff --git a/applications/luci-app-commands/luasrc/view/commands.htm b/applications/luci-app-commands/luasrc/view/commands.htm
index 4285f25cb2..d60a97c5b7 100644
--- a/applications/luci-app-commands/luasrc/view/commands.htm
+++ b/applications/luci-app-commands/luasrc/view/commands.htm
@@ -34,7 +34,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var stxhr = new XHR();
diff --git a/applications/luci-app-cshark/luasrc/view/cshark.htm b/applications/luci-app-cshark/luasrc/view/cshark.htm
index bc67f806c4..b71c7fb6ce 100644
--- a/applications/luci-app-cshark/luasrc/view/cshark.htm
+++ b/applications/luci-app-cshark/luasrc/view/cshark.htm
@@ -82,7 +82,6 @@ $Id$
<hr/>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var capture_running = 0;
diff --git a/applications/luci-app-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm b/applications/luci-app-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm
index eac1ecdcf5..e4cd969d2e 100644
--- a/applications/luci-app-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm
+++ b/applications/luci-app-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm
@@ -11,7 +11,6 @@ local has_ping6 = fs.access("/bin/ping6") or fs.access("/usr/bin/ping6")
local has_traceroute6 = fs.access("/usr/bin/traceroute6")
%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var stxhr = new XHR();
diff --git a/applications/luci-app-lxc/luasrc/view/lxc.htm b/applications/luci-app-lxc/luasrc/view/lxc.htm
index 47cc1a5f3f..55cb23fbd6 100644
--- a/applications/luci-app-lxc/luasrc/view/lxc.htm
+++ b/applications/luci-app-lxc/luasrc/view/lxc.htm
@@ -64,7 +64,6 @@ local target = nx.uname().machine
<hr />
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">
//<![CDATA[
window.img = { "red" : "<%=resource%>/cbi/red.gif", "green" : "<%=resource%>/cbi/green.gif", "purple" : "<%=resource%>/cbi/purple.gif" };
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm
index bcc23beb31..12700c4a36 100644
--- a/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_detail.htm
@@ -13,7 +13,6 @@
<li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li>
</ul>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "status", "mwan", "detailed_status")%>', null,
function(x)
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm
index 22f4734ddd..454adcc1cd 100644
--- a/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_diagnostics.htm
@@ -25,7 +25,6 @@
)
%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var stxhr = new XHR();
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm
index 4518bd6588..962cde521d 100644
--- a/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_interface.htm
@@ -13,7 +13,6 @@
<li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li>
</ul>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<div class="cbi-map">
<%+mwan/overview_status_interface%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm b/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm
index f60e0da0aa..a20516bd2a 100644
--- a/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm
+++ b/applications/luci-app-mwan3/luasrc/view/mwan/status_troubleshooting.htm
@@ -13,7 +13,6 @@
<li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/status/mwan/troubleshooting")%>"><%:Troubleshooting%></a></li>
</ul>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(15, '<%=luci.dispatcher.build_url("admin", "status", "mwan", "troubleshooting_display")%>', null,
function(x)
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
index ea2e0f05cf..8a35f97ac9 100644
--- a/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
+++ b/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
@@ -5,7 +5,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<h2 name="content"><%:Netlink Bandwidth Monitor - Backup / Restore %></h2>
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
index 932c8849a7..616bcc52a1 100644
--- a/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
+++ b/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
@@ -195,7 +195,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript" src="<%=resource%>/nlbw.chart.min.js"></script>
<script type="text/javascript">//<![CDATA[
diff --git a/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm
index 150ed87dad..94f01cb51c 100644
--- a/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm
+++ b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm
@@ -118,7 +118,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10 , '<%=REQUEST_URI%>', { status: 1 },
diff --git a/applications/luci-app-olsr-viz/htdocs/cgi-bin/vizdata.sh b/applications/luci-app-olsr-viz/htdocs/cgi-bin/vizdata.sh
index 5a74f2be94..7d3214242a 100755
--- a/applications/luci-app-olsr-viz/htdocs/cgi-bin/vizdata.sh
+++ b/applications/luci-app-olsr-viz/htdocs/cgi-bin/vizdata.sh
@@ -11,7 +11,7 @@ cat<<EOF
</HEAD>
<BODY>
-<script langauge='JavaScript1.2' type='text/javascript'>
+<script language='JavaScript1.2' type='text/javascript'>
EOF
# sed + txtinfo plugin
diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm
index 2dc4ce1730..1c178f1810 100644
--- a/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm
+++ b/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm
@@ -28,7 +28,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 },
function(x, info)
diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm
index ab09865865..29ea95694c 100644
--- a/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm
+++ b/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm
@@ -48,7 +48,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10 , '<%=REQUEST_URI%>', { status: 1 },
diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm
index 832a27aed7..f205edc16d 100644
--- a/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm
+++ b/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm
@@ -45,7 +45,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10, '<%=REQUEST_URI%>/json', { },
diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm
index c75b94fcef..4b733524a5 100644
--- a/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm
+++ b/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm
@@ -34,7 +34,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 },
diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm
index 7ca66816ae..9afd367d1f 100644
--- a/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm
+++ b/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm
@@ -44,7 +44,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 },
function(x, info)
diff --git a/applications/luci-app-splash/luasrc/view/admin_status/splash.htm b/applications/luci-app-splash/luasrc/view/admin_status/splash.htm
index aad330791d..cbb7f235fa 100644
--- a/applications/luci-app-splash/luasrc/view/admin_status/splash.htm
+++ b/applications/luci-app-splash/luasrc/view/admin_status/splash.htm
@@ -134,7 +134,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(10 , '<%=REQUEST_URI%>', { status: 1 },
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
index ffacc2f6df..74542a9ca5 100644
--- a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm
@@ -11,7 +11,6 @@ This is free software, licensed under the Apache License, Version 2.0
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<div class="cbi-map">
<div class="cbi-map-descr">
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm
index 57efd97376..8a417d69c2 100644
--- a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm
+++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm
@@ -39,7 +39,6 @@ This is free software, licensed under the Apache License, Version 2.0
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<div class="cbi-map">
<h2 name="content"><%:Wireless Scan%></h2>
diff --git a/applications/luci-app-wireguard/luasrc/view/wireguard.htm b/applications/luci-app-wireguard/luasrc/view/wireguard.htm
index 64d9955296..cd08e9ed51 100644
--- a/applications/luci-app-wireguard/luasrc/view/wireguard.htm
+++ b/applications/luci-app-wireguard/luasrc/view/wireguard.htm
@@ -52,7 +52,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
function bytes_to_str(bytes) {
diff --git a/collections/luci-ssl-nginx/Makefile b/collections/luci-ssl-nginx/Makefile
index d7ff49a7a3..549c44af11 100644
--- a/collections/luci-ssl-nginx/Makefile
+++ b/collections/luci-ssl-nginx/Makefile
@@ -9,8 +9,14 @@ include $(TOPDIR)/rules.mk
LUCI_TYPE:=col
LUCI_BASENAME:=ssl
-LUCI_TITLE:=LuCI with HTTPS support (mbedTLS as SSL backend)
-LUCI_DEPENDS:=+luci-nginx +nginx-mod-luci-ssl +libustream-mbedtls +px5g
+LUCI_TITLE:=LuCI with HTTPS support on Nginx (OpenSSL as SSL backend)
+LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
+ OpenSSL cmd tools (openssl-util) are used by nginx for SSL key generation. \
+
+LUCI_DEPENDS:= \
+ +nginx-ssl +nginx-mod-luci-ssl +luci-mod-admin-full +luci-theme-bootstrap \
+ +luci-app-firewall +luci-proto-ppp +libiwinfo-lua +IPV6:luci-proto-ipv6 \
+ +rpcd-mod-rrdns +libustream-openssl +openssl-util
PKG_LICENSE:=Apache-2.0
diff --git a/collections/luci-ssl-openssl-nginx/Makefile b/collections/luci-ssl-openssl-nginx/Makefile
deleted file mode 100644
index 51096471e1..0000000000
--- a/collections/luci-ssl-openssl-nginx/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Copyright (C) 2016 The LuCI Team
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TYPE:=col
-LUCI_BASENAME:=ssl-openssl
-
-LUCI_TITLE:=LuCI with HTTPS support (OpenSSL as SSL backend)
-LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
- OpenSSL cmd tools (openssl-util) are used by uhttpd for SSL key generation \
- instead of the default px5g. (If px5g is installed, uhttpd will prefer that.)
-
-LUCI_DEPENDS:=+luci-nginx +nginx-mod-luci-ssl +libustream-openssl +openssl-util
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js
index 6a487366f8..ddbff83418 100644
--- a/modules/luci-base/htdocs/luci-static/resources/cbi.js
+++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js
@@ -1498,6 +1498,15 @@ String.nobr = function()
return ''.nobr.apply(arguments[0], a);
}
+if (window.NodeList && !NodeList.prototype.forEach) {
+ NodeList.prototype.forEach = function (callback, thisArg) {
+ thisArg = thisArg || window;
+ for (var i = 0; i < this.length; i++) {
+ callback.call(thisArg, this[i], i, this);
+ }
+ };
+}
+
var dummyElem, domParser;
@@ -2072,10 +2081,10 @@ function cbi_update_table(table, data, placeholder) {
var trow = E('div', { 'class': 'tr' });
for (var i = 0; i < titles.length; i++) {
- var text = titles[i].innerText;
+ var text = (titles[i].innerText || '').trim();
var td = trow.appendChild(E('div', {
'class': titles[i].className,
- 'data-title': text ? text.trim() : null
+ 'data-title': (text !== '') ? text : null
}, row[i] || ''));
td.classList.remove('th');
diff --git a/modules/luci-base/luasrc/view/cbi/apply_widget.htm b/modules/luci-base/luasrc/view/cbi/apply_widget.htm
index e3090da656..3d98085f86 100644
--- a/modules/luci-base/luasrc/view/cbi/apply_widget.htm
+++ b/modules/luci-base/luasrc/view/cbi/apply_widget.htm
@@ -47,7 +47,6 @@
}
</style>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var xhr = new XHR(),
uci_apply_auth = { sid: '<%=luci.dispatcher.context.authsession%>', token: '<%=token%>' },
diff --git a/modules/luci-base/luasrc/view/cbi/header.htm b/modules/luci-base/luasrc/view/cbi/header.htm
index 9710bae8f4..821fa3efae 100644
--- a/modules/luci-base/luasrc/view/cbi/header.htm
+++ b/modules/luci-base/luasrc/view/cbi/header.htm
@@ -1,18 +1,17 @@
<%+header%>
-<form method="post" name="cbi" action="<%=REQUEST_URI%>" enctype="multipart/form-data" onreset="return cbi_validate_reset(this)" onsubmit="return cbi_validate_form(this, '<%:Some fields are invalid, cannot save values!%>')">
+<form method="post" name="cbi" action="<%=REQUEST_URI%>" enctype="multipart/form-data" onreset="return cbi_validate_reset(this)" onsubmit="return cbi_validate_form(this, '<%:Some fields are invalid, cannot save values!%>')"<%=
+ attr("data-strings", luci.util.serialize_json({
+ label = {
+ choose = translate('-- Please choose --'),
+ custom = translate('-- custom --'),
+ },
+ path = {
+ resource = resource,
+ browser = url("admin/filebrowser")
+ }
+ }))
+%>>
<div>
- <script type="text/javascript" src="<%=resource%>/cbi.js"<%=
- attr("data-strings", luci.util.serialize_json({
- label = {
- choose = translate('-- Please choose --'),
- custom = translate('-- custom --'),
- },
- path = {
- resource = resource,
- browser = url("admin/filebrowser")
- }
- }))
- %>></script>
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="cbi.submit" value="1" />
<input type="submit" value="<%:Save%>" class="hidden" />
diff --git a/modules/luci-base/luasrc/view/cbi/simpleform.htm b/modules/luci-base/luasrc/view/cbi/simpleform.htm
index c6000d22b3..5069e9f407 100644
--- a/modules/luci-base/luasrc/view/cbi/simpleform.htm
+++ b/modules/luci-base/luasrc/view/cbi/simpleform.htm
@@ -1,7 +1,6 @@
<% if not self.embedded then %>
<form method="post" enctype="multipart/form-data" action="<%=REQUEST_URI%>">
<div>
- <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="cbi.submit" value="1" />
</div>
diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po
index 90833aada0..2cefb817a3 100644
--- a/modules/luci-base/po/ja/base.po
+++ b/modules/luci-base/po/ja/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2018-06-01 02:42+0900\n"
+"PO-Revision-Date: 2018-07-07 17:55+0900\n"
"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
@@ -50,7 +50,7 @@ msgid "-- match by uuid --"
msgstr "-- UUID を指定 --"
msgid "-- please select --"
-msgstr ""
+msgstr "-- 選択してください --"
msgid "1 Minute Load:"
msgstr "過去1分の負荷:"
@@ -888,7 +888,7 @@ msgid "Device unreachable!"
msgstr "デバイスに到達できません"
msgid "Device unreachable! Still waiting for device..."
-msgstr ""
+msgstr "デバイスに到達できません!まだデバイスを待っています..."
msgid "Diagnostics"
msgstr "診断機能"
@@ -980,7 +980,7 @@ msgstr ""
"Name System\">DNS</abbr>リクエストを転送しません"
msgid "Down"
-msgstr ""
+msgstr "下へ"
msgid "Download and install package"
msgstr "パッケージのダウンロードとインストール"
@@ -2080,10 +2080,10 @@ msgid "Mounted file systems"
msgstr "マウント中のファイルシステム"
msgid "Move down"
-msgstr "下へ"
+msgstr "下へ移動"
msgid "Move up"
-msgstr "上へ"
+msgstr "上へ移動"
msgid "Multicast address"
msgstr "マルチキャスト アドレス"
@@ -2650,6 +2650,10 @@ msgid ""
"Really delete this interface? The deletion cannot be undone! You might lose "
"access to this device if you are connected via this interface"
msgstr ""
+"本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはでき"
+"ません!\n"
+"もしこのインターフェースを経由して接続している場合、このデバイスにアクセスで"
+"きなくなる場合があります"
msgid ""
"Really delete this wireless network? The deletion cannot be undone! You "
@@ -2667,6 +2671,9 @@ msgid ""
"Really shut down network? You might lose access to this device if you are "
"connected via this interface"
msgstr ""
+"本当にネットワークを停止しますか?\n"
+"このネットワークを経由して接続している場合、デバイスにアクセスできなくなる場"
+"合があります"
msgid ""
"Really shutdown interface \"%s\"? You might lose access to this device if "
@@ -3126,6 +3133,8 @@ msgstr "スイッチ %q (%s)"
msgid ""
"Switch %q has an unknown topology - the VLAN settings might not be accurate."
msgstr ""
+"スイッチ %q は不明なトポロジを持っています - VLAN 設定は正確ではないかもしれ"
+"ません。"
msgid "Switch Port Mask"
msgstr "スイッチポート マスク"
@@ -3551,7 +3560,7 @@ msgid "Unsupported protocol type."
msgstr "サポートされていないプロトコルタイプ"
msgid "Up"
-msgstr ""
+msgstr "上へ"
msgid "Update lists"
msgstr "リストの更新"
@@ -3821,7 +3830,7 @@ msgid "bridged"
msgstr "ブリッジ"
msgid "create"
-msgstr ""
+msgstr "作成"
msgid "create:"
msgstr "作成:"
@@ -3852,7 +3861,7 @@ msgstr ""
"録するファイル"
msgid "forward"
-msgstr ""
+msgstr "転送"
msgid "full-duplex"
msgstr "全二重"
@@ -3961,35 +3970,3 @@ msgstr "はい"
msgid "« Back"
msgstr "« 戻る"
-
-#~ msgid "Device unreachableX"
-#~ msgstr "デバイスに到達できません!"
-
-#~ msgid "DHCP Leases"
-#~ msgstr "DHCPリース"
-
-#~ msgid "DHCPv6 Leases"
-#~ msgstr "DHCPv6 リース"
-
-#~ msgid ""
-#~ "Really delete this interface? The deletion cannot be undone! You might "
-#~ "lose access to this device if you are connected via this interface."
-#~ msgstr ""
-#~ "本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはで"
-#~ "きません!\n"
-#~ "このインターフェースを経由して接続している場合、デバイスにアクセスできなく"
-#~ "なる場合があります。"
-
-#~ msgid ""
-#~ "Really shut down network? You might lose access to this device if you are "
-#~ "connected via this interface."
-#~ msgstr ""
-#~ "本当にネットワークを停止しますか?\n"
-#~ "このネットワークを経由して接続している場合、デバイスにアクセスできなくなる"
-#~ "場合があります。"
-
-#~ msgid "Sort"
-#~ msgstr "ソート"
-
-#~ msgid "help"
-#~ msgstr "ヘルプ"
diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po
index c9ea03dd5e..7d2e006cd1 100644
--- a/modules/luci-base/po/pl/base.po
+++ b/modules/luci-base/po/pl/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: LuCI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-20 09:40+0200\n"
-"PO-Revision-Date: 2018-06-10 10:05+0200\n"
+"PO-Revision-Date: 2018-07-7 14:05+0200\n"
"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
"Language-Team: Polish\n"
"Language: pl\n"
@@ -511,15 +511,14 @@ msgstr "Wróć do przeglądu"
msgid "Back to scan results"
msgstr "Wróć do wyników skanowania"
-# NIe ma powodu skracać tekstu, zmieści się w polu.
msgid "Backup"
msgstr "Kopia zapasowa"
msgid "Backup / Flash Firmware"
-msgstr "Kopia zapasowa/aktualizacja firmware"
+msgstr "Kopia zapasowa / aktualizacja firmware"
msgid "Backup file list"
-msgstr "Kopia zapas. listy plików"
+msgstr "Kopia zapasowa listy plików"
msgid "Bad address specified!"
msgstr "Wprowadzono zły adres"
@@ -654,7 +653,7 @@ msgid ""
"Click \"Generate archive\" to download a tar archive of the current "
"configuration files."
msgstr ""
-"Wciśnij \"Twórz archiwum\" aby pobrać archiwum tar zawierające bieżące pliki "
+"Kliknij \"Twórz archiwum\" aby pobrać archiwum tar zawierające bieżące pliki "
"konfiguracyjne."
msgid "Client"
@@ -892,10 +891,10 @@ msgid "Device is rebooting..."
msgstr "Urządzenie jest uruchamiane ponownie ..."
msgid "Device unreachable!"
-msgstr "Urządzenie nieosiągalne"
+msgstr "Urządzenie nieosiągalne!"
msgid "Device unreachable! Still waiting for device..."
-msgstr ""
+msgstr "Urządzenie nieosiągalne! Wciąż czekam na urządzenie..."
msgid "Diagnostics"
msgstr "Diagnostyka"
@@ -2566,7 +2565,7 @@ msgid "Prevent listening on these interfaces."
msgstr "Zapobiegaj nasłuchiwaniu na tych interfejsach."
msgid "Prevents client-to-client communication"
-msgstr "Zabroń klientą na komunikacje między sobą"
+msgstr "Zapobiega na komunikacje między klientami"
msgid "Prism2/2.5/3 802.11b Wireless Controller"
msgstr "Kontroler bezprzewodowy Prism2/2.5/3 802.11b"
@@ -2832,7 +2831,6 @@ msgstr "Uruchom ponownie"
msgid "Restart Firewall"
msgstr "Uruchom ponownie firewalla"
-# NIe ma powodu skracać tekstu, zmieści się w polu.
msgid "Restore"
msgstr "Przywróć"
@@ -3254,7 +3252,7 @@ msgstr ""
"oraz <code>_</code>"
msgid "The backup archive does not appear to be a valid gzip file."
-msgstr ""
+msgstr "Archiwum kopii zapasowej nie wygląda na prawidłowe."
msgid "The configuration file could not be loaded due to the following error:"
msgstr ""
diff --git a/modules/luci-mod-admin-full/htdocs/luci-static/resources/bandwidth.svg b/modules/luci-mod-admin-full/htdocs/luci-static/resources/bandwidth.svg
index 4f9148833a..d7f0eeef37 100644
--- a/modules/luci-mod-admin-full/htdocs/luci-static/resources/bandwidth.svg
+++ b/modules/luci-mod-admin-full/htdocs/luci-static/resources/bandwidth.svg
@@ -2,15 +2,15 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <polyline id="rx" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
+ <polyline id="tx" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
+
<line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
- <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
- <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
- <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt"> </text>
-
- <polyline id="rx" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
- <polyline id="tx" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
+ <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
</svg>
diff --git a/modules/luci-mod-admin-full/htdocs/luci-static/resources/connections.svg b/modules/luci-mod-admin-full/htdocs/luci-static/resources/connections.svg
index 816f7e6a75..40ee6c4096 100644
--- a/modules/luci-mod-admin-full/htdocs/luci-static/resources/connections.svg
+++ b/modules/luci-mod-admin-full/htdocs/luci-static/resources/connections.svg
@@ -2,16 +2,16 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <polyline id="tcp" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
+ <polyline id="udp" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
+ <polyline id="other" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
+
<line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
- <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
- <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
- <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt"> </text>
-
- <polyline id="tcp" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
- <polyline id="udp" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
- <polyline id="other" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
+ <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
</svg>
diff --git a/modules/luci-mod-admin-full/htdocs/luci-static/resources/load.svg b/modules/luci-mod-admin-full/htdocs/luci-static/resources/load.svg
index d6817027ab..e705d5261d 100644
--- a/modules/luci-mod-admin-full/htdocs/luci-static/resources/load.svg
+++ b/modules/luci-mod-admin-full/htdocs/luci-static/resources/load.svg
@@ -2,16 +2,16 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <polyline id="load01" points="" style="fill:#ff0000;fill-opacity:0.4;stroke:#ff0000;stroke-width:1" />
+ <polyline id="load05" points="" style="fill:#ff6600;fill-opacity:0.4;stroke:#ff6600;stroke-width:1" />
+ <polyline id="load15" points="" style="fill:#ffaa00;fill-opacity:0.4;stroke:#ffaa00;stroke-width:1" />
+
<line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
- <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
- <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
- <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt"> </text>
-
- <polyline id="load01" points="" style="fill:#ff0000;fill-opacity:0.4;stroke:#ff0000;stroke-width:1" />
- <polyline id="load05" points="" style="fill:#ff6600;fill-opacity:0.4;stroke:#ff6600;stroke-width:1" />
- <polyline id="load15" points="" style="fill:#ffaa00;fill-opacity:0.4;stroke:#ffaa00;stroke-width:1" />
+ <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
</svg>
diff --git a/modules/luci-mod-admin-full/htdocs/luci-static/resources/wifirate.svg b/modules/luci-mod-admin-full/htdocs/luci-static/resources/wifirate.svg
index d3e848b93f..7184cbb03f 100644
--- a/modules/luci-mod-admin-full/htdocs/luci-static/resources/wifirate.svg
+++ b/modules/luci-mod-admin-full/htdocs/luci-static/resources/wifirate.svg
@@ -2,14 +2,14 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <polyline id="rate" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
+
<line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
- <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
- <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
- <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt"> </text>
-
- <polyline id="rate" points="" style="fill:green;fill-opacity:0.4;stroke:green;stroke-width:1" />
+ <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
</svg>
diff --git a/modules/luci-mod-admin-full/htdocs/luci-static/resources/wireless.svg b/modules/luci-mod-admin-full/htdocs/luci-static/resources/wireless.svg
index 99d9840f6b..aa1f63f104 100644
--- a/modules/luci-mod-admin-full/htdocs/luci-static/resources/wireless.svg
+++ b/modules/luci-mod-admin-full/htdocs/luci-static/resources/wireless.svg
@@ -2,15 +2,15 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <polyline id="rssi" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
+ <polyline id="noise" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
+
<line x1="0" y1="25%" x2="100%" y2="25%" style="stroke:black;stroke-width:0.1" />
- <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_75" x="20" y="24%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="50%" x2="100%" y2="50%" style="stroke:black;stroke-width:0.1" />
- <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt"> </text>
+ <text id="label_50" x="20" y="49%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
<line x1="0" y1="75%" x2="100%" y2="75%" style="stroke:black;stroke-width:0.1" />
- <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt"> </text>
-
- <polyline id="rssi" points="" style="fill:blue;fill-opacity:0.4;stroke:blue;stroke-width:1" />
- <polyline id="noise" points="" style="fill:red;fill-opacity:0.4;stroke:red;stroke-width:1" />
+ <text id="label_25" x="20" y="74%" style="fill:#999999; font-size:9pt; font-family:sans-serif;"> </text>
</svg>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/diagnostics.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/diagnostics.htm
index 5607e59dfb..d9217894fd 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/diagnostics.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/diagnostics.htm
@@ -15,7 +15,6 @@ local ping_host = luci.config.diag and luci.config.diag.ping or "dev.openwrt.org
local route_host = luci.config.diag and luci.config.diag.route or "dev.openwrt.org"
%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var stxhr = new XHR();
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
index 473e2275ce..00ef8944c6 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
@@ -30,7 +30,6 @@
end)
-%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
function iface_shutdown(id, reconnect) {
if (!reconnect && !confirm(<%=luci.http.write_json(translate('Really shutdown interface "%s"? You might lose access to this device if you are connected via this interface.'))%>.format(id)))
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
index b9602785f4..f3809ea941 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
@@ -107,7 +107,6 @@
</div>
<% end %>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var wifidevs = <%=luci.http.write_json(netdevs)%>;
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/bandwidth.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/bandwidth.htm
index ba0ab0f680..935e8d2b72 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/bandwidth.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/bandwidth.htm
@@ -19,7 +19,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var bwxhr = new XHR();
@@ -59,6 +58,8 @@
var label_scale;
+ Math.log2 = Math.log2 || function(x) { return Math.log(x) * Math.LOG2E; };
+
function bandwidth_label(bytes, br)
{
var uby = '<%:kB/s%>';
@@ -149,7 +150,7 @@
var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
text.setAttribute('x', i + 5);
text.setAttribute('y', 15);
- text.setAttribute('style', 'fill:#999999; font-size:9pt');
+ text.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
label_25.parentNode.appendChild(line);
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
index ae8a6bb7ce..19f8284298 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
@@ -5,7 +5,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var bwxhr = new XHR();
@@ -124,7 +123,7 @@
var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
text.setAttribute('x', i + 5);
text.setAttribute('y', 15);
- text.setAttribute('style', 'fill:#999999; font-size:9pt');
+ text.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
label_25.parentNode.appendChild(line);
@@ -137,12 +136,9 @@
XHR.poll(3, '<%=build_url("admin/status/realtime/connections_status")%>', null,
function(x, json)
{
+ var rows = [];
var conn = json.connections;
- while (conn_table.firstElementChild !== conn_table.lastElementChild)
- conn_table.removeChild(conn_table.lastElementChild);
-
-
var lookup_queue = [ ];
conn.sort(function(a, b) {
@@ -166,15 +162,17 @@
var src = dns_cache[c.src] || (c.layer3 == 'ipv6' ? '[' + c.src + ']' : c.src);
var dst = dns_cache[c.dst] || (c.layer3 == 'ipv6' ? '[' + c.dst + ']' : c.dst);
- conn_table.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format(1 + (i % 2)), [
- E('<div class="td">', c.layer3.toUpperCase()),
- E('<div class="td">', c.layer4.toUpperCase()),
- E('<div class="td">', [ src, ':', c.sport ]),
- E('<div class="td">', [ dst, ':', c.dport ]),
- E('<div class="td" style="white-space:nowrap">', '%1024.2mB (%d <%:Pkts.%>)'.format(c.bytes, c.packets)),
- ]));
+ rows.push([
+ c.layer3.toUpperCase(),
+ c.layer4.toUpperCase(),
+ src + ':' + c.sport,
+ dst + ':' + c.dport,
+ '%1024.2mB (%d <%:Pkts.%>)'.format(c.bytes, c.packets)
+ ]);
}
+ cbi_update_table(conn_table, rows, '<em><%:No information available%></em>');
+
if (lookup_queue.length > 0)
XHR.get('<%=build_url("admin/status/nameinfo")%>/' + lookup_queue.slice(0, 100).join('/'), null,
function(x, json)
@@ -322,7 +320,7 @@
<div style="text-align:right"><small id="scale">-</small></div>
<br />
- <div class="table" style="width:100%; table-layout:fixed" cellspacing="5">
+ <div class="table">
<div class="tr">
<div class="td" style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid blue"><%:UDP:%></strong></div>
<div class="td" id="lb_udp_cur">0</div>
@@ -357,16 +355,20 @@
<br />
<div class="cbi-section-node">
- <div class="table cbi-section-table" id="connections">
- <div class="tr cbi-section-table-titles">
- <div class="th cbi-section-table-cell"><%:Network%></div>
- <div class="th cbi-section-table-cell"><%:Protocol%></div>
- <div class="th cbi-section-table-cell"><%:Source%></div>
- <div class="th cbi-section-table-cell"><%:Destination%></div>
- <div class="th cbi-section-table-cell"><%:Transfer%></div>
+ <div class="table" id="connections">
+ <div class="tr table-titles">
+ <div class="th col-2 hide-xs"><%:Network%></div>
+ <div class="th col-2"><%:Protocol%></div>
+ <div class="th col-7"><%:Source%></div>
+ <div class="th col-7"><%:Destination%></div>
+ <div class="th col-4"><%:Transfer%></div>
</div>
- <div class="tr"><div class="td" colspan="5"><em><%:Collecting data...%></em></div></div>
+ <div class="tr placeholder">
+ <div class="td">
+ <em><%:Collecting data...%></em>
+ </div>
+ </div>
</div>
</div>
</fieldset>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
index 9aee30b5f9..03155dbb62 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
@@ -114,7 +114,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
function progressbar(v, m)
{
@@ -435,7 +434,7 @@
<h3><%:Network%></h3>
<div id="upstream_status_table" class="network-status-table">
- <em><%:Collecting data...%></em>
+ <p><em><%:Collecting data...%></em></p>
</div>
<div class="table" width="100%">
@@ -474,7 +473,7 @@
<h3><%:Wireless%></h3>
<div id="wifi_status_table" class="network-status-table">
- <em><%:Collecting data...%></em>
+ <p><em><%:Collecting data...%></em></p>
</div>
</div>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm
index 5d544ca60b..51e428e40e 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm
@@ -62,7 +62,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<style type="text/css">
span:target {
color: blue;
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/load.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/load.htm
index dc7d927de8..d60d3c0003 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/load.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/load.htm
@@ -5,7 +5,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var bwxhr = new XHR();
@@ -119,7 +118,7 @@
var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
text.setAttribute('x', i + 5);
text.setAttribute('y', 15);
- text.setAttribute('style', 'fill:#999999; font-size:9pt');
+ text.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
label_25.parentNode.appendChild(line);
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm
index 9ed37939fe..74779f6ad8 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/routes.htm
@@ -32,7 +32,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<div class="cbi-map" id="cbi-network">
<h2 name="content"><%:Routes%></h2>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/wireless.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/wireless.htm
index 1806f4a6c8..e188a9a4ba 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/wireless.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/wireless.htm
@@ -19,7 +19,6 @@
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
var bwxhr = new XHR();
@@ -141,7 +140,7 @@
var text = G.createElementNS('http://www.w3.org/2000/svg', 'text');
text.setAttribute('x', i + 5);
text.setAttribute('y', 15);
- text.setAttribute('style', 'fill:#999999; font-size:9pt');
+ text.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
text.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
label_25.parentNode.appendChild(line);
@@ -158,7 +157,7 @@
var text2 = G2.createElementNS('http://www.w3.org/2000/svg', 'text');
text2.setAttribute('x', i + 5);
text2.setAttribute('y', 15);
- text2.setAttribute('style', 'fill:#999999; font-size:9pt');
+ text2.setAttribute('style', 'fill:#999999; font-size:9pt; font-family:sans-serif');
text2.appendChild(G.createTextNode(Math.round((width - i) / step / 60) + 'm'));
label_25_2.parentNode.appendChild(line2);
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm
index ef13a91672..1b959afc54 100644
--- a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm
@@ -44,7 +44,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<h2 name="content"><%:Software%></h2>
diff --git a/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm b/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm
index a56e4826a9..572f8585d1 100644
--- a/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm
+++ b/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm
@@ -110,7 +110,6 @@ end
<%+header%>
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[
XHR.poll(<%=interval%> , '<%=REQUEST_URI%>', { status: 1 },
diff --git a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
index 056f6a6e76..64e256a517 100644
--- a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
+++ b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
@@ -5,7 +5,7 @@
local map, section, net = ...
local ifname = net:get_interface():name()
local private_key, listen_port
-local metric, mtu, preshared_key
+local metric, mtu, preshared_key, description
local peers, public_key, allowed_ips, endpoint, persistent_keepalive
@@ -96,6 +96,16 @@ peers.anonymous = true
peers.addremove = true
+description = peers:option(
+ Value,
+ "description",
+ translate("Description"),
+ translate("Optional. Description of peer."))
+description.placeholder = "My Peer"
+description.datatype = "string"
+description.optional = true
+
+
public_key = peers:option(
Value,
"public_key",
diff --git a/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css b/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
index 72f087580d..aa21b2c905 100644
--- a/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
+++ b/themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
@@ -1417,7 +1417,7 @@ footer {
min-height: 20px;
}
-.cbi-dropdown > ul > li .hide-open { display: initial; }
+.cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
.cbi-dropdown > ul > li .hide-close { display: none; }
.cbi-dropdown > ul > li[display]:not([display="0"]) {
@@ -1482,7 +1482,7 @@ footer {
}
.cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
-.cbi-dropdown[open] > ul.dropdown > li .hide-close { display: initial; }
+.cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
.cbi-dropdown[open] > ul.dropdown > li {
border-bottom: 1px solid #ccc;
@@ -1889,7 +1889,7 @@ table table td,
}
.network-status-table .ifacebox-body > span {
- flex: 10;
+ flex: 10 10 auto;
}
.network-status-table .ifacebox-body > div {
diff --git a/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm b/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm
index aaacf56b84..6ad32efb47 100644
--- a/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm
+++ b/themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm
@@ -170,6 +170,7 @@
<% if css then %>
<style title="text/css"><%= css %></style>
<% end -%>
+ <script src="<%=resource%>/cbi.js"></script>
<script src="<%=resource%>/xhr.js"></script>
</head>
diff --git a/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm b/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
index b6ed1f7134..4a1c7b6440 100644
--- a/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
+++ b/themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
@@ -81,6 +81,7 @@
</style>
<% end -%>
<meta name="viewport" content="initial-scale=1.0" />
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(tostring(node.title)) or '')) %> - LuCI</title>
diff --git a/themes/luci-theme-material/htdocs/luci-static/material/css/style.css b/themes/luci-theme-material/htdocs/luci-static/material/css/style.css
index 17db81edb3..e7f095fa96 100755
--- a/themes/luci-theme-material/htdocs/luci-static/material/css/style.css
+++ b/themes/luci-theme-material/htdocs/luci-static/material/css/style.css
@@ -59,11 +59,23 @@
bottom: 0;
text-align: center;
line-height: 3em;
+ background: inherit;
}
.table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
.table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
+.col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
+.col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
+.col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
+.col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
+.col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
+.col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
+.col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
+.col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
+.col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
+.col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
+
.cbi-button-up,
.cbi-button-down,
.cbi-value-helpicon,
@@ -461,7 +473,7 @@ h4 {
}
.cbi-section {
- margin: 2rem 0 0 0;
+ margin: 1rem 0 0 0;
padding: 2rem;
border: 0;
font-weight: normal;
@@ -491,6 +503,7 @@ fieldset > fieldset {
box-shadow: none;
}
+.cbi-section > h3:first-child,
.panel-title {
width: 100%;
display: block;
@@ -499,6 +512,7 @@ fieldset > fieldset {
font-size: 1.4rem;
padding-bottom: 1rem;
border-bottom: 1px solid #eee;
+ margin: 0;
}
table {
@@ -518,41 +532,18 @@ table > tbody > tr > td, table > tbody > tr > th, table > tfoot > tr > td, table
white-space: nowrap;
}
-.td.cbi-value-field,
-.cbi-section-table-cell {
- text-align: center;
- display: inline-block;
- flex: 10;
-}
-
.cbi-section-table-cell {
white-space: nowrap;
align-self: flex-end;
- flex: 1;
-}
-
-.td.cbi-value-field[data-title]::before {
- content: attr(data-title);
- padding: .5rem;
- display: block;
- white-space: nowrap;
+ flex: 1 1 auto;
}
.cbi-section-table {
border: none;
}
-.tr.cbi-section-table-titles,
-.tr.cbi-section-table-descr {
- display: none;
-}
-
.cbi-section-table-row {
text-align: center;
- display: flex;
- flex-wrap: wrap;
- flex-direction: row;
- justify-content: space-between;
margin-bottom: 1rem;
background: #f4f4f4;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
@@ -562,17 +553,6 @@ table > tbody > tr > td, table > tbody > tr > th, table > tfoot > tr > td, table
margin-bottom: 0;
}
-.cbi-section-table-row[data-title]::before {
- content: attr(data-title);
- display: block;
- width: 100%;
- margin: .25rem;
- padding: .25rem .25rem .5rem .25rem;
- border-bottom: 1px solid rgba(0, 0, 0, .26);
- text-align: center;
- font-size: 1rem;
-}
-
.cbi-section-table-row > .cbi-value-field .cbi-input-select,
.cbi-section-table-row > .cbi-value-field .cbi-input-text,
.cbi-section-table-row > .cbi-value-field .cbi-input-password,
@@ -580,6 +560,11 @@ table > tbody > tr > td, table > tbody > tr > th, table > tfoot > tr > td, table
width: 100%;
}
+.cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
+.cbi-section-table-row > .cbi-value-field input.cbi-input-password {
+ width: calc(100% - 1.5rem);
+}
+
div > table > tbody > tr:nth-of-type(2n),
div > .table > .tbody > .tr:nth-of-type(2n) {
background-color: #f9f9f9;
@@ -852,6 +837,33 @@ form.inline + form.inline,
border: none;
}
+.td[data-title]::before {
+ content: attr(data-title) ":\20";
+ font-weight: bold;
+ text-align: left;
+ display: none;
+ padding: .25rem 0;
+ white-space: nowrap;
+}
+
+.tr.placeholder .td[data-title]::before {
+ display: none;
+}
+
+.tr[data-title]::before,
+.tr.cbi-section-table-titles.named::before {
+ content: attr(data-title) "\20";
+ font-weight: bold;
+ text-align: center;
+ display: table-cell;
+ align-self: center;
+ flex: 1 1 5%;
+ padding: .25rem;
+ white-space: normal;
+ word-wrap: break-word;
+ vertical-align: middle;
+}
+
.cbi-rowstyle-2 {
background-color: #eee;
}
@@ -1045,18 +1057,28 @@ form.inline + form.inline,
display: none
}
-.left {
+.left, .left::before {
text-align: left !important;
}
-.right {
+.right, .right::before {
text-align: right !important;
}
-.center {
+.center, .center::before {
text-align: center !important;
}
+.top {
+ align-self: flex-start !important;
+ vertical-align: top !important;
+}
+
+.bottom {
+ align-self: flex-end !important;
+ vertical-align: bottom !important;
+}
+
.inline {
display: inline;
}
@@ -1082,6 +1104,12 @@ form.inline + form.inline,
width: 15rem;
}
+.th[data-type="button"], .td[data-type="button"],
+.th[data-type="fvalue"], .td[data-type="fvalue"] {
+ flex: 1 1 2em;
+ text-align: center;
+}
+
.ifacebadge {
display: inline-flex;
border-bottom: 1px solid #CCCCCC;
@@ -1124,7 +1152,7 @@ td > .ifacebadge,
}
.network-status-table .ifacebox-body > span {
- flex: 10;
+ flex: 10 10 auto;
}
.network-status-table .ifacebox-body > div {
@@ -1133,7 +1161,7 @@ td > .ifacebadge,
}
.network-status-table .ifacebox-body .ifacebadge {
- flex: 1;
+ flex: 1 1 auto;
margin: .5em .25em 0 .25em;
padding: .5em;
min-width: 220px;
@@ -1303,6 +1331,11 @@ td > .ifacebadge,
height: 1rem;
}
+.td .cbi-input-checkbox,
+.td .cbi-input-radio {
+ margin-top: 0;
+}
+
.cbi-value-field > input + .cbi-value-description {
padding: 0;
}
@@ -1805,10 +1838,29 @@ body.lang_pl.node-main-login .cbi-value-title {
}
.th, .td {
- flex: 1;
- flex-basis: 33%;
+ flex: 2 2 25%;
+ align-self: flex-start;
overflow: hidden;
text-overflow: ellipsis;
+ word-wrap: break-word;
+ display: inline-block;
+ }
+
+ .td select,
+ .td input[type="text"] {
+ word-wrap: normal;
+ width: 100%;
+ }
+
+ .td [data-dynlist] > input,
+ .td input.cbi-input-password {
+ width: calc(100% - 1.5rem);
+ }
+
+ .td[data-type="button"],
+ .td[data-type="fvalue"] {
+ flex: 1 1 12.5%;
+ text-align: left;
}
.th.cbi-value-field,
@@ -1817,6 +1869,54 @@ body.lang_pl.node-main-login .cbi-value-title {
.td.cbi-section-table-cell {
flex-basis: auto;
}
+
+ .cbi-section-table-row {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: row;
+ justify-content: space-between;
+ }
+
+ .td.cbi-value-field,
+ .cbi-section-table-cell {
+ text-align: center;
+ display: inline-block;
+ flex: 10 10 auto;
+ }
+
+ .td.cbi-section-actions {
+ text-align: right;
+ align-self: flex-end;
+ vertical-align: bottom;
+ }
+
+ .tr.table-titles,
+ .tr.cbi-section-table-titles,
+ .tr.cbi-section-table-descr {
+ display: none;
+ }
+
+ .tr[data-title]::before,
+ .tr.cbi-section-table-titles.named::before {
+ display: block;
+ flex: 1 1 100%;
+ background: #eef;
+ font-size: .9rem;
+ border-bottom: 1px solid rgba(0, 0, 0, .26);
+ }
+
+ .td[data-title] {
+ text-align: left;
+ }
+
+ .td[data-title]::before {
+ display: block;
+ }
+
+ .hide-sm,
+ .hide-xs {
+ display: none;
+ }
}
@media screen and (max-width: 480px) {
@@ -1959,6 +2059,25 @@ body.lang_pl.node-main-login .cbi-value-title {
.td.cbi-value-field {
flex-basis: 100%;
}
+
+ .td.cbi-value-field[data-type="dvalue"] {
+ flex-basis: 50%;
+ }
+
+ .td.cbi-value-field[data-type="button"],
+ .td.cbi-value-field[data-type="fvalue"] {
+ flex-basis: 25%;
+ text-align: left;
+ }
+
+ .tr[data-title]::before,
+ .tr.cbi-section-table-titles.named::before {
+ font-size: 1rem;
+ }
+
+ .hide-xs {
+ display: none;
+ }
}
@media screen and (min-width: 992px) {
diff --git a/themes/luci-theme-material/luasrc/view/themes/material/header.htm b/themes/luci-theme-material/luasrc/view/themes/material/header.htm
index b6341a2c35..f97db25751 100644
--- a/themes/luci-theme-material/luasrc/view/themes/material/header.htm
+++ b/themes/luci-theme-material/luasrc/view/themes/material/header.htm
@@ -211,6 +211,7 @@
<% if css then %>
<style title="text/css"><%= css %></style>
<% end -%>
+ <script src="<%=resource%>/cbi.js"></script>
<script src="<%=resource%>/xhr.js"></script>
</head>
<body class="lang_<%=luci.i18n.context.lang%> <%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %>">
diff --git a/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css b/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css
index 4bde3eaea2..5812940f00 100644
--- a/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css
+++ b/themes/luci-theme-openwrt/htdocs/luci-static/openwrt.org/cascade.css
@@ -839,6 +839,11 @@ div.cbi-optionals {
margin-right: auto;
}
+*::-ms-backdrop,
+.cbi-page-actions > .cbi-button-link,
+.cbi-page-actions > form[method="get"]:first-child {
+ margin-right: 50%;
+}
.th[data-type="button"], .td[data-type="button"],
.th[data-type="fvalue"], .td[data-type="fvalue"] {
@@ -851,10 +856,6 @@ div.cbi-optionals {
flex-basis: 12%;
}
-#cbi-wireless-overview .td:first-child {
- align-self: center;
-}
-
.td[data-title]::before {
content: attr(data-title) ":\20";
font-weight: bold;
@@ -935,7 +936,7 @@ ul.cbi-tabmenu li a:hover {
text-decoration: none;
color: inherit;
padding: 5px;
- flex: 1;
+ flex: 1 1 auto;
width: 100%;
height: 100%;
}
@@ -1296,11 +1297,11 @@ ul.cbi-tabmenu li.cbi-tab {
.network-status-table .ifacebox-body {
display: flex;
flex-direction: column;
- flex: 1 0;
+ flex: 1 0 auto;
}
.network-status-table .ifacebox-body > span {
- flex: 10;
+ flex: 10 10 auto;
}
.network-status-table .ifacebox-body > div {
@@ -1440,6 +1441,7 @@ ul.cbi-tabmenu li.cbi-tab {
#maincontent {
width: 96%;
margin: auto;
+ flex-basis: auto;
}
#mainmenu {
@@ -1465,7 +1467,7 @@ ul.cbi-tabmenu li.cbi-tab {
}
#mainmenu ul > li > a {
- flex: 1;
+ flex: 1 1 auto;
color: #fff;
border: 1px solid #444;
border-width: 0 0 1px 1px;
diff --git a/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm b/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm
index 773cf1f82e..e77f9a4bfe 100644
--- a/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm
+++ b/themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm
@@ -87,6 +87,9 @@
local childs = disp.node_childs(node)
if #childs > 0 then
if level > 2 then
+ if level == 3 then
+ write('<div id="tabmenu">')
+ end
write('<ul class="cbi-tabmenu">')
end
@@ -112,6 +115,9 @@
if level > 2 then
write('</ul>')
+ if level == 3 then
+ write('</div>')
+ end
end
if selected_node then
@@ -157,6 +163,7 @@
<%= css %>
</style>
<% end -%>
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
<script type="text/javascript">//<![CDATA[
document.addEventListener('DOMContentLoaded', function() {
@@ -240,9 +247,7 @@
</div>
<div id="maincontent">
- <div id="tabmenu">
- <% if category then render_tabmenu(category, cattree) end %>
- </div>
+ <% if category then render_tabmenu(category, cattree) end %>
<noscript>
<div class="alert-message warning">