From: Hannu Nyman Date: Tue, 27 Oct 2015 15:30:24 +0000 (+0200) Subject: Merge pull request #509 from neheb/master X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=ff9e34e47c4dc50cf22d50411460aaafa20f295d;hp=a2ebf8714508fc9f02ffa477f430377e29f4a2e3 Merge pull request #509 from neheb/master resources/icons: Use gifsicle to save a few bytes. --- diff --git a/README.md b/README.md index 371cee204..abccff6b7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ To install all its package definitions, run: ./scripts/feeds install -a -p luci ``` +## API Reference + +You can browse the generated API documentation [directly on Github](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html). + ## License See [LICENSE](LICENSE) file. diff --git a/applications/luci-app-ddns/luasrc/controller/ddns.lua b/applications/luci-app-ddns/luasrc/controller/ddns.lua index 946dfefbc..4fbd3c3fc 100644 --- a/applications/luci-app-ddns/luasrc/controller/ddns.lua +++ b/applications/luci-app-ddns/luasrc/controller/ddns.lua @@ -38,7 +38,7 @@ function index() {hideapplybtn=true, hidesavebtn=true, hideresetbtn=true}), nil ).leaf = true entry( {"admin", "services", "ddns", "global"}, cbi("ddns/global"), nil ).leaf = true entry( {"admin", "services", "ddns", "logview"}, call("logread") ).leaf = true - entry( {"admin", "services", "ddns", "startstop"}, call("startstop") ).leaf = true + entry( {"admin", "services", "ddns", "startstop"}, post("startstop") ).leaf = true entry( {"admin", "services", "ddns", "status"}, call("status") ).leaf = true end 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 27f9a9f26..e655ce521 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua @@ -108,9 +108,8 @@ end -- cbi-map definition -- ####################################################### m = Map("ddns") --- first need to close from cbi map template our closed by template -m.title = [[]] .. - translate("Dynamic DNS") +m.title = [[]] .. + translate("Dynamic DNS") .. [[]] m.description = translate("Dynamic DNS allows that your router can be reached with " .. "a fixed hostname while having a dynamically changing " .. 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 fbd3cb337..25d09b73b 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua @@ -10,9 +10,8 @@ local DDNS = require "luci.tools.ddns" -- ddns multiused functions -- cbi-map definition -- ####################################################### local m = Map("ddns") --- first need to close from cbi map template our closed by template -m.title = [[]] - .. translate("Dynamic DNS") +m.title = [[]] + .. translate("Dynamic DNS") .. [[]] m.description = translate("Dynamic DNS allows that your router can be reached with " .. "a fixed hostname while having a dynamically changing IP address.") 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 ff7aa7a41..2a65fd04f 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua @@ -23,9 +23,8 @@ bold_off = [[]] -- cbi-map definition -- ####################################################### m = Map("ddns") --- first need to close from cbi map template our closed by template -m.title = [[]] .. - translate("Dynamic DNS") +m.title = [[]] .. + translate("Dynamic DNS") .. [[]] m.description = translate("Dynamic DNS allows that your router can be reached with " .. "a fixed hostname while having a dynamically changing " .. 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 9e8df2d08..5b5925b25 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua @@ -26,8 +26,7 @@ bold_off = [[]] -- cbi-map definition -- ####################################################### m = Map("ddns") --- first need to close from cbi map template our closed by template -m.title = [[]] - .. translate("Dynamic DNS") + .. translate("Dynamic DNS") .. [[]] m.description = translate("Dynamic DNS allows that your router can be reached with " .. "a fixed hostname while having a dynamically changing " .. diff --git a/applications/luci-app-ddns/luasrc/view/ddns/overview_status.htm b/applications/luci-app-ddns/luasrc/view/ddns/overview_status.htm index 546481222..b6d4ebb9f 100644 --- a/applications/luci-app-ddns/luasrc/view/ddns/overview_status.htm +++ b/applications/luci-app-ddns/luasrc/view/ddns/overview_status.htm @@ -136,7 +136,7 @@ // do start/stop var btnXHR = new XHR(); - btnXHR.get('<%=url('admin/services/ddns/startstop')%>/' + section + '/' + cbx.checked, null, + btnXHR.post('<%=url('admin/services/ddns/startstop')%>/' + section + '/' + cbx.checked, { token: '<%=token%>' }, function(x, data) { if (x.responseText == "_uncommitted_") { // we need a trick to display Ampersand "&" in stead of "&" or "&" diff --git a/applications/luci-app-ddns/po/ca/ddns.po b/applications/luci-app-ddns/po/ca/ddns.po index 35f13eba5..c57b68938 100644 --- a/applications/luci-app-ddns/po/ca/ddns.po +++ b/applications/luci-app-ddns/po/ca/ddns.po @@ -462,6 +462,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/cs/ddns.po b/applications/luci-app-ddns/po/cs/ddns.po index 455c72a6a..e957d58ab 100644 --- a/applications/luci-app-ddns/po/cs/ddns.po +++ b/applications/luci-app-ddns/po/cs/ddns.po @@ -460,6 +460,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/el/ddns.po b/applications/luci-app-ddns/po/el/ddns.po index edbe19d14..821e17e65 100644 --- a/applications/luci-app-ddns/po/el/ddns.po +++ b/applications/luci-app-ddns/po/el/ddns.po @@ -459,6 +459,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/en/ddns.po b/applications/luci-app-ddns/po/en/ddns.po index b706fa29e..a6ba0bb12 100644 --- a/applications/luci-app-ddns/po/en/ddns.po +++ b/applications/luci-app-ddns/po/en/ddns.po @@ -457,6 +457,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/es/ddns.po b/applications/luci-app-ddns/po/es/ddns.po index 1948155d2..ebee43d74 100644 --- a/applications/luci-app-ddns/po/es/ddns.po +++ b/applications/luci-app-ddns/po/es/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/fr/ddns.po b/applications/luci-app-ddns/po/fr/ddns.po index 94b61b695..84e86a964 100644 --- a/applications/luci-app-ddns/po/fr/ddns.po +++ b/applications/luci-app-ddns/po/fr/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/he/ddns.po b/applications/luci-app-ddns/po/he/ddns.po index a6d20303b..45f5a6db9 100644 --- a/applications/luci-app-ddns/po/he/ddns.po +++ b/applications/luci-app-ddns/po/he/ddns.po @@ -461,6 +461,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/hu/ddns.po b/applications/luci-app-ddns/po/hu/ddns.po index fdd9a17a8..20388d3ea 100644 --- a/applications/luci-app-ddns/po/hu/ddns.po +++ b/applications/luci-app-ddns/po/hu/ddns.po @@ -460,6 +460,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/it/ddns.po b/applications/luci-app-ddns/po/it/ddns.po index 48e680912..77ebfb727 100644 --- a/applications/luci-app-ddns/po/it/ddns.po +++ b/applications/luci-app-ddns/po/it/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/ja/ddns.po b/applications/luci-app-ddns/po/ja/ddns.po index 488bac990..1b608aa22 100644 --- a/applications/luci-app-ddns/po/ja/ddns.po +++ b/applications/luci-app-ddns/po/ja/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/ms/ddns.po b/applications/luci-app-ddns/po/ms/ddns.po index 5b7f0dea6..ea11b9e35 100644 --- a/applications/luci-app-ddns/po/ms/ddns.po +++ b/applications/luci-app-ddns/po/ms/ddns.po @@ -456,6 +456,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/no/ddns.po b/applications/luci-app-ddns/po/no/ddns.po index b805aa4f8..80374ee7c 100644 --- a/applications/luci-app-ddns/po/no/ddns.po +++ b/applications/luci-app-ddns/po/no/ddns.po @@ -449,6 +449,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/pl/ddns.po b/applications/luci-app-ddns/po/pl/ddns.po index e016cc4a4..9907b1e64 100644 --- a/applications/luci-app-ddns/po/pl/ddns.po +++ b/applications/luci-app-ddns/po/pl/ddns.po @@ -459,6 +459,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/pt-br/ddns.po b/applications/luci-app-ddns/po/pt-br/ddns.po index df2fff538..5dd243fe6 100644 --- a/applications/luci-app-ddns/po/pt-br/ddns.po +++ b/applications/luci-app-ddns/po/pt-br/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/pt/ddns.po b/applications/luci-app-ddns/po/pt/ddns.po index 57654928d..a788ad257 100644 --- a/applications/luci-app-ddns/po/pt/ddns.po +++ b/applications/luci-app-ddns/po/pt/ddns.po @@ -460,6 +460,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/ro/ddns.po b/applications/luci-app-ddns/po/ro/ddns.po index 78c39d5e9..f32c6e98c 100644 --- a/applications/luci-app-ddns/po/ro/ddns.po +++ b/applications/luci-app-ddns/po/ro/ddns.po @@ -461,6 +461,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/ru/ddns.po b/applications/luci-app-ddns/po/ru/ddns.po index d4c0eb4a8..e76cda60c 100644 --- a/applications/luci-app-ddns/po/ru/ddns.po +++ b/applications/luci-app-ddns/po/ru/ddns.po @@ -460,6 +460,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/sk/ddns.po b/applications/luci-app-ddns/po/sk/ddns.po index 3cd0f4c2c..45e6632f0 100644 --- a/applications/luci-app-ddns/po/sk/ddns.po +++ b/applications/luci-app-ddns/po/sk/ddns.po @@ -451,6 +451,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/sv/ddns.po b/applications/luci-app-ddns/po/sv/ddns.po index cee36e725..c3b7c56e2 100644 --- a/applications/luci-app-ddns/po/sv/ddns.po +++ b/applications/luci-app-ddns/po/sv/ddns.po @@ -452,6 +452,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/tr/ddns.po b/applications/luci-app-ddns/po/tr/ddns.po index 10492bccc..74be14ab2 100644 --- a/applications/luci-app-ddns/po/tr/ddns.po +++ b/applications/luci-app-ddns/po/tr/ddns.po @@ -458,6 +458,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/uk/ddns.po b/applications/luci-app-ddns/po/uk/ddns.po index 0e2c5804a..58ded215e 100644 --- a/applications/luci-app-ddns/po/uk/ddns.po +++ b/applications/luci-app-ddns/po/uk/ddns.po @@ -461,6 +461,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/vi/ddns.po b/applications/luci-app-ddns/po/vi/ddns.po index 5d5a7ede7..4b0cc91fd 100644 --- a/applications/luci-app-ddns/po/vi/ddns.po +++ b/applications/luci-app-ddns/po/vi/ddns.po @@ -461,6 +461,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-ddns/po/zh-cn/ddns.po b/applications/luci-app-ddns/po/zh-cn/ddns.po index 862c2a052..381e6684e 100644 --- a/applications/luci-app-ddns/po/zh-cn/ddns.po +++ b/applications/luci-app-ddns/po/zh-cn/ddns.po @@ -12,6 +12,9 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.7.5\n" +msgid "&" +msgstr "" + msgid "-- custom --" msgstr "-- 自定义 --" @@ -30,10 +33,13 @@ msgstr "正在应用更改" msgid "Basic Settings" msgstr "基础设置" -msgid "Below a list of configuration tips for your system to run Dynamic DNS updates without limitations" +msgid "" +"Below a list of configuration tips for your system to run Dynamic DNS " +"updates without limitations" msgstr "以下是一个能够让你的系统不受限制地进行动态DNS更新的设置贴士." -msgid "Below is a list of configured DDNS configurations and their current state." +msgid "" +"Below is a list of configured DDNS configurations and their current state." msgstr "一下是当前已经配置好的DDNS设置项列表以及它们的当前状态." msgid "Bind Network" @@ -42,10 +48,14 @@ msgstr "使用的接口" msgid "Binding to a specific network not supported" msgstr "不支持绑定到一个指定的网络" -msgid "BusyBox's nslookup and Wget do not support to specify the IP version to use for communication with DDNS Provider." +msgid "" +"BusyBox's nslookup and Wget do not support to specify the IP version to use " +"for communication with DDNS Provider." msgstr "与DDNS供应商通讯时BusyBox的nslookup和Wget不支持设置特定的IP协议版本." -msgid "BusyBox's nslookup does not support to specify to use TCP instead of default UDP when requesting DNS server" +msgid "" +"BusyBox's nslookup does not support to specify to use TCP instead of default " +"UDP when requesting DNS server" msgstr "BusyBox的nslookup不支持使用TCP协议代替UDP协议请求DNS记录" msgid "Casual users should not change this setting" @@ -63,7 +73,9 @@ msgstr "配置错误" msgid "Configuration" msgstr "设置" -msgid "Configure here the details for all Dynamic DNS services including this LuCI application." +msgid "" +"Configure here the details for all Dynamic DNS services including this LuCI " +"application." msgstr "在这里修改动态DNS服务的详细配置" msgid "Configure here the details for selected Dynamic DNS service." @@ -72,11 +84,20 @@ msgstr "在这里修改选择的DDNS服务的详细配置" msgid "Current setting" msgstr "当前设置" -msgid "Currently DDNS updates are not started at boot or on interface events.
This is the default if you run DDNS scripts by yourself (i.e. via cron with force_interval set to '0')" -msgstr "现在,DDNS更新在开机或者接口动作时不会被触发
如果你手工运行DDNS脚本的话(例如使用cron时把force_interval设置为0),这是默认设置." +msgid "" +"Currently DDNS updates are not started at boot or on interface events.
This is the default if you run DDNS scripts by yourself (i.e. via cron with " +"force_interval set to '0')" +msgstr "" +"现在,DDNS更新在开机或者接口动作时不会被触发
如果你手工运行DDNS脚本的话" +"(例如使用cron时把force_interval设置为0),这是默认设置." -msgid "Currently DDNS updates are not started at boot or on interface events.
You can start/stop each configuration here. It will run until next reboot." -msgstr "现在,DDNS更新在开机或者接口动作时不会被触发
你可以在这里开始/停止每一个设置的条目.它在下次重启之前一直有效." +msgid "" +"Currently DDNS updates are not started at boot or on interface events.
You can start/stop each configuration here. It will run until next reboot." +msgstr "" +"现在,DDNS更新在开机或者接口动作时不会被触发
你可以在这里开始/停止每一个" +"设置的条目.它在下次重启之前一直有效." msgid "Custom update script to be used for updating your DDNS Provider." msgstr "用来更新动态DNS的自定义脚本" @@ -117,10 +138,14 @@ msgstr "设定用来读取系统IPv4地址的网络" msgid "Defines the network to read systems IPv6-Address from" msgstr "设定用来读取系统IPv6地址的网络" -msgid "Defines the source to read systems IPv4-Address from, that will be send to the DDNS provider" +msgid "" +"Defines the source to read systems IPv4-Address from, that will be send to " +"the DDNS provider" msgstr "设定IPv4地址的来源.这将会被发送给DDNS提供商" -msgid "Defines the source to read systems IPv6-Address from, that will be send to the DDNS provider" +msgid "" +"Defines the source to read systems IPv6-Address from, that will be send to " +"the DDNS provider" msgstr "设定IPv6地址的来源.这将会被发送给DDNS提供商" msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider" @@ -132,7 +157,8 @@ msgstr "详情:" msgid "Directory contains Log files for each running section" msgstr "保存每一个运行中的设置的运行日志的目录" -msgid "Directory contains PID and other status information for each running section" +msgid "" +"Directory contains PID and other status information for each running section" msgstr "保存每个运行中的设置的PID以及其它状态信息的目录" msgid "Disabled" @@ -141,7 +167,9 @@ msgstr "已禁用" msgid "Dynamic DNS" msgstr "动态DNS" -msgid "Dynamic DNS allows that your router can be reached with a fixed hostname while having a dynamically changing IP address." +msgid "" +"Dynamic DNS allows that your router can be reached with a fixed hostname " +"while having a dynamically changing IP address." msgstr "动态DNS允许为拥有动态IP的主机配置一个固定的可访问域名." msgid "Enable secure communication with DDNS provider" @@ -171,8 +199,12 @@ msgstr "文件未找到" msgid "File not found or empty" msgstr "文件未找到或为空" -msgid "Follow this link
You will find more hints to optimize your system to run DDNS scripts with all options" -msgstr "打开这个链接
你将会得到更多关于如何通过所有设置项优化你的系统以运行DDNS脚本的提示." +msgid "" +"Follow this link
You will find more hints to optimize your system to " +"run DDNS scripts with all options" +msgstr "" +"打开这个链接
你将会得到更多关于如何通过所有设置项优化你的系统以运行DDNS" +"脚本的提示." msgid "For detailed information about parameter settings look here." msgstr "请看这里获得关于参数设置的详细信息" @@ -201,7 +233,9 @@ msgstr "格式" msgid "Format: IP or FQDN" msgstr "格式:IP或者FQDN" -msgid "GNU Wget will use the IP of given network, cURL will use the physical interface." +msgid "" +"GNU Wget will use the IP of given network, cURL will use the physical " +"interface." msgstr "GNU Wget将会使用给定的网络的IP地址,而cURL将会使用物理接口" msgid "Global Settings" @@ -228,8 +262,13 @@ msgstr "IPv4地址" msgid "IPv6 address must be given in square brackets" msgstr "IPv6地址必须填写在中括号(\"[ ]\")内" -msgid "IPv6 is currently not (fully) supported by this system
Please follow the instructions on OpenWrt's homepage to enable IPv6 support
or update your system to the latest OpenWrt Release" -msgstr "当前系统暂时不能(完整地)支持IPv6
请查看OpenWrt首页的介绍以启用IPv6支持
或者更新你的系统到最新OpenWrt版本" +msgid "" +"IPv6 is currently not (fully) supported by this system
Please follow " +"the instructions on OpenWrt's homepage to enable IPv6 support
or update " +"your system to the latest OpenWrt Release" +msgstr "" +"当前系统暂时不能(完整地)支持IPv6
请查看OpenWrt首页的介绍以启用IPv6支持" +"
或者更新你的系统到最新OpenWrt版本" msgid "IPv6 not supported" msgstr "IPv6不被支持" @@ -240,13 +279,21 @@ msgstr "IPv6地址" msgid "If both cURL and GNU Wget are installed, Wget is used by default." msgstr "如果cURL和GNU Wget同时被安装,那么Wget将会被优先使用." -msgid "If this service section is disabled it could not be started.
Neither from LuCI interface nor from console" -msgstr "如果服务配置被禁用那么它将不能被启动.
无论是通过LuCI页面或者是通过终端." +msgid "" +"If this service section is disabled it could not be started.
Neither " +"from LuCI interface nor from console" +msgstr "" +"如果服务配置被禁用那么它将不能被启动.
无论是通过LuCI页面或者是通过终端." -msgid "If you want to send updates for IPv4 and IPv6 you need to define two separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" -msgstr "如果你需要同时更新IPv4和IPv6地址,你需要单独添加两个配置项(例如'myddns_ipv4'和'myddns_ipv6')" +msgid "" +"If you want to send updates for IPv4 and IPv6 you need to define two " +"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" +msgstr "" +"如果你需要同时更新IPv4和IPv6地址,你需要单独添加两个配置项(例" +"如'myddns_ipv4'和'myddns_ipv6')" -msgid "In some versions cURL/libcurl in OpenWrt is compiled without proxy support." +msgid "" +"In some versions cURL/libcurl in OpenWrt is compiled without proxy support." msgstr "OpenWrt中,cURL/libcurl的某些版本编译时没有启用代理服务器支持" msgid "Info" @@ -255,11 +302,18 @@ msgstr "信息" msgid "Interface" msgstr "接口" -msgid "Interval to check for changed IP
Values below 5 minutes == 300 seconds are not supported" +msgid "" +"Interval to check for changed IP
Values below 5 minutes == 300 seconds " +"are not supported" msgstr "检查IP是否改变的时间隔
不支持低于5分钟(300秒)的数值." -msgid "Interval to force updates send to DDNS Provider
Setting this parameter to 0 will force the script to only run once
Values lower 'Check Interval' except '0' are not supported" -msgstr "强制向提供商更新DDNS的时间周期
把这个参数设置为0将会让脚本仅执行一次
不支持低于\"检查时间周期\"的数值(除了0)." +msgid "" +"Interval to force updates send to DDNS Provider
Setting this parameter " +"to 0 will force the script to only run once
Values lower 'Check " +"Interval' except '0' are not supported" +msgstr "" +"强制向提供商更新DDNS的时间周期
把这个参数设置为0将会让脚本仅执行一次" +"
不支持低于\"检查时间周期\"的数值(除了0)." msgid "It is NOT recommended for casual users to change settings on this page." msgstr "强烈不建议初次使用的用户修改本页设定." @@ -285,10 +339,14 @@ msgstr "把日志记录到文件" msgid "Log to syslog" msgstr "把日志记录到系统日志" -msgid "Neither GNU Wget with SSL nor cURL installed to select a network to use for communication." +msgid "" +"Neither GNU Wget with SSL nor cURL installed to select a network to use for " +"communication." msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法选择一个网络用于通信." -msgid "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS protocol." +msgid "" +"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS " +"protocol." msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法使用HTTPS更新DDNS" msgid "Network" @@ -405,9 +463,14 @@ msgstr "状态目录" msgid "Stopped" msgstr "已停止" -msgid "The currently installed 'ddns-scripts' package did not support all available settings." +msgid "" +"The currently installed 'ddns-scripts' package did not support all available " +"settings." msgstr "当前已安装的'ddns-scripts'软件包暂不支持所有可用设置项" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "没有已经配置好的服务项" @@ -429,8 +492,11 @@ msgstr "用于检测的URL" msgid "Unknown error" msgstr "未知错误" -msgid "Update URL to be used for updating your DDNS Provider.
Follow instructions you will find on their WEB page." -msgstr "DDNS提供商用于更新DDNS的URL
跟随教程你将会在它们的网站上提供这个URL." +msgid "" +"Update URL to be used for updating your DDNS Provider.
Follow " +"instructions you will find on their WEB page." +msgstr "" +"DDNS提供商用于更新DDNS的URL
跟随教程你将会在它们的网站上提供这个URL." msgid "Update error" msgstr "更新错误" @@ -462,10 +528,13 @@ msgstr "正在应用更改..." msgid "Warning" msgstr "等待" -msgid "Writes detailed messages to log file. File will be truncated automatically." +msgid "" +"Writes detailed messages to log file. File will be truncated automatically." msgstr "向日志中写入详细信息.文件将会被自动减小." -msgid "Writes log messages to syslog. Critical Errors will always be written to syslog." +msgid "" +"Writes log messages to syslog. Critical Errors will always be written to " +"syslog." msgstr "把日志写入系统日志.无论是否启用这项,错误信息总是会被写入系统日志" msgid "You should install BIND host package for DNS requests." diff --git a/applications/luci-app-ddns/po/zh-tw/ddns.po b/applications/luci-app-ddns/po/zh-tw/ddns.po index ec930f432..ec1fe779e 100644 --- a/applications/luci-app-ddns/po/zh-tw/ddns.po +++ b/applications/luci-app-ddns/po/zh-tw/ddns.po @@ -455,6 +455,9 @@ msgid "" "settings." msgstr "" +msgid "The default setting of '0' will retry infinite." +msgstr "" + msgid "There is no service configured." msgstr "" diff --git a/applications/luci-app-diag-devinfo/Makefile b/applications/luci-app-diag-devinfo/Makefile index 258fdee60..0424fffa0 100644 --- a/applications/luci-app-diag-devinfo/Makefile +++ b/applications/luci-app-diag-devinfo/Makefile @@ -7,7 +7,7 @@ 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 +LUCI_DEPENDS:=+luci-app-diag-core +smap +netdiscover +mac-to-devinfo +httping +smap-to-devinfo +netdiscover-to-devinfo @BROKEN include ../../luci.mk diff --git a/applications/luci-app-mjpg-streamer/po/templates/mjpg-streamer.pot b/applications/luci-app-mjpg-streamer/po/templates/mjpg-streamer.pot index 5cd722f3a..ecb374d7f 100644 --- a/applications/luci-app-mjpg-streamer/po/templates/mjpg-streamer.pot +++ b/applications/luci-app-mjpg-streamer/po/templates/mjpg-streamer.pot @@ -37,9 +37,15 @@ msgstr "" msgid "Drop frames smaller then this limit" msgstr "" +msgid "Enable MJPG-streamer" +msgstr "" + msgid "Enable YUYV format" msgstr "" +msgid "Enabled" +msgstr "" + msgid "Exceed" msgstr "" @@ -63,9 +69,15 @@ msgstr "" msgid "Frames per second" msgstr "" +msgid "General" +msgstr "" + msgid "HTTP output" msgstr "" +msgid "Input plugin" +msgstr "" + msgid "Interval between saving pictures" msgstr "" @@ -90,9 +102,15 @@ msgstr "" msgid "On" msgstr "" +msgid "Output plugin" +msgstr "" + msgid "Password" msgstr "" +msgid "Plugin settings" +msgstr "" + msgid "Port" msgstr "" diff --git a/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po index 3ad9a4a53..8b51f6ad4 100644 --- a/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po +++ b/applications/luci-app-mjpg-streamer/po/zh-cn/mjpg-streamer.po @@ -13,25 +13,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" - -msgid "Enabled" -msgstr "启用" - -msgid "Enable MJPG-streamer" -msgstr "启用MJPG-streamer" - -msgid "General" -msgstr "一般设置" - -msgid "Plugin settings" -msgstr "插件设置" - -msgid "Input plugin" -msgstr "输入插件" - -msgid "Output plugin" -msgstr "输出插件" - msgid "Allow ringbuffer to exceed limit by this amount" msgstr "允许环形缓冲区最多超过这个数值" @@ -68,9 +49,15 @@ msgstr "不要初始化dynctrls" msgid "Drop frames smaller then this limit" msgstr "丢弃小于该尺寸限制的帧" +msgid "Enable MJPG-streamer" +msgstr "启用MJPG-streamer" + msgid "Enable YUYV format" msgstr "启用YUYV格式" +msgid "Enabled" +msgstr "启用" + msgid "Exceed" msgstr "超出" @@ -94,9 +81,15 @@ msgstr "保存网页的文件夹" msgid "Frames per second" msgstr "帧每秒" +msgid "General" +msgstr "一般设置" + msgid "HTTP output" msgstr "HTTP输出" +msgid "Input plugin" +msgstr "输入插件" + msgid "Interval between saving pictures" msgstr "图片保存时间间隔" @@ -121,9 +114,15 @@ msgstr "关" msgid "On" msgstr "开" +msgid "Output plugin" +msgstr "输出插件" + msgid "Password" msgstr "密码" +msgid "Plugin settings" +msgstr "插件设置" + msgid "Port" msgstr "端口" diff --git a/applications/luci-app-ocserv/luasrc/controller/ocserv.lua b/applications/luci-app-ocserv/luasrc/controller/ocserv.lua index dbeaaf852..79c6ddb78 100644 --- a/applications/luci-app-ocserv/luasrc/controller/ocserv.lua +++ b/applications/luci-app-ocserv/luasrc/controller/ocserv.lua @@ -28,7 +28,7 @@ function index() call("ocserv_status")).leaf = true entry({"admin", "services", "ocserv", "disconnect"}, - call("ocserv_disconnect")).leaf = true + post("ocserv_disconnect")).leaf = true end diff --git a/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm b/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm index 138b03915..03a9ed70e 100644 --- a/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm +++ b/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm @@ -1,7 +1,7 @@ -
"> +

