diff options
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"> </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"> |