ln.skyscanner/www/crawler/hosts.html

160 lines
5.5 KiB
HTML

<%frame "frame.html"%>
<div>
<h1>Crawler</h1>
</div>
<div>
<button onclick="skyapi().call('api/crawler','TriggerRecrawl');">Force Recrawl</button>
<button onclick="refreshHostTable();">!?</button>
<div>
Bezeichnung: <input type="text" id="htName" />
Prim&auml;re IP: <input type="text" id="htIP" />
<button onclick="createNewHost();">+</button>
</div>
</div>
<div class="scroll fill">
<table id="hostTable" style="max-height: 500px;"></table>
</div>
<div style="visibility: hidden;">
<div id="dlgCrawledHost">
<table>
<tr>
<td>Bezeichnung</td>
<td><input type="text" id="chName"/></td>
</tr>
<tr>
<td>PrimäreIP</td>
<td>
<select id="chPrimaryIP" size="1">
</select>
</td>
</tr>
<tr>
<td>IPv4 Adressen</td>
<td>
<select id="chIPs">
</select>
</td>
</tr>
<tr>
<td colspan="2">
<table id="chHints">
</table>
</td>
</tr>
</table>
</div>
</div>
<script type="text/javascript">
function scan(hostID)
{
skyapi().call("api/crawler","Crawl", [ hostID ]);
}
function details(crawledHost)
{
//var crawledHost = skyapi().call("api/crawler","GetHostByIP", [ primaryIP ]);
$("#chName").val( crawledHost.Name );
$("#chPrimaryIP").empty().append($("<option />").text( crawledHost.PrimaryIP ));
$("#chIPs").empty();
$.each( crawledHost.IPAddresses, function() {
$("#chIPs").append($("<option />").text(this));
});
$("#chHints").DataTable().clear();
$("#chHints").DataTable().rows.add( crawledHost.Hints ).draw();
$("#dlgCrawledHost").dialog({
modal: true,
buttons: {
"schliessen": function() {
$( this ).dialog( "close" );
}
},
width: "900px",
});
}
var hostTable = null;
function createNewHost()
{
try
{
var host = skyapi().call("api/crawler","AddHost", [ $("#htIP").val(), $("#htName").val() ]);
$('#hostTable').DataTable().rows.add( [ host ] ).draw();
} catch (e)
{
alert("Exception: " + e);
}
}
function refreshHostTable()
{
var hostList = skyapi().call("api/crawler","GetHosts");
if (!hostList)
hostList = []
$('#hostTable').DataTable().clear();
$('#hostTable').DataTable().rows.add( hostList ).draw();
}
var columns = [
{ title: "", data: null },
{ title: "Bezeichnung", data: "Name", sorter: "string", width: 180, editor: "input"},
{ title: "Primäre IP", data: "PrimaryIP", sorter: "string", width: 180 },
/* { title: "IP Addressen", data: "IPAddresses", sorter: "string" }, */
{ title: "Primäre HWADDR", data: "PrimaryHWAddr", sorter: "string", width: 240 },
/* { title: "HW Addresses", data: "HWAddresses", sorter: "string" }, */
{ title: "Zuerst gesehen", data: "FirstSeen", sorter: "", width: 180, formatter: "datetime", formatterParams: { inputFormat: "", outputFormat: "DD.MM.YYYY hh:mm:ss", invalidPlaceHolder: "-" } },
{ title: "Zuletzt gesehen", data: "LastSeen", sorter: "", width: 180, formatter: "datetime", formatterParams: { inputFormat: "", outputFormat: "DD.MM.YYYY hh:mm:ss", invalidPlaceHolder: "-" } },
{ title: "Letzter Scan", data: "LastCheck", sorter: "", width: 180, formatter: "datetime", formatterParams: { inputFormat: "", outputFormat: "DD.MM.YYYY hh:mm:ss", invalidPlaceHolder: "-" } },
{ title: "Letzte Scan Dauer", data: "LastCheckTime", sorter: "", width: 180 },
{ title: "Nächster Scan",data: "NextCheck",sorter: "",width: 180,formatter: "datetime",formatterParams: {inputFormat: "",outputFormat: "DD.MM.YYYY hh:mm:ss",invalidPlaceHolder: "-"} },
{ title: "SSH", data: "SSHDetected", width: 90 },
{ title: "SNMP", data: "SnmpDetected", width: 90 },
{ title: "RFC1213", data: "RFC1213Detected", width: 90 }
];
$("#hostTable").DataTable( {
columns: columns,
select: "single",
columnDefs: [
{
targets: 0,
data: null,
defaultContent: "<button id='details'>Details</button><button id='scan'>Scan</button>"
}
]
});
$("#hostTable tbody").on( "click", "button#details", function(){ details( $("#hostTable").DataTable().row( $(this).parents('tr') ).data() ); } );
$("#hostTable tbody").on( "click", "button#scan", function(){ scan( $("#hostTable").DataTable().row( $(this).parents('tr') ).data().ID ); } );
refreshHostTable();
//skyapi().addRefresh( refreshHostTable );
$("#chHints").DataTable({
columns: [
{ title: "Schlüssel", data: "Key" },
{ title: "Wert", data: "Value", render: function(d,t,r){ return $("<div>").text(d).html(); } }
],
});
</script>