mirror of
https://github.com/DigitalDevices/octonet.git
synced 2023-10-10 13:36:52 +02:00
e65fb9aaab
Added features to TransponderList.json Allow to define sort order for channels Allow overwrite channel title,group,pids Define custom groups (i.e. favourites) Removed client side sorting from browsertv.html Reworked creating ChannelList.json from legacy database to allow serveside sorting.
414 lines
14 KiB
HTML
414 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>OctopusNet</title>
|
|
<link rel="stylesheet" type="text/css" href="/style.css">
|
|
<script type="text/javascript" src="/menu.js"></script>
|
|
<!-- Add included scripts here -->
|
|
<script type="text/javascript" src="/systeminfo.lua"></script>
|
|
<script type="text/javascript">Octoserve = false;</script>
|
|
<script type="text/javascript" src="/octoserve/serverinfo.js"></script>
|
|
|
|
<!-- Add page scripts here -->
|
|
<script type="text/javascript">
|
|
var hasCable = false;
|
|
var hasSat = false;
|
|
var hasTer = false;
|
|
|
|
var xmlhttp = new XMLHttpRequest();
|
|
var url = "/channelscan.lua?select=keys";
|
|
|
|
xmlhttp.onreadystatechange=function()
|
|
{
|
|
if (xmlhttp.readyState == 4 )
|
|
{
|
|
if( xmlhttp.status == 200 )
|
|
myFunction(xmlhttp.responseText);
|
|
}
|
|
}
|
|
|
|
function myFunction(response)
|
|
{
|
|
var kl = JSON.parse(response);
|
|
|
|
document.Cable.Select.length = 0;
|
|
document.Satellite1.Select.length = 0;
|
|
document.Satellite2.Select.length = 0;
|
|
document.Satellite3.Select.length = 0;
|
|
document.Satellite4.Select.length = 0;
|
|
|
|
document.Cable.Select.options[0] = (new Option("-", null, false, true) );
|
|
document.Satellite1.Select.options[0] = (new Option("-", null, false, true) );
|
|
document.Satellite2.Select.options[0] = (new Option("-", null, false, true) );
|
|
document.Satellite3.Select.options[0] = (new Option("-", null, false, true) );
|
|
document.Satellite4.Select.options[0] = (new Option("-", null, false, true) );
|
|
|
|
var iCable = 1;
|
|
var iSat = 1;
|
|
|
|
for(var i = 0; i < kl.KeyList.length; i++)
|
|
{
|
|
if( (hasCable && kl.KeyList[i].DVBType.indexOf("C") >= 0) ||
|
|
(hasTer && kl.KeyList[i].DVBType.indexOf("T") >= 0) )
|
|
{
|
|
var Select = (kl.KeyList[i].Key == "UM");
|
|
document.Cable.Select.options[iCable] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, Select) );
|
|
iCable += 1;
|
|
}
|
|
if( (hasSat && kl.KeyList[i].DVBType.indexOf("S") >= 0) )
|
|
{
|
|
var Select = (kl.KeyList[i].Key == "0192");
|
|
document.Satellite1.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, Select) );
|
|
document.Satellite2.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
|
|
document.Satellite3.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
|
|
document.Satellite4.Select.options[iSat] = (new Option(kl.KeyList[i].Title, kl.KeyList[i].Key, false, false) );
|
|
iSat += 1;
|
|
}
|
|
}
|
|
|
|
if( iCable > 1 )
|
|
document.getElementById("trCable").style.display = "table-row";
|
|
if( iSat > 1 )
|
|
{
|
|
document.getElementById("trSat1").style.display = "table-row";
|
|
document.getElementById("trSat2").style.display = "table-row";
|
|
document.getElementById("trSat3").style.display = "table-row";
|
|
document.getElementById("trSat4").style.display = "table-row";
|
|
}
|
|
|
|
}
|
|
|
|
function SetSource(Src,SourceIndex)
|
|
{
|
|
}
|
|
|
|
function OnLoad()
|
|
{
|
|
for(var i = 0; i < Octoserve.TunerList.length; i++ )
|
|
{
|
|
if( Octoserve.TunerList[i] )
|
|
{
|
|
if( Octoserve.TunerList[i].Desc.indexOf("C/T") >= 0 ) hasCable = true;
|
|
if( Octoserve.TunerList[i].Desc.indexOf("C/C2") >= 0 ) hasCable = true;
|
|
if( Octoserve.TunerList[i].Desc.indexOf("S/S2") >= 0 ) hasSat = true;
|
|
}
|
|
}
|
|
// TODO: differentiate between dvbc and dvbt
|
|
hasTer = hasCable;
|
|
|
|
xmlhttp.open("GET", url, true);
|
|
xmlhttp.send();
|
|
|
|
}
|
|
|
|
function DisableButtons(disabled)
|
|
{
|
|
document.getElementById("ScanButton").disabled = disabled;
|
|
document.getElementById("StatusButton").disabled = disabled;
|
|
document.getElementById("DeleteButton").disabled = disabled;
|
|
document.getElementById("RestoreButton").disabled = disabled;
|
|
}
|
|
|
|
|
|
var ScanReq = new XMLHttpRequest();
|
|
|
|
ScanReq.onreadystatechange=function()
|
|
{
|
|
if (ScanReq.readyState == 4 )
|
|
{
|
|
if( ScanReq.status == 200 )
|
|
ScanStatus(ScanReq.responseText);
|
|
else
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
document.getElementById("scantext").firstChild.nodeValue = "Error " + ScanReq.status;
|
|
DisableButtons(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
function GetStatus()
|
|
{
|
|
ScanReq.open("GET", "/channelscan.lua?select=status&t=" + Math.random(), true);
|
|
ScanReq.send();
|
|
}
|
|
|
|
function ScanStatus(response)
|
|
{
|
|
var s = JSON.parse(response);
|
|
var done = true;
|
|
if( s.status )
|
|
{
|
|
if( s.status == "active" )
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = s.count;
|
|
document.getElementById("scantext").firstChild.nodeValue = s.msg;
|
|
done = false;
|
|
}
|
|
else if( s.status == "busy" )
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
document.getElementById("scantext").firstChild.nodeValue = "BUSY";
|
|
}
|
|
else if( s.status == "done" )
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = s.count;
|
|
document.getElementById("scantext").firstChild.nodeValue = "Channels found";
|
|
}
|
|
else if( s.status == "deleted" )
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
document.getElementById("scantext").firstChild.nodeValue = "Channel list deleted";
|
|
}
|
|
else if( s.status == "restored" )
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
if( s.count == 0 )
|
|
document.getElementById("scantext").firstChild.nodeValue = "Nothing restored";
|
|
else
|
|
document.getElementById("scantext").firstChild.nodeValue = "Previous channel list restored";
|
|
}
|
|
else if( s.status == "retry" )
|
|
{
|
|
done = false;
|
|
}
|
|
}
|
|
|
|
if( done )
|
|
{
|
|
DisableButtons(false);
|
|
}
|
|
else
|
|
window.setTimeout(GetStatus,500);
|
|
}
|
|
|
|
|
|
function InitiateScan()
|
|
{
|
|
DisableButtons(true);
|
|
|
|
var param = "";
|
|
for(var i = 1; i < document.Cable.Select.options.length; i += 1)
|
|
{
|
|
if( document.Cable.Select.options[i].selected )
|
|
param = param + "&key=" + document.Cable.Select.options[i].value;
|
|
}
|
|
for(var i = 1; i < document.Satellite1.Select.options.length; i += 1)
|
|
{
|
|
if( document.Satellite1.Select.options[i].selected )
|
|
param = param + "&key=" + document.Satellite1.Select.options[i].value + ".1";
|
|
}
|
|
for(var i = 1; i < document.Satellite2.Select.options.length; i += 1)
|
|
{
|
|
if( document.Satellite2.Select.options[i].selected )
|
|
param = param + "&key=" + document.Satellite2.Select.options[i].value + ".2";
|
|
}
|
|
for(var i = 1; i < document.Satellite3.Select.options.length; i += 1)
|
|
{
|
|
if( document.Satellite3.Select.options[i].selected )
|
|
param = param + "&key=" + document.Satellite3.Select.options[i].value + ".3";
|
|
}
|
|
for(var i = 1; i < document.Satellite4.Select.options.length; i += 1)
|
|
{
|
|
if( document.Satellite4.Select.options[i].selected )
|
|
param = param + "&key=" + document.Satellite4.Select.options[i].value + ".4";
|
|
}
|
|
|
|
if( param != "" )
|
|
{
|
|
ScanReq.open("POST", "/channelscan.lua", true);
|
|
ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
|
ScanReq.send("select=scan" + param + "&sitables=1&sort=1&restartdms=1");
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
document.getElementById("scantext").firstChild.nodeValue = "Scanning...";
|
|
}
|
|
else
|
|
{
|
|
document.getElementById("scancount").firstChild.nodeValue = "\u00A0";
|
|
document.getElementById("scantext").firstChild.nodeValue = "\u00A0";
|
|
}
|
|
}
|
|
|
|
function PollStatus()
|
|
{
|
|
DisableButtons(true);
|
|
GetStatus();
|
|
}
|
|
|
|
function DeleteScan()
|
|
{
|
|
DisableButtons(true);
|
|
ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
|
ScanReq.send("select=delete");
|
|
}
|
|
|
|
function RestoreScan()
|
|
{
|
|
DisableButtons(true);
|
|
ScanReq.open("POST", "/channelscan.lua", true);
|
|
ScanReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
|
ScanReq.send("select=restore");
|
|
}
|
|
|
|
</script>
|
|
|
|
</head>
|
|
<body onload="OnLoad()">
|
|
|
|
<table class="maintable" align="center">
|
|
<colgroup>
|
|
<col width="182px"/>
|
|
<col width="728px"/>
|
|
</colgroup>
|
|
<tr><td class="maintd" colspan="2">
|
|
<a href="http://www.digitaldevices.de"><img src="/BannerDD.jpg" alt="DD" width="910" height="130" /></a>
|
|
</td></tr>
|
|
<tr><td class="maintd" colspan="2"> </td></tr>
|
|
<tr>
|
|
<td class="maintd"><script type="text/javascript">CreateMenu();</script></td>
|
|
<td class="content">
|
|
<div>
|
|
<!-- Begin Content -->
|
|
<table cellpadding="2px" align="center">
|
|
<tr id="trCable" style="display:none">
|
|
<td>Cable</td>
|
|
<td style="text-align:right">
|
|
<form name="Cable" action="">
|
|
<select name="Select" size="1" style="width: 300px" onchange="SetSource(0,document.Cable.Select.selectedIndex)" >
|
|
</select>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr id="trSat1" style="display:none">
|
|
<td>Satellite 1</td>
|
|
<td style="text-align:right">
|
|
<form name="Satellite1" action="">
|
|
<select name="Select" size="1" style="width: 300px" onchange="SetSource(1,document.Satellite1.Select.selectedIndex)" >
|
|
</select>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr id="trSat2" style="display:none">
|
|
<td>Satellite 2</td>
|
|
<td style="text-align:right">
|
|
<form name="Satellite2" action="">
|
|
<select name="Select" size="1" style="width: 300px" onchange="SetSource(2,document.Satellite2.Select.selectedIndex)" >
|
|
</select>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr id="trSat3" style="display:none">
|
|
<td>Satellite 3</td>
|
|
<td style="text-align:right">
|
|
<form name="Satellite3" action="">
|
|
<select name="Select" size="1" style="width: 300px" onchange="SetSource(3,document.Satellite3.Select.selectedIndex)" >
|
|
</select>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr id="trSat4" style="display:none">
|
|
<td>Satellite 4</td>
|
|
<td style="text-align:right">
|
|
<form name="Satellite4" action="">
|
|
<select name="Select" size="1" style="width: 300px" onchange="SetSource(4,document.Satellite4.Select.selectedIndex)" >
|
|
</select>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td style="text-align:right">
|
|
<form action="">
|
|
<input id="ScanButton" type="Button" value="Start Scan" onclick="InitiateScan()" >
|
|
<input id="StatusButton" type="Button" value="Get Status" onclick="PollStatus()" >
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div id="scancount" style="text-align:right"> </div>
|
|
</td>
|
|
<td>
|
|
<div id="scantext" style="text-align:left"> </div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td style="text-align:right">
|
|
<form action="">
|
|
<input id="DeleteButton" type="Button" value="Delete Scan" onclick="DeleteScan()" >
|
|
<input id="RestoreButton" type="Button" value="Restore Previous Scan" onclick="RestoreScan()" >
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<hr/>
|
|
<table cellpadding="2px" align="center">
|
|
<tr>
|
|
<td>System Channel Database</td>
|
|
<td>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<form action="dlchannels.lua" method="get">
|
|
<input type="submit" value="Download tar.gz" >
|
|
<input type="hidden" name="select" value="system" >
|
|
</form>
|
|
</td>
|
|
<td>
|
|
<form action="dlchannels.lua" method="get">
|
|
<input type="submit" value="Download zip" disabled >
|
|
<input type="hidden" name="select" value="system" >
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>User Channel Database</td>
|
|
<td>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<form action="dlchannels.lua" method="get">
|
|
<input type="submit" value="Download tar.gz">
|
|
<input type="hidden" name="select" value="user" >
|
|
</form>
|
|
</td>
|
|
<td>
|
|
<form action="dlchannels.lua" method="get">
|
|
<input type="submit" value="Download zip" disabled >
|
|
<input type="hidden" name="select" value="user" >
|
|
</form>
|
|
</td>
|
|
<td>
|
|
<form action="delchannels.lua" method="get">
|
|
<input type="submit" value="Delete">
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<form action="uplchannels.lua" method="post" enctype="multipart/form-data">
|
|
<input type="file" name="filename" value="*.gz" size="30" accept="application/zip,application/gzip">
|
|
<input type="submit" value="Upload">
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- End Content -->
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr><td colspan="2"> </td></tr>
|
|
</table>
|
|
|
|
</body>
|
|
</html>
|