--- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
+-- Copyright 2017-2019 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs")
local uci = require("luci.model.uci").cursor()
local http = require("luci.http")
+local util = require("luci.util")
+local scripts = util.split(util.trim(util.exec("ls /etc/travelmate/*.login 2>/dev/null")), "\n", nil, true) or {}
local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
local encr_psk = {"psk", "psk2", "psk-mixed"}
local encr_wpa = {"wpa", "wpa2", "wpa-mixed"}
end
end
+local login_section = (m.hidden.ssid or "") .. (m.hidden.bssid or "")
+login_section = login_section.lower(login_section:gsub("[^%w_]", "_"))
+local cmd = uci:get("travelmate", login_section, "command")
+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")
+for _, z in ipairs(scripts) do
+ cmd_list:value(z)
+end
+cmd_list.default = cmd or "none"
+
function wssid.write(self, section, value)
newsection = uci:section("wireless", "wifi-iface", nil, {
mode = "sta",
else
uci:set("wireless", newsection, "encryption", "none")
end
+ local login_section = (wssid:formvalue(section) or "") .. (bssid:formvalue(section) or "")
+ login_section = login_section.lower(login_section:gsub("[^%w_]", "_"))
+ if not uci:get("travelmate", login_section) and cmd_list:formvalue(section) ~= "none" then
+ uci:set("travelmate", login_section, "login")
+ end
+ if uci:get("travelmate", login_section) then
+ uci:set("travelmate", login_section, "command", cmd_list:formvalue(section))
+ uci:save("travelmate")
+ uci:commit("travelmate")
+ end
uci:save("wireless")
uci:commit("wireless")
luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
-- Copyright 2017-2019 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0
-local fs = require("nixio.fs")
-local uci = require("luci.model.uci").cursor()
-local http = require("luci.http")
+local fs = require("nixio.fs")
+local uci = require("luci.model.uci").cursor()
+local http = require("luci.http")
+local util = require("luci.util")
+local scripts = util.split(util.trim(util.exec("ls /etc/travelmate/*.login 2>/dev/null")), "\n", nil, true) or {}
m = SimpleForm("edit", translate("Edit Wireless Uplink Configuration"))
m.submit = translate("Save")
}
local s = uci:get_all("wireless", m.hidden.cfg)
+
if s ~= nil then
wssid = m:field(Value, "ssid", translate("SSID"))
wssid.datatype = "rangelength(1,32)"
wkey.password = true
wkey.default = s.key or s.password
end
+
+ local login_section = (s.ssid or "") .. (s.bssid or "")
+ login_section = login_section.lower(login_section:gsub("[^%w_]", "_"))
+ local cmd = uci:get("travelmate", login_section, "command")
+ 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")
+ for _, z in ipairs(scripts) do
+ cmd_list:value(z)
+ end
+ cmd_list.default = cmd or "none"
else
m.on_cancel()
end
uci:set("wireless", m.hidden.cfg, "priv_key_pwd", privkeypwd:formvalue(section) or "")
end
end
+ local login_section = (wssid:formvalue(section) or "") .. (bssid:formvalue(section) or "")
+ login_section = login_section.lower(login_section:gsub("[^%w_]", "_"))
+ if not uci:get("travelmate", login_section) and cmd_list:formvalue(section) ~= "none" then
+ uci:set("travelmate", login_section, "login")
+ end
+ if uci:get("travelmate", login_section) then
+ uci:set("travelmate", login_section, "command", cmd_list:formvalue(section))
+ uci:save("travelmate")
+ uci:commit("travelmate")
+ end
uci:save("wireless")
uci:commit("wireless")
luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
if (view)
{
view.setAttribute("name", "station_nok");
- view.setAttribute("style", "color: #a22; font-weight: bold");
+ view.setAttribute("style", "text-align: left !important; color: #a22; font-weight: bold");
}
}
}
view = document.getElementById(search);
if (view)
{
- view.setAttribute("style", "color: #37c; font-weight: bold");
+ view.setAttribute("style", "text-align: left !important; color: #37c; font-weight: bold");
}
}
}
local encr = s.encryption or "-"
-%>
<div class="tr cbi-section-table-row cbi-rowstyle-1" name="station_ok" id="1_<%=device%>/<%=ssid%>/<%=bssid%>">
- <div class="td left" name="station_ok" id="2_<%=device%>/<%=ssid%>/<%=bssid%>"><%=device%></div>
- <div class="td left" name="station_ok" id="3_<%=device%>/<%=ssid%>/<%=bssid%>"><%=ssid%></div>
- <div class="td left" name="station_ok" id="4_<%=device%>/<%=ssid%>/<%=bssid%>"><%=bssid%></div>
- <div class="td left" name="station_ok" id="5_<%=device%>/<%=ssid%>/<%=bssid%>"><%=encr%></div>
+ <div class="td left" style="text-align: left !important" name="station_ok" id="2_<%=device%>/<%=ssid%>/<%=bssid%>"><%=device%></div>
+ <div class="td left" style="text-align: left !important" name="station_ok" id="3_<%=device%>/<%=ssid%>/<%=bssid%>"><%=ssid%></div>
+ <div class="td left" style="text-align: left !important" name="station_ok" id="4_<%=device%>/<%=ssid%>/<%=bssid%>"><%=bssid%></div>
+ <div class="td left" style="text-align: left !important" name="station_ok" id="5_<%=device%>/<%=ssid%>/<%=bssid%>"><%=encr%></div>
<div class="td middle cbi-section-actions">
<div>
<input class="cbi-button cbi-button-up" type="button" value="<%:Up%>" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=up'" alt="<%:Move up%>" title="<%:Move up%>" />
</div>
<%- for i, net in ipairs(iw.scanlist or { }) do -%>
<div class="tr cbi-section-table-row cbi-rowstyle-1">
- <div class="td left">
+ <div class="td left" style="text-align: left !important">
<%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%>
</div>
- <div class="td left">
+ <div class="td left" style="text-align: left !important">
<%=net.bssid and utl.pcdata(net.bssid)%>
</div>
- <div class="td left">
+ <div class="td left" style="text-align: left !important">
<%=format_wifi_encryption(net.encryption)%>
</div>
- <div class="td left">
+ <div class="td left" style="text-align: left !important">
<%=percent_wifi_signal(net)%> %
</div>
<div class="td cbi-section-actions">