From 3d646bee41df28526dc59fb1646fb7fa0072a264 Mon Sep 17 00:00:00 2001 From: Johannes Rothe Date: Thu, 19 Sep 2019 23:28:39 +0200 Subject: [PATCH] luci-app-travelmate: add support for optional args in auto-login script This can be helpful for example in hotels where you need to enter a new user/password combination every week. Signed-off-by: Johannes Rothe --- .../luasrc/model/cbi/travelmate/wifi_add.lua | 8 +++++++- .../luasrc/model/cbi/travelmate/wifi_edit.lua | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua index e8580daac..c0c873d76 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua @@ -140,13 +140,18 @@ end local login_section = (m.hidden.ssid or "") .. (m.hidden.bssid or "") login_section = login_section:gsub("[^%w_]", "_") local cmd = uci:get("travelmate", login_section, "command") +local cmd_args_default = uci:get("travelmate", login_section, "command_args") cmd_list = m:field(ListValue, "cmdlist", translate("Auto Login Script"), translate("External script reference which will be called for automated captive portal logins.")) -cmd_list:value("none") +cmd_args = m:field(Value, "cmdargs", translate("Optional Arguments"), + translate("Space separated list of additional optional arguments passed to the Auto Login Script, i.e. username and password")) for _, z in ipairs(scripts) do cmd_list:value(z) + cmd_args:depends("cmdlist", z) end +cmd_list:value("none") cmd_list.default = cmd or "none" +cmd_args.default = cmd_args_default function wssid.write(self, section, value) newsection = uci:section("wireless", "wifi-iface", nil, { @@ -194,6 +199,7 @@ function wssid.write(self, section, value) end if uci:get("travelmate", login_section) then uci:set("travelmate", login_section, "command", cmd_list:formvalue(section)) + uci:set("travelmate", login_section, "command_args", cmd_args:formvalue(section)) uci:save("travelmate") uci:commit("travelmate") end diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua index cd2fa69ae..ab0b92454 100644 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua @@ -133,13 +133,18 @@ if s ~= nil then local login_section = (s.ssid or "") .. (s.bssid or "") login_section = login_section:gsub("[^%w_]", "_") local cmd = uci:get("travelmate", login_section, "command") + local cmd_args_default = uci:get("travelmate", login_section, "command_args") cmd_list = m:field(ListValue, "cmdlist", translate("Auto Login Script"), translate("External script reference which will be called for automated captive portal logins.")) - cmd_list:value("none") + cmd_args = m:field(Value, "cmdargs", translate("Optional Arguments"), + translate("Space separated list of additional optional arguments passed to the Auto Login Script, i.e. username and password")) for _, z in ipairs(scripts) do cmd_list:value(z) + cmd_args:depends("cmdlist", z) end + cmd_list:value("none") cmd_list.default = cmd or "none" + cmd_args.default = cmd_args_default else m.on_cancel() end @@ -181,6 +186,7 @@ function wssid.write(self, section, value) end if uci:get("travelmate", login_section) then uci:set("travelmate", login_section, "command", cmd_list:formvalue(section)) + uci:set("travelmate", login_section, "command_args", cmd_args:formvalue(section)) uci:save("travelmate") uci:commit("travelmate") end -- 2.25.1