From 14cb0f46f3d43026610d69a6a278d2b54566b450 Mon Sep 17 00:00:00 2001 From: Jokob-sk Date: Thu, 26 Jan 2023 12:01:12 +1100 Subject: [PATCH] New columns: Connected devices, Location, Vendor --- front/devices.php | 23 +++++-- front/js/pialert_common.js | 14 +++- front/maintenance.php | 6 +- front/network.php | 94 +++----------------------- front/php/server/devices.php | 29 +++----- front/php/templates/language/en_us.php | 2 + 6 files changed, 54 insertions(+), 114 deletions(-) diff --git a/front/devices.php b/front/devices.php index b51aa1a8..ff4ab940 100755 --- a/front/devices.php +++ b/front/devices.php @@ -193,8 +193,8 @@ var tableRows = 10; 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 tableColumnOrder = [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,16,17] ; var tableColumnVisible = tableColumnOrder; // Read parameters & Initialize components @@ -230,7 +230,9 @@ function main () { '', '', '', - '' + '', + '', + '' ]; html = ''; @@ -331,8 +333,8 @@ function initializeDatatable () { 'columnDefs' : [ {visible: false, targets: tableColumnHide }, - {className: 'text-center', targets: [mapIndx(3), mapIndx(4), mapIndx(9), mapIndx(10)] }, - {width: '80px', targets: [mapIndx(6), mapIndx(7)] }, + {className: 'text-center', targets: [mapIndx(3), mapIndx(4), mapIndx(9), mapIndx(10), mapIndx(15)] }, + {width: '80px', targets: [mapIndx(6), mapIndx(7), mapIndx(15)] }, {width: '30px', targets: [mapIndx(10), mapIndx(13)] }, {orderData: [mapIndx(12)], targets: mapIndx(8) }, @@ -342,6 +344,17 @@ function initializeDatatable () { $(td).html (''+ cellData +''); } }, + // Connected Devices + // + // '.$idParentMac.' + // + {targets: [mapIndx(15)], + 'createdCell': function (td, cellData, rowData, row, col) { + $(td).html (''+ cellData +''); + // $(td).find("b").attr('onclick', "setCache('activeNetworkTab','"+rowData[mapIndx(11)]+"_id')" ); + + } }, + // Icon {targets: [mapIndx(3)], 'createdCell': function (td, cellData, rowData, row, col) { diff --git a/front/js/pialert_common.js b/front/js/pialert_common.js index 39d4a8d6..2226e9fc 100755 --- a/front/js/pialert_common.js +++ b/front/js/pialert_common.js @@ -10,7 +10,7 @@ // ----------------------------------------------------------------------------- var timerRefreshData = '' var modalCallbackFunction = ''; -var emptyArr = ['undefined', "", undefined, null]; +var emptyArr = ['undefined', "", undefined, null, 'null']; // urlParams = new Proxy(new URLSearchParams(window.location.search), { // 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) { if (text == null || emptyArr.includes(text)) { diff --git a/front/maintenance.php b/front/maintenance.php index e45b1ec8..a5193bb0 100755 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -271,6 +271,8 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) { + + @@ -761,8 +763,8 @@ function scrollDown() // -------------------------------------------------------- // Manage displayed columns // -------------------------------------------------------- -colDefaultOrder = ['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]'; +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,16,17]'; function saveSelectedColumns () { diff --git a/front/network.php b/front/network.php index a128dbc8..ee850b85 100755 --- a/front/network.php +++ b/front/network.php @@ -127,7 +127,7 @@ '.lang('Network_Parent').' - + '.$idParentMac.' @@ -507,58 +507,7 @@ var hiddenChildren = []; - // --------------------------------------------------------------------------- - function formatFlatDevicesList() - { - devList = getDevicesList() - - devListNoOrphans = [] - - for(i=0;i 3, - // relationnalField: "children", - relationnalField: "parentMac", + relationnalField: "children", }); - // myTree.refresh(myHierarchy); - myTree.refresh(formatFlatDevicesList()); //hasFlatData + myTree.refresh(myHierarchy); } // --------------------------------------------------------------------------- @@ -766,12 +690,12 @@ selectedTab = "Internet_id" // the #target from the url - target = window.location.hash.substr(1) + target = getQueryString('mac') // update cookie if target specified 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) diff --git a/front/php/server/devices.php b/front/php/server/devices.php index a9b11225..b299179e 100755 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -659,7 +659,9 @@ function getDevicesList() { array("dev_LastIP_orderable", 12, 12), array("rowid", 13, 13), 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) @@ -698,24 +700,7 @@ function getDevicesList() { 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_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);'; + ON (t3.dev_MAC = t2.dev_Network_Node_MAC_ADDR_t2);'; $result = $db->query($sql); @@ -738,8 +723,10 @@ function getDevicesList() { formatIPlong ($row['dev_LastIP']), // IP orderable $row['rowid'], // Rowid (hidden) 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(); diff --git a/front/php/templates/language/en_us.php b/front/php/templates/language/en_us.php index 81ca8c54..3a3a20e2 100755 --- a/front/php/templates/language/en_us.php +++ b/front/php/templates/language/en_us.php @@ -71,6 +71,8 @@ $lang['en_us'] = array( 'Device_TableHead_Rowid' => 'Row ID', 'Device_TableHead_Parent_MAC' => 'Parent node MAC', 'Device_TableHead_Connected_Devices' => 'Connected Devices', +'Device_TableHead_Location' => 'Location', +'Device_TableHead_Vendor' => 'Vendor', 'Device_TableHead_Favorite' => 'Favorite', 'Device_TableHead_Group' => 'Group', 'Device_TableHead_FirstSession' => 'First Session',