diff --git a/front/deviceDetails.php b/front/deviceDetails.php index 1dfd5bf8..fe57d78b 100644 --- a/front/deviceDetails.php +++ b/front/deviceDetails.php @@ -266,14 +266,25 @@ if ($_REQUEST['mac'] == 'Internet') { $DevDetail_Tap_temp = "Tools"; } else { $D
-
- +
+
+ + +
+ + + +
+ +
- +
@@ -704,7 +715,6 @@ function main () { // Read Cookies devicesList = getCookie('devicesList'); - deleteCookie ('devicesList'); if (devicesList != '') { devicesList = JSON.parse (devicesList); } else { @@ -804,10 +814,11 @@ function initializeiCheck () { // ----------------------------------------------------------------------------- function initializeCombos () { // Initialize combos with queries - initializeCombo ( $('#dropdownOwner')[0], 'getOwners', 'txtOwner'); - initializeCombo ( $('#dropdownDeviceType')[0], 'getDeviceTypes', 'txtDeviceType'); - initializeCombo ( $('#dropdownGroup')[0], 'getGroups', 'txtGroup'); - initializeCombo ( $('#dropdownLocation')[0], 'getLocations', 'txtLocation'); + initializeCombo ( $('#dropdownOwner')[0], 'getOwners', 'txtOwner'); + initializeCombo ( $('#dropdownDeviceType')[0], 'getDeviceTypes', 'txtDeviceType'); + initializeCombo ( $('#dropdownGroup')[0], 'getGroups', 'txtGroup'); + initializeCombo ( $('#dropdownLocation')[0], 'getLocations', 'txtLocation'); + initializeCombo ( $('#dropdownNetworkNodeMac')[0], 'getNetworkNodes', 'txtNetworkNodeMac'); // Initialize static combos initializeComboSkipRepeated (); @@ -828,10 +839,17 @@ function initializeCombo (HTMLelement, queryAction, txtDataField) { order = item['order']; } + id = item['name']; + // use explicitly specified id (value) if avaliable + if(item['id']) + { + id = item['id']; + } + // add dropdown item HTMLelement.innerHTML += '
  • '+ item['name'] + '
  • ' + txtDataField +'\',\''+ id +'\')">'+ item['name'] + '' }); }); } @@ -1121,8 +1139,8 @@ function getDeviceData (readAllData=false) { $('#txtGroup').val ('--'); $('#txtLocation').val ('--'); $('#txtComments').val ('--'); - $('#txtInfrastructure').val ('--'); - $('#txtInfrastructurePort').val ('--'); + $('#txtNetworkNodeMac').val ('--'); + $('#txtNetworkPort').val ('--'); $('#txtFirstConnection').val ('--'); $('#txtLastConnection').val ('--'); @@ -1193,6 +1211,13 @@ function getDeviceData (readAllData=false) { mac =deviceData['dev_MAC']; + // update the mac parameter in the URL, this makes the selected device persistent when the page is reloaded + var searchParams = new URLSearchParams(window.location.search); + searchParams.set("mac", mac); + var newRelativePathQuery = window.location.pathname + '?' + searchParams.toString(); + history.pushState(null, '', newRelativePathQuery); + getSessionsPresenceEvents(); + $('#txtMAC').val (deviceData['dev_MAC']); $('#txtName').val (deviceData['dev_Name']); $('#txtOwner').val (deviceData['dev_Owner']); @@ -1203,8 +1228,8 @@ function getDeviceData (readAllData=false) { $('#txtGroup').val (deviceData['dev_Group']); $('#txtLocation').val (deviceData['dev_Location']); $('#txtComments').val (deviceData['dev_Comments']); - $('#txtInfrastructure').val (deviceData['dev_Infrastructure']); - $('#txtInfrastructurePort').val (deviceData['dev_Infrastructure_port']); + $('#txtNetworkNodeMac').val (deviceData['dev_Network_Node_MAC']); + $('#txtNetworkPort').val (deviceData['dev_Network_Node_port']); $('#txtFirstConnection').val (deviceData['dev_FirstConnection']); $('#txtLastConnection').val (deviceData['dev_LastConnection']); @@ -1254,7 +1279,7 @@ function getDeviceData (readAllData=false) { $('#btnNext').removeAttr ('disabled'); $('#btnNext').removeClass ('text-gray50'); } - + // Timer for refresh data $("body").css("cursor", "default"); newTimerRefreshData (getDeviceData); @@ -1313,8 +1338,8 @@ function setDeviceData (refreshCallback='') { + '&group=' + $('#txtGroup').val() + '&location=' + $('#txtLocation').val() + '&comments=' + $('#txtComments').val() - + '&infrastructure=' + $('#txtInfrastructure').val() - + '&infrastructureport=' + $('#txtInfrastructurePort').val() + + '&networknode=' + $('#txtNetworkNodeMac').val() + + '&networknodeport=' + $('#txtNetworkPort').val() + '&staticIP=' + ($('#chkStaticIP')[0].checked * 1) + '&scancycle=' + $('#txtScanCycle').val().split(' ')[0] + '&alertevents=' + ($('#chkAlertEvents')[0].checked * 1) @@ -1336,6 +1361,7 @@ function setDeviceData (refreshCallback='') { } + // ----------------------------------------------------------------------------- function askSkipNotifications () { // Check MAC @@ -1422,13 +1448,16 @@ function deleteDevice () { // ----------------------------------------------------------------------------- function getSessionsPresenceEvents () { + // Check MAC in url + var urlParams = new URLSearchParams(window.location.search); + mac = urlParams.get ('mac'); // Define Sessions datasource and query dada $('#tableSessions').DataTable().ajax.url('php/server/events.php?action=getDeviceSessions&mac=' + mac +'&period='+ period).load(); // Define Presence datasource and query data $('#calendar').fullCalendar('removeEventSources'); $('#calendar').fullCalendar('addEventSource', - { url: 'php/server/events.php?action=getDevicePresence&mac=' + mac +'&period='+ period }); + { url: 'php/server/events.php?action=getDevicePresence&mac=' + mac}); // Query events getDeviceEvents(); diff --git a/front/php/server/devices.php b/front/php/server/devices.php index aa7c4bca..cdbf97a0 100644 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -35,6 +35,7 @@ if (strlen($pia_lang_selected) == 0) {$pia_lang_selected = 'en_us';} case 'getDeviceData': getDeviceData(); break; case 'setDeviceData': setDeviceData(); break; case 'deleteDevice': deleteDevice(); break; + case 'getNetworkNodes': getNetworkNodes(); break; case 'deleteAllWithEmptyMACs': deleteAllWithEmptyMACs(); break; case 'createBackupDB': createBackupDB(); break; case 'restoreBackupDB': restoreBackupDB(); break; @@ -87,8 +88,8 @@ function getDeviceData() { $deviceData = $row; $mac = $deviceData['dev_MAC']; - $deviceData['dev_Infrastructure'] = $row['dev_Infrastructure']; - $deviceData['dev_Infrastructure_port'] = $row['dev_Infrastructure_port']; + $deviceData['dev_Network_Node_MAC'] = $row['dev_Infrastructure']; + $deviceData['dev_Network_Node_port'] = $row['dev_Infrastructure_port']; $deviceData['dev_FirstConnection'] = formatDate ($row['dev_FirstConnection']); // Date formated $deviceData['dev_LastConnection'] = formatDate ($row['dev_LastConnection']); // Date formated @@ -156,8 +157,8 @@ function setDeviceData() { dev_Group = "'. quotes($_REQUEST['group']) .'", dev_Location = "'. quotes($_REQUEST['location']) .'", dev_Comments = "'. quotes($_REQUEST['comments']) .'", - dev_Infrastructure = "'. quotes($_REQUEST['infrastructure']).'", - dev_Infrastructure_port = "'. quotes($_REQUEST['infrastructureport']).'", + dev_Infrastructure = "'. quotes($_REQUEST['networknode']).'", + dev_Infrastructure_port = "'. quotes($_REQUEST['networknodeport']).'", dev_StaticIP = "'. quotes($_REQUEST['staticIP']) .'", dev_ScanCycle = "'. quotes($_REQUEST['scancycle']) .'", dev_AlertEvents = "'. quotes($_REQUEST['alertevents']) .'", @@ -733,6 +734,35 @@ function getLocations() { } +//------------------------------------------------------------------------------ +// Query Device Data +//------------------------------------------------------------------------------ +function getNetworkNodes() { + global $db; + + // Device Data + $sql = 'SELECT * FROM network_infrastructure'; + + $result = $db->query($sql); + + // arrays of rows + $tableData = array(); + while ($row = $result -> fetchArray (SQLITE3_ASSOC)) { + // Push row data + $tableData[] = array('id' => $row['device_id'], + 'name' => $row['net_device_name'].'/'.$row['net_device_typ'] ); + } + + // Control no rows + if (empty($tableData)) { + $tableData = []; + } + + // Return json + echo (json_encode ($tableData)); +} + + //------------------------------------------------------------------------------ // Status Where conditions //------------------------------------------------------------------------------ diff --git a/tar/create.sh b/tar/create.sh index 4c950a97..06c6e3de 100755 --- a/tar/create.sh +++ b/tar/create.sh @@ -19,7 +19,7 @@ tar tvf pialert/tar/pialert_latest.tar | wc -l rm pialert/tar/pialert_*.tar # ------------------------------------------------------------------------------ -tar cvf pialert/tar/pialert_latest.tar --exclude="pialert/tar" --exclude="pialert/.git" pialert | wc -l +tar cvf pialert/tar/pialert_latest.tar --no-xattrs --exclude="pialert/tar" --exclude="pialert/.git" --exclude="pialert/.gitignore" pialert | wc -l #ln -s pialert_$PIALERT_VERSION.tar pialert/package/pialert_latest.tar #ls -l pialert/package/pialert*.tar diff --git a/tar/pialert_latest.tar b/tar/pialert_latest.tar index dd5a3709..1489940d 100644 Binary files a/tar/pialert_latest.tar and b/tar/pialert_latest.tar differ