<%#
Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
This is free software, licensed under the Apache License, Version 2.0
-%>

<%-
	local uci      = require("luci.model.uci").cursor()
	local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan"
-%>

<%+header%>

<script type="text/javascript">
//<![CDATA[
	function status_update(json)
	{
		var i;
		var j;
		var search;
		var view;
		var list;
		var status = json.data.travelmate_status;
		var faulty = json.data.faulty_stations;

		if (faulty)
		{
			var faulty_array = faulty.split(' ');
			for (i = 0; i < faulty_array.length; i++)
			{
				for (j = 1; j <= 5; j++)
				{
					search = j + "_" + faulty_array[i];
					view   = document.getElementById(search);
					if (view)
					{
						view.setAttribute("name", "station_nok");
						view.setAttribute("style", "color: #a22; font-weight: bold");
					}
				}
			}
		}
		else
		{
			list = document.getElementsByName("station_nok");
			if (list.length > 0)
			{
				for (i = 0; i < list.length; i++)
				{
					list[i].removeAttribute("style");
				}
			}
		}

		if (status.startsWith("connected"))
		{
			for (i = 1; i <= 5; i++)
			{
				search = i + "_" + json.data.station_id;
				view   = document.getElementById(search);
				if (view)
				{
					view.setAttribute("style", "color: #37c; font-weight: bold");
				}
			}
		}
		else
		{
			list = document.getElementsByName("station_ok");
			if (list.length > 0)
			{
				for (i = 0; i < list.length; i++)
				{
					list[i].removeAttribute("style");
				}
			}
		}
	}

	XHR.get('<%=luci.dispatcher.build_url("admin", "services", "travelmate", "status")%>', null,
	function(x, json_info)
	{
		if (!x || !json_info)
		{
			return;
		}
		status_update(json_info)
	});

	XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "services", "travelmate", "status")%>', null,
	function(x, json_info)
	{
		if (!x || !json_info)
		{
			return;
		}
		status_update(json_info)
	});
//]]>
</script>

<div class="cbi-map">
	<div class="cbi-map-descr">
		<%=translatef("Provides an overview of all configured uplinks for the travelmate interface (%s). You can edit, delete or re-order existing uplinks or scan for a new one. The currently used uplink is emphasized in blue, faulty stations in red.", trmiface)%>
	</div>

	<div class="cbi-section">
		<div class="table cbi-section-table">
			<div class="tr cbi-section-table-titles">
				<div class="th left"><%:Device%></div>
				<div class="th left"><%:SSID%></div>
				<div class="th left"><%:BSSID%></div>
				<div class="th left"><%:Encryption%></div>
				<div class="th center"><%:Action%></div>
			</div>
			<%- uci:foreach("wireless", "wifi-iface", function(s)
					local iface = s.network or ""
					if iface == trmiface then
						local section = s['.name'] or ""
						local device  = s.device or "-"
						local ssid    = s.ssid or "-"
						local bssid   = s.bssid or "-"
						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 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%>&amp;dir=up'" alt="<%:Move up%>" title="<%:Move up%>" />
						<input class="cbi-button cbi-button-down" type="button" value="<%:Down%>" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&amp;dir=down'" alt="<%:Move down%>" title="<%:Move down%>" />
						<input class="cbi-button cbi-button-edit" type="button" value="<%:Edit%>" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" />
						<input class="cbi-button cbi-button-remove" type="button" value="<%:Delete%>" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifidelete')%>?cfg=<%=section%>'" title="<%:Delete this Uplink%>" />
					</div>
				</div>
			</div>
		<%- end; end) -%>
		</div>
	</div>
	<div class="cbi-page-actions right">
		<%- uci:foreach("wireless", "wifi-device", function(s)
			local device = s[".name"]
			local hwmode = s.hwmode or "-" -%>
		<form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/wifiscan')%>" method="post">
			<input type="hidden" name="device" value="<%=device%>" />
			<input type="hidden" name="token" value="<%=token%>" />
			<input type="submit" class="cbi-button cbi-button-action important" title="<%:Find and join network on%> <%=device%>" value="<%:Scan%> <%=device%> (<%=hwmode%>)" />
		</form>
		<%- end) -%>
	</div>
</div>

<%+footer%>