<%:Diagnostics%>

diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm index 4cdf2df95..9a77f8910 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm @@ -49,7 +49,7 @@ s.innerHTML = '<%:Waiting for changes to be applied...%>'; } - XHR.get('<%=url('admin/network')%>/iface_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, + (new XHR()).post('<%=url('admin/network')%>/iface_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, { token: '<%=token%>' }, function(x) { if (s) @@ -66,6 +66,16 @@ ); } + function iface_delete(id) { + if (!confirm('<%:Really delete this interface? The deletion cannot be undone!\nYou might lose access to this device if you are connected via this interface.%>')) + return; + + (new XHR()).post('<%=url('admin/network/iface_delete')%>/' + id, { token: '<%=token%>' }, + function(x) { + location.href = '<%=url('admin/network/network')%>'; + } + ); + } var iwxhr = new XHR(); var wifidevs = <%=luci.http.write_json(netdevs)%>; @@ -240,7 +250,7 @@ '" title="<%:Edit this interface%>" value="<%:Edit%>" id="<%=net[1]%>-ifc-edit" /> - '" title="<%:Delete this interface%>" value="<%:Delete%>" /> + <% end %> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm index 671d16ed0..3533c6fa4 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm @@ -1,5 +1,5 @@ <%# - Copyright 2009 Jo-Philipp Wich + Copyright 2009-2015 Jo-Philipp Wich Licensed to the public under the Apache License 2.0. -%> @@ -109,7 +109,8 @@ Encryption: <%=format_wifi_encryption(net.encryption)%> - + + @@ -138,7 +139,8 @@ " method="get"> -
+ +
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm index 17afe0d6c..f82d06dcd 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm @@ -149,7 +149,7 @@ st.innerHTML = '<%:Wireless is restarting...%>'; } - XHR.get('<%=url('admin/network')%>/wireless_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, null, + (new XHR()).post('<%=url('admin/network')%>/wireless_' + (reconnect ? 'reconnect' : 'shutdown') + '/' + id, { token: '<%=token%>' }, function(x) { if (s) @@ -167,6 +167,17 @@ ); } + function wifi_delete(id) { + if (!confirm('<%:Really delete this wireless network? The deletion cannot be undone!\nYou might lose access to this device if you are connected via this network.%>')) + return; + + (new XHR()).post('<%=url('admin/network/wireless_delete')%>/' + id, { token: '<%=token%>' }, + function(x) { + location.href = '<%=url('admin/network/wireless')%>'; + } + ); + } + XHR.poll(5, '<%=url('admin/network/wireless_status', table.concat(netlist, ","))%>', null, function(x, st) { @@ -370,8 +381,16 @@ - ?device=<%=dev:name()%>'" title="<%:Find and join network%>" value="<%:Scan%>" /> - ?device=<%=dev:name()%>'" title="<%:Provide new network%>" value="<%:Add%>" /> +
+ + + +
+
+ + + +
@@ -391,7 +410,7 @@ - '" title="<%:Delete this network%>" value="<%:Remove%>" /> + <% end %> @@ -410,7 +429,7 @@ <% end %> -

<%:Associated Stations%>

+

<%:Associated Stations%>

diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm index 375738869..f49469a59 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm @@ -1,6 +1,6 @@ <%# Copyright 2008-2009 Steven Barth - Copyright 2008-2011 Jo-Philipp Wich + Copyright 2008-2015 Jo-Philipp Wich Licensed to the public under the Apache License 2.0. -%> @@ -37,7 +37,7 @@ local net = wba.iface_get_network(i) if net and i ~= "lo" then return '%s' %{ - luci.dispatcher.build_url("admin", "network", "network", net), i + url("admin/network/network", net), i } end @@ -60,6 +60,7 @@

<%:Firewall Status%>

+
<% if has_ip6tables then %>
    @@ -68,82 +69,78 @@
<% end %> -
-
-
-

<%:Actions%>

- -

- - <% for _, tbl in ipairs(tables) do chaincnt = 0 %> -

<%:Table%>: <%=tbl%>

-
- <% for _, chain in ipairs(ipt:chains(tbl)) do - rowcnt = 0 - chaincnt = chaincnt + 1 - chaininfo = ipt:chain(tbl, chain) - %> - - +
+ + " style="position: absolute; right: 0"> + + + + + + +
+ + <% for _, tbl in ipairs(tables) do chaincnt = 0 %> +

<%:Table%>: <%=tbl%>

+
-
- <%:Chain%> <%=chain%> - (<%- if chaininfo.policy then -%> - <%:Policy%>: <%=chaininfo.policy%>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%> - <%- else -%> - <%:References%>: <%=chaininfo.references-%> - <%- end -%>) -
+ <% for _, chain in ipairs(ipt:chains(tbl)) do + rowcnt = 0 + chaincnt = chaincnt + 1 + chaininfo = ipt:chain(tbl, chain) + %> + + + + + + + + + + + + + + + + <% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %> + + + + + + + + + + - - - - - - - - - - - - - - - <% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %> - - - - - - - - - - - - - - <% end %> - - <% if rowcnt == 1 then %> - - - - <% end %> <% end %> - <% if chaincnt == 0 then %> + <% if rowcnt == 1 then %> - + <% end %> -
+
+ <%:Chain%> <%=chain%> + (<%- if chaininfo.policy then -%> + <%:Policy%>: <%=chaininfo.policy%>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%> + <%- else -%> + <%:References%>: <%=chaininfo.references-%> + <%- end -%>) +
<%:Pkts.%><%:Traffic%><%:Target%><%:Prot.%><%:In%><%:Out%><%:Source%><%:Destination%><%:Options%>
<%=rule.packets%><%=wba.byte_format(rule.bytes)%><%=rule.target and link_target(tbl, rule.target) or "-"%><%=rule.protocol%><%=link_iface(rule.inputif)%><%=link_iface(rule.outputif)%><%=rule.source%><%=rule.destination%><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%>
<%:Rule #%><%:Pkts.%><%:Traffic%><%:Target%><%:Prot.%><%:Flags%><%:In%><%:Out%><%:Source%><%:Destination%><%:Options%>
<%=rule.index%><%=rule.packets%><%=wba.byte_format(rule.bytes)%><%=rule.target and link_target(tbl, rule.target) or "-"%><%=rule.protocol%><%=rule.flags%><%=link_iface(rule.inputif)%><%=link_iface(rule.outputif)%><%=rule.source%><%=rule.destination%><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%>
<%:No rules in this chain%>
<%:No chains in this table%><%:No rules in this chain%>
-

- <% end %> -
-
- + <% end %> + + <% if chaincnt == 0 then %> + + <%:No chains in this table%> + + <% end %> + +

+ <% end %> + + <%+footer%> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/clock_status.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/clock_status.htm index 19be072fe..37d8ae0e8 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/clock_status.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/clock_status.htm @@ -17,8 +17,8 @@ btn.disabled = true; btn.value = '<%:Synchronizing...%>'; - XHR.get('<%=url('admin/system/clock_status')%>', - { set: Math.floor((new Date()).getTime() / 1000) }, + (new XHR()).post('<%=url('admin/system/clock_status')%>', + { token: '<%=token%>', set: Math.floor((new Date()).getTime() / 1000) }, function() { btn.disabled = false; diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/flashops.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/flashops.htm index bc8bcf488..82a1fdbc9 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/flashops.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/flashops.htm @@ -1,6 +1,6 @@ <%# Copyright 2008 Steven Barth - Copyright 2008 Jo-Philipp Wich + Copyright 2008-2015 Jo-Philipp Wich Licensed to the public under the Apache License 2.0. -%> @@ -17,36 +17,43 @@
<%:Backup / Restore%> -
-
<%:Click "Generate archive" to download a tar archive of the current configuration files. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%>
-
+
<%:Click "Generate archive" to download a tar archive of the current configuration files. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%>
+
+ +
- <% if reset_avail then %> + + <% if reset_avail then %> +
+
- <% end %> -
-
-
<%:To restore configuration files, you can upload a previously generated backup archive here.%>
-
+ + <% end %> +
+
+
<%:To restore configuration files, you can upload a previously generated backup archive here.%>
+
+
+
-
- + +

@@ -54,7 +61,8 @@
<%:Flash new firmware image%> <% if upgrade_avail then %> -
+ +
<%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires an OpenWrt compatible firmware image).%>
diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm index ef9591990..1bc9caced 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/packages.htm @@ -46,17 +46,18 @@ end

<%:Software%>

- -
+
- - -
+ + + + +
<% if (install and next(install)) or (remove and next(remove)) or update or upgrade then %>
@@ -80,7 +81,7 @@ end <% else %> <%:No package lists available%> <% end %> - +
<% end %> @@ -101,7 +102,7 @@ end
- +
@@ -114,83 +115,98 @@ end
-
- -

<%:Status%>

- - - - - <% if display ~= "available" then %> -
- - - - - - - <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %> - - - - - - <% end) %> - <% if empty then %> - - - - - - <% end %> -
 <%:Package name%><%:Version%>
<%:Remove%><%=luci.util.pcdata(n)%><%=luci.util.pcdata(v)%>
 <%:none%><%:none%>
-
- <% else %> -
- <% if not querypat then %> - -
- <% end %> - - - - - - - - - <% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %> - - - - - - - - <% end) %> - <% if empty then %> - - - - - - - - <% end %> -
 <%:Package name%><%:Version%><%:Size (.ipk)%><%:Description%>
<%:Install%><%=luci.util.pcdata(n)%><%=luci.util.pcdata(v)%><%=luci.util.pcdata(s)%><%=luci.util.pcdata(d)%>
 <%:none%><%:none%><%:none%><%:none%>
- <% if not querypat then %> -
- <% end %> -
+ + + +

<%:Status%>

+ + + + + <% if display ~= "available" then %> +
+ + + + + + + <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %> + + + + + + <% end) %> + <% if empty then %> + + + + + + <% end %> +
 <%:Package name%><%:Version%>
