summaryrefslogtreecommitdiffhomepage
path: root/applications
diff options
context:
space:
mode:
Diffstat (limited to 'applications')
-rw-r--r--applications/luci-app-ddns/Makefile16
-rwxr-xr-xapplications/luci-app-ddns/luasrc/controller/ddns.lua37
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua56
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua23
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua2
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua28
-rwxr-xr-xapplications/luci-app-ddns/luasrc/tools/ddns.lua14
-rw-r--r--applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm1
-rw-r--r--applications/luci-app-ddns/luasrc/view/ddns/global_value.htm2
-rw-r--r--applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm1
-rwxr-xr-xapplications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns2
-rw-r--r--applications/luci-app-diag-devinfo/Makefile4
-rw-r--r--applications/luci-app-rp-pppoe-server/Makefile15
-rw-r--r--applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua13
-rw-r--r--applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua72
-rw-r--r--applications/luci-app-splash/Makefile6
-rw-r--r--applications/luci-app-statistics/Makefile4
-rw-r--r--applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua10
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua14
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua29
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua25
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua42
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua20
-rw-r--r--applications/luci-app-statistics/po/ca/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/cs/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/de/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/el/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/en/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/es/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/fr/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/he/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/hu/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/it/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/ja/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/ms/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/no/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/pl/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/pt-br/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/pt/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/ro/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/ru/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/sk/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/sv/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/templates/statistics.pot27
-rw-r--r--applications/luci-app-statistics/po/tr/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/uk/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/vi/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/zh-cn/statistics.po27
-rw-r--r--applications/luci-app-statistics/po/zh-tw/statistics.po27
-rw-r--r--applications/luci-app-statistics/root/etc/config/luci_statistics8
-rwxr-xr-xapplications/luci-app-statistics/root/usr/bin/stat-genconfig12
-rw-r--r--applications/luci-app-travelmate/Makefile13
-rw-r--r--applications/luci-app-travelmate/luasrc/controller/travelmate.lua11
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua53
-rw-r--r--applications/luci-app-travelmate/po/templates/travelmate.pot56
-rwxr-xr-xapplications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate11
-rw-r--r--applications/luci-app-unbound/Makefile14
-rw-r--r--applications/luci-app-unbound/luasrc/controller/unbound.lua17
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound.lua123
-rw-r--r--applications/luci-app-wifischedule/Makefile22
-rw-r--r--applications/luci-app-wifischedule/README.md86
-rw-r--r--applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua32
-rw-r--r--applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua259
-rw-r--r--applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm22
64 files changed, 1789 insertions, 88 deletions
diff --git a/applications/luci-app-ddns/Makefile b/applications/luci-app-ddns/Makefile
index 55ce1cb3e3..88c905a41a 100644
--- a/applications/luci-app-ddns/Makefile
+++ b/applications/luci-app-ddns/Makefile
@@ -1,16 +1,18 @@
#
-# Copyright (C) 2008-2016 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
+# Copyright 2008 Steven Barth <steven@midlink.org>
+# Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+# Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
+# Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
+# This is free software, licensed under the Apache License, Version 2.0
include $(TOPDIR)/rules.mk
-PKG_NAME:=luci-app-ddns
+# PKG_NAME:=luci-app-ddns
# Version == major.minor.patch
# increase on new functionality (minor) or patches (patch)
-PKG_VERSION:=2.4.7
+PKG_VERSION:=2.4.8
# Release == build
# increase on changes of translation files
@@ -22,15 +24,13 @@ PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
# LuCI specific settings
LUCI_TITLE:=LuCI Support for Dynamic DNS Client (ddns-scripts)
LUCI_DEPENDS:=+luci-mod-admin-full +ddns-scripts
-LUCI_PKGARCH:=all
+# LUCI_PKGARCH:=all
define Package/$(PKG_NAME)/config
# shown in make menuconfig <Help>
help
$(LUCI_TITLE)
- .
Version: $(PKG_VERSION)-$(PKG_RELEASE)
- $(PKG_MAINTAINER)
endef
include ../../luci.mk
diff --git a/applications/luci-app-ddns/luasrc/controller/ddns.lua b/applications/luci-app-ddns/luasrc/controller/ddns.lua
index 9f5411b06e..63bb8bf4be 100755
--- a/applications/luci-app-ddns/luasrc/controller/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/controller/ddns.lua
@@ -17,12 +17,14 @@ local UCI = require "luci.model.uci"
local UTIL = require "luci.util"
local DDNS = require "luci.tools.ddns" -- ddns multiused functions
+luci_helper = "/usr/lib/ddns/dynamic_dns_lucihelper.sh"
+
local srv_name = "ddns-scripts"
-local srv_ver_min = "2.7.5" -- minimum version of service required
-local srv_ver_cmd = [[/usr/lib/ddns/dynamic_dns_updater.sh --version | awk {'print $2'}]]
+local srv_ver_min = "2.7.6" -- minimum version of service required
+local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]]
local app_name = "luci-app-ddns"
local app_title = "Dynamic DNS"
-local app_version = "2.4.7-1"
+local app_version = "2.4.8-1"
function index()
local nxfs = require "nixio.fs" -- global definitions not available
@@ -96,14 +98,14 @@ function app_title_main()
end
function service_version()
local ver = nil
+
+ ver = UTIL.exec(srv_ver_cmd)
+ if #ver > 0 then return ver end
+
IPKG.list_installed(srv_name, function(n, v, d)
if v and (#v > 0) then ver = v end
end
)
- if not ver or (#ver == 0) then
- ver = UTIL.exec(srv_ver_cmd)
- if #ver == 0 then ver = nil end
- end
return ver
end
function service_ok()
@@ -191,10 +193,14 @@ local function _get_status()
local force_ipversion = tonumber(s["force_ipversion"] or 0)
local force_dnstcp = tonumber(s["force_dnstcp"] or 0)
local is_glue = tonumber(s["is_glue"] or 0)
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh]]
- command = command .. [[ get_registered_ip ]] .. lookup_host .. [[ ]] .. use_ipv6 ..
- [[ ]] .. force_ipversion .. [[ ]] .. force_dnstcp ..
- [[ ]] .. is_glue .. [[ ]] .. dnsserver
+ local command = luci_helper .. [[ -]]
+ if (use_ipv6 == 1) then command = command .. [[6]] end
+ if (force_ipversion == 1) then command = command .. [[f]] end
+ if (force_dnstcp == 1) then command = command .. [[t]] end
+ if (is_glue == 1) then command = command .. [[g]] end
+ command = command .. [[l ]] .. lookup_host
+ if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
+ command = command .. [[ -- get_registered_ip]]
local reg_ip = SYS.exec(command)
if reg_ip == "" then
reg_ip = "_nodata_"
@@ -221,8 +227,8 @@ end
function logread(section)
-- read application settings
local uci = UCI.cursor()
- local log_dir = uci:get("ddns", "global", "log_dir") or "/var/log/ddns"
- local lfile = log_dir .. "/" .. section .. ".log"
+ local ldir = uci:get("ddns", "global", "ddns_logdir") or "/var/log/ddns"
+ local lfile = ldir .. "/" .. section .. ".log"
local ldata = NXFS.readfile(lfile)
if not ldata or #ldata == 0 then
@@ -289,8 +295,9 @@ function startstop(section, enabled)
uci:commit("ddns")
uci:unload("ddns")
- -- start dynamic_dns_updater.sh script
- os.execute ([[/usr/lib/ddns/dynamic_dns_updater.sh %s 0 > /dev/null 2>&1 &]] % section)
+ -- start ddns-updater for section
+ local command = luci_helper .. [[ -S ]] .. section .. [[ -- start]]
+ os.execute(command)
NX.nanosleep(3) -- 3 seconds "show time"
-- status changed so return full status
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
index 131cbfdeae..a8f4cbf7ad 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
@@ -58,7 +58,7 @@ end
-- read services/services_ipv6 files -- ########################################
local services4 = { } -- IPv4 --
-local fd4 = io.open("/usr/lib/ddns/services", "r")
+local fd4 = io.open("/etc/ddns/services", "r")
if fd4 then
local ln, s, t
repeat
@@ -72,7 +72,7 @@ if fd4 then
end
local services6 = { } -- IPv6 --
-local fd6 = io.open("/usr/lib/ddns/services_ipv6", "r")
+local fd6 = io.open("/etc/ddns/services_ipv6", "r")
if fd6 then
local ln, s, t
repeat
@@ -91,35 +91,38 @@ end
-- local IP can be read
local function _verify_ip_source()
-- section is globally defined here be calling agrument (see above)
- local _network = "-"
- local _url = "-"
- local _interface = "-"
- local _script = "-"
- local _proxy = ""
+ local _arg
local _ipv6 = usev6:formvalue(section)
local _source = (_ipv6 == "1")
and src6:formvalue(section)
or src4:formvalue(section)
+
+ local command = CTRL.luci_helper .. [[ -]]
+ if (_ipv6 == "1") then command = command .. [[6]] end
+
if _source == "network" then
- _network = (_ipv6 == "1")
+ _arg = (_ipv6 == "1")
and ipn6:formvalue(section)
or ipn4:formvalue(section)
+ command = command .. [[n ]] .. _arg
elseif _source == "web" then
- _url = (_ipv6 == "1")
+ _arg = (_ipv6 == "1")
and iurl6:formvalue(section)
or iurl4:formvalue(section)
+ command = command .. [[u ]] .. _arg
+
-- proxy only needed for checking url
- _proxy = (pxy) and pxy:formvalue(section) or ""
+ _arg = (pxy) and pxy:formvalue(section) or ""
+ if (_arg and #_arg > 0) then
+ command = command .. [[ -p ]] .. _arg
+ end
elseif _source == "interface" then
- _interface = ipi:formvalue(section)
+ command = command .. [[i ]] .. ipi:formvalue(section)
elseif _source == "script" then
- _script = ips:formvalue(section)
+ command = command .. [[s ]] .. ips:formvalue(section)
end
-
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh get_local_ip ]] ..
- _ipv6 .. [[ ]] .. _source .. [[ ]] .. _network .. [[ ]] ..
- _url .. [[ ]] .. _interface .. [[ ']] .. _script.. [[' ]] .. _proxy
+ command = command .. [[ -- get_local_ip]]
return (SYS.call(command) == 0)
end
@@ -248,10 +251,8 @@ if m:formvalue("cbid.ddns.%s._switch" % section) then -- section == arg[1]
end
-- read application settings -- ################################################
--- date format; if not set use ISO format
-local date_format = m.uci:get(m.config, "global", "date_format") or "%F %R"
-- log directory
-local log_dir = m.uci:get(m.config, "global", "log_dir") or "/var/log/ddns"
+local logdir = m.uci:get(m.config, "global", "ddns_logdir") or "/var/log/ddns"
-- cbi-section definition -- ###################################################
local ns = m:section( NamedSection, section, "service",
@@ -1158,8 +1159,11 @@ if DDNS.has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then
else
local ipv6 = usev6:formvalue(section) or "0"
local force = fipv:formvalue(section) or "0"
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh verify_dns ]] ..
- value .. [[ ]] .. ipv6 .. [[ ]] .. force
+ local command = CTRL.luci_helper .. [[ -]]
+ if (ipv6 == 1) then command = command .. [[6]] end
+ if (force == 1) then command = command .. [[f]] end
+ command = command .. [[d ]] .. value .. [[ -- verify_dns]]
+
local ret = SYS.call(command)
if ret == 0 then return value -- everything OK
elseif ret == 2 then return nil, err_tab_adv(self) .. translate("nslookup can not resolve host")
@@ -1225,8 +1229,10 @@ if DDNS.has_proxy or ( ( m:get(section, "proxy") or "" ) ~= "" ) then
elseif DDNS.has_proxy then
local ipv6 = usev6:formvalue(section) or "0"
local force = fipv:formvalue(section) or "0"
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh verify_proxy ]] ..
- value .. [[ ]] .. ipv6 .. [[ ]] .. force
+ local command = CRTL.luci_helper .. [[ -]]
+ if (ipv6 == 1) then command = command .. [[6]] end
+ if (force == 1) then command = command .. [[f]] end
+ command = command .. [[p ]] .. value .. [[ -- verify_proxy]]
local ret = SYS.call(command)
if ret == 0 then return value
elseif ret == 2 then return nil, err_tab_adv(self) .. translate("nslookup can not resolve host")
@@ -1262,7 +1268,7 @@ end
logf = ns:taboption("advanced", Flag, "use_logfile",
translate("Log to file"),
translate("Writes detailed messages to log file. File will be truncated automatically.") .. "<br />" ..
- translate("File") .. [[: "]] .. log_dir .. [[/]] .. section .. [[.log"]] )
+ translate("File") .. [[: "]] .. logdir .. [[/]] .. section .. [[.log"]] )
logf.orientation = "horizontal"
logf.default = "1" -- if not defined write to log by default
@@ -1464,7 +1470,7 @@ lv.template = "ddns/detail_logview"
lv.inputtitle = translate("Read / Reread log file")
lv.rows = 50
function lv.cfgvalue(self, section)
- local lfile=log_dir .. "/" .. section .. ".log"
+ local lfile=logdir .. "/" .. section .. ".log"
if NXFS.access(lfile) then
return lfile .. "\n" .. translate("Please press [Read] button")
end
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
index 23ce4f13f7..9dc0857509 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
@@ -16,7 +16,8 @@ m.redirect = DISP.build_url("admin", "services", "ddns")
function m.commit_handler(self)
if self.changed then -- changes ?
- os.execute("/etc/init.d/ddns reload &") -- reload configuration
+ local command = CTRL.luci_helper .. " -- reload"
+ os.execute(command) -- reload configuration
end
end
@@ -40,8 +41,8 @@ function ns.cfgvalue(self, section)
return self.map:get(section)
end
--- allow_local_ip -- ##########################################################
-local ali = ns:option(Flag, "allow_local_ip")
+-- upd_privateip -- ###########################################################
+local ali = ns:option(Flag, "upd_privateip")
ali.title = translate("Allow non-public IP's")
ali.description = translate("Non-public and by default blocked IP's") .. ":"
.. [[<br /><strong>IPv4: </strong>]]
@@ -50,8 +51,8 @@ ali.description = translate("Non-public and by default blocked IP's") .. ":"
.. "::/32, f000::/4"
ali.default = "0"
--- date_format -- #############################################################
-local df = ns:option(Value, "date_format")
+-- ddns_dateformat -- #########################################################
+local df = ns:option(Value, "ddns_dateformat")
df.title = translate("Date format")
df.description = [[<a href="http://www.cplusplus.com/reference/ctime/strftime/" target="_blank">]]
.. translate("For supported codes look here")
@@ -69,8 +70,8 @@ function df.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- run_dir -- #################################################################
-local rd = ns:option(Value, "run_dir")
+-- ddns_rundir -- #############################################################
+local rd = ns:option(Value, "ddns_rundir")
rd.title = translate("Status directory")
rd.description = translate("Directory contains PID and other status information for each running section")
rd.default = "/var/run/ddns"
@@ -79,8 +80,8 @@ function rd.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- log_dir -- #################################################################
-local ld = ns:option(Value, "log_dir")
+-- ddns_logdir -- #############################################################
+local ld = ns:option(Value, "ddns_logdir")
ld.title = translate("Log directory")
ld.description = translate("Directory contains Log files for each running section")
ld.default = "/var/log/ddns"
@@ -89,8 +90,8 @@ function ld.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- log_lines -- ###############################################################
-local ll = ns:option(Value, "log_lines")
+-- ddns_loglines -- ###########################################################
+local ll = ns:option(Value, "ddns_loglines")
ll.title = translate("Log length")
ll.description = translate("Number of last lines stored in log files")
ll.default = "250"
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
index 21827b7659..df39a3a7e5 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
@@ -24,7 +24,7 @@ s = m:section( SimpleSection,
translate("Hints"),
translate("Below a list of configuration tips for your system to run Dynamic DNS updates without limitations") )
--- ddns_scripts needs to be updated for full functionality
+-- ddns-scripts needs to be updated for full functionality
if not CTRL.service_ok() then
local so = s:option(DummyValue, "_update_needed")
so.titleref = DISP.build_url("admin", "system", "packages")
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
index 9a989bae41..6ba3ea0dd8 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
@@ -33,10 +33,13 @@ m.description = CTRL.app_description()
m.on_after_commit = function(self)
if self.changed then -- changes ?
+ local command = CTRL.luci_helper
if SYS.init.enabled("ddns") then -- ddns service enabled, restart all
- os.execute("/etc/init.d/ddns restart")
+ command = command .. " -- restart"
+ os.execute(command)
else -- ddns service disabled, send SIGHUP to running
- os.execute("killall -1 dynamic_dns_updater.sh")
+ command = command .. " -- reload"
+ os.execute(command)
end
end
end
@@ -52,7 +55,7 @@ if show_hints or need_update or not_enabled then
s = m:section( SimpleSection, translate("Hints") )
- -- ddns_scripts needs to be updated for full functionality
+ -- ddns-scripts needs to be updated for full functionality
if need_update then
local dv = s:option(DummyValue, "_update_needed")
dv.titleref = DISP.build_url("admin", "system", "packages")
@@ -119,18 +122,21 @@ function dom.set_one(self, section)
end
end
function dom.set_two(self, section)
- local lookup = self.map:get(section, "lookup_host") or ""
- if lookup == "" then return "" end
+ local lookup_host = self.map:get(section, "lookup_host") or ""
+ if lookup_host == "" then return "" end
local dnsserver = self.map:get(section, "dnsserver") or ""
local use_ipv6 = tonumber(self.map:get(section, "use_ipv6") or 0)
local force_ipversion = tonumber(self.map:get(section, "force_ipversion") or 0)
local force_dnstcp = tonumber(self.map:get(section, "force_dnstcp") or 0)
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh]]
- if not NXFS.access(command, "rwx", "rx", "rx") then
- NXFS.chmod(command, 755)
- end
- command = command .. [[ get_registered_ip ]] .. lookup .. [[ ]] .. use_ipv6 ..
- [[ ]] .. force_ipversion .. [[ ]] .. force_dnstcp .. [[ ]] .. dnsserver
+ local is_glue = tonumber(self.map:get(section, "is_glue") or 0)
+ local command = CTRL.luci_helper .. [[ -]]
+ if (use_ipv6 == 1) then command = command .. [[6]] end
+ if (force_ipversion == 1) then command = command .. [[f]] end
+ if (force_dnstcp == 1) then command = command .. [[t]] end
+ if (is_glue == 1) then command = command .. [[g]] end
+ command = command .. [[l ]] .. lookup_host
+ if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
+ command = command .. [[ -- get_registered_ip]]
local ip = SYS.exec(command)
if ip == "" then ip = translate("no data") end
return ip
diff --git a/applications/luci-app-ddns/luasrc/tools/ddns.lua b/applications/luci-app-ddns/luasrc/tools/ddns.lua
index e55c673629..209d9c3a41 100755
--- a/applications/luci-app-ddns/luasrc/tools/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/tools/ddns.lua
@@ -57,7 +57,7 @@ end
function epoch2date(epoch, format)
if not format or #format < 2 then
local uci = UCI.cursor()
- format = uci:get("ddns", "global", "date_format") or "%F %R"
+ format = uci:get("ddns", "global", "ddns_dateformat") or "%F %R"
uci:unload("ddns")
end
format = format:gsub("%%n", "<br />") -- replace newline
@@ -67,18 +67,18 @@ end
-- read lastupdate from [section].update file
function get_lastupd(section)
- local uci = UCI.cursor()
- local run_dir = uci:get("ddns", "global", "run_dir") or "/var/run/ddns"
- local etime = tonumber(NXFS.readfile("%s/%s.update" % { run_dir, section } ) or 0 )
+ local uci = UCI.cursor()
+ local rdir = uci:get("ddns", "global", "ddns_rundir") or "/var/run/ddns"
+ local etime = tonumber(NXFS.readfile("%s/%s.update" % { rdir, section } ) or 0 )
uci:unload("ddns")
return etime
end
-- read PID from run file and verify if still running
function get_pid(section)
- local uci = UCI.cursor()
- local run_dir = uci:get("ddns", "global", "run_dir") or "/var/run/ddns"
- local pid = tonumber(NXFS.readfile("%s/%s.pid" % { run_dir, section } ) or 0 )
+ local uci = UCI.cursor()
+ local rdir = uci:get("ddns", "global", "ddns_rundir") or "/var/run/ddns"
+ local pid = tonumber(NXFS.readfile("%s/%s.pid" % { rdir, section } ) or 0 )
if pid > 0 and not NX.kill(pid, 0) then
pid = 0
end
diff --git a/applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm b/applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm
index 0bcfd44283..b69d780ea9 100644
--- a/applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm
+++ b/applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm
@@ -14,6 +14,7 @@
c = c + 1
%>
<input class="cbi-input-radio" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)" type="radio"<%= attr("id", cbid..c) .. attr("name", cbid) .. attr("value", key) .. ifattr((self:cfgvalue(section) or self.default) == key, "checked", "checked") %> />
+ <label<%= attr("for", cbid..c) %>></label>
<label<%= attr("for", cbid..c) %>><%=self.vallist[i]%></label>
<% if c == self.size then c = 0 %><% if self.orientation == "horizontal" then %>&#160;<% else %><br /><% end %>
<% end end %>
diff --git a/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm b/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
index 159cb60147..23ec059170 100644
--- a/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
+++ b/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
@@ -4,7 +4,7 @@
<script type="text/javascript">//<![CDATA[
// event handler on changed date
function onkeyup_date(value) {
- var obj = document.getElementById("cbid.ddns.global.date_format.help");
+ var obj = document.getElementById("cbid.ddns.global.ddns_dateformat.help");
if ( !obj ) { return; } // security check
if ( value == "" || value.length == 0 ) { value = "%F %R"; }
diff --git a/applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm b/applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm
index 64b3dae455..2efc125fcc 100644
--- a/applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm
+++ b/applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm
@@ -10,6 +10,7 @@
attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) ..
ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked")
%> />
+<label<%= attr("for", cbid)%>></label>
<%+cbi/valuefooter%>
<!-- ++ END ++ Dynamic DNS ++ overview_enabled.htm ++ -->
diff --git a/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns b/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
index 9fd875e34b..a82c1f9ac6 100755
--- a/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
+++ b/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
@@ -7,4 +7,4 @@ uci -q batch <<-EOF >/dev/null
EOF
rm -f /tmp/luci-indexcache
-exit 0
+return 0
diff --git a/applications/luci-app-diag-devinfo/Makefile b/applications/luci-app-diag-devinfo/Makefile
index 0424fffa0c..1505b62121 100644
--- a/applications/luci-app-diag-devinfo/Makefile
+++ b/applications/luci-app-diag-devinfo/Makefile
@@ -9,6 +9,10 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Diagnostics Tools (Device Info)
LUCI_DEPENDS:=+luci-app-diag-core +smap +netdiscover +mac-to-devinfo +httping +smap-to-devinfo +netdiscover-to-devinfo @BROKEN
+define Package/luci-app-diag-devinfo/conffiles
+/etc/config/luci_devinfo
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-rp-pppoe-server/Makefile b/applications/luci-app-rp-pppoe-server/Makefile
new file mode 100644
index 0000000000..6cf4595cea
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/Makefile
@@ -0,0 +1,15 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Roaring Penguing PPPoE Server
+LUCI_DEPENDS:=+rp-pppoe-server
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua
new file mode 100644
index 0000000000..105a80e28d
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua
@@ -0,0 +1,13 @@
+-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.rp-pppoe-server", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/pppoe") then
+ return
+ end
+
+ entry({"admin", "services", "rp-pppoe-server"}, cbi("rp-pppoe-server"), _("RP PPPoE Server"))
+end
+
diff --git a/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua
new file mode 100644
index 0000000000..ef15ed6127
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua
@@ -0,0 +1,72 @@
+-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local m, s, o
+
+local nixio = require "nixio"
+
+m = Map("pppoe", translate("Roaring Penguin PPPoE Server"),
+ translate("PPPoE Server Configuration"))
+
+s = m:section(TypedSection, "pppoe_server", translate("Server Configuration"))
+s.addremove = false
+s.anonymous = true
+
+o = s:option(Value, "interface", translate("Interface"), translate("Interface on which to listen."))
+o.template = "cbi/network_ifacelist"
+o.nocreate = true
+
+o = s:option(Value, "ac_name", translate("Access Concentrator Name"))
+o.optional = true
+
+o = s:option(DynamicList, "service_name", translate("Service Name"))
+o.optional = true
+
+o = s:option(Value, "maxsessionsperpeer", translate("Maximum sessions per peer"))
+o.optional = true
+o.datatype = "uinteger"
+
+o = s:option(Value, "localip", translate("IP of listening side"))
+o.datetype = "ipaddr"
+
+o = s:option(Value, "firstremoteip", translate("First remote IP"))
+o.datatype = "ipaddr"
+
+o = s:option(Value, "maxsessions", translate("Maximum sessions"))
+o.datatype = "uinteger"
+o.default = 64
+o.optional = true
+
+o = s:option(Value, "optionsfile", translate("Options file"))
+o.default = "/etc/ppp/pppoe-server-options"
+o.optional = true
+
+o = s:option(Flag, "randomsessions", translate("Random session selection"), translate("Instead of starting at beginning and going to end, randomize session number"))
+o.optional = true
+
+o = s:option(Value, "unit", translate("Unit"), translate("PPP unit number"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 0
+
+o = s:option(Value, "offset", translate("Offset"), translate("PPP offset"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 0
+
+o = s:option(Value, "timeout", translate("Timeout"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 60
+
+o = s:option(Value, "mss", translate("MSS"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 1468
+
+
+o = s:option(Flag, "sync", translate("Sync"))
+o.optional = true
+o.default = false
+
+return m
diff --git a/applications/luci-app-splash/Makefile b/applications/luci-app-splash/Makefile
index 345f8910ff..5740aa5f7c 100644
--- a/applications/luci-app-splash/Makefile
+++ b/applications/luci-app-splash/Makefile
@@ -9,6 +9,12 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=Freifunk DHCP-Splash application
LUCI_DEPENDS:=+luci-lib-nixio +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
+define Package/luci-app-splash/conffiles
+/etc/config/luci_splash
+/usr/lib/luci-splash/splashtext.html
+/usr/lib/luci-splash/splashtextinclude.html
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-statistics/Makefile b/applications/luci-app-statistics/Makefile
index 6c0121e96a..008792a5d0 100644
--- a/applications/luci-app-statistics/Makefile
+++ b/applications/luci-app-statistics/Makefile
@@ -12,6 +12,10 @@ LUCI_DEPENDS:= \
+collectd-mod-cpu +collectd-mod-memory \
+collectd-mod-interface +collectd-mod-load +collectd-mod-network
+define Package/luci-app-statistics/conffiles
+/etc/config/luci_statistics
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index 3f26aeed6f..36c5554d35 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -25,6 +25,7 @@ function index()
conntrack = _("Conntrack"),
cpu = _("Processor"),
+ cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
@@ -49,6 +50,7 @@ function index()
sensors = _("Sensors"),
splash_leases = _("Splash Leases"),
tcpconns = _("TCP Connections"),
+ thermal = _("Thermal"),
unixsock = _("UnixSock"),
uptime = _("Uptime")
}
@@ -56,8 +58,12 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
- general = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" },
- network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" }
+ general = { "cpu", "cpufreq", "df", "disk", "email",
+ "entropy", "exec", "irq", "load", "memory",
+ "nut", "processes", "sensors", "thermal", "uptime" },
+ network = { "conntrack", "dns", "interface", "iptables",
+ "netlink", "olsrd", "openvpn", "ping",
+ "splash_leases", "tcpconns", "iwinfo" }
}
-- create toplevel menu nodes
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
new file mode 100644
index 0000000000..d1116630b4
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("CPU Frequency Plugin Configuration"),
+ translate("This plugin collects statistics about the processor frequency scaling."))
+
+-- collectd_cpufreq config section
+s = m:section( NamedSection, "collectd_cpufreq", "luci_statistics" )
+
+-- collectd_cpufreq.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
new file mode 100644
index 0000000000..bdf41b79bc
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
@@ -0,0 +1,29 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("Thermal Plugin Configuration"),
+ translate("The thermal plugin will monitor temperature of the system. " ..
+ "Data is typically read from /sys/class/thermal/*/temp " ..
+ "( '*' denotes the thermal device to be read, e.g. thermal_zone1 )")
+ )
+
+-- collectd_thermal config section
+s = m:section( NamedSection, "collectd_thermal", "luci_statistics" )
+
+-- collectd_thermal.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+-- collectd_thermal.tz (Device)
+tz = s:option( Value, "Device", translate("Monitor device(s) / thermal zone(s)"),
+ translate("Empty value = monitor all") )
+tz.optional = true
+tz:depends( "enable", 1 )
+
+-- collectd_thermal.ignoreselected (IgnoreSelected)
+ignoreselected = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") )
+ignoreselected.default = 0
+ignoreselected.optional = true
+ignoreselected:depends( "enable", 1 )
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
new file mode 100644
index 0000000000..25a72d2285
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
@@ -0,0 +1,25 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.cpufreq",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Processor frequency",
+ alt_autoscale = true,
+ vlabel = "Frequency (Hz)",
+ number_format = "%3.2lf%s",
+ data = {
+ sources = {
+ cpufreq = { "" }
+ },
+ options = {
+ cpufreq_0 = { color = "ff0000", title = "Core 0", noarea=true, overlay=true },
+ cpufreq_1 = { color = "0000ff", title = "Core 1", noarea=true, overlay=true },
+ cpufreq_2 = { color = "00ff00", title = "Core 2", noarea=true, overlay=true },
+ cpufreq_3 = { color = "00ffff", title = "Core 3", noarea=true, overlay=true }
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
index 8b04ab8b38..dd93196902 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
@@ -32,23 +32,24 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
options = {
current_output = { color = "00e000", title = "Output current", noarea=true, overlay=true },
- current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true },
+ current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true }
}
}
}
local percentage = {
- title = "%H: Battery charge on UPS \"%pi\"",
+ title = "%H: Battery charge/load on UPS \"%pi\"",
vlabel = "Percent",
y_min = "0",
y_max = "100",
number_format = "%5.1lf%%",
data = {
instances = {
- percent = "charge"
+ percent = { "charge", "load" }
},
options = {
- percent_charge = { color = "00ff00", title = "Charge level" }
+ percent_charge = { color = "00ff00", title = "Charge level" },
+ percent_load = { color = "ff0000", title = "Load" }
}
}
}
@@ -78,10 +79,39 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
timeleft = { "battery" }
},
options = {
- timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" }
+ timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/", noarea=true }
}
}
}
- return { voltages, currents, percentage, temperature, timeleft }
+ local power = {
+ title = "%H: Power on UPS \"%pi\"",
+ vlabel = "Power",
+ number_format = "%5.1lf%%",
+ data = {
+ instances = {
+ power = { "ups" }
+ },
+ options = {
+ power_ups = { color = "00ff00", title = "Power level" }
+ }
+ }
+ }
+
+ local frequencies = {
+ title = "%H: Frequencies on UPS \"%pi\"",
+ vlabel = "Hz",
+ number_format = "%5.1lfHz",
+ data = {
+ instances = {
+ frequency = { "input", "output" }
+ },
+
+ options = {
+ frequency_output = { color = "00e000", title = "Output frequency", noarea=true, overlay=true },
+ frequency_input = { color = "ffb000", title = "Input frequency", noarea=true, overlay=true }
+ }
+ }
+ }
+ return { voltages, currents, percentage, temperature, timeleft, power, frequencies }
end
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
new file mode 100644
index 0000000000..532246465e
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
@@ -0,0 +1,20 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.thermal",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Temperature of %pi",
+ alt_autoscale = true,
+ vlabel = "Celsius",
+ number_format = "%3.1lf%s",
+ data = {
+ types = { "temperature" },
+ options = {
+ temperature = { color = "ff0000", title = "Temperature", noarea=true },
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/po/ca/statistics.po b/applications/luci-app-statistics/po/ca/statistics.po
index 2c648ceca9..fd3b6d19b5 100644
--- a/applications/luci-app-statistics/po/ca/statistics.po
+++ b/applications/luci-app-statistics/po/ca/statistics.po
@@ -39,6 +39,12 @@ msgstr "Directori base"
msgid "Basic monitoring"
msgstr "Monitoreig bàsic"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configuració del connector de CPU"
@@ -129,6 +135,9 @@ msgstr "Configuració del connector d'adreça electrònica"
msgid "Email"
msgstr "Adreça electrònica"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Activa aquest connector"
@@ -268,6 +277,9 @@ msgstr "Monitoritza tots els ports locals que reben connexions"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitoritza dispositius"
@@ -658,6 +670,12 @@ msgstr ""
"els ports seleccionats."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -667,6 +685,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/cs/statistics.po b/applications/luci-app-statistics/po/cs/statistics.po
index 2a725461e7..9678726ab4 100644
--- a/applications/luci-app-statistics/po/cs/statistics.po
+++ b/applications/luci-app-statistics/po/cs/statistics.po
@@ -35,6 +35,12 @@ msgstr "Základní adresář"
msgid "Basic monitoring"
msgstr "Základní sledování"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Nastavení CPU pluginu"
@@ -125,6 +131,9 @@ msgstr "Nastavení E-Mail pluginu"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Povolit tento plugin"
@@ -263,6 +272,9 @@ msgstr "Monitorovat všechny naslouchající porty"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Sledovat zařízení"
@@ -644,6 +656,12 @@ msgstr ""
"vybraných portech."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -653,6 +671,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/de/statistics.po b/applications/luci-app-statistics/po/de/statistics.po
index 51697bfd5e..2923f05c03 100644
--- a/applications/luci-app-statistics/po/de/statistics.po
+++ b/applications/luci-app-statistics/po/de/statistics.po
@@ -37,6 +37,12 @@ msgstr "Basisverzeichnis"
msgid "Basic monitoring"
msgstr "Schnittstellen einfach überwachen"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "CPU Plugin Konfiguration"
@@ -127,6 +133,9 @@ msgstr "E-Mail Plugin Konfiguration"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Plugin aktivieren"
@@ -270,6 +279,9 @@ msgstr "Alle durch lokale Dienste genutzten Ports überwachen"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Geräte überwachen"
@@ -663,6 +675,12 @@ msgstr ""
"ausgewählten Ports."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -672,6 +690,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/el/statistics.po b/applications/luci-app-statistics/po/el/statistics.po
index 3388ea510e..379d443eca 100644
--- a/applications/luci-app-statistics/po/el/statistics.po
+++ b/applications/luci-app-statistics/po/el/statistics.po
@@ -38,6 +38,12 @@ msgstr "Κατάλογος βάσης"
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -129,6 +135,9 @@ msgstr ""
msgid "Email"
msgstr "Ηλ. Ταχυδρομείο"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -261,6 +270,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -606,6 +618,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -613,6 +631,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/en/statistics.po b/applications/luci-app-statistics/po/en/statistics.po
index fe1f8beb96..aa956de124 100644
--- a/applications/luci-app-statistics/po/en/statistics.po
+++ b/applications/luci-app-statistics/po/en/statistics.po
@@ -37,6 +37,12 @@ msgstr "Base Directory"
msgid "Basic monitoring"
msgstr "Basic monitoring"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "CPU Plugin Configuration"
@@ -127,6 +133,9 @@ msgstr "E-Mail Plugin Configuration"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Enable this plugin"
@@ -266,6 +275,9 @@ msgstr "Monitor all local listen ports"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitor devices"
@@ -646,6 +658,12 @@ msgstr ""
"selected ports."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -655,6 +673,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/es/statistics.po b/applications/luci-app-statistics/po/es/statistics.po
index 0d47b659c4..ef186b120d 100644
--- a/applications/luci-app-statistics/po/es/statistics.po
+++ b/applications/luci-app-statistics/po/es/statistics.po
@@ -37,6 +37,12 @@ msgstr "Directorio Base"
msgid "Basic monitoring"
msgstr "Monitorización básica"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configuración del plugin de CPU"
@@ -127,6 +133,9 @@ msgstr "Configuración del plugin email"
msgid "Email"
msgstr "Correo electrónico"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Activar este plugin"
@@ -265,6 +274,9 @@ msgstr "Monitorizar todos los puertos de escucha locales"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Dispositivos a monitonizar"
@@ -659,6 +671,12 @@ msgstr ""
"puertos seleccionados."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -668,6 +686,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/fr/statistics.po b/applications/luci-app-statistics/po/fr/statistics.po
index b7ace0cac1..cacc64ab4f 100644
--- a/applications/luci-app-statistics/po/fr/statistics.po
+++ b/applications/luci-app-statistics/po/fr/statistics.po
@@ -37,6 +37,12 @@ msgstr "Répertoire de base"
msgid "Basic monitoring"
msgstr "Surveillance de base"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configuration du greffon sur le CPU"
@@ -127,6 +133,9 @@ msgstr "Configuration du greffon des courriels"
msgid "Email"
msgstr "Courriel"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Activer ce greffon"
@@ -267,6 +276,9 @@ msgstr "Surveiller tous les ports en écoute locaux"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Périphériques à surveiller"
@@ -654,6 +666,12 @@ msgstr ""
"de connexions TCP sur les ports spécifiés."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -661,6 +679,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/he/statistics.po b/applications/luci-app-statistics/po/he/statistics.po
index a5da218a25..0f876e6e40 100644
--- a/applications/luci-app-statistics/po/he/statistics.po
+++ b/applications/luci-app-statistics/po/he/statistics.po
@@ -37,6 +37,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -124,6 +130,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -256,6 +265,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -601,6 +613,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -608,6 +626,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/hu/statistics.po b/applications/luci-app-statistics/po/hu/statistics.po
index bf4dd53a0e..78dfd60388 100644
--- a/applications/luci-app-statistics/po/hu/statistics.po
+++ b/applications/luci-app-statistics/po/hu/statistics.po
@@ -35,6 +35,12 @@ msgstr "Alapkönyvtár"
msgid "Basic monitoring"
msgstr "Általános figyelés"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "CPU bővítmény beállítása"
@@ -125,6 +131,9 @@ msgstr "E-Mail bővítmény beállítása"
msgid "Email"
msgstr "E-mail"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Bővítmény engedélyezése"
@@ -268,6 +277,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Eszközök figyelése"
@@ -646,6 +658,12 @@ msgstr ""
"információkat."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -655,6 +673,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/it/statistics.po b/applications/luci-app-statistics/po/it/statistics.po
index 1313336120..eb1a3cb6f0 100644
--- a/applications/luci-app-statistics/po/it/statistics.po
+++ b/applications/luci-app-statistics/po/it/statistics.po
@@ -37,6 +37,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -127,6 +133,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Abilita questo plugin"
@@ -266,6 +275,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -611,6 +623,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -618,6 +636,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/ja/statistics.po b/applications/luci-app-statistics/po/ja/statistics.po
index 7469fe68ab..bc995a6fb4 100644
--- a/applications/luci-app-statistics/po/ja/statistics.po
+++ b/applications/luci-app-statistics/po/ja/statistics.po
@@ -37,6 +37,12 @@ msgstr "ベース・ディレクトリ"
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -124,6 +130,9 @@ msgstr "E-メールプラグイン設定"
msgid "Email"
msgstr "Eメール"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "プラグイン設定を有効にする"
@@ -256,6 +265,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -604,6 +616,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -611,6 +629,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/ms/statistics.po b/applications/luci-app-statistics/po/ms/statistics.po
index 3f32b633bc..a18826f429 100644
--- a/applications/luci-app-statistics/po/ms/statistics.po
+++ b/applications/luci-app-statistics/po/ms/statistics.po
@@ -34,6 +34,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -121,6 +127,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -253,6 +262,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -598,6 +610,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -605,6 +623,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/no/statistics.po b/applications/luci-app-statistics/po/no/statistics.po
index 945fa79b12..2072cbfff8 100644
--- a/applications/luci-app-statistics/po/no/statistics.po
+++ b/applications/luci-app-statistics/po/no/statistics.po
@@ -28,6 +28,12 @@ msgstr "Hoved Katalog"
msgid "Basic monitoring"
msgstr "Enkel overvåking"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "CPU plugin konfigurasjon"
@@ -118,6 +124,9 @@ msgstr "E-Post plugin konfigurasjon"
msgid "Email"
msgstr "Epost"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Aktiver denne plugin"
@@ -255,6 +264,9 @@ msgstr "Overvåk alle lokale lyttende porter"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Overvåk enheter"
@@ -634,6 +646,12 @@ msgstr ""
"porter."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -643,6 +661,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/pl/statistics.po b/applications/luci-app-statistics/po/pl/statistics.po
index f8176b657a..ea8fc81f59 100644
--- a/applications/luci-app-statistics/po/pl/statistics.po
+++ b/applications/luci-app-statistics/po/pl/statistics.po
@@ -38,6 +38,12 @@ msgstr "Główny katalog"
msgid "Basic monitoring"
msgstr "Podstawowy monitoring"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Konfiguracja CPU"
@@ -128,6 +134,9 @@ msgstr "Konfiguracja wtyczki E-mail"
msgid "Email"
msgstr "E-mail"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Włącz tę wtyczkę"
@@ -269,6 +278,9 @@ msgstr "Monitoruj wszystkie lokalne otwarte porty"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitoruj urządzenia"
@@ -654,6 +666,12 @@ msgstr ""
"wybranych portów."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -663,6 +681,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/pt-br/statistics.po b/applications/luci-app-statistics/po/pt-br/statistics.po
index 92213a8cef..3b3590f264 100644
--- a/applications/luci-app-statistics/po/pt-br/statistics.po
+++ b/applications/luci-app-statistics/po/pt-br/statistics.po
@@ -37,6 +37,12 @@ msgstr "Diretório Base"
msgid "Basic monitoring"
msgstr "Monitoramento básico"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configuração do plugin CPU"
@@ -127,6 +133,9 @@ msgstr "Configuração do plugin E-Mail"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Habilitar este plugin"
@@ -269,6 +278,9 @@ msgstr "Monitorar todas as portas locais"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitorar dispositivos"
@@ -659,6 +671,12 @@ msgstr ""
"portas selecionadas."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -668,6 +686,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/pt/statistics.po b/applications/luci-app-statistics/po/pt/statistics.po
index e215df87d2..f30bf90fd4 100644
--- a/applications/luci-app-statistics/po/pt/statistics.po
+++ b/applications/luci-app-statistics/po/pt/statistics.po
@@ -37,6 +37,12 @@ msgstr "Diretório Base"
msgid "Basic monitoring"
msgstr "Monitoramento básico"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configuração do plugin CPU"
@@ -127,6 +133,9 @@ msgstr "Configuração do plugin E-Mail"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Habilitar este plugin"
@@ -268,6 +277,9 @@ msgstr "Monitorar todas as portas locais"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitorar dispositivos"
@@ -652,6 +664,12 @@ msgstr ""
"portas selecionadas."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -661,6 +679,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/ro/statistics.po b/applications/luci-app-statistics/po/ro/statistics.po
index a8042b435c..0c52e32811 100644
--- a/applications/luci-app-statistics/po/ro/statistics.po
+++ b/applications/luci-app-statistics/po/ro/statistics.po
@@ -38,6 +38,12 @@ msgstr "Directorul de baza"
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Configurarea pluginului CPU"
@@ -128,6 +134,9 @@ msgstr ""
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -260,6 +269,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -607,6 +619,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -614,6 +632,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/ru/statistics.po b/applications/luci-app-statistics/po/ru/statistics.po
index 41f8110823..d1dddbb6ba 100644
--- a/applications/luci-app-statistics/po/ru/statistics.po
+++ b/applications/luci-app-statistics/po/ru/statistics.po
@@ -39,6 +39,12 @@ msgstr "Базовая директория"
msgid "Basic monitoring"
msgstr "Базовая статистика"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Конфигурация модуля CPU"
@@ -128,6 +134,9 @@ msgstr "Конфигурация модуля E-Mail"
msgid "Email"
msgstr "E-mail"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Включить этот модуль"
@@ -270,6 +279,9 @@ msgstr "Собирать статистику со всех портов, ожи
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Собирать статистику с устройств"
@@ -650,6 +662,12 @@ msgstr ""
"портах."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -659,6 +677,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/sk/statistics.po b/applications/luci-app-statistics/po/sk/statistics.po
index c8100e3e77..6b0caa64ca 100644
--- a/applications/luci-app-statistics/po/sk/statistics.po
+++ b/applications/luci-app-statistics/po/sk/statistics.po
@@ -32,6 +32,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -119,6 +125,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -251,6 +260,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -596,6 +608,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -603,6 +621,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/sv/statistics.po b/applications/luci-app-statistics/po/sv/statistics.po
index a7443b3077..035d9403f2 100644
--- a/applications/luci-app-statistics/po/sv/statistics.po
+++ b/applications/luci-app-statistics/po/sv/statistics.po
@@ -33,6 +33,12 @@ msgstr "Basmapp"
msgid "Basic monitoring"
msgstr "Standardövervakning"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -123,6 +129,9 @@ msgstr "Konfiguration av insticksprogrammet E-post"
msgid "Email"
msgstr "E-post"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Aktivera det här insticksprogrammet"
@@ -256,6 +265,9 @@ msgstr "Övervaka alla lokala lyssningsportar"
msgid "Monitor all sensors"
msgstr "Övervaka alla sensorer"
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Övervaka enheter"
@@ -601,6 +613,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -608,6 +626,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/templates/statistics.pot b/applications/luci-app-statistics/po/templates/statistics.pot
index c07f4dc4ad..8f6fecc48b 100644
--- a/applications/luci-app-statistics/po/templates/statistics.pot
+++ b/applications/luci-app-statistics/po/templates/statistics.pot
@@ -25,6 +25,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -112,6 +118,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -244,6 +253,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -589,6 +601,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -596,6 +614,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/tr/statistics.po b/applications/luci-app-statistics/po/tr/statistics.po
index 235ad1cc0a..0f0bc459e7 100644
--- a/applications/luci-app-statistics/po/tr/statistics.po
+++ b/applications/luci-app-statistics/po/tr/statistics.po
@@ -33,6 +33,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -120,6 +126,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -252,6 +261,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -597,6 +609,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -604,6 +622,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/uk/statistics.po b/applications/luci-app-statistics/po/uk/statistics.po
index 0be5b367b5..ca82efe8dd 100644
--- a/applications/luci-app-statistics/po/uk/statistics.po
+++ b/applications/luci-app-statistics/po/uk/statistics.po
@@ -38,6 +38,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -125,6 +131,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -257,6 +266,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -602,6 +614,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -609,6 +627,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/vi/statistics.po b/applications/luci-app-statistics/po/vi/statistics.po
index ef99e551ad..f6d54bcd62 100644
--- a/applications/luci-app-statistics/po/vi/statistics.po
+++ b/applications/luci-app-statistics/po/vi/statistics.po
@@ -38,6 +38,12 @@ msgstr "Thư mục Cơ sở"
msgid "Basic monitoring"
msgstr "Monitoring căn bản"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "Cấu hình Plugin CPU"
@@ -128,6 +134,9 @@ msgstr "Cấu hình e-mail plugin"
msgid "Email"
msgstr "Email"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "Kích hoạt plugin này"
@@ -267,6 +276,9 @@ msgstr "Monitor tất cả local listen port"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "Monitor devices"
@@ -652,6 +664,12 @@ msgstr ""
"chọn."
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -661,6 +679,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/zh-cn/statistics.po b/applications/luci-app-statistics/po/zh-cn/statistics.po
index 7b3bbfc0c6..0c8775f3fc 100644
--- a/applications/luci-app-statistics/po/zh-cn/statistics.po
+++ b/applications/luci-app-statistics/po/zh-cn/statistics.po
@@ -37,6 +37,12 @@ msgstr "基本目录"
msgid "Basic monitoring"
msgstr "基本监控"
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr "CPU插件配置"
@@ -126,6 +132,9 @@ msgstr "E-Mail插件配置"
msgid "Email"
msgstr "电子邮件"
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr "启用该插件"
@@ -262,6 +271,9 @@ msgstr "监测所有本地监听端口"
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr "监测设备"
@@ -619,6 +631,12 @@ msgid ""
msgstr "tcpconns插件,收集选定端口TCP连接信息。"
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr "unixsock插件,创建一个unix套接字可用于读取Collectd实例的收集信息。"
@@ -626,6 +644,15 @@ msgstr "unixsock插件,创建一个unix套接字可用于读取Collectd实例
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/po/zh-tw/statistics.po b/applications/luci-app-statistics/po/zh-tw/statistics.po
index 9a9ca34a1a..404092bedb 100644
--- a/applications/luci-app-statistics/po/zh-tw/statistics.po
+++ b/applications/luci-app-statistics/po/zh-tw/statistics.po
@@ -31,6 +31,12 @@ msgstr ""
msgid "Basic monitoring"
msgstr ""
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
msgid "CPU Plugin Configuration"
msgstr ""
@@ -118,6 +124,9 @@ msgstr ""
msgid "Email"
msgstr ""
+msgid "Empty value = monitor all"
+msgstr ""
+
msgid "Enable this plugin"
msgstr ""
@@ -250,6 +259,9 @@ msgstr ""
msgid "Monitor all sensors"
msgstr ""
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
msgid "Monitor devices"
msgstr ""
@@ -595,6 +607,12 @@ msgid ""
msgstr ""
msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
"The unixsock plugin creates a unix socket which can be used to read "
"collected data from a running collectd instance."
msgstr ""
@@ -602,6 +620,15 @@ msgstr ""
msgid "The uptime plugin collects statistics about the uptime of the system."
msgstr ""
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
msgid ""
"This section defines on which interfaces collectd will wait for incoming "
"connections."
diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics
index 4435d5c61e..774a8382e2 100644
--- a/applications/luci-app-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/config/luci_statistics
@@ -55,6 +55,9 @@ config statistics 'collectd_conntrack'
config statistics 'collectd_cpu'
option enable '1'
+config statistics 'collectd_cpufreq'
+ option enable '0'
+
config statistics 'collectd_df'
option enable '0'
option Devices '/dev/mtdblock/4'
@@ -151,6 +154,11 @@ config statistics 'collectd_tcpconns'
option ListeningPorts '0'
option LocalPorts '22 80'
+config statistics 'collectd_thermal'
+ option enable '0'
+ option IgnoreSelected '0'
+ option Device ''
+
config statistics 'collectd_uptime'
option enable '0'
diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
index 49d8a09935..df9af15261 100755
--- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
@@ -273,6 +273,12 @@ plugins = {
{ }
},
+ cpufreq = {
+ { },
+ { },
+ { }
+ },
+
csv = {
{ "DataDir" },
{ "StoreRates" },
@@ -417,6 +423,12 @@ plugins = {
{ "LocalPorts", "RemotePorts" }
},
+ thermal = {
+ { },
+ { "IgnoreSelected" },
+ { "Device" }
+ },
+
unixsock = {
{ "SocketFile", "SocketGroup", "SocketPerms" },
{ },
diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile
new file mode 100644
index 0000000000..f4b1b0a4e3
--- /dev/null
+++ b/applications/luci-app-travelmate/Makefile
@@ -0,0 +1,13 @@
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for Travelmate
+LUCI_DEPENDS:=+travelmate
+LUCI_PKGARCH:=all
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
new file mode 100644
index 0000000000..27c19c4e52
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
@@ -0,0 +1,11 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.travelmate", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/travelmate") then
+ return
+ end
+
+ entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60)
+end
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
new file mode 100644
index 0000000000..9050ae9686
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
@@ -0,0 +1,53 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("travelmate", translate("Travelmate"),
+ translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[</p>]] ..
+ translate("Brief advice: Create a wwan interface, configure it to use dhcp and " ..
+ "add it to the wan zone in firewall. Create the wifi interfaces to be used ('client' mode, " ..
+ "assigned to wwan network, left as disabled). Travelmate will try " ..
+ "to connect to the known wifi client interfaces in the defined order. ") ..
+ [[<a href="https://github.com/openwrt/packages/tree/master/net/travelmate/files/README.md" target="_blank">]]
+ .. translate("Link to detailed advice")
+ .. [[</a>]] )
+
+-- General options
+
+s = m:section(NamedSection, "global", "travelmate", translate("Global options"))
+
+o = s:option(Flag, "trm_enabled", translate("Enable Travelmate"))
+o.rmempty = false
+o.default = 0
+
+o = s:option(Value, "trm_loop", translate("Loop timeout in seconds for wlan monitoring"),
+ translate("Default 30, range 5-60"))
+o.rmempty = false
+o.default = 30
+o.datatype = "range(5,60)"
+
+o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"),
+ translate("Default 3, range 0-10. Set to 0 to allow unlimited retries"))
+o.rmempty = false
+o.default = 3
+o.datatype = "range(0,10)"
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "travelmate", translate("Extra options"))
+
+a = e:option(Flag, "trm_debug", translate("Debug logging"))
+a.rmempty = true
+a.default = a.disabled
+
+a = e:option(Value, "trm_device", translate("Use only one radio, e.g. 'radio0'"),
+ translate("Default: empty = use all radios."))
+a.rmempty = true
+a.default = ""
+a.datatype = "uciname"
+
+a = e:option(Flag, "trm_iw", translate("Use iw for scanning"),
+ translate("Disable this if you want to use iwinfo instead of iw"))
+a.rmempty = true
+a.default = a.enabled
+
+return m
+
diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot
new file mode 100644
index 0000000000..533b3e2639
--- /dev/null
+++ b/applications/luci-app-travelmate/po/templates/travelmate.pot
@@ -0,0 +1,56 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
+"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
+"mode, assigned to wwan network, left as disabled). Travelmate will try to "
+"connect to the known wifi client interfaces in the defined order."
+msgstr ""
+
+msgid ""
+"Configuration of the Travelmate package to enable travel router "
+"functionality."
+msgstr ""
+
+msgid "Debug logging"
+msgstr ""
+
+msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+msgstr ""
+
+msgid "Default 30, range 5-60"
+msgstr ""
+
+msgid "Default: empty = use all radios."
+msgstr ""
+
+msgid "Disable this if you want to use iwinfo instead of iw"
+msgstr ""
+
+msgid "Enable Travelmate"
+msgstr ""
+
+msgid "Extra options"
+msgstr ""
+
+msgid "Global options"
+msgstr ""
+
+msgid "Link to detailed advice"
+msgstr ""
+
+msgid "Loop timeout in seconds for wlan monitoring"
+msgstr ""
+
+msgid "Max. number of connection retries to an uplink"
+msgstr ""
+
+msgid "Travelmate"
+msgstr ""
+
+msgid "Use iw for scanning"
+msgstr ""
+
+msgid "Use only one radio, e.g. 'radio0'"
+msgstr ""
diff --git a/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
new file mode 100755
index 0000000000..f7676774a1
--- /dev/null
+++ b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@travelmate[-1]
+ add ucitrack travelmate
+ set ucitrack.@travelmate[-1].init=travelmate
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-unbound/Makefile b/applications/luci-app-unbound/Makefile
new file mode 100644
index 0000000000..6d953e13b2
--- /dev/null
+++ b/applications/luci-app-unbound/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Unbound Recursive DNS Resolver Configuration
+LUCI_DEPENDS:=+unbound
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-unbound/luasrc/controller/unbound.lua b/applications/luci-app-unbound/luasrc/controller/unbound.lua
new file mode 100644
index 0000000000..0a5abc5a5e
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/controller/unbound.lua
@@ -0,0 +1,17 @@
+-- Copyright 2008 Steven Barth <steven@midlink.org>
+-- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.unbound", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/unbound") then
+ return
+ end
+
+ local page
+
+ page = entry({"admin", "services", "unbound"}, cbi("unbound"), _("Recursive DNS"))
+ page.dependent = true
+end
+
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
new file mode 100644
index 0000000000..22f020021c
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
@@ -0,0 +1,123 @@
+-- Copyright 2008 Steven Barth <steven@midlink.org>
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("unbound", translate("Recursive DNS"),
+ translate("Unbound is a validating, recursive, and caching DNS resolver."))
+
+s = m:section(TypedSection, "unbound", translate("Unbound Settings"))
+s.addremove = false
+s.anonymous = true
+
+s:tab("service", translate("Unbound Service"))
+s:tab("resource", translate("Unbound Resources"))
+s:tab("dnsmasq", translate("Dnsmasq Link"))
+
+--Enable Unbound
+
+e = s:taboption("service", Flag, "enabled", translate("Enable Unbound:"),
+ translate("Enable the initialization scripts for Unbound"))
+e.rmempty = false
+
+function e.cfgvalue(self, section)
+ return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+ if value == "1" then
+ luci.sys.init.enable("unbound")
+ luci.sys.call("/etc/init.d/unbound start >/dev/null")
+ else
+ luci.sys.call("/etc/init.d/unbound stop >/dev/null")
+ luci.sys.init.disable("unbound")
+ end
+
+ return Flag.write(self, section, value)
+end
+
+--Service Tab
+
+mcf = s:taboption("service", Flag, "manual_conf", translate("Manual Conf:"),
+ translate("Skip UCI and use /etc/unbound/unbound.conf"))
+mcf.rmempty = false
+
+lsv = s:taboption("service", Flag, "localservice", translate("Local Service:"),
+ translate("Accept queries only from local subnets"))
+lsv.rmempty = false
+
+qry = s:taboption("service", Flag, "query_minimize", translate("Query Minimize:"),
+ translate("Break down query components for small added privacy"))
+qry.rmempty = false
+
+rlh = s:taboption("service", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
+ translate("Prevent upstream response of 127.0.0.0/8"))
+rlh.rmempty = false
+
+rpv = s:taboption("service", Flag, "rebind_protection", translate("Block Private Rebind:"),
+ translate("Prevent upstream response of RFC1918 ranges"))
+rpv.rmempty = false
+
+vld = s:taboption("service", Flag, "validator", translate("Enable DNSSEC:"),
+ translate("Enable the DNSSEC validator module"))
+vld.rmempty = false
+
+nvd = s:taboption("service", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
+ translate("Break the loop where DNSSEC needs NTP and NTP needs DNS"))
+nvd.rmempty = false
+
+eds = s:taboption("service", Value, "edns_size", translate("EDNS Size:"),
+ translate("Limit extended DNS packet size"))
+eds.datatype = "and(uinteger,min(512),max(4096))"
+eds.rmempty = false
+
+prt = s:taboption("service", Value, "listen_port", translate("Listening Port:"),
+ translate("Choose Unbounds listening port"))
+prt.datatype = "port"
+prt.rmempty = false
+
+tlm = s:taboption("service", Value, "ttl_min", translate("TTL Minimum:"),
+ translate("Prevent excessively short cache periods"))
+tlm.datatype = "and(uinteger,min(0),max(600))"
+tlm.rmempty = false
+
+--Resource Tuning Tab
+
+rsn = s:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
+ translate("Recursion activity affects memory growth and CPU load"))
+rsn:value("aggressive", translate("Aggressive"))
+rsn:value("default", translate("Default"))
+rsn:value("passive", translate("Passive"))
+rsn.rmempty = false
+
+rsc = s:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
+ translate("Use menu System/Processes to observe any memory growth"))
+rsc:value("large", translate("Large"))
+rsc:value("medium", translate("Medium"))
+rsc:value("small", translate("Small"))
+rsc:value("tiny", translate("Tiny"))
+rsc.rmempty = false
+
+age = s:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
+ translate("Limit days between RFC5011 to reduce flash writes"))
+age.datatype = "and(uinteger,min(1),max(99))"
+age:value("14", "14")
+age:value("28", "28 ("..translate("default")..")")
+age:value("45", "45")
+age:value("90", "90")
+age:value("99", "99 ("..translate("never")..")")
+
+--Dnsmasq Link Tab
+
+dld = s:taboption("dnsmasq", Flag, "dnsmasq_link_dns", translate("Link dnsmasq:"),
+ translate("Forward queries to dnsmasq for local clients"))
+dld.rmempty = false
+
+dgn = s:taboption("dnsmasq", Flag, "dnsmsaq_gate_name", translate("Local Gateway Name:"),
+ translate("Also query dnsmasq for this hosts outbound gateway"))
+dgn.rmempty = false
+
+--TODO: Read only repective dnsmasq options and inform user of link requirements.
+--TODO: dnsmasq needs to not reference resolve-file and get off port 53.
+
+return m
+
diff --git a/applications/luci-app-wifischedule/Makefile b/applications/luci-app-wifischedule/Makefile
new file mode 100644
index 0000000000..1708562a4e
--- /dev/null
+++ b/applications/luci-app-wifischedule/Makefile
@@ -0,0 +1,22 @@
+# Copyright (c) 2016, prpl Foundation
+#
+# Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+# fee is hereby granted, provided that the above copyright notice and this permission notice appear
+# in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Author: Nils Koenig <openwrt@newk.it>
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Turns WiFi on and off according to a schedule
+LUCI_DEPENDS:=+wifischedule
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wifischedule/README.md b/applications/luci-app-wifischedule/README.md
new file mode 100644
index 0000000000..591abb1049
--- /dev/null
+++ b/applications/luci-app-wifischedule/README.md
@@ -0,0 +1,86 @@
+# wifischedule
+Turns WiFi on and off according to a schedule on an openwrt router
+
+## Components
+* wifischedule: Shell script that creates cron jobs based on configuration provided in UCI and does all the other logic of enabling and disabling wifi with the use of `/sbin/wifi` and `/usr/bin/iwinfo`. Can be used standalone.
+* luci-app-wifischedule: LUCI frontend for creating the UCI configuration and triggering the actions. Depends on wifischedule.
+
+
+## Use cases
+You can create user-defined events when to enable or disable WiFi.
+There are various use cases why you would like to do so:
+
+1. Reduce power consumption and therefore reduce CO2 emissions.
+2. Reduce emitted electromagnatic radiation.
+3. Force busincess hours when WiFi is available.
+
+Regarding 1: Please note, that you need to unload the wireless driver modules in order to get the most effect of saving power.
+In my test scenario only disabling WiFi saves about ~0.4 Watt, unloading the modules removes another ~0.4 Watt.
+
+Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the ammount of radiation emitted.
+
+Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working?
+Or think of an accesspoint in your kids room when you want the youngsters to sleep after 10 pm instead of facebooking...
+
+## Configuration
+You can create an arbitrary number of schedule events. Please note that there is on sanity check done wheather the start / stop times overlap or make sense.
+If start and stop time are equal, this leads to disabling the WiFi at the given time.
+
+Logging if enabled is done to the file `/var/log/wifi_schedule.log` and can be reviewed through the "View Logfile" tab.
+The cron jobs created can be reviewed through the "View Cron Jobs" tab.
+
+Please note that the "Unload Modules" function is currently considered as experimental. You can manually add / remove modules in the text field.
+The button "Determine Modules Automatically" tries to make a best guess determining regarding the driver module and its dependencies.
+When un-/loading the modules, there is a certain number of retries (`module_load`) performed.
+
+The option "Force disabling wifi even if stations associated" does what it says - when activated it simply shuts down WiFi.
+When unchecked, its checked every `recheck_interval` minutes if there are still stations associated. Once the stations disconnect, WiFi is disabled.
+
+Please note, that the parameters `module_load` and `recheck_interval` are only accessible through uci.
+
+## UCI Configuration `wifi_schedule`
+UCI configuration file: `/etc/config/wifi_schedule`:
+
+```
+config global
+ option logging '0'
+ option enabled '0'
+ option recheck_interval '10'
+ option modules_retries '10'
+
+config entry 'Businesshours'
+ option enabled '0'
+ option daysofweek 'Monday Tuesday Wednesday Thursday Friday'
+ option starttime '06:00'
+ option stoptime '22:00'
+ option forcewifidown '0'
+
+config entry 'Weekend'
+ option enabled '0'
+ option daysofweek 'Saturday Sunday'
+ option starttime '00:00'
+ option stoptime '00:00'
+ option forcewifidown '1'
+```
+
+## Script: `wifi_schedule.sh`
+This is the script that does the work. Make your changes to the UCI config file: `/etc/config/wifi_schedule`
+
+Then call the script as follows in order to get the necessary cron jobs created:
+
+`wifi_schedule.sh cron`
+
+All commands:
+
+```
+wifi_schedule.sh cron|start|stop|forcestop|recheck|getmodules|savemodules|help
+
+ cron: Create cronjob entries.
+ start: Start wifi.
+ stop: Stop wifi gracefully, i.e. check if there are stations associated and if so keep retrying.
+ forcestop: Stop wifi immediately.
+ recheck: Recheck if wifi can be disabled now.
+ getmodules: Returns a list of modules used by the wireless driver(s)
+ savemodules: Saves a list of automatic determined modules to UCI
+ help: This description.
+```
diff --git a/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua
new file mode 100644
index 0000000000..a33c7aab9a
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua
@@ -0,0 +1,32 @@
+-- Copyright (c) 2016, prpl Foundation
+--
+-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+-- fee is hereby granted, provided that the above copyright notice and this permission notice appear
+-- in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--
+-- Author: Nils Koenig <openwrt@newk.it>
+
+module("luci.controller.wifischedule.wifi_schedule", package.seeall)
+
+function index()
+ entry({"admin", "wifi_schedule"}, firstchild(), "Wifi Schedule", 60).dependent=false
+ entry({"admin", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), "Schedule", 1)
+ entry({"admin", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), "View Logfile", 2)
+ entry({"admin", "wifi_schedule", "cronjob"}, call("view_crontab"), "View Cron Jobs", 3)
+end
+
+function wifi_schedule_log()
+ local logfile = luci.sys.exec("cat /tmp/log/wifi_schedule.log")
+ luci.template.render("wifischedule/file_viewer", {title="Wifi Schedule Logfile", content=logfile})
+end
+
+function view_crontab()
+ local crontab = luci.sys.exec("cat /etc/crontabs/root")
+ luci.template.render("wifischedule/file_viewer", {title="Cron Jobs", content=crontab})
+end
diff --git a/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
new file mode 100644
index 0000000000..2cca476b4f
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
@@ -0,0 +1,259 @@
+-- Copyright (c) 2016, prpl Foundation
+--
+-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+-- fee is hereby granted, provided that the above copyright notice and this permission notice appear
+-- in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--
+-- Author: Nils Koenig <openwrt@newk.it>
+
+function file_exists(name)
+ local f=io.open(name,"r")
+ if f~=nil then io.close(f) return true else return false end
+end
+
+
+function time_validator(self, value, desc)
+ if value ~= nil then
+
+ h_str, m_str = string.match(value, "^(%d%d?):(%d%d?)$")
+ h = tonumber(h_str)
+ m = tonumber(m_str)
+ if ( h ~= nil and
+ h >= 0 and
+ h <= 23 and
+ m ~= nil and
+ m >= 0 and
+ m <= 59) then
+ return value
+ end
+ end
+ return nil, translate("The value '" .. desc .. "' is invalid")
+end
+
+-- -------------------------------------------------------------------------------------------------
+
+-- BEGIN Map
+m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi."))
+function m.on_commit(self)
+ luci.sys.exec("/usr/bin/wifi_schedule.sh cron")
+end
+-- END Map
+
+-- BEGIN Global Section
+global_section = m:section(TypedSection, "global", "Global Settings")
+global_section.optional = false
+global_section.rmempty = false
+global_section.anonymous = true
+-- END Section
+
+-- BEGIN Global Enable Checkbox
+global_enable = global_section:option(Flag, "enabled", translate("Enable Wifi Schedule"))
+global_enable.optional=false;
+global_enable.rmempty = false;
+
+function global_enable.validate(self, value, global_section)
+ if value == "1" then
+ if ( file_exists("/sbin/wifi") and
+ file_exists("/usr/bin/wifi_schedule.sh") )then
+ return value
+ else
+ return nil, translate("Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi")
+ end
+ else
+ return "0"
+ end
+end
+-- END Global Enable Checkbox
+
+
+-- BEGIN Global Logging Checkbox
+global_logging = global_section:option(Flag, "logging", translate("Enable logging"))
+global_logging.optional=false;
+global_logging.rmempty = false;
+global_logging.default = 0
+-- END Global Enable Checkbox
+
+-- BEGIN Global Activate WiFi Button
+enable_wifi = global_section:option(Button, "enable_wifi", translate("Activate wifi"))
+function enable_wifi.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh start manual")
+end
+-- END Global Activate Wifi Button
+
+-- BEGIN Global Disable WiFi Gracefully Button
+disable_wifi_gracefully = global_section:option(Button, "disable_wifi_gracefully", translate("Disable wifi gracefully"))
+function disable_wifi_gracefully.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh stop manual")
+end
+-- END Global Disable Wifi Gracefully Button
+
+-- BEGIN Disable WiFi Forced Button
+disable_wifi_forced = global_section:option(Button, "disable_wifi_forced", translate("Disabled wifi forced"))
+function disable_wifi_forced.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
+end
+-- END Global Disable WiFi Forced Button
+
+-- BEGIN Global Unload Modules Checkbox
+global_unload_modules = global_section:option(Flag, "unload_modules", translate("Unload Modules (experimental; saves more power)"))
+global_unload_modules.optional = false;
+global_unload_modules.rmempty = false;
+global_unload_modules.default = 0
+-- END Global Unload Modules Checkbox
+
+
+-- BEGIN Modules
+modules = global_section:option(TextValue, "modules", "")
+modules:depends("unload_modules", global_unload_modules.enabled);
+modules.wrap = "off"
+modules.rows = 10
+
+function modules.cfgvalue(self, section)
+ mod=uci.get("wifi_schedule", section, "modules")
+ if mod == nil then
+ mod=""
+ end
+ return mod:gsub(" ", "\r\n")
+end
+
+function modules.write(self, section, value)
+ if value then
+ value_list = value:gsub("\r\n", " ")
+ ListValue.write(self, section, value_list)
+ uci.set("wifi_schedule", section, "modules", value_list)
+ end
+end
+-- END Modules
+
+-- BEGIN Determine Modules
+determine_modules = global_section:option(Button, "determine_modules", translate("Determine Modules Automatically"))
+determine_modules:depends("unload_modules", global_unload_modules.enabled);
+function determine_modules.write(self, section)
+ output = luci.sys.exec("/usr/bin/wifi_schedule.sh getmodules")
+ modules:write(section, output)
+end
+-- END Determine Modules
+
+
+-- BEGIN Section
+d = m:section(TypedSection, "entry", "Schedule events")
+d.addremove = true
+--d.anonymous = true
+-- END Section
+
+-- BEGIN Enable Checkbox
+c = d:option(Flag, "enabled", translate("Enable"))
+c.optional=false; c.rmempty = false;
+-- END Enable Checkbox
+
+
+-- BEGIN Day(s) of Week
+dow = d:option(MultiValue, "daysofweek", translate("Day(s) of Week"))
+dow.optional = false
+dow.rmempty = false
+dow:value("Monday")
+dow:value("Tuesday")
+dow:value("Wednesday")
+dow:value("Thursday")
+dow:value("Friday")
+dow:value("Saturday")
+dow:value("Sunday")
+-- END Day(s) of Weel
+
+-- BEGIN Start Wifi Dropdown
+starttime = d:option(Value, "starttime", translate("Start WiFi"))
+starttime.optional=false;
+starttime.rmempty = false;
+starttime:value("00:00")
+starttime:value("01:00")
+starttime:value("02:00")
+starttime:value("03:00")
+starttime:value("04:00")
+starttime:value("05:00")
+starttime:value("06:00")
+starttime:value("07:00")
+starttime:value("08:00")
+starttime:value("09:00")
+starttime:value("10:00")
+starttime:value("11:00")
+starttime:value("12:00")
+starttime:value("13:00")
+starttime:value("14:00")
+starttime:value("15:00")
+starttime:value("16:00")
+starttime:value("17:00")
+starttime:value("18:00")
+starttime:value("19:00")
+starttime:value("20:00")
+starttime:value("21:00")
+starttime:value("22:00")
+starttime:value("23:00")
+
+function starttime.validate(self, value, d)
+ return time_validator(self, value, translate("Start Time"))
+end
+
+-- END Start Wifi Dropdown
+
+
+-- BEGIN Stop Wifi Dropdown
+stoptime = d:option(Value, "stoptime", translate("Stop WiFi"))
+stoptime.optional=false;
+stoptime.rmempty = false;
+stoptime:value("00:00")
+stoptime:value("01:00")
+stoptime:value("02:00")
+stoptime:value("03:00")
+stoptime:value("04:00")
+stoptime:value("05:00")
+stoptime:value("06:00")
+stoptime:value("07:00")
+stoptime:value("08:00")
+stoptime:value("09:00")
+stoptime:value("10:00")
+stoptime:value("11:00")
+stoptime:value("12:00")
+stoptime:value("13:00")
+stoptime:value("14:00")
+stoptime:value("15:00")
+stoptime:value("16:00")
+stoptime:value("17:00")
+stoptime:value("18:00")
+stoptime:value("19:00")
+stoptime:value("20:00")
+stoptime:value("21:00")
+stoptime:value("22:00")
+stoptime:value("23:00")
+
+function stoptime.validate(self, value, d)
+ return time_validator(self, value, translate("Stop Time"))
+end
+-- END Stop Wifi Dropdown
+
+
+-- BEGIN Force Wifi Stop Checkbox
+force_wifi = d:option(Flag, "forcewifidown", translate("Force disabling wifi even if stations associated"))
+force_wifi.default = false
+force_wifi.rmempty = false;
+
+function force_wifi.validate(self, value, d)
+ if value == "0" then
+ if file_exists("/usr/bin/iwinfo") then
+ return value
+ else
+ return nil, translate("Could not find required programm /usr/bin/iwinfo")
+ end
+ else
+ return "1"
+ end
+end
+-- END Force Wifi Checkbox
+
+
+return m
diff --git a/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm
new file mode 100644
index 0000000000..f67a2bea99
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm
@@ -0,0 +1,22 @@
+<%#
+Copyright (c) 2016, prpl Foundation
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+fee is hereby granted, provided that the above copyright notice and this permission notice appear
+in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Author: Nils Koenig <openwrt@newk.it>
+-%>
+
+<%+header%>
+<h2 name="title"><%=title%></h2>
+<div id="content_fileviewer">
+<textarea style="width: 100%" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+1%>" id="content_id"><%=content:pcdata()%></textarea>
+</div>
+<%+footer%>