rewritten network tab

This commit is contained in:
jokob-sk
2022-07-31 19:48:43 +10:00
parent 21bbca62c1
commit f6490f5325
5 changed files with 324 additions and 371 deletions

View File

@@ -267,13 +267,24 @@ if ($_REQUEST['mac'] == 'Internet') { $DevDetail_Tap_temp = "Tools"; } else { $D
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label"><?php echo $pia_lang['DevDetail_MainInfo_Network'];?></label> <label class="col-sm-6 control-label"><?php echo $pia_lang['DevDetail_MainInfo_Network'];?></label>
<div class="col-sm-6"> <div class="col-sm-6">
<input class="form-control" id="txtInfrastructure" type="text" value="--"> <div class="input-group">
<input class="form-control" id="txtNetworkNodeMac" type="text" value="--">
<div class="input-group-btn">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false" id="buttonNetworkNodeMac">
<span class="fa fa-caret-down"></span></button>
<ul id="dropdownNetworkNodeMac" class="dropdown-menu dropdown-menu-right">
</ul>
</div>
</div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label"><?php echo $pia_lang['DevDetail_MainInfo_Network_Port'];?></label> <label class="col-sm-6 control-label"><?php echo $pia_lang['DevDetail_MainInfo_Network_Port'];?></label>
<div class="col-sm-6"> <div class="col-sm-6">
<input class="form-control" id="txtInfrastructurePort" type="text" value="--"> <input class="form-control" id="txtNetworkPort" type="text" value="--">
</div> </div>
</div> </div>
@@ -807,6 +818,7 @@ function initializeCombos () {
initializeCombo ( $('#dropdownDeviceType')[0], 'getDeviceTypes', 'txtDeviceType'); initializeCombo ( $('#dropdownDeviceType')[0], 'getDeviceTypes', 'txtDeviceType');
initializeCombo ( $('#dropdownGroup')[0], 'getGroups', 'txtGroup'); initializeCombo ( $('#dropdownGroup')[0], 'getGroups', 'txtGroup');
initializeCombo ( $('#dropdownLocation')[0], 'getLocations', 'txtLocation'); initializeCombo ( $('#dropdownLocation')[0], 'getLocations', 'txtLocation');
initializeCombo ( $('#dropdownNetworkNodeMac')[0], 'getNetworkNodes', 'txtNetworkNodeMac');
// Initialize static combos // Initialize static combos
initializeComboSkipRepeated (); initializeComboSkipRepeated ();
@@ -827,10 +839,17 @@ function initializeCombo (HTMLelement, queryAction, txtDataField) {
order = item['order']; order = item['order'];
} }
id = item['name'];
// use explicitly specified id (value) if avaliable
if(item['id'])
{
id = item['id'];
}
// add dropdown item // add dropdown item
HTMLelement.innerHTML += HTMLelement.innerHTML +=
'<li><a href="javascript:void(0)" onclick="setTextValue(\''+ '<li><a href="javascript:void(0)" onclick="setTextValue(\''+
txtDataField +'\',\''+ item['name'] +'\')">'+ item['name'] + '</a></li>' txtDataField +'\',\''+ id +'\')">'+ item['name'] + '</a></li>'
}); });
}); });
} }
@@ -1120,8 +1139,8 @@ function getDeviceData (readAllData=false) {
$('#txtGroup').val ('--'); $('#txtGroup').val ('--');
$('#txtLocation').val ('--'); $('#txtLocation').val ('--');
$('#txtComments').val ('--'); $('#txtComments').val ('--');
$('#txtInfrastructure').val ('--'); $('#networkNodeMac').val ('--');
$('#txtInfrastructurePort').val ('--'); $('#txtNetworkPort').val ('--');
$('#txtFirstConnection').val ('--'); $('#txtFirstConnection').val ('--');
$('#txtLastConnection').val ('--'); $('#txtLastConnection').val ('--');
@@ -1209,8 +1228,8 @@ function getDeviceData (readAllData=false) {
$('#txtGroup').val (deviceData['dev_Group']); $('#txtGroup').val (deviceData['dev_Group']);
$('#txtLocation').val (deviceData['dev_Location']); $('#txtLocation').val (deviceData['dev_Location']);
$('#txtComments').val (deviceData['dev_Comments']); $('#txtComments').val (deviceData['dev_Comments']);
$('#txtInfrastructure').val (deviceData['dev_Infrastructure']); $('#txtNetworkNodeMac').val (deviceData['dev_Network_Node_MAC']);
$('#txtInfrastructurePort').val (deviceData['dev_Infrastructure_port']); $('#txtNetworkPort').val (deviceData['dev_Network_Node_port']);
$('#txtFirstConnection').val (deviceData['dev_FirstConnection']); $('#txtFirstConnection').val (deviceData['dev_FirstConnection']);
$('#txtLastConnection').val (deviceData['dev_LastConnection']); $('#txtLastConnection').val (deviceData['dev_LastConnection']);
@@ -1319,8 +1338,8 @@ function setDeviceData (refreshCallback='') {
+ '&group=' + $('#txtGroup').val() + '&group=' + $('#txtGroup').val()
+ '&location=' + $('#txtLocation').val() + '&location=' + $('#txtLocation').val()
+ '&comments=' + $('#txtComments').val() + '&comments=' + $('#txtComments').val()
+ '&infrastructure=' + $('#txtInfrastructure').val() + '&networknode=' + $('#txtNetworkNodeMac').val()
+ '&infrastructureport=' + $('#txtInfrastructurePort').val() + '&networknodeport=' + $('#txtNetworkPort').val()
+ '&staticIP=' + ($('#chkStaticIP')[0].checked * 1) + '&staticIP=' + ($('#chkStaticIP')[0].checked * 1)
+ '&scancycle=' + $('#txtScanCycle').val().split(' ')[0] + '&scancycle=' + $('#txtScanCycle').val().split(' ')[0]
+ '&alertevents=' + ($('#chkAlertEvents')[0].checked * 1) + '&alertevents=' + ($('#chkAlertEvents')[0].checked * 1)
@@ -1342,6 +1361,7 @@ function setDeviceData (refreshCallback='') {
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
function askSkipNotifications () { function askSkipNotifications () {
// Check MAC // Check MAC

View File

@@ -1,71 +1,30 @@
<?php <?php
session_start(); session_start();
if ($_SESSION["login"] != 1) if ($_SESSION["login"] != 1)
{ {
header('Location: /pialert/index.php'); header('Location: /pialert/index.php');
exit; exit;
} }
require 'php/templates/header.php'; require 'php/templates/header.php';
require 'php/server/db.php'; require 'php/server/db.php';
$DBFILE = '../db/pialert.db'; $DBFILE = '../db/pialert.db';
OpenDB(); OpenDB();
// #####################################
// ## Create Table if not exists'
// #####################################
$sql = 'CREATE TABLE IF NOT EXISTS "network_infrastructure" (
"device_id" INTEGER,
"net_device_name" TEXT NOT NULL,
"net_device_typ" TEXT NOT NULL,
"net_device_port" INTEGER,
PRIMARY KEY("device_id" AUTOINCREMENT)
)';
$result = $db->query($sql);
// #####################################
// ## Expand Devices Table
// #####################################
$sql = 'ALTER TABLE "Devices" ADD "dev_Infrastructure" INTEGER';
$result = $db->query($sql);
$sql = 'ALTER TABLE "Devices" ADD "dev_Infrastructure_port" INTEGER';
$result = $db->query($sql);
// #####################################
// Add New Network Devices
// #####################################
if ($_REQUEST['Networkinsert'] == "yes") {
if (isset($_REQUEST['NetworkDeviceName']) && isset($_REQUEST['NetworkDeviceTyp']))
{
$sql = 'INSERT INTO "network_infrastructure" ("net_device_name", "net_device_typ", "net_device_port") VALUES("'.$_REQUEST['NetworkDeviceName'].'", "'.$_REQUEST['NetworkDeviceTyp'].'", "'.$_REQUEST['NetworkDevicePort'].'")';
$result = $db->query($sql);
}
}
// #####################################
// Add New Network Devices
// #####################################
if ($_REQUEST['Networkedit'] == "yes") {
if (isset($_REQUEST['NewNetworkDeviceName']) && isset($_REQUEST['NewNetworkDeviceTyp']))
{
$sql = 'UPDATE "network_infrastructure" SET "net_device_name" = "'.$_REQUEST['NewNetworkDeviceName'].'", "net_device_typ" = "'.$_REQUEST['NewNetworkDeviceTyp'].'", "net_device_port" = "'.$_REQUEST['NewNetworkDevicePort'].'" WHERE "device_id"="'.$_REQUEST['NetworkDeviceID'].'"';
//$sql = 'INSERT INTO "network_infrastructure" ("net_device_name", "net_device_typ", "net_device_port") VALUES("'.$_REQUEST['NetworkDeviceName'].'", "'.$_REQUEST['NetworkDeviceTyp'].'", "'.$_REQUEST['NetworkDevicePort'].'")';
$result = $db->query($sql);
}
}
// #####################################
// remove Network Devices
// #####################################
if ($_REQUEST['Networkdelete'] == "yes") {
if (isset($_REQUEST['NetworkDeviceID']))
{
$sql = 'DELETE FROM "network_infrastructure" WHERE "device_id"="'.$_REQUEST['NetworkDeviceID'].'"';
$result = $db->query($sql);
}
}
// #####################################
// ## Expand Devices Table
// #####################################
$sql = 'ALTER TABLE "Devices" ADD "dev_Network_Node_MAC" INTEGER';
$result = $db->query($sql);
$sql = 'ALTER TABLE "Devices" ADD "dev_Network_Node_port" INTEGER';
$result = $db->query($sql);
?> ?>
<!-- Page ------------------------------------------------------------------ --> <!-- Page ------------------------------------------------------------------ -->
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content header--------------------------------------------------------- --> <!-- Content header--------------------------------------------------------- -->
<section class="content-header"> <section class="content-header">
<?php require 'php/templates/notification.php'; ?> <?php require 'php/templates/notification.php'; ?>
<h1 id="pageTitle"> <h1 id="pageTitle">
@@ -74,135 +33,26 @@ if ($_REQUEST['Networkdelete'] == "yes") {
</section> </section>
<?php <?php
echo $_REQUEST['device_id']; echo $_REQUEST['net_MAC'];
?> ?>
<!-- Main content ---------------------------------------------------------- --> <!-- Main content ---------------------------------------------------------- -->
<section class="content"> <section class="content">
<div class="box box-default collapsed-box"> <!-- collapsed-box -->
<div class="box-header with-border" data-widget="collapse">
<h3 class="box-title"><?php echo $pia_lang['Network_ManageDevices'];?></h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
</div>
</div>
<!-- /.box-header -->
<div class="box-body" style="">
<div class="row">
<div class="col-md-4">
<h4 class="box-title"><?php echo $pia_lang['Network_ManageAdd'];?></h4>
<form role="form" method="post" action="./network.php">
<div class="form-group">
<label for="NetworkDeviceName"><?php echo $pia_lang['Network_ManageAdd_Name'];?>:</label>
<input type="text" class="form-control" id="NetworkDeviceName" name="NetworkDeviceName" placeholder="<?php echo $pia_lang['Network_ManageAdd_Name_text'];?>">
</div>
<!-- /.form-group -->
<div class="form-group">
<label><?php echo $pia_lang['Network_ManageAdd_Type'];?>:</label>
<select class="form-control" name="NetworkDeviceTyp">
<option value=""><?php echo $pia_lang['Network_ManageAdd_Type_text'];?></option>
<option value="Router">Router</option>
<option value="Switch">Switch</option>
<option value="WLAN">WLAN</option>
<option value="Powerline">Powerline</option>
</select>
</div>
<div class="form-group">
<label for="NetworkDevicePort"><?php echo $pia_lang['Network_ManageAdd_Port'];?>:</label>
<input type="text" class="form-control" id="NetworkDevicePort" name="NetworkDevicePort" placeholder="<?php echo $pia_lang['Network_ManageAdd_Port_text'];?>">
</div>
<div class="form-group">
<button type="submit" class="btn btn-success" name="Networkinsert" value="yes"><?php echo $pia_lang['Network_ManageAdd_Submit'];?></button>
</div>
</form>
<!-- /.form-group -->
</div>
<!-- /.col -->
<div class="col-md-4">
<h4 class="box-title"><?php echo $pia_lang['Network_ManageEdit'];?></h4>
<form role="form" method="post" action="./network.php">
<div class="form-group">
<label><?php echo $pia_lang['Network_ManageEdit_ID'];?>:</label>
<select class="form-control" name="NetworkDeviceID">
<option value=""><?php echo $pia_lang['Network_ManageEdit_ID_text'];?></option>
<?php <?php
$sql = 'SELECT "device_id", "net_device_name", "net_device_typ" FROM "network_infrastructure"';
$result = $db->query($sql);//->fetchArray(SQLITE3_ASSOC);
while($res = $result->fetchArray(SQLITE3_ASSOC)){
if(!isset($res['device_id'])) continue;
echo '<option value="'.$res['device_id'].'">'.$res['net_device_name'].' / '.$res['net_device_typ'].'</option>';
}
?>
</select>
</div>
<div class="form-group">
<label for="NetworkDeviceName"><?php echo $pia_lang['Network_ManageEdit_Name'];?>:</label>
<input type="text" class="form-control" id="NewNetworkDeviceName" name="NewNetworkDeviceName" placeholder="<?php echo $pia_lang['Network_ManageEdit_Name_text'];?>">
</div>
<div class="form-group">
<label><?php echo $pia_lang['Network_ManageEdit_Type'];?>:</label>
<select class="form-control" name="NewNetworkDeviceTyp">
<option value=""><?php echo $pia_lang['Network_ManageEdit_Type_text'];?></option>
<option value="Router">Router</option>
<option value="Switch">Switch</option>
<option value="WLAN">WLAN</option>
<option value="Powerline">Powerline</option>
</select>
</div>
<div class="form-group">
<label for="NetworkDevicePort"><?php echo $pia_lang['Network_ManageEdit_Port'];?>:</label>
<input type="text" class="form-control" id="NewNetworkDevicePort" name="NewNetworkDevicePort" placeholder="<?php echo $pia_lang['Network_ManageEdit_Port_text'];?>">
</div>
<!-- /.form-group -->
<div class="form-group">
<button type="submit" class="btn btn-primary" name="Networkedit" value="yes"><?php echo $pia_lang['Network_ManageEdit_Submit'];?></button>
</div>
</form>
<!-- /.form-group -->
</div>
<!-- /.col -->
<div class="col-md-4">
<h4 class="box-title"><?php echo $pia_lang['Network_ManageDel'];?></h4>
<form role="form" method="post" action="./network.php">
<div class="form-group">
<label><?php echo $pia_lang['Network_ManageDel_Name'];?>:</label>
<select class="form-control" name="NetworkDeviceID">
<option value=""><?php echo $pia_lang['Network_ManageDel_Name_text'];?></option>
<?php
$sql = 'SELECT "device_id", "net_device_name", "net_device_typ" FROM "network_infrastructure"';
$result = $db->query($sql);//->fetchArray(SQLITE3_ASSOC);
while($res = $result->fetchArray(SQLITE3_ASSOC)){
if(!isset($res['device_id'])) continue;
echo '<option value="'.$res['device_id'].'">'.$res['net_device_name'].' / '.$res['net_device_typ'].'</option>';
}
?>
</select>
</div>
<!-- /.form-group -->
<div class="form-group">
<button type="submit" class="btn btn-danger" name="Networkdelete" value="yes"><?php echo $pia_lang['Network_ManageDel_Submit'];?></button>
</div>
</form>
<!-- /.form-group -->
</div>
</div>
<!-- /.row -->
</div>
<!-- /.box-body -->
</div>
<?php function createDeviceTabs($mac, $name, $type, $port, $activetab) {
// #####################################
// ## Start Function Setup echo '<li class="'.$activetab.'"><a href="#'.str_replace(":", "_", $mac).'" data-toggle="tab">'.$name.' / '.$type;
// ##################################### if ($port != "") {
function createnetworktab($pia_func_netdevid, $pia_func_netdevname, $pia_func_netdevtyp, $pia_func_netdevport, $activetab) { echo ' ('.$port.')';
echo '<li class="'.$activetab.'"><a href="#'.$pia_func_netdevid.'" data-toggle="tab">'.$pia_func_netdevname.' / '.$pia_func_netdevtyp; }
if ($pia_func_netdevport != "") {echo ' ('.$pia_func_netdevport.')';}
echo '</a></li>'; echo '</a></li>';
} }
function createnetworktabcontent($pia_func_netdevid, $pia_func_netdevname, $pia_func_netdevtyp, $pia_func_netdevport, $activetab) {
function createTabContent($mac, $name, $type, $port, $activetab) {
global $pia_lang; global $pia_lang;
echo '<div class="tab-pane '.$activetab.'" id="'.$pia_func_netdevid.'"> echo '<div class="tab-pane '.$activetab.'" id="'.str_replace(":", "_", $mac).'">
<h4>'.$pia_func_netdevname.' (ID: '.$pia_func_netdevid.')</h4><br>'; <h4>'.$name.' (ID: '.str_replace(":", "_", $mac).')</h4><br>';
echo '<div class="box-body no-padding"> echo '<div class="box-body no-padding">
<table class="table table-striped"> <table class="table table-striped">
<tbody><tr> <tbody><tr>
@@ -213,7 +63,7 @@ function createnetworktabcontent($pia_func_netdevid, $pia_func_netdevname, $pia_
</tr>'; </tr>';
// Prepare Array for Devices with Port value // Prepare Array for Devices with Port value
// If no Port is set, the Port number is set to 1 // If no Port is set, the Port number is set to 1
if ($pia_func_netdevport == "") {$pia_func_netdevport = 1;} if ($port == "") {$port = 1;}
// Create Array with specific length // Create Array with specific length
$network_device_portname = array(); $network_device_portname = array();
$network_device_portmac = array(); $network_device_portmac = array();
@@ -221,22 +71,42 @@ function createnetworktabcontent($pia_func_netdevid, $pia_func_netdevname, $pia_
$network_device_portstate = array(); $network_device_portstate = array();
// make sql query for Network Hardware ID // make sql query for Network Hardware ID
global $db; global $db;
$func_sql = 'SELECT * FROM "Devices" WHERE "dev_Infrastructure" = "'.$pia_func_netdevid.'"'; $func_sql = 'SELECT * FROM "Devices" WHERE "dev_Network_Node_MAC" = "'.$mac.'"';
$func_result = $db->query($func_sql);//->fetchArray(SQLITE3_ASSOC); $func_result = $db->query($func_sql);
while($func_res = $func_result->fetchArray(SQLITE3_ASSOC)) { while($func_res = $func_result->fetchArray(SQLITE3_ASSOC)) {
//if(!isset($func_res['dev_Name'])) continue; // Online / Offline state of port
if ($func_res['dev_PresentLastScan'] == 1) {$port_state = '<div class="badge bg-green text-white" style="width: 60px;">Online</div>';} else {$port_state = '<div class="badge bg-red text-white" style="width: 60px;">Offline</div>';} if ($func_res['dev_PresentLastScan'] == 1) {
$port_state = '<div class="badge bg-green text-white" style="width: 60px;">Online</div>';
} else {
$port_state = '<div class="badge bg-red text-white" style="width: 60px;">Offline</div>';
}
// Prepare Table with Port > push values in array // Prepare Table with Port > push values in array
if ($pia_func_netdevport > 1) if ($port > 1)
{ {
if (stristr($func_res['dev_Infrastructure_port'], ',') == '') { if (stristr($func_res['dev_Network_Node_port'], ',') == '') {
if ($network_device_portname[$func_res['dev_Infrastructure_port']] != '') {$network_device_portname[$func_res['dev_Infrastructure_port']] = $network_device_portname[$func_res['dev_Infrastructure_port']].','.$func_res['dev_Name'];} else {$network_device_portname[$func_res['dev_Infrastructure_port']] = $func_res['dev_Name'];} if ($network_device_portname[$func_res['dev_Network_Node_port']] != '') {
if ($network_device_portmac[$func_res['dev_Infrastructure_port']] != '') {$network_device_portmac[$func_res['dev_Infrastructure_port']] = $network_device_portmac[$func_res['dev_Infrastructure_port']].','.$func_res['dev_MAC'];} else {$network_device_portmac[$func_res['dev_Infrastructure_port']] = $func_res['dev_MAC'];} $network_device_portname[$func_res['dev_Network_Node_port']] = $network_device_portname[$func_res['dev_Network_Node_port']].','.$func_res['dev_Name'];
if ($network_device_portip[$func_res['dev_Infrastructure_port']] != '') {$network_device_portip[$func_res['dev_Infrastructure_port']] = $network_device_portip[$func_res['dev_Infrastructure_port']].','.$func_res['dev_LastIP'];} else {$network_device_portip[$func_res['dev_Infrastructure_port']] = $func_res['dev_LastIP'];} } else {
if (isset($network_device_portstate[$func_res['dev_Infrastructure_port']])) {$network_device_portstate[$func_res['dev_Infrastructure_port']] = $network_device_portstate[$func_res['dev_Infrastructure_port']].','.$func_res['dev_PresentLastScan'];} else {$network_device_portstate[$func_res['dev_Infrastructure_port']] = $func_res['dev_PresentLastScan'];} $network_device_portname[$func_res['dev_Network_Node_port']] = $func_res['dev_Name'];
}
if ($network_device_portmac[$func_res['dev_Network_Node_port']] != '') {
$network_device_portmac[$func_res['dev_Network_Node_port']] = $network_device_portmac[$func_res['dev_Network_Node_port']].','.$func_res['dev_MAC'];
} else {
$network_device_portmac[$func_res['dev_Network_Node_port']] = $func_res['dev_MAC'];
}
if ($network_device_portip[$func_res['dev_Network_Node_port']] != '') {
$network_device_portip[$func_res['dev_Network_Node_port']] = $network_device_portip[$func_res['dev_Network_Node_port']].','.$func_res['dev_LastIP'];
} else {
$network_device_portip[$func_res['dev_Network_Node_port']] = $func_res['dev_LastIP'];
}
if (isset($network_device_portstate[$func_res['dev_Network_Node_port']])) {
$network_device_portstate[$func_res['dev_Network_Node_port']] = $network_device_portstate[$func_res['dev_Network_Node_port']].','.$func_res['dev_PresentLastScan'];
} else {
$network_device_portstate[$func_res['dev_Network_Node_port']] = $func_res['dev_PresentLastScan'];
}
} else { } else {
$multiport = array(); $multiport = array();
$multiport = explode(',',$func_res['dev_Infrastructure_port']); $multiport = explode(',',$func_res['dev_Network_Node_port']);
foreach($multiport as $row) { foreach($multiport as $row) {
$network_device_portname[trim($row)] = $func_res['dev_Name']; $network_device_portname[trim($row)] = $func_res['dev_Name'];
$network_device_portmac[trim($row)] = $func_res['dev_MAC']; $network_device_portmac[trim($row)] = $func_res['dev_MAC'];
@@ -248,15 +118,15 @@ function createnetworktabcontent($pia_func_netdevid, $pia_func_netdevname, $pia_
} else { } else {
// Table without Port > echo values // Table without Port > echo values
// Specific icon for devicetype // Specific icon for devicetype
if ($pia_func_netdevtyp == "WLAN") {$dev_port_icon = 'fa-wifi';} if ($type == "WLAN") {$dev_port_icon = 'fa-wifi';}
if ($pia_func_netdevtyp == "Powerline") {$dev_port_icon = 'fa-flash';} if ($type == "Powerline") {$dev_port_icon = 'fa-flash';}
echo '<tr><td style="text-align: center;"><i class="fa '.$dev_port_icon.'"></i></td><td>'.$port_state.'</td><td style="padding-left: 10px;"><a href="./deviceDetails.php?mac='.$func_res['dev_MAC'].'"><b>'.$func_res['dev_Name'].'</b></a></td><td>'.$func_res['dev_LastIP'].'</td></tr>'; echo '<tr><td style="text-align: center;"><i class="fa '.$dev_port_icon.'"></i></td><td>'.$port_state.'</td><td style="padding-left: 10px;"><a href="./deviceDetails.php?mac='.$func_res['dev_MAC'].'"><b>'.$func_res['dev_Name'].'</b></a></td><td>'.$func_res['dev_LastIP'].'</td></tr>';
} }
} }
// Create table with Port // Create table with Port
if ($pia_func_netdevport > 1) if ($port > 1)
{ {
for ($x=1; $x<=$pia_func_netdevport; $x++) for ($x=1; $x<=$port; $x++)
{ {
// Prepare online/offline badge for later functions // Prepare online/offline badge for later functions
$online_badge = '<div class="badge bg-green text-white" style="width: 60px;">Online</div>'; $online_badge = '<div class="badge bg-green text-white" style="width: 60px;">Online</div>';
@@ -317,52 +187,70 @@ function createnetworktabcontent($pia_func_netdevid, $pia_func_netdevname, $pia_
echo '</tr>'; echo '</tr>';
} }
} }
echo ' </tbody></table> echo ' </tbody>
</table>
</div>'; </div>';
echo '</div> '; echo '</div> ';
} }
// #####################################
// ## End Function Setup
// #####################################
// #####################################
// ## Create Tabs // Create Tabs
// #####################################
$sql = 'SELECT "device_id", "net_device_name", "net_device_typ", "net_device_port" FROM "network_infrastructure"'; $sql = 'select dev_MAC, dev_Name, dev_DeviceType, dev_Network_Node_port from Devices where dev_DeviceType in ("AP", "Gateway", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter")';
$result = $db->query($sql);//->fetchArray(SQLITE3_ASSOC); $result = $db->query($sql);
?>
// array
$tableData = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// Push row data
$tableData[] = array('dev_MAC' => $row['dev_MAC'],
'dev_Name' => $row['dev_Name'],
'dev_DeviceType' => $row['dev_DeviceType'],
'dev_Network_Node_port' => $row['dev_Network_Node_port'] );
}
// Control no rows
if (empty($tableData)) {
$tableData = [];
}
?>
<div class="nav-tabs-custom" style="margin-bottom: 0px;"> <div class="nav-tabs-custom" style="margin-bottom: 0px;">
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<?php <?php
$i = 0; $activetab='active';
while($res = $result->fetchArray(SQLITE3_ASSOC)){ foreach ($tableData as $row) {
if(!isset($res['device_id'])) continue; createDeviceTabs($row['dev_MAC'],
if ($i == 0) {$active = 'active';} else {$active = '';} $row['dev_Name'],
createnetworktab($res['device_id'], $res['net_device_name'], $res['net_device_typ'], $res['net_device_port'], $active); $row['dev_DeviceType'],
$i++; $row['dev_Network_Node_port'],
} $activetab);
?>
$activetab = "";
}
?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<?php <?php
// ##################################### // Ctreate Tab Content
// ## Ctreate Tab Content $activetab='active';
// ##################################### while($res = $result->fetchArray(SQLITE3_ASSOC)){
$i = 0; createTabContent(
while($res = $result->fetchArray(SQLITE3_ASSOC)){ $res['dev_MAC'],
if(!isset($res['device_id'])) continue; $res['dev_Name'],
if ($i == 0) {$active = 'active';} else {$active = '';} $res['dev_DeviceType'],
createnetworktabcontent($res['device_id'], $res['net_device_name'], $res['net_device_typ'], $res['net_device_port'], $active); $res['dev_Network_Node_port'],
$i++; $activetab);
}
unset($i); $activetab = "";
?> }
?>
<!-- /.tab-pane --> <!-- /.tab-pane -->
</div> </div>
<!-- /.tab-content --> <!-- /.tab-content -->
</div> </div>
<div style="width: 100%; height: 20px;"></div> <div style="width: 100%; height: 20px;"></div>
</section> </section>
<!-- /.content --> <!-- /.content -->
</div> </div>

View File

@@ -41,6 +41,7 @@ if (strlen($pia_lang_selected) == 0) {$pia_lang_selected = 'en_us';}
switch ($action) { switch ($action) {
case 'getDeviceData': getDeviceData(); break; case 'getDeviceData': getDeviceData(); break;
case 'setDeviceData': setDeviceData(); break; case 'setDeviceData': setDeviceData(); break;
case 'getNetworkNodes': getNetworkNodes(); break;
case 'deleteDevice': deleteDevice(); break; case 'deleteDevice': deleteDevice(); break;
case 'deleteAllWithEmptyMACs': deleteAllWithEmptyMACs(); break; case 'deleteAllWithEmptyMACs': deleteAllWithEmptyMACs(); break;
case 'createBackupDB': createBackupDB(); break; case 'createBackupDB': createBackupDB(); break;
@@ -94,8 +95,8 @@ function getDeviceData() {
$deviceData = $row; $deviceData = $row;
$mac = $deviceData['dev_MAC']; $mac = $deviceData['dev_MAC'];
$deviceData['dev_Infrastructure'] = $row['dev_Infrastructure']; $deviceData['dev_Network_Node_MAC'] = $row['dev_Network_Node_MAC'];
$deviceData['dev_Infrastructure_port'] = $row['dev_Infrastructure_port']; $deviceData['dev_Network_Node_port'] = $row['dev_Network_Node_port'];
$deviceData['dev_FirstConnection'] = formatDate ($row['dev_FirstConnection']); // Date formated $deviceData['dev_FirstConnection'] = formatDate ($row['dev_FirstConnection']); // Date formated
$deviceData['dev_LastConnection'] = formatDate ($row['dev_LastConnection']); // Date formated $deviceData['dev_LastConnection'] = formatDate ($row['dev_LastConnection']); // Date formated
@@ -165,8 +166,8 @@ function setDeviceData() {
dev_Group = "'. quotes($_REQUEST['group']) .'", dev_Group = "'. quotes($_REQUEST['group']) .'",
dev_Location = "'. quotes($_REQUEST['location']) .'", dev_Location = "'. quotes($_REQUEST['location']) .'",
dev_Comments = "'. quotes($_REQUEST['comments']) .'", dev_Comments = "'. quotes($_REQUEST['comments']) .'",
dev_Infrastructure = "'. quotes($_REQUEST['infrastructure']).'", dev_Network_Node_MAC = "'. quotes($_REQUEST['networknode']).'",
dev_Infrastructure_port = "'. quotes($_REQUEST['infrastructureport']).'", dev_Network_Node_port = "'. quotes($_REQUEST['networknodeport']).'",
dev_StaticIP = "'. quotes($_REQUEST['staticIP']) .'", dev_StaticIP = "'. quotes($_REQUEST['staticIP']) .'",
dev_ScanCycle = "'. quotes($_REQUEST['scancycle']) .'", dev_ScanCycle = "'. quotes($_REQUEST['scancycle']) .'",
dev_AlertEvents = "'. quotes($_REQUEST['alertevents']) .'", dev_AlertEvents = "'. quotes($_REQUEST['alertevents']) .'",
@@ -599,12 +600,43 @@ function getOwners() {
} }
//------------------------------------------------------------------------------
// Query Device Data
//------------------------------------------------------------------------------
function getNetworkNodes() {
global $db;
// Device Data
$sql = 'SELECT * FROM Devices WHERE dev_DeviceType in ( "AP", "Gateway", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter")';
$result = $db->query($sql);
// arrays of rows
$tableData = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// Push row data
$tableData[] = array('id' => $row['dev_MAC'],
'name' => $row['dev_Name'] );
}
// Control no rows
if (empty($tableData)) {
$tableData = [];
}
// Return json
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Query the List of types // Query the List of types
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
function getDeviceTypes() { function getDeviceTypes() {
global $db; global $db;
$networkTypes = getNetworkTypes();
// SQL // SQL
$sql = 'SELECT DISTINCT 9 as dev_Order, dev_DeviceType $sql = 'SELECT DISTINCT 9 as dev_Order, dev_DeviceType
FROM Devices FROM Devices
@@ -613,7 +645,7 @@ function getDeviceTypes() {
"Laptop", "Mini PC", "PC", "Printer", "Server", "Singleboard Computer (SBC)", "Laptop", "Mini PC", "PC", "Printer", "Server", "Singleboard Computer (SBC)",
"Game Console", "SmartTV", "TV Decoder", "Virtual Assistance", "Game Console", "SmartTV", "TV Decoder", "Virtual Assistance",
"Clock", "House Appliance", "Phone", "Radio", "Clock", "House Appliance", "Phone", "Radio",
"AP", "NAS", "PLC", "Router") "AP", "Gateway", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter" )
UNION SELECT 1 as dev_Order, "Smartphone" UNION SELECT 1 as dev_Order, "Smartphone"
UNION SELECT 1 as dev_Order, "Tablet" UNION SELECT 1 as dev_Order, "Tablet"
@@ -624,6 +656,7 @@ function getDeviceTypes() {
UNION SELECT 2 as dev_Order, "Printer" UNION SELECT 2 as dev_Order, "Printer"
UNION SELECT 2 as dev_Order, "Server" UNION SELECT 2 as dev_Order, "Server"
UNION SELECT 2 as dev_Order, "Singleboard Computer (SBC)" UNION SELECT 2 as dev_Order, "Singleboard Computer (SBC)"
UNION SELECT 2 as dev_Order, "NAS"
UNION SELECT 3 as dev_Order, "Domotic" UNION SELECT 3 as dev_Order, "Domotic"
UNION SELECT 3 as dev_Order, "Game Console" UNION SELECT 3 as dev_Order, "Game Console"
@@ -636,8 +669,12 @@ function getDeviceTypes() {
UNION SELECT 4 as dev_Order, "Phone" UNION SELECT 4 as dev_Order, "Phone"
UNION SELECT 4 as dev_Order, "Radio" UNION SELECT 4 as dev_Order, "Radio"
-- network devices
UNION SELECT 5 as dev_Order, "AP" UNION SELECT 5 as dev_Order, "AP"
UNION SELECT 5 as dev_Order, "NAS" UNION SELECT 5 as dev_Order, "Gateway"
UNION SELECT 5 as dev_Order, "Powerline"
UNION SELECT 5 as dev_Order, "Switch"
UNION SELECT 5 as dev_Order, "WLAN"
UNION SELECT 5 as dev_Order, "PLC" UNION SELECT 5 as dev_Order, "PLC"
UNION SELECT 5 as dev_Order, "Router" UNION SELECT 5 as dev_Order, "Router"
UNION SELECT 5 as dev_Order, "USB LAN Adapter" UNION SELECT 5 as dev_Order, "USB LAN Adapter"
@@ -646,6 +683,8 @@ function getDeviceTypes() {
UNION SELECT 10 as dev_Order, "Other" UNION SELECT 10 as dev_Order, "Other"
ORDER BY 1,2'; ORDER BY 1,2';
$result = $db->query($sql); $result = $db->query($sql);
// arrays of rows // arrays of rows
@@ -658,8 +697,6 @@ function getDeviceTypes() {
// Return json // Return json
echo (json_encode ($tableData)); echo (json_encode ($tableData));
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Query the List of groups // Query the List of groups
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View File

@@ -65,4 +65,12 @@ function logServerConsole ($text) {
$y = $x['__________'. $text .'__________']; $y = $x['__________'. $text .'__________'];
} }
function getNetworkTypes(){
$array = array(
"AP", "Gateway", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter"
);
return $array;
}
?> ?>

View File

@@ -133,8 +133,8 @@ $pia_lang['DevDetail_MainInfo_Favorite'] = 'Favorite';
$pia_lang['DevDetail_MainInfo_Group'] = 'Group'; $pia_lang['DevDetail_MainInfo_Group'] = 'Group';
$pia_lang['DevDetail_MainInfo_Location'] = 'Location'; $pia_lang['DevDetail_MainInfo_Location'] = 'Location';
$pia_lang['DevDetail_MainInfo_Comments'] = 'Comments'; $pia_lang['DevDetail_MainInfo_Comments'] = 'Comments';
$pia_lang['DevDetail_MainInfo_Network'] = 'Network Hardware (ID)'; $pia_lang['DevDetail_MainInfo_Network'] = 'Network Node (MAC)';
$pia_lang['DevDetail_MainInfo_Network_Port'] = 'Network HW Port'; $pia_lang['DevDetail_MainInfo_Network_Port'] = 'Connected to Port';
$pia_lang['DevDetail_SessionInfo_Title'] = 'Session Info'; $pia_lang['DevDetail_SessionInfo_Title'] = 'Session Info';
$pia_lang['DevDetail_SessionInfo_Status'] = 'Status'; $pia_lang['DevDetail_SessionInfo_Status'] = 'Status';
$pia_lang['DevDetail_SessionInfo_FirstSession'] = 'First Session'; $pia_lang['DevDetail_SessionInfo_FirstSession'] = 'First Session';