+
+ + + + <%:Remove%> +
+
<%=luci.util.pcdata(n)%><%=luci.util.pcdata(v)%>
 <%:none%><%:none%>
+
+ <% else %> +
+ <% if not querypat then %> + +
+ <% end %> + + + + + + + + + <% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %> + + + + + + + + <% end) %> + <% if empty then %> + + + + + + + + <% end %> +
 <%:Package name%><%:Version%><%:Size (.ipk)%><%:Description%>
+
+ + + + <%:Install%> +
+
<%=luci.util.pcdata(n)%><%=luci.util.pcdata(v)%><%=luci.util.pcdata(s)%><%=luci.util.pcdata(d)%>
 <%:none%><%:none%><%:none%><%:none%>
+ <% if not querypat then %> +
<% end %> - - +
+ <% end %> + + <%+footer%> diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm index 198505882..5ca0398e1 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm @@ -45,12 +45,11 @@
-
- -
-
+ + " /> +
diff --git a/themes/luci-theme-material/htdocs/luci-static/material/css/style.css b/themes/luci-theme-material/htdocs/luci-static/material/css/style.css index f11f1ca0f..d4feb368b 100755 --- a/themes/luci-theme-material/htdocs/luci-static/material/css/style.css +++ b/themes/luci-theme-material/htdocs/luci-static/material/css/style.css @@ -85,9 +85,9 @@ select { select, input { background-color: transparent; - color: rgba(0,0,0,.87); + color: rgba(0, 0, 0, .87); border: none; - border-bottom: 1px solid rgba(0,0,0,.26); + border-bottom: 1px solid rgba(0, 0, 0, .26); outline: 0; padding: 0; box-shadow: none; @@ -106,7 +106,7 @@ input:focus { border-width: 2px; } -select[multiple="multiple"]{ +select[multiple="multiple"] { height: auto; } @@ -115,11 +115,17 @@ code { } abbr { - color: #0099CC; + color: #005470; text-decoration: underline; cursor: help; } +hr{ + margin: 1rem 0; + border-color: #EEE; + opacity: 0.1; +} + header, .main { width: 100%; position: absolute; @@ -134,7 +140,7 @@ header { z-index: 101; } -footer{ +footer { text-align: right; padding: 1rem; color: #aaa; @@ -142,7 +148,7 @@ footer{ text-shadow: 0px 0px 2px #BBB; } -footer > a{ +footer > a { color: #aaa; text-decoration: none; } @@ -150,9 +156,12 @@ footer > a{ .main { top: 4rem; bottom: 0rem; + position: relative; + height: 100%; + height: calc(100% - 4rem); } -.main > .loading{ +.main > .loading { position: fixed; width: 100%; height: 100%; @@ -162,7 +171,7 @@ footer > a{ top: 0; } -.main > .loading > span{ +.main > .loading > span { display: block; text-align: center; margin-top: 2rem; @@ -170,11 +179,11 @@ footer > a{ font-size: 1.3rem; } -.main > .loading > span > .loading-img:before{ +.main > .loading > span > .loading-img:before { content: "\e603"; } -.main > .loading > span > .loading-img{ +.main > .loading > span > .loading-img { animation: anim-rotate 2s infinite linear; margin-right: 0.2rem; display: inline-block; @@ -182,35 +191,42 @@ footer > a{ @keyframes anim-rotate { 0% { - -webkit-transform:rotate(0); - -ms-transform:rotate(0); - transform:rotate(0); + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); } 100% { - -webkit-transform:rotate(360deg); - -ms-transform:rotate(360deg); - transform:rotate(360deg) + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg) } } .main-left { float: left; + top: 4rem; width: 15%; width: calc(0% + 17rem); height: 100%; - overflow-y: auto; + height: calc(100% - 4rem); background-color: white; + + overflow-x: auto; + position: fixed; } .main-right { width: 85%; width: calc(100% - 17rem); float: right; - overflow-y: auto; height: 100%; background-color: #EEE; } +.main-right > #maincontent { + background-color: #EEE; +} + .pull-right { float: right; } @@ -264,7 +280,7 @@ header > .container > .brand { border-color: #eea236; } -.error{ +.error { color: red; } @@ -414,7 +430,7 @@ fieldset { background-color: #FFF; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12); - -webkit-overflow-scrolling:touch; + -webkit-overflow-scrolling: touch; } fieldset > legend { @@ -466,6 +482,8 @@ fieldset > table > tbody > tr:nth-of-type(odd) { } /* fix progress bar */ +#swaptotal > div, +#swapfree > div, #memfree > div, #membuff > div, #conns > div, @@ -474,6 +492,8 @@ fieldset > table > tbody > tr:nth-of-type(odd) { height: 1.4rem !important; } +#swaptotal > div > div, +#swapfree > div > div, #memfree > div > div, #membuff > div > div, #conns > div > div, @@ -552,6 +572,7 @@ td > table > tbody > tr > td { box-shadow: none; } +form.inline + form.inline, .cbi-button + .cbi-button { margin-left: 0.6rem; } @@ -590,7 +611,7 @@ td > table > tbody > tr > td { border-color: #d43f3a !important; } -.a-to-btn{ +.a-to-btn { text-decoration: none; } @@ -705,6 +726,11 @@ td > table > tbody > tr > td { background-color: #eee; } +.cbi-rowstyle-2 .cbi-button-up, +.cbi-rowstyle-2 .cbi-button-down{ + background-color: #FFF !important; +} + .cbi-section-table .cbi-section-table-titles .cbi-section-table-cell { width: auto !important; } @@ -732,7 +758,7 @@ td > table > tbody > tr > td { } .inline { - display: inline-block; + display: inline; } .cbi-page-actions { @@ -781,7 +807,7 @@ td > table > tbody > tr > td { width: 100%; min-height: 15rem; padding: 1rem; - font-size: smaller; + font-size: small; color: #5F5F5F; margin-bottom: 20px; @@ -919,7 +945,7 @@ div.cbi-value var, td.cbi-value-field var { } small { - font-size: smaller; + font-size: small; white-space: normal; } @@ -1039,20 +1065,20 @@ header > .container > .pull-right > * { float: right; } -.node-main-login > .main .cbi-value{ +.node-main-login > .main .cbi-value { display: block; } -.node-main-login > .main .cbi-value > *{ +.node-main-login > .main .cbi-value > * { display: inline-block !important; } .node-main-login > .main .cbi-input-user, -.node-main-login > .main .cbi-input-password{ +.node-main-login > .main .cbi-input-password { min-width: 15rem; } -.node-main-login footer{ +.node-main-login footer { bottom: 0; position: absolute; width: 100%; @@ -1060,22 +1086,20 @@ header > .container > .pull-right > * { /* fix status overview */ -.node-status-overview > .main fieldset:nth-child(4) td:nth-child(2){ +.node-status-overview > .main fieldset:nth-child(4) td:nth-child(2) { white-space: normal; } - /* fix status processes */ .node-status-processes > .main table tr td:nth-child(3) { white-space: normal; } -.node-status-firewall > .main fieldset li { - display: inline-block; +.node-status-iptables > .main div > .cbi-map > form { + margin: 2rem 2rem 0 0; } - /* fix system reboot */ .node-system-reboot > .main > .main-right p, @@ -1084,34 +1108,34 @@ header > .container > .pull-right > * { } /* fix Services Network Shares*/ -.node-services-network_shares > .main .cbi-tabcontainer:nth-child(3) .cbi-value-title { +.node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-title { margin-bottom: 1rem; } -.node-services-network_shares > .main .cbi-tabcontainer:nth-child(3) .cbi-value-field { +.node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-field { display: list-item; } -.node-services-network_shares > .main .cbi-tabcontainer:nth-child(3) .cbi-value-description { +.node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-description { padding-top: 1rem; } /* fix System Software*/ -.node-system-software > .main table tr td:nth-child(1) { +.node-system-packages > .main table tr td:nth-child(1) { width: auto !important; } -.node-system-software > .main table tr td:nth-last-child(1) { +.node-system-packages > .main table tr td:nth-last-child(1) { white-space: normal; font-size: small; color: #404040; } -.node-system-software > .main .cbi-tabmenu > li > a, .tabs > li > a { +.node-system-packages > .main .cbi-tabmenu > li > a, .tabs > li > a { padding: 0.5rem 1rem; } -.node-system-software > .main .cbi-value > pre { +.node-system-packages > .main .cbi-value > pre { background-color: #eee; padding: 0.5rem; overflow: auto; @@ -1122,23 +1146,42 @@ header > .container > .pull-right > * { } /* fix network firewall*/ -.node-network-firewall > .main .cbi-section-table-row > .cbi-value-field .cbi-input-select{ +.node-network-firewall > .main .cbi-section-table-row > .cbi-value-field .cbi-input-select { min-width: 4rem; } -.node-status-firewall fieldset, -.node-system-software fieldset, -.node-system-backup_flash_firmware fieldset { +.node-status-iptables fieldset, +.node-system-packages fieldset, +.node-system-flashops fieldset { margin-top: 0; } -.node-status-firewall .cbi-tabmenu, -.node-system-software .cbi-tabmenu, -.node-system-backup_flash_firmware .cbi-tabmenu { +.node-status-iptables .cbi-tabmenu, +.node-system-packages .cbi-tabmenu, +.node-system-flashops .cbi-tabmenu { border: none; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12); } +#cbi-firewall-redirect table *, +#cbi-network-switch_vlan table *, +#cbi-firewall-zone table *{ + font-size: small; +} + +#cbi-firewall-redirect table input[type="text"], +#cbi-network-switch_vlan table input[type="text"], +#cbi-firewall-zone table input[type="text"]{ + width: 5rem; +} + +#cbi-firewall-redirect table select, +#cbi-network-switch_vlan table select, +#cbi-firewall-zone table select{ + min-width: 3.5rem; +} + + /* language fix */ body.lang_pl.node-main-login .cbi-value-title { width: 12rem; @@ -1169,6 +1212,7 @@ body.lang_pl.node-main-login .cbi-value-title { .cbi-value-title { width: 15rem; + padding-right: 0.6rem; } fieldset { @@ -1176,10 +1220,10 @@ body.lang_pl.node-main-login .cbi-value-title { } .cbi-input-textarea { - font-size: smaller; + font-size: small; } - .node-status-firewall > .main fieldset li > a { + .node-status-iptables > .main fieldset li > a { padding: 0.3rem 0.6rem; } } @@ -1195,10 +1239,13 @@ body.lang_pl.node-main-login .cbi-value-title { .main { top: 3.5rem; + height: calc(100% - 3.5rem); } .main-left { width: calc(0% + 13rem); + top: 3.5rem; + height: calc(100% - 3.5rem); } .main-right { @@ -1216,6 +1263,7 @@ body.lang_pl.node-main-login .cbi-value-title { table { font-size: 0.8rem !important; + width: 100% !important; } .main > .main-left > .nav > li, @@ -1386,13 +1434,40 @@ body.lang_pl.node-main-login .cbi-value-title { padding-bottom: 1rem; } - .node-system-software > .main .cbi-value.cbi-value-last > div { + .node-system-packages > .main .cbi-value.cbi-value-last > div { width: 100% !important; } - .node-system-software > .main .cbi-value .cbi-value-field input { + .node-system-packages > .main .cbi-value .cbi-value-field input { width: 100%; } + + .node-status-iptables > .main div > .cbi-map > form { + position: static !important; + margin: 0 0 2rem 0; + padding: 2rem; + border: 0; + font-weight: normal; + font-style: normal; + line-height: 1; + font-family: inherit; + min-width: inherit; + overflow-x: auto; + overflow-y: hidden; + border-radius: 0; + background-color: #FFF; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12); + -webkit-overflow-scrolling: touch; + } + + .node-status-iptables > .main div > .cbi-map > form input[type="submit"]{ + width: 100% !important; + margin: 0; + } + + .node-status-iptables > .main div > .cbi-map > form input[type="submit"] + input[type="submit"]{ + margin-top: 1rem; + } } @media screen and (min-width: 992px) { diff --git a/themes/luci-theme-material/htdocs/luci-static/material/js/script.js b/themes/luci-theme-material/htdocs/luci-static/material/js/script.js index a0f067595..03e5739ad 100755 --- a/themes/luci-theme-material/htdocs/luci-static/material/js/script.js +++ b/themes/luci-theme-material/htdocs/luci-static/material/js/script.js @@ -18,109 +18,6 @@ * Licensed to the public under the Apache License 2.0 */ (function ($) { - var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", - a256 = '', - r64 = [256], - r256 = [256], - i = 0; - var UTF8 = { - /** - * Encode multi-byte Unicode string into utf-8 multiple single-byte characters - * (BMP / basic multilingual plane only) - * - * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars - * - * @param {String} strUni Unicode string to be encoded as UTF-8 - * @returns {String} encoded string - */ - encode: function (strUni) { - // use regular expressions & String.replace callback function for better efficiency - // than procedural approaches - var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz - function (c) { - var cc = c.charCodeAt(0); - return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f); - }) - .replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz - function (c) { - var cc = c.charCodeAt(0); - return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f); - }); - return strUtf; - }, - /** - * Decode utf-8 encoded string back into multi-byte Unicode characters - * - * @param {String} strUtf UTF-8 string to be decoded back to Unicode - * @returns {String} decoded string - */ - decode: function (strUtf) { - // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char! - var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars - function (c) { // (note parentheses for precence) - var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f); - return String.fromCharCode(cc); - }) - .replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars - function (c) { // (note parentheses for precence) - var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f; - return String.fromCharCode(cc); - }); - return strUni; - } - }; - while (i < 256) { - var c = String.fromCharCode(i); - a256 += c; - r256[i] = i; - r64[i] = b64.indexOf(c); - ++i; - } - function code(s, discard, alpha, beta, w1, w2) { - s = String(s); - var buffer = 0, - i = 0, - length = s.length, - result = '', - bitsInBuffer = 0; - while (i < length) { - var c = s.charCodeAt(i); - c = c < 256 ? alpha[c] : -1; - buffer = (buffer << w1) + c; - bitsInBuffer += w1; - while (bitsInBuffer >= w2) { - bitsInBuffer -= w2; - var tmp = buffer >> bitsInBuffer; - result += beta.charAt(tmp); - buffer ^= tmp << bitsInBuffer; - } - ++i; - } - if (!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer)); - return result; - } - - var Plugin = $.base64 = function (dir, input, encode) { - return input ? Plugin[dir](input, encode) : dir ? null : this; - }; - Plugin.btoa = Plugin.encode = function (plain, utf8encode) { - plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain; - plain = code(plain, false, r256, b64, 8, 6); - return plain + '===='.slice((plain.length % 4) || 4); - }; - Plugin.atob = Plugin.decode = function (coded, utf8decode) { - coded = String(coded).split('='); - var i = coded.length; - do { - --i; - coded[i] = code(coded[i], true, r64, a256, 6, 8); - } while (i > 0); - coded = coded.join(''); - return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded; - }; -}(jQuery)); - -(function ($) { $(".main > .loading").fadeOut(); /** @@ -133,43 +30,34 @@ } - var tree = undefined; var lastNode = undefined; var mainNodeName = undefined; + var nodeUrl = ""; + (function(node){ + if (node[0] == "admin"){ + luciLocation = [node[1], node[2]]; + }else{ + luciLocation = node; + } + + for(var i in luciLocation){ + nodeUrl += luciLocation[i]; + if (i != luciLocation.length - 1){ + nodeUrl += "/"; + } + } + })(luciLocation); + /** * get the current node by Burl (primary) * @returns {boolean} success? */ function getCurrentNodeByUrl() { var ret = false; - var getUrlNode = function (href){ - var linkPos = href.indexOf(";"); - if (linkPos == -1){ - return "login"; - }else{ - linkPos = href.indexOf("/", linkPos); - if (linkPos == -1){ - return "overview"; - }else{ - var link = href.substr(linkPos); - if (link == "/") - return "overview"; - else - return link; - } - } - }; - - var currentNode = getUrlNode(window.location.pathname); - - if (currentNode == "login"){ - tree = ["Main", "Login"]; - return false; - }else if(currentNode == "overview"){ - tree = ["Status", "Overview"]; - lastNode = $($($(".main > .main-left > .nav > .slide > .menu")[0]).next().find("a")[0]).parent(); - return false; + if (!$('body').hasClass('logged-in')) { + luciLocation = ["Main", "Login"]; + return true; } $(".main > .main-left > .nav > .slide > .menu").each(function () { @@ -178,11 +66,10 @@ var that = $(this); var href = that.attr("href"); - if (currentNode.indexOf(getUrlNode(href)) != -1){ + if (href.indexOf(nodeUrl) != -1) { ulNode.click(); - ulNode.next(".slide-menu").stop(true,true); + ulNode.next(".slide-menu").stop(true, true); lastNode = that.parent(); - tree = [trimText(ulNode.data("title")), trimText(that.data("title"))]; lastNode.addClass("active"); ret = true; return true; @@ -234,18 +121,10 @@ /** * get current node and open it */ - if (!getCurrentNodeByUrl()){ - if (tree != undefined && tree[0] == "Status" && tree[1] == "Overview"){ - //overview - lastNode.addClass("active"); - $($(".main > .main-left > .nav > .slide > .menu")[0]).click(); - } - } - if (tree != undefined){ - mainNodeName = "node-"+ tree[0] + "-" + tree[1]; - mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g,"_").toLowerCase(); + if (getCurrentNodeByUrl()) { + mainNodeName = "node-" + luciLocation[0] + "-" + luciLocation[1]; + mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g, "_").toLowerCase(); $("body").addClass(mainNodeName); - } $(".cbi-button-up").val(""); $(".cbi-button-down").val(""); @@ -257,10 +136,10 @@ $("#maincontent > .container").find("a").each(function () { var that = $(this); var onclick = that.attr("onclick"); - if (onclick == undefined || onclick == ""){ + if (onclick == undefined || onclick == "") { that.click(function () { var href = that.attr("href"); - if (href.indexOf("#") == -1){ + if (href.indexOf("#") == -1) { $(".main > .loading").fadeIn("fast"); return true; } @@ -273,33 +152,36 @@ */ var showSide = false; $(".showSide").click(function () { - if (showSide){ + if (showSide) { $(".darkMask").stop(true).fadeOut("fast"); $(".main-left").stop(true).animate({ width: "0" - },"fast"); + }, "fast"); + $(".main-right").css("overflow-y", "auto"); showSide = false; - }else{ + } else { $(".darkMask").stop(true).fadeIn("fast"); $(".main-left").stop(true).animate({ width: "15rem" - },"fast"); + }, "fast"); + $(".main-right").css("overflow-y", "hidden"); showSide = true; } }); $(".darkMask").click(function () { - if (showSide){ + if (showSide) { showSide = false; $(".darkMask").stop(true).fadeOut("fast"); $(".main-left").stop(true).animate({ width: "0" - },"fast"); + }, "fast"); + $(".main-right").css("overflow-y", "auto"); } }); - $(window).resize(function() { + $(window).resize(function () { if ($(window).width() > 921) { $(".main-left").css("width", ""); $(".darkMask").stop(true); @@ -321,9 +203,9 @@ $(".main-right").blur(); $("input").attr("size", "0"); - if (mainNodeName != undefined){ + if (mainNodeName != undefined) { console.log(mainNodeName); - switch (mainNodeName){ + switch (mainNodeName) { case "node-status-system_log": case "node-status-kernel_log": $("#syslog").focus(function () { @@ -343,12 +225,4 @@ } } - - document.addEventListener("touchmove", function(evt){ - evt.preventDefault(); - }, false); - var container = document.getElementById("maincontent"); - container.addEventListener("touchmove", function(evt){ - evt.stopPropagation(); - }, false); })(jQuery); diff --git a/themes/luci-theme-material/luasrc/view/themes/material/footer.htm b/themes/luci-theme-material/luasrc/view/themes/material/footer.htm index 5cb74ce1e..edf85dcdb 100755 --- a/themes/luci-theme-material/luasrc/view/themes/material/footer.htm +++ b/themes/luci-theme-material/luasrc/view/themes/material/footer.htm @@ -41,6 +41,10 @@ + diff --git a/themes/luci-theme-material/luasrc/view/themes/material/header.htm b/themes/luci-theme-material/luasrc/view/themes/material/header.htm index 3e3c60729..46e008dbf 100755 --- a/themes/luci-theme-material/luasrc/view/themes/material/header.htm +++ b/themes/luci-theme-material/luasrc/view/themes/material/header.htm @@ -19,6 +19,7 @@ -%> <% + local ver = require "luci.version" local sys = require "luci.sys" local util = require "luci.util" local http = require "luci.http" @@ -134,7 +135,7 @@ - +