luci-app-travelmate: add support for optional args in auto-login script
authorJohannes Rothe <mail@johannes-rothe.de>
Thu, 19 Sep 2019 21:28:39 +0000 (23:28 +0200)
committerDirk Brenken <dev@brenken.org>
Sun, 29 Sep 2019 06:06:00 +0000 (08:06 +0200)
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 <mail@johannes-rothe.de>
(cherry picked from commit 3d646bee41df28526dc59fb1646fb7fa0072a264)

applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua

index e8580daac77d56c554af6860135079def5bae46f..c0c873d76c811e6d554ee6a4708ed27d041d694a 100644 (file)
@@ -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
index cd2fa69ae43fa08e155316760b46743475d474e6..ab0b9245496a9d016b335eabee704f10ac062b98 100644 (file)
@@ -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