luci-app-travelmate: final frontend changes for 18.x
* made qrencode support optional (remove hardcoded dependency) * add a conditional QR Code button on overview page, remove separate "QR Codes" tab * move trigger timeout setting to extra section Signed-off-by: Dirk Brenken <dev@brenken.org>
This commit is contained in:
parent
06ba63ad59
commit
ca6f0a6c89
4 changed files with 48 additions and 33 deletions
|
@ -5,7 +5,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI support for Travelmate
|
LUCI_TITLE:=LuCI support for Travelmate
|
||||||
LUCI_DEPENDS:=+travelmate +luci-lib-jsonc +qrencode
|
LUCI_DEPENDS:=+travelmate +luci-lib-jsonc
|
||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
|
|
||||||
include ../../luci.mk
|
include ../../luci.mk
|
||||||
|
|
|
@ -14,14 +14,14 @@ function index()
|
||||||
entry({"admin", "services", "travelmate"}, firstchild(), _("Travelmate"), 40).dependent = false
|
entry({"admin", "services", "travelmate"}, firstchild(), _("Travelmate"), 40).dependent = false
|
||||||
entry({"admin", "services", "travelmate", "tab_from_cbi"}, cbi("travelmate/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
|
entry({"admin", "services", "travelmate", "tab_from_cbi"}, cbi("travelmate/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "stations"}, template("travelmate/stations"), _("Wireless Stations"), 20).leaf = true
|
entry({"admin", "services", "travelmate", "stations"}, template("travelmate/stations"), _("Wireless Stations"), 20).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "apqr"}, template("travelmate/ap_qr"), _("AP QR-Codes"), 30).leaf = true
|
entry({"admin", "services", "travelmate", "logfile"}, call("logread"), _("View Logfile"), 30).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "logfile"}, call("logread"), _("View Logfile"), 40).leaf = true
|
|
||||||
entry({"admin", "services", "travelmate", "advanced"}, firstchild(), _("Advanced"), 100)
|
entry({"admin", "services", "travelmate", "advanced"}, firstchild(), _("Advanced"), 100)
|
||||||
entry({"admin", "services", "travelmate", "advanced", "configuration"}, cbi("travelmate/configuration_tab"), _("Edit Travelmate Configuration"), 110).leaf = true
|
entry({"admin", "services", "travelmate", "advanced", "configuration"}, cbi("travelmate/configuration_tab"), _("Edit Travelmate Configuration"), 110).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "advanced", "cfg_wireless"}, cbi("travelmate/cfg_wireless_tab"), _("Edit Wireless Configuration"), 120).leaf = true
|
entry({"admin", "services", "travelmate", "advanced", "cfg_wireless"}, cbi("travelmate/cfg_wireless_tab"), _("Edit Wireless Configuration"), 120).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "advanced", "cfg_network"}, cbi("travelmate/cfg_network_tab"), _("Edit Network Configuration"), 130).leaf = true
|
entry({"admin", "services", "travelmate", "advanced", "cfg_network"}, cbi("travelmate/cfg_network_tab"), _("Edit Network Configuration"), 130).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "advanced", "cfg_firewall"}, cbi("travelmate/cfg_firewall_tab"), _("Edit Firewall Configuration"), 140).leaf = true
|
entry({"admin", "services", "travelmate", "advanced", "cfg_firewall"}, cbi("travelmate/cfg_firewall_tab"), _("Edit Firewall Configuration"), 140).leaf = true
|
||||||
|
|
||||||
|
entry({"admin", "services", "travelmate", "apqr"}, template("travelmate/ap_qr")).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "wifiscan"}, template("travelmate/wifi_scan")).leaf = true
|
entry({"admin", "services", "travelmate", "wifiscan"}, template("travelmate/wifi_scan")).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "wifiadd"}, cbi("travelmate/wifi_add", {hideresetbtn=true, hidesavebtn=true})).leaf = true
|
entry({"admin", "services", "travelmate", "wifiadd"}, cbi("travelmate/wifi_add", {hideresetbtn=true, hidesavebtn=true})).leaf = true
|
||||||
entry({"admin", "services", "travelmate", "wifiedit"}, cbi("travelmate/wifi_edit", {hideresetbtn=true, hidesavebtn=true})).leaf = true
|
entry({"admin", "services", "travelmate", "wifiedit"}, cbi("travelmate/wifi_edit", {hideresetbtn=true, hidesavebtn=true})).leaf = true
|
||||||
|
|
|
@ -96,20 +96,26 @@ end
|
||||||
o4.default = trmiface
|
o4.default = trmiface
|
||||||
o4.rmempty = false
|
o4.rmempty = false
|
||||||
|
|
||||||
o5 = s:option(Value, "trm_triggerdelay", translate("Trigger Delay"),
|
if fs.access("/usr/bin/qrencode") then
|
||||||
translate("Additional trigger delay in seconds before travelmate processing begins."))
|
btn1 = s:option(Button, "btn1", translate("View AP QR-Codes"),
|
||||||
o5.datatype = "range(1,60)"
|
translate("Connect your Android or iOS devices to your router's WiFi using the shown QR code."))
|
||||||
o5.default = 2
|
btn1.inputtitle = translate("QR-Codes")
|
||||||
o5.rmempty = false
|
btn1.inputstyle = "apply"
|
||||||
|
btn1.disabled = false
|
||||||
|
|
||||||
btn = s:option(Button, "", translate("Manual Rescan"),
|
function btn1.write()
|
||||||
|
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate", "apqr"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
btn2 = s:option(Button, "btn2", translate("Manual Rescan"),
|
||||||
translate("Force a manual uplink rescan / reconnect in 'trigger' mode."))
|
translate("Force a manual uplink rescan / reconnect in 'trigger' mode."))
|
||||||
btn:depends("trm_automatic", "")
|
btn2:depends("trm_automatic", "")
|
||||||
btn.inputtitle = translate("Rescan")
|
btn2.inputtitle = translate("Rescan")
|
||||||
btn.inputstyle = "find"
|
btn2.inputstyle = "find"
|
||||||
btn.disabled = false
|
btn2.disabled = false
|
||||||
|
|
||||||
function btn.write()
|
function btn2.write()
|
||||||
luci.sys.call("env -i /etc/init.d/travelmate start >/dev/null 2>&1")
|
luci.sys.call("env -i /etc/init.d/travelmate start >/dev/null 2>&1")
|
||||||
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
|
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
|
||||||
end
|
end
|
||||||
|
@ -180,28 +186,34 @@ e2 = e:option(Value, "trm_radio", translate("Radio selection"),
|
||||||
e2.datatype = "and(uciname,rangelength(6,6))"
|
e2.datatype = "and(uciname,rangelength(6,6))"
|
||||||
e2.rmempty = true
|
e2.rmempty = true
|
||||||
|
|
||||||
e3 = e:option(Value, "trm_maxretry", translate("Connection Limit"),
|
e3 = e:option(Value, "trm_triggerdelay", translate("Trigger Delay"),
|
||||||
translate("Retry limit to connect to an uplink."))
|
translate("Additional trigger delay in seconds before travelmate processing begins."))
|
||||||
e3.default = 3
|
e3.datatype = "range(1,60)"
|
||||||
e3.datatype = "range(1,10)"
|
e3.default = 2
|
||||||
e3.rmempty = false
|
e3.rmempty = false
|
||||||
|
|
||||||
e4 = e:option(Value, "trm_minquality", translate("Signal Quality Threshold"),
|
e4 = e:option(Value, "trm_maxretry", translate("Connection Limit"),
|
||||||
translate("Minimum signal quality threshold as percent for conditional uplink (dis-) connections."))
|
translate("Retry limit to connect to an uplink."))
|
||||||
e4.default = 35
|
e4.default = 3
|
||||||
e4.datatype = "range(20,80)"
|
e4.datatype = "range(1,10)"
|
||||||
e4.rmempty = false
|
e4.rmempty = false
|
||||||
|
|
||||||
e5 = e:option(Value, "trm_maxwait", translate("Interface Timeout"),
|
e5 = e:option(Value, "trm_minquality", translate("Signal Quality Threshold"),
|
||||||
translate("How long should travelmate wait for a successful wlan uplink connection."))
|
translate("Minimum signal quality threshold as percent for conditional uplink (dis-) connections."))
|
||||||
e5.default = 30
|
e5.default = 35
|
||||||
e5.datatype = "range(20,40)"
|
e5.datatype = "range(20,80)"
|
||||||
e5.rmempty = false
|
e5.rmempty = false
|
||||||
|
|
||||||
e6 = e:option(Value, "trm_timeout", translate("Overall Timeout"),
|
e6 = e:option(Value, "trm_maxwait", translate("Interface Timeout"),
|
||||||
translate("Timeout in seconds between retries in 'automatic' mode."))
|
translate("How long should travelmate wait for a successful wlan uplink connection."))
|
||||||
e6.default = 60
|
e6.default = 30
|
||||||
e6.datatype = "range(30,300)"
|
e6.datatype = "range(20,40)"
|
||||||
e6.rmempty = false
|
e6.rmempty = false
|
||||||
|
|
||||||
|
e7 = e:option(Value, "trm_timeout", translate("Overall Timeout"),
|
||||||
|
translate("Timeout in seconds between retries in 'automatic' mode."))
|
||||||
|
e7.default = 60
|
||||||
|
e7.datatype = "range(30,300)"
|
||||||
|
e7.rmempty = false
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
|
@ -44,9 +44,7 @@ This is free software, licensed under the Apache License, Version 2.0
|
||||||
local e_ssid = string.gsub(ssid,"[\"\\';:, ]",[[\\\%1]])
|
local e_ssid = string.gsub(ssid,"[\"\\';:, ]",[[\\\%1]])
|
||||||
local e_key = string.gsub(key,"[\"\\';:, ]",[[\\\%1]])
|
local e_key = string.gsub(key,"[\"\\';:, ]",[[\\\%1]])
|
||||||
local qrcode = ""
|
local qrcode = ""
|
||||||
if nixio.fs.access("/usr/bin/qrencode") then
|
qrcode = luci.sys.exec("/usr/bin/qrencode --inline --8bit --type=SVG --output=- 'WIFI:S:\"'" .. e_ssid .. "'\";T:'" .. enc .. "';P:\"'" .. e_key .. "'\";H:'" .. hidden .. "';'")
|
||||||
qrcode = luci.sys.exec("/usr/bin/qrencode --inline --8bit --type=SVG --output=- 'WIFI:S:\"'" .. e_ssid .. "'\";T:'" .. enc .. "';P:\"'" .. e_key .. "'\";H:'" .. hidden .. "';'")
|
|
||||||
end
|
|
||||||
-%>
|
-%>
|
||||||
<fieldset class="cbi-section">
|
<fieldset class="cbi-section">
|
||||||
<legend>AP on <%=device%> with SSID "<%=ssid%>"</legend>
|
<legend>AP on <%=device%> with SSID "<%=ssid%>"</legend>
|
||||||
|
@ -58,5 +56,10 @@ This is free software, licensed under the Apache License, Version 2.0
|
||||||
end)
|
end)
|
||||||
%>
|
%>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cbi-page-actions right">
|
||||||
|
<form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/tab_from_cbi')%>" method="post">
|
||||||
|
<input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>"/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
|
Loading…
Reference in a new issue