mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
New columns: Connected devices, Location, Vendor
This commit is contained in:
@@ -193,8 +193,8 @@
|
|||||||
var tableRows = 10;
|
var tableRows = 10;
|
||||||
var tableOrder = [[3,'desc'], [0,'asc']];
|
var tableOrder = [[3,'desc'], [0,'asc']];
|
||||||
|
|
||||||
var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]';
|
var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]';
|
||||||
var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] ;
|
var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] ;
|
||||||
var tableColumnVisible = tableColumnOrder;
|
var tableColumnVisible = tableColumnOrder;
|
||||||
|
|
||||||
// Read parameters & Initialize components
|
// Read parameters & Initialize components
|
||||||
@@ -230,7 +230,9 @@ function main () {
|
|||||||
'<?php echo lang('Device_TableHead_LastIPOrder');?>',
|
'<?php echo lang('Device_TableHead_LastIPOrder');?>',
|
||||||
'<?php echo lang('Device_TableHead_Rowid');?>',
|
'<?php echo lang('Device_TableHead_Rowid');?>',
|
||||||
'<?php echo lang('Device_TableHead_Parent_MAC');?>',
|
'<?php echo lang('Device_TableHead_Parent_MAC');?>',
|
||||||
'<?php echo lang('Device_TableHead_Connected_Devices');?>'
|
'<?php echo lang('Device_TableHead_Connected_Devices');?>',
|
||||||
|
'<?php echo lang('Device_TableHead_Location');?>',
|
||||||
|
'<?php echo lang('Device_TableHead_Vendor');?>'
|
||||||
];
|
];
|
||||||
|
|
||||||
html = '';
|
html = '';
|
||||||
@@ -331,8 +333,8 @@ function initializeDatatable () {
|
|||||||
|
|
||||||
'columnDefs' : [
|
'columnDefs' : [
|
||||||
{visible: false, targets: tableColumnHide },
|
{visible: false, targets: tableColumnHide },
|
||||||
{className: 'text-center', targets: [mapIndx(3), mapIndx(4), mapIndx(9), mapIndx(10)] },
|
{className: 'text-center', targets: [mapIndx(3), mapIndx(4), mapIndx(9), mapIndx(10), mapIndx(15)] },
|
||||||
{width: '80px', targets: [mapIndx(6), mapIndx(7)] },
|
{width: '80px', targets: [mapIndx(6), mapIndx(7), mapIndx(15)] },
|
||||||
{width: '30px', targets: [mapIndx(10), mapIndx(13)] },
|
{width: '30px', targets: [mapIndx(10), mapIndx(13)] },
|
||||||
{orderData: [mapIndx(12)], targets: mapIndx(8) },
|
{orderData: [mapIndx(12)], targets: mapIndx(8) },
|
||||||
|
|
||||||
@@ -342,6 +344,17 @@ function initializeDatatable () {
|
|||||||
$(td).html ('<b class="anonymizeDev"><a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="">'+ cellData +'</a></b>');
|
$(td).html ('<b class="anonymizeDev"><a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="">'+ cellData +'</a></b>');
|
||||||
} },
|
} },
|
||||||
|
|
||||||
|
// Connected Devices
|
||||||
|
// <a onclick="setCache(\'activeNetworkTab\',\''.$idParentMac.'_id\')" href="./network.php">
|
||||||
|
// <b class="anonymize">'.$idParentMac.' <i class="fa fa-square-up-right"></i></b>
|
||||||
|
// </a>
|
||||||
|
{targets: [mapIndx(15)],
|
||||||
|
'createdCell': function (td, cellData, rowData, row, col) {
|
||||||
|
$(td).html ('<b><a href="./network.php?mac='+ rowData[mapIndx(11)] +'" class="">'+ cellData +'</a></b>');
|
||||||
|
// $(td).find("b").attr('onclick', "setCache('activeNetworkTab','"+rowData[mapIndx(11)]+"_id')" );
|
||||||
|
|
||||||
|
} },
|
||||||
|
|
||||||
// Icon
|
// Icon
|
||||||
{targets: [mapIndx(3)],
|
{targets: [mapIndx(3)],
|
||||||
'createdCell': function (td, cellData, rowData, row, col) {
|
'createdCell': function (td, cellData, rowData, row, col) {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
var timerRefreshData = ''
|
var timerRefreshData = ''
|
||||||
var modalCallbackFunction = '';
|
var modalCallbackFunction = '';
|
||||||
var emptyArr = ['undefined', "", undefined, null];
|
var emptyArr = ['undefined', "", undefined, null, 'null'];
|
||||||
|
|
||||||
// urlParams = new Proxy(new URLSearchParams(window.location.search), {
|
// urlParams = new Proxy(new URLSearchParams(window.location.search), {
|
||||||
// get: (searchParams, prop) => searchParams.get(prop.toString()),
|
// get: (searchParams, prop) => searchParams.get(prop.toString()),
|
||||||
@@ -290,6 +290,18 @@ function settingsChanged()
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
function getQueryString(key){
|
||||||
|
params = new Proxy(new URLSearchParams(window.location.search), {
|
||||||
|
get: (searchParams, prop) => searchParams.get(prop),
|
||||||
|
});
|
||||||
|
|
||||||
|
tmp = params[key]
|
||||||
|
|
||||||
|
result = emptyArr.includes(tmp) ? "" : tmp;
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
function translateHTMLcodes (text) {
|
function translateHTMLcodes (text) {
|
||||||
if (text == null || emptyArr.includes(text)) {
|
if (text == null || emptyArr.includes(text)) {
|
||||||
|
|||||||
@@ -271,6 +271,8 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
|
|||||||
<option value="13"><?php echo lang('Device_TableHead_Rowid');?></option>
|
<option value="13"><?php echo lang('Device_TableHead_Rowid');?></option>
|
||||||
<option value="14"><?php echo lang('Device_TableHead_Parent_MAC');?></option>
|
<option value="14"><?php echo lang('Device_TableHead_Parent_MAC');?></option>
|
||||||
<option value="15"><?php echo lang('Device_TableHead_Connected_Devices');?></option>
|
<option value="15"><?php echo lang('Device_TableHead_Connected_Devices');?></option>
|
||||||
|
<option value="16"><?php echo lang('Device_TableHead_Location');?></option>
|
||||||
|
<option value="17"><?php echo lang('Device_TableHead_Vendor');?></option>
|
||||||
</select>
|
</select>
|
||||||
<span class="input-group-addon"><i title="<?php echo lang('DevDetail_GoToNetworkNode');?>" class="fa fa-save pointer" onclick="saveSelectedColumns();"></i></span>
|
<span class="input-group-addon"><i title="<?php echo lang('DevDetail_GoToNetworkNode');?>" class="fa fa-save pointer" onclick="saveSelectedColumns();"></i></span>
|
||||||
</div>
|
</div>
|
||||||
@@ -761,8 +763,8 @@ function scrollDown()
|
|||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
// Manage displayed columns
|
// Manage displayed columns
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
colDefaultOrder = ['0','1','2','3','4','5','6','7','8','9','10','12','13','14','15'];
|
colDefaultOrder = ['0','1','2','3','4','5','6','7','8','9','10','12','13','14','15','16','17'];
|
||||||
colDefaultOrderTxt = '[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15]';
|
colDefaultOrderTxt = '[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17]';
|
||||||
|
|
||||||
|
|
||||||
function saveSelectedColumns () {
|
function saveSelectedColumns () {
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
<b>'.lang('Network_Parent').'</b>
|
<b>'.lang('Network_Parent').'</b>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a onclick="setCache(\'activeNetworkTab\',\''.$idParentMac.'_id\')" href="./network.php">
|
<a href="./network.php?mac='.$idParentMac.'">
|
||||||
<b class="anonymize">'.$idParentMac.' <i class="fa fa-square-up-right"></i></b>
|
<b class="anonymize">'.$idParentMac.' <i class="fa fa-square-up-right"></i></b>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
@@ -507,58 +507,7 @@
|
|||||||
var hiddenChildren = [];
|
var hiddenChildren = [];
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
function formatFlatDevicesList()
|
|
||||||
{
|
|
||||||
devList = getDevicesList()
|
|
||||||
|
|
||||||
devListNoOrphans = []
|
|
||||||
|
|
||||||
for(i=0;i<devList.length;i++)
|
|
||||||
{
|
|
||||||
node = devList[i]
|
|
||||||
|
|
||||||
if(node.mac != 'Internet' && node.parentMac != "")
|
|
||||||
{
|
|
||||||
devListNoOrphans.push(node)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
list = devListNoOrphans;
|
|
||||||
|
|
||||||
result = []
|
|
||||||
|
|
||||||
for(i=0;i<devList.length;i++)
|
|
||||||
{
|
|
||||||
node = devList[i]
|
|
||||||
|
|
||||||
// if(!hiddenMacs.includes(node.parentMac))
|
|
||||||
if(!hiddenMacs.includes(node.mac))
|
|
||||||
{
|
|
||||||
result.push(
|
|
||||||
{
|
|
||||||
name: node.name,
|
|
||||||
path: '',
|
|
||||||
mac: node.mac,
|
|
||||||
id: node.mac,
|
|
||||||
parentMac: node.parentMac,
|
|
||||||
icon: node.icon,
|
|
||||||
type: node.type,
|
|
||||||
status: node.status,
|
|
||||||
hasChildren: true,
|
|
||||||
hiddenChildren: true,
|
|
||||||
qty: node.childrenQty
|
|
||||||
// children: children
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(result)
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
function getChildren(node, list, path)
|
function getChildren(node, list, path)
|
||||||
@@ -640,35 +589,13 @@
|
|||||||
// re-attach any onclick events
|
// re-attach any onclick events
|
||||||
attachTreeEvents();
|
attachTreeEvents();
|
||||||
}
|
}
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
function toggleFlatSubTree(parentMac, treePath)
|
|
||||||
{
|
|
||||||
// treePath = treePath.split('|')
|
|
||||||
|
|
||||||
if(!hiddenMacs.includes(parentMac))
|
|
||||||
{
|
|
||||||
hiddenMacs.push(parentMac)
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
removeItemFromArray(hiddenMacs, parentMac)
|
|
||||||
}
|
|
||||||
|
|
||||||
list = formatFlatDevicesList();
|
|
||||||
|
|
||||||
myTree.refresh(list);
|
|
||||||
|
|
||||||
// re-attach any onclick events
|
|
||||||
attachTreeEvents();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
function attachTreeEvents()
|
function attachTreeEvents()
|
||||||
{
|
{
|
||||||
// toggle subtree functionality
|
// toggle subtree functionality
|
||||||
$("div[data-mytreemac]").each(function(){
|
$("div[data-mytreemac]").each(function(){
|
||||||
// $(this).attr('onclick', 'toggleSubTree("'+$(this).attr('data-mytreemac')+'","'+ $(this).attr('data-mytreepath')+'")')
|
$(this).attr('onclick', 'toggleSubTree("'+$(this).attr('data-mytreemac')+'","'+ $(this).attr('data-mytreepath')+'")')
|
||||||
$(this).attr('onclick', 'toggleFlatSubTree("'+$(this).attr('data-mytreemac')+'")') //hasFlatData
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -734,15 +661,12 @@
|
|||||||
hasPan: false,
|
hasPan: false,
|
||||||
// marginLeft: '15',
|
// marginLeft: '15',
|
||||||
idKey: "id",
|
idKey: "id",
|
||||||
// hasFlatData: false,
|
hasFlatData: false,
|
||||||
hasFlatData: true,
|
|
||||||
linkWidth: (nodeData) => 3,
|
linkWidth: (nodeData) => 3,
|
||||||
// relationnalField: "children",
|
relationnalField: "children",
|
||||||
relationnalField: "parentMac",
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// myTree.refresh(myHierarchy);
|
myTree.refresh(myHierarchy);
|
||||||
myTree.refresh(formatFlatDevicesList()); //hasFlatData
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -766,12 +690,12 @@
|
|||||||
selectedTab = "Internet_id"
|
selectedTab = "Internet_id"
|
||||||
|
|
||||||
// the #target from the url
|
// the #target from the url
|
||||||
target = window.location.hash.substr(1)
|
target = getQueryString('mac')
|
||||||
|
|
||||||
// update cookie if target specified
|
// update cookie if target specified
|
||||||
if(target != "")
|
if(target != "")
|
||||||
{
|
{
|
||||||
setCache(key, target+'_id') // _id is added so it doesn't conflict with AdminLTE tab behavior
|
setCache(key, target.replaceAll(":","_")+'_id') // _id is added so it doesn't conflict with AdminLTE tab behavior
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the tab id from the cookie (already overriden by the target)
|
// get the tab id from the cookie (already overriden by the target)
|
||||||
|
|||||||
@@ -659,7 +659,9 @@ function getDevicesList() {
|
|||||||
array("dev_LastIP_orderable", 12, 12),
|
array("dev_LastIP_orderable", 12, 12),
|
||||||
array("rowid", 13, 13),
|
array("rowid", 13, 13),
|
||||||
array("dev_Network_Node_MAC_ADDR", 14, 14),
|
array("dev_Network_Node_MAC_ADDR", 14, 14),
|
||||||
array("connected_devices", 15, 15)
|
array("connected_devices", 15, 15),
|
||||||
|
array("dev_Location", 16, 16),
|
||||||
|
array("dev_Vendor", 17, 17)
|
||||||
);
|
);
|
||||||
|
|
||||||
if($forceDefaultOrder == FALSE)
|
if($forceDefaultOrder == FALSE)
|
||||||
@@ -698,24 +700,7 @@ function getDevicesList() {
|
|||||||
FROM Devices b
|
FROM Devices b
|
||||||
WHERE b.dev_Network_Node_MAC_ADDR NOT NULL group by b.dev_Network_Node_MAC_ADDR
|
WHERE b.dev_Network_Node_MAC_ADDR NOT NULL group by b.dev_Network_Node_MAC_ADDR
|
||||||
) t2
|
) t2
|
||||||
ON (t3.dev_MAC = t2.dev_MAC_t2);';
|
ON (t3.dev_MAC = t2.dev_Network_Node_MAC_ADDR_t2);';
|
||||||
|
|
||||||
|
|
||||||
// $sql = 'SELECT * FROM (
|
|
||||||
// SELECT rowid, *, CASE
|
|
||||||
// WHEN t1.dev_AlertDeviceDown=1 AND t1.dev_PresentLastScan=0 THEN "Down"
|
|
||||||
// WHEN t1.dev_NewDevice=1 THEN "New"
|
|
||||||
// WHEN t1.dev_PresentLastScan=1 THEN "On-line"
|
|
||||||
// ELSE "Off-line" END AS dev_Status
|
|
||||||
// FROM Devices t1 '.$condition.') t3
|
|
||||||
// LEFT JOIN
|
|
||||||
// (
|
|
||||||
// SELECT dev_Network_Node_MAC_ADDR, dev_MAC,
|
|
||||||
// count() as connected_devices
|
|
||||||
// FROM Devices b
|
|
||||||
// WHERE b.dev_Network_Node_MAC_ADDR NOT NULL group by b.dev_Network_Node_MAC_ADDR
|
|
||||||
// ) t2
|
|
||||||
// ON (t3.dev_MAC = t2.dev_MAC);';
|
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
@@ -738,8 +723,10 @@ function getDevicesList() {
|
|||||||
formatIPlong ($row['dev_LastIP']), // IP orderable
|
formatIPlong ($row['dev_LastIP']), // IP orderable
|
||||||
$row['rowid'], // Rowid (hidden)
|
$row['rowid'], // Rowid (hidden)
|
||||||
handleNull($row['dev_Network_Node_MAC_ADDR']),
|
handleNull($row['dev_Network_Node_MAC_ADDR']),
|
||||||
handleNull($row['connected_devices']) //
|
handleNull($row['connected_devices']),
|
||||||
);
|
handleNull($row['dev_Location']),
|
||||||
|
handleNull($row['dev_Vendor'])
|
||||||
|
);
|
||||||
|
|
||||||
$newOrder = array();
|
$newOrder = array();
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ $lang['en_us'] = array(
|
|||||||
'Device_TableHead_Rowid' => 'Row ID',
|
'Device_TableHead_Rowid' => 'Row ID',
|
||||||
'Device_TableHead_Parent_MAC' => 'Parent node MAC',
|
'Device_TableHead_Parent_MAC' => 'Parent node MAC',
|
||||||
'Device_TableHead_Connected_Devices' => 'Connected Devices',
|
'Device_TableHead_Connected_Devices' => 'Connected Devices',
|
||||||
|
'Device_TableHead_Location' => 'Location',
|
||||||
|
'Device_TableHead_Vendor' => 'Vendor',
|
||||||
'Device_TableHead_Favorite' => 'Favorite',
|
'Device_TableHead_Favorite' => 'Favorite',
|
||||||
'Device_TableHead_Group' => 'Group',
|
'Device_TableHead_Group' => 'Group',
|
||||||
'Device_TableHead_FirstSession' => 'First Session',
|
'Device_TableHead_FirstSession' => 'First Session',
|
||||||
|
|||||||
Reference in New Issue
Block a user