Add VIO FC Status monitoring page and enhance server inventory filtering

- Introduced `Storage/VIO.php` for monitoring VIO Fibre Channel status with client balancing checks and table sorting.
- Updated `/include/en.php` and `/include/fr.php` to include new translations for ServiceNow and VIO-related navigation elements.
- Improved SQL query and filtering logic in `/X/Inventory.php` to exclude VIO entries and add XenSam version data.
- Enhanced `/reports/heartbeat.php` with a new mechanism for handling server heartbeat status, allowing better granularity and readability.
This commit is contained in:
2026-09-14 10:32:15 +02:00
parent 1f1b7dcd22
commit c185d099d6
25 changed files with 6646 additions and 437 deletions

View File

@@ -40,6 +40,7 @@
<thead>
<tr>
<th data-field="Name" data-sortable="true"><?php echo $w_name; ?></th>
<th data-field="Edit" >Edit</th>
<th data-field="OS" data-sortable="true"><?php echo $w_os; ?></th>
<th data-field="Criticity" data-sortable="true"><?php echo $w_crit; ?></th>
<th data-field="AD" data-sortable="true"><?php echo $w_ad; ?></th>
@@ -97,7 +98,7 @@
$lastUpdate = htmlspecialchars($lastUpdate ?? '', ENT_QUOTES, 'UTF-8');
$okText = htmlspecialchars($okText, ENT_QUOTES, 'UTF-8');
if ($status === 'Y') {
if ($status === 'Y' || $status === 'Veeam') {
if (empty($lastUpdate)) {
return "<td class='text-white' style='background: linear-gradient(90deg, rgba(25,135,84,1) 50%, rgba(255,193,7,1) 100%);'>$okText</td><td class='bg-warning text-black'>Missing</td>";
}
@@ -159,11 +160,12 @@
// Row Rendering
$serverName = htmlspecialchars($row['Server'] ?? '', ENT_QUOTES, 'UTF-8');
$serverUrl = urlencode($row['Server'] ?? '');
$serverName = str_replace('+', '', $serverName);
$serverUrl = str_replace('+', '',urlencode($row['Server'] ?? ''));
if ($isCompliant) {
$serverCell = "<td class='bg-success text-white'><b><a href='/crossover/Detail.php?server=$serverUrl' target='_blank' class='link-light'>$serverName</a></b></td>";
$serverCell = "<td class='bg-success text-white'><b><a href='/Inventory/Server-Detail.php?s=$serverUrl' target='_blank' class='link-light'>$serverName</a></b></td>";
} else {
$serverCell = "<td><b><a href='/crossover/Detail.php?server=$serverUrl' target='_blank'>$serverName</a></b></td>";
$serverCell = "<td><b><a href='/Inventory/Server-Detail.php?s=$serverUrl' target='_blank'>$serverName</a></b></td>";
}
$osCell = "<td class='bg-warning'>&nbsp;</td>";
@@ -173,7 +175,9 @@
}
echo "<tr>";
echo $serverCell . $osCell;
echo $serverCell;
echo "<td><a href='Detail.php?server=$serverUrl' target='_blank' title='Edit'><i class='bi bi-pencil'></i></a></td>";
echo $osCell;
echo "<td>" . htmlspecialchars($row['crit'] ?? '') . "</td>";
echo renderStatusCellWithDate($row['AD'], $row['ADlu'], 45);
echo renderStatusCellWithDate($row['GLPI'], $row['GLPIlu'], 7);
@@ -186,7 +190,7 @@
// BACKUP
if (($row['NBU'] ?? '') === 'Y') { echo renderStatusCellWithDate($row['NBU'], $row['NBUlu'], 30, 'OK (NBU)'); }
elseif (($row['DPM'] ?? '') === 'Y') { echo renderStatusCellWithDate($row['DPM'], $row['DPMlu'], 30, 'OK (DPM)'); }
elseif (($row['NBU'] ?? '') === 'Veeam') { echo renderStatusCellWithDate($row['NBU'], $row['NBUlu'], 30, 'OK (Veeam)'); }
else { echo renderStatusCellWithDate($row['NBU'] ?? $row['DPM'] ?? null, null, 30); }
// SCOM