diff --git a/Hyper-V/SYN-VMList.php b/Hyper-V/SYN-VMList.php index df95599..7dbe360 100644 --- a/Hyper-V/SYN-VMList.php +++ b/Hyper-V/SYN-VMList.php @@ -30,7 +30,7 @@ - +
@@ -42,7 +42,7 @@
-

Synergy VM List - VMs

+

VM List - VMs

diff --git a/Hyper-V/VMs.php b/Hyper-V/VMs.php new file mode 100644 index 0000000..141d17d --- /dev/null +++ b/Hyper-V/VMs.php @@ -0,0 +1,186 @@ + + + + + + + + + + Web Infra Reports IT + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ +

+ + +
+ + + +
+
+ + + + + + + + + + + + + + "; + # Name + $state = ' '; + if($row['State'] == "Running"){$state = ' ';} + if($row['State'] == "Off" || $row['State'] == "Stopping"){$state = ' ';} + if($row['State'] == "Paused"){$state = ' ';} + echo ""; + # Owner + echo ""; + # Infos + echo '"; + # Prefered Owner + if($row['Owner'] == $row['PreferredOwner']){ + echo ' '; + }else{ + if($row['IsClustered'] == 'True'){ + echo ' '; + $wrongOwner++; + }else{ + echo ' '; + $unclustered++; + } + } + # Gen & Ver + echo ""; + # TS + echo ""; + echo ""; + + + } + if($wrongOwner > 0){$msg = "$wrongOwner $w_VMOnWrongOwner";} + if($unclustered > 0){$msg .= " $unclustered $w_unclusteredVMs";} + if($v10 > 0){$msg .= " $v10 $w_VMs < Ver 10.0";} + if($CpuComp > 0){$msg .= " $CpuComp $w_vmCpuChecked";} + if($DynVHD > 0){$msg .= " $DynVHD $w_vmDynamicVHD";} + ?> + +
InfosGen & Version
".$state." ".$row['Name']."".$row['Owner']."'.$row['Memory'].'GB / '.$row['CPU'].' CPU '; + echo 'VHDx(s) : '.$row['TotalDiskSize'].' GB '; + if($row['WWPNs'] != ""){ + echo 'LUN(s) '; + } + if($row['CPUcomp'] == "True"){ + echo 'CPU Comp. '; $CpuComp++; + } + if($row['DynamicVHD'] == "Y"){ + echo 'Dyn. VHDX '; $DynVHD++; + } + echo "'.$row['Owner'].''.$row['Owner'].''.$w_unclustered.'"; + if($row['Generation'] == "2"){ + echo 'Gen '.$row['Generation'].' '; + }else{ + echo 'Gen '.$row['Generation'].' '; + } + if($row['Version'] == "10.0"){ + echo 'Ver '.$row['Version'].' '; + }else{ + echo 'Ver '.$row['Version'].' '; + $v10++; + } + echo "".$row['LastInventory']."
+
+
+
+ +
+
+
+ + + + + diff --git a/Network/dhcp_detail.php b/Network/dhcp_detail.php index f8d0bde..14f28d2 100644 --- a/Network/dhcp_detail.php +++ b/Network/dhcp_detail.php @@ -51,7 +51,7 @@ foreach ($xml->xpath("//OptionDefinition") as $optDef) { - +
@@ -59,14 +59,14 @@ foreach ($xml->xpath("//OptionDefinition") as $optDef) {
-

+

-
+
- +
-
+
xpath("//IPv4/OptionValues/OptionValue"); foreach ($globalOptions as $opt): @@ -97,8 +97,8 @@ foreach ($xml->xpath("//OptionDefinition") as $optDef) {
-
-
+
+
: StartRange; ?>
: EndRange; ?>
: SubnetMask; ?>
@@ -151,4 +151,5 @@ foreach ($xml->xpath("//OptionDefinition") as $optDef) {
+ \ No newline at end of file diff --git a/Network/dhcp_servers.php b/Network/dhcp_servers.php index 31446b7..8a02f6f 100644 --- a/Network/dhcp_servers.php +++ b/Network/dhcp_servers.php @@ -40,7 +40,7 @@ $serversData = Invoke_Entry01("SELECT Server,TS FROM dump_dhcp where ts ='$ts' o

DHCP

- +
@@ -66,4 +66,5 @@ $serversData = Invoke_Entry01("SELECT Server,TS FROM dump_dhcp where ts ='$ts' o + \ No newline at end of file diff --git a/crossover/Crossover-KPI.js b/crossover/Crossover-KPI.js index e7579ac..d04c459 100644 --- a/crossover/Crossover-KPI.js +++ b/crossover/Crossover-KPI.js @@ -1,29 +1,59 @@ function dateDiffInDays(a) { - const _MS_PER_DAY = 1000 * 60 * 60 * 24; - return Math.floor((Date.now() - new Date(a)) / _MS_PER_DAY); + if (!a || a === 'Missing' || a === ' ') return 999; // Sécurité + const _MS_PER_DAY = 1000 * 60 * 60 * 24; + return Math.floor((Date.now() - new Date(a)) / _MS_PER_DAY); } $(function() { - $button.click(function () { - $data = $table.bootstrapTable('getData') - $dl = $data.length - $nSCCM=0; $nAD=0; $nGLPI=0;$nEPO=0;$nNBU=0;$nOS=0;$nSCOM=0;$nZabbix=0;$nS1=0; - for( $i=0 ; $i < $dl ; $i++ ){ - if ($data[$i]['AD'] !== 'Missing') { $nAD++ ; } - if ((dateDiffInDays($data[$i]['ADlu'].split(" ")[0]) > 45 || $data[$i]['ADlu'] == 'Missing') && $data[$i]['AD'] !== 'Missing'){ $nAD-- ;} - if ($data[$i]['SCCM'] !== 'Missing') { $nSCCM++ ; } - if ((dateDiffInDays($data[$i]['SCCMlu'].split(" ")[0]) > 7 || $data[$i]['SCCMlu'] == 'Missing') && $data[$i]['SCCM'] !== 'Missing'){ $nSCCM-- ;} - if ($data[$i]['GLPI'] !== 'Missing') { $nGLPI++ ; } - if ((dateDiffInDays($data[$i]['GLPIlu'].split(" ")[0]) > 7 || $data[$i]['GLPIlu'] == 'Missing') && $data[$i]['GLPI'] !== 'Missing'){ $nGLPI-- ;} - if ($data[$i]['NESSUS'] !== 'Missing') { $nEPO++ ; } - if ($data[$i]['Backup'] !== 'Missing') { $nNBU++ ; } - if ((dateDiffInDays($data[$i]['NBUlu'].split(" ")[0]) > 30 || $data[$i]['NBUlu'] == 'Missing') && $data[$i]['Backup'].split(" ")[0] !== 'Missing'){ $nNBU-- ;} - if (($data[$i]['OS'].includes('XP') || $data[$i]['OS'].includes('2000') || $data[$i]['OS'].includes('2003') || $data[$i]['OS'].includes('2008') || $data[$i]['OS'].includes('2012') || $data[$i]['OS'].includes('7') || $data[$i]['OS'].includes('Windows NT')) == false && $data[$i]['OS'] !==' ') { $nOS++ ;} - if ($data[$i]['SCOM'] !== 'Missing') { $nSCOM++ ; } - if ($data[$i]['Zabbix'] !== 'Missing') { $nZabbix++ ; } - if ($data[$i]['S1'] !== 'Missing') { $nS1++ ; } - if ((dateDiffInDays($data[$i]['S1lu'].split(" ")[0]) > 7 || $data[$i]['S1lu'] == 'Missing') && $data[$i]['S1'] !== 'Missing'){ $nS1-- ;} - } + $('#button').click(function () { + var $data = $('#t1').bootstrapTable('getData'); + var $dl = $data.length; + if ($dl === 0) return; + + var $nSCCM=0, $nAD=0, $nGLPI=0, $nEPO=0, $nNBU=0, $nOS=0, $nSCOM=0, $nZabbix=0, $nS1=0; + + for(var $i=0 ; $i < $dl ; $i++ ){ + // Vérification AD + if ($data[$i]['AD'] !== 'Missing') { + $nAD++; + var adDate = ($data[$i]['ADlu'] || '').split(" ")[0]; + if (dateDiffInDays(adDate) > 45 || adDate === '') { $nAD--; } + } + // Vérification SCCM + if ($data[$i]['SCCM'] !== 'Missing') { + $nSCCM++; + var sccmDate = ($data[$i]['SCCMlu'] || '').split(" ")[0]; + if (dateDiffInDays(sccmDate) > 7 || sccmDate === '') { $nSCCM--; } + } + // Vérification GLPI + if ($data[$i]['GLPI'] !== 'Missing') { + $nGLPI++; + var glpiDate = ($data[$i]['GLPIlu'] || '').split(" ")[0]; + if (dateDiffInDays(glpiDate) > 7 || glpiDate === '') { $nGLPI--; } + } + // NESSUS + if ($data[$i]['NESSUS'] !== 'Missing' && $data[$i]['NESSUS'] !== ' ') { $nEPO++; } + // BACKUP + if ($data[$i]['Backup'] !== 'Missing') { + $nNBU++; + var nbuDate = ($data[$i]['NBUlu'] || '').split(" ")[0]; + if (dateDiffInDays(nbuDate) > 30 || nbuDate === '') { $nNBU--; } + } + // OS (Supporté) + var os = $data[$i]['OS'] || ''; + if (!(os.includes('XP') || os.includes('2000') || os.includes('2003') || os.includes('2008') || os.includes('2012') || os.includes('7')) && os !== ' ') { $nOS++; } + + // SCOM & Zabbix + if ($data[$i]['SCOM'] !== 'Missing') { $nSCOM++; } + if ($data[$i]['Zabbix'] !== 'Missing') { $nZabbix++; } + + // S1 + if ($data[$i]['S1'] !== 'Missing') { + $nS1++; + var s1Date = ($data[$i]['S1lu'] || '').split(" ")[0]; + if (dateDiffInDays(s1Date) > 7 || s1Date === '') { $nS1--; } + } + } document.getElementById("KPIAD").innerHTML = Math.round($nAD/$dl*1000)/10 + "%"; if(Math.round($nAD/$dl*100) >=90){ diff --git a/crossover/GlobalCrossover.php b/crossover/GlobalCrossover.php index a1255af..a3b1cd5 100644 --- a/crossover/GlobalCrossover.php +++ b/crossover/GlobalCrossover.php @@ -6,446 +6,360 @@ - Web Infra Reports IT - - - - - - -
-
- -
- + +
+
+
+ +
+
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + 45)"; break; + case "OS": $whereClauses[] = "OS LIKE '%2003%' OR OS LIKE '%2008%'"; break; + case "GLPI": $whereClauses[] = "GLPI IS NULL OR GLPIlu IS NULL OR DATEDIFF(now(), GLPIlu) > 7"; break; + case "SCCM": $whereClauses[] = "SCCM IS NULL OR (SCCMlu IS NOT NULL AND DATEDIFF(now(), SCCMlu) > 7)"; break; + case "NESSUS": $whereClauses[] = "EPO IS NULL"; break; + case "NBU": $whereClauses[] = "NBU IS NULL OR (NBUlu IS NOT NULL AND DATEDIFF(now(), NBUlu) > 30)"; break; + case "SCOM": $whereClauses[] = "SCOM IS NULL"; break; + case "zabbix": $whereClauses[] = "zabbix IS NULL"; break; + case "S1": $whereClauses[] = "S1 IS NULL OR (S1lu IS NOT NULL AND DATEDIFF(now(), S1lu) > 7)"; break; + default: $filterTitle = null; break; + } + if ($filterTitle) { + echo "

$filterTitle

"; + } + } + + if (!empty($whereClauses)) { $sql .= " WHERE " . implode(' AND ', $whereClauses); } + $sql .= " ORDER BY server"; + + $stmt = $conn->prepare($sql); + $stmt->execute(); + $result = $stmt->get_result(); + + // --- PART 2: HELPER FUNCTIONS --- + function renderStatusCellWithDate(?string $status, ?string $lastUpdate, int $daysThreshold, string $okText = 'OK'): string { + $status = htmlspecialchars($status ?? '', ENT_QUOTES, 'UTF-8'); + $lastUpdate = htmlspecialchars($lastUpdate ?? '', ENT_QUOTES, 'UTF-8'); + $okText = htmlspecialchars($okText, ENT_QUOTES, 'UTF-8'); + + if ($status === 'Y') { + if (empty($lastUpdate)) { + return ""; + } + try { + $diff = date_diff(date_create($lastUpdate), date_create()); + $days = (int) $diff->format("%R%a"); + if ($days > $daysThreshold) { + return ""; + } else { + return ""; + } + } catch (Exception) { + return ""; + } + } + if ($status !== '') { + return ""; + } + return ""; + } + + // --- PART 3: DATA PROCESSING & DISPLAY --- + $counters = [ + 'total' => 0, 'ok' => 0, 'nOS' => 0, 'nAD' => 0, 'nSCCM' => 0, 'nGLPI' => 0, + 'nFI' => 0, 'nNESSUS' => 0, 'nNBU' => 0, 'nDPM' => 0, 'nS1' => 0, + 'nzabbix' => 0, 'nSCOM' => 0 + ]; + + $maxS1Win = "0"; $maxS1Lin = "0"; + $dataRows = []; + + while ($row = $result->fetch_assoc()) { + $dataRows[] = $row; + $currentV = $row['S1'] ?? ''; + $os = $row['OS'] ?? ''; + if (str_contains($currentV, '.')) { + if (stripos($os, 'Windows') !== false) { + if (version_compare($currentV, $maxS1Win, '>')) { $maxS1Win = $currentV; } + } else { + if (version_compare($currentV, $maxS1Lin, '>')) { $maxS1Lin = $currentV; } + } + } + } + + foreach ($dataRows as $row) { + // KPI Calculation + $counters['total']++; + $isCompliant = isset($row['AD'], $row['GLPI'], $row['SCCM'], $row['EPO']) && (isset($row['NBU']) || isset($row['DPM'])) && isset($row['SCOM']); + if ($isCompliant) { $counters['ok']++; } + if (!empty($row['OS']) && !preg_match('(XP|2003|2000|2008|Windows 7|2012)', $row['OS'])) { $counters['nOS']++; } + if (!isset($row['AD'])) $counters['nAD']++; + if (!isset($row['SCCM'])) $counters['nSCCM']++; + if (!isset($row['GLPI'])) $counters['nGLPI']++; + if (!isset($row['EPO'])) $counters['nNESSUS']++; + if (!isset($row['NBU']) && !isset($row['DPM'])) $counters['nNBU']++; + if (!isset($row['SCOM'])) $counters['nSCOM']++; + if (!isset($row['zabbix'])) $counters['nzabbix']++; + if (!isset($row['S1'])) $counters['nS1']++; + + // Row Rendering + $serverName = htmlspecialchars($row['Server'] ?? '', ENT_QUOTES, 'UTF-8'); + $serverUrl = urlencode($row['Server'] ?? ''); + if ($isCompliant) { + $serverCell = ""; + } else { + $serverCell = ""; + } + + $osCell = ""; + if (!empty($row['OS'])) { + $os = htmlspecialchars($row['OS']); + $osCell = preg_match('(XP|2003|2000|2008|Windows 7|2012)', $row['OS']) ? "" : ""; + } + + echo ""; + echo $serverCell . $osCell; + echo ""; + echo renderStatusCellWithDate($row['AD'], $row['ADlu'], 45); + echo renderStatusCellWithDate($row['GLPI'], $row['GLPIlu'], 7); + echo renderStatusCellWithDate($row['SCCM'], $row['SCCMlu'], 7); + + // NESSUS + if (str_contains($row['EPO'] ?? '', '.')) { echo ""; } + elseif (isset($row['EPO']) && !in_array($row['EPO'], ['Y', 'N'])) { echo ""; } + else { echo ""; } + + // 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)'); } + else { echo renderStatusCellWithDate($row['NBU'] ?? $row['DPM'] ?? null, null, 30); } + + // SCOM + if (($row['SCOM'] ?? '') === 'Y') { echo ""; } + elseif (isset($row['SCOM'])) { echo ""; } + else { echo ""; } + + // Zabbix + $zabbixStatus = $row['zabbix'] ?? ''; + if ($zabbixStatus === 'Y' || str_contains($zabbixStatus, '.')) { echo ""; } + elseif (isset($row['zabbix'])) { echo ""; } + else { echo ""; } + + // S1 (Comparison) + $s1Status = $row['S1'] ?? ''; + $osRaw = $row['OS'] ?? ''; + $targetMax = (stripos($osRaw, 'Windows') !== false) ? $maxS1Win : $maxS1Lin; + + if (!empty($s1Status) && $s1Status === $targetMax && $targetMax !== "0") { + echo ""; + } elseif (str_contains($s1Status, '.')) { + echo ""; + } else { + echo renderStatusCellWithDate($s1Status, $row['S1lu'] ?? null, 7, ($s1Status === 'Y' ? 'OK' : $s1Status)); + } + echo ""; + } + //echo ""; + $stmt->close(); $conn->close(); + ?> + +
GLPISCCM
NESSUSSCOMZabbixSentinelOne
$okTextMissing$okText$lastUpdate ($days days)$okText$lastUpdateInvalid Date$lastUpdate$status Missing $serverName$serverName $os$os
" . htmlspecialchars($row['crit'] ?? '') . "".htmlspecialchars($row['EPO'])."".htmlspecialchars($row['EPO'])."MissingOK".htmlspecialchars($row['SCOM'])."Missing".htmlspecialchars(str_replace('Y', 'OK', $zabbixStatus))."".htmlspecialchars($zabbixStatus)."Missing" . htmlspecialchars($s1Status) . " " . htmlspecialchars($s1Status) . "
- -
- -

- -
- - - - - - - - - - - - - - - - - - - - - + - - - 45)"; - break; - case "OS": - $whereClauses[] = "OS LIKE '%2003%' OR OS LIKE '%2008%'"; - break; - case "GLPI": - $whereClauses[] = "GLPI IS NULL OR GLPIlu IS NULL OR DATEDIFF(now(), GLPIlu) > 7"; - break; - case "SCCM": - $whereClauses[] = "SCCM IS NULL OR (SCCMlu IS NOT NULL AND DATEDIFF(now(), SCCMlu) > 7)"; - break; - case "NESSUS": - $whereClauses[] = "EPO IS NULL"; - break; - case "NBU": - $whereClauses[] = "NBU IS NULL OR (NBUlu IS NOT NULL AND DATEDIFF(now(), NBUlu) > 30)"; - break; - case "SCOM": - $whereClauses[] = "SCOM IS NULL"; - break; - case "zabbix": - $whereClauses[] = "zabbix IS NULL"; - break; - case "S1": - $whereClauses[] = "S1 IS NULL OR (S1lu IS NOT NULL AND DATEDIFF(now(), S1lu) > 7)"; - break; - default: - $filterTitle = null; // No valid filter - break; - } - - if ($filterTitle) { - echo "

$filterTitle

"; - } - } - - // Combine all WHERE clauses - if (!empty($whereClauses)) { - $sql .= " WHERE " . implode(' AND ', $whereClauses); - } - - $sql .= " ORDER BY server"; - - // Prepare and execute the query - $stmt = $conn->prepare($sql); - // Note: If you had parameters, you would bind them here, e.g., $stmt->bind_param($types, ...$params); - $stmt->execute(); - $result = $stmt->get_result(); - - - // --- PART 2: HELPER FUNCTIONS FOR RENDERING --- - - /** - * Renders a standard status cell based on a value and its last update date. - * @param string|null $status The status value (e.g., 'Y', 'N'). - * @param string|null $lastUpdate The date of the last update. - * @param int $daysThreshold The number of days to be considered "out of date". - * @param string $okText Text to display for OK status (e.g., "OK", "OK (NBU)"). - * @return string The generated HTML for two " - . ""; - } - - try { - $diff = date_diff(date_create($lastUpdate), date_create()); - $days = (int) $diff->format("%R%a"); - - if ($days > $daysThreshold) { - // Out of date - return "" - . ""; - } else { - // Compliant - return "" - . ""; - } - } catch (Exception) { - // Handle invalid date format gracefully - return ""; - } - } - - if ($status !== '') { - // Not applicable, non-supported, etc. - return ""; - } - - // Missing - return ""; - } - - // --- PART 3: CLEAN DATA DISPLAY LOOP --- - - // Initialize counters - $counters = [ - 'total' => 0, 'ok' => 0, 'nOS' => 0, 'nAD' => 0, 'nSCCM' => 0, 'nGLPI' => 0, - 'nFI' => 0, 'nNESSUS' => 0, 'nNBU' => 0, 'nDPM' => 0, 'nS1' => 0 - ]; - - while ($row = $result->fetch_assoc()) { - $counters['total']++; - // Sanitize server name for URL and display - $serverName = htmlspecialchars($row['Server'], ENT_QUOTES, 'UTF-8'); - $serverUrl = urlencode($row['Server']); - - // Determine overall row status - $isCompliant = isset($row['AD'], $row['GLPI'], $row['SCCM'], $row['EPO']) && (isset($row['NBU']) || isset($row['DPM'])) && isset($row['SCOM']); - if ($isCompliant) { - $counters['ok']++; - $serverCell = ""; - } else { - $serverCell = ""; - } - - // OS Cell - $osCell = ""; - if (!empty($row['OS'])) { - $os = htmlspecialchars($row['OS']); - if (preg_match('(XP|2003|2000|2008|Windows 7|2012)', $row['OS'])) { - $osCell = ""; - } else { - $counters['nOS']++; - $osCell = ""; - } - } - - echo ""; - echo $serverCell; - echo $osCell; - echo ""; - - - // Use helper function for status columns - echo renderStatusCellWithDate($row['AD'], $row['ADlu'], 45); - echo renderStatusCellWithDate($row['GLPI'], $row['GLPIlu'], 7); - echo renderStatusCellWithDate($row['SCCM'], $row['SCCMlu'], 7); - - // NESSUS (EPO) Cell - Custom logic - if (str_contains($row['EPO'] ?? '', '.')) { - echo ""; - } elseif (isset($row['EPO']) && !in_array($row['EPO'], ['Y', 'N'])) { - echo ""; - } else { - echo ""; - $counters['nNESSUS']++; - } - - // BACKUP Cell - Custom logic for NBU/DPM - 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)'); - } else { - // Handle non-Y cases for NBU or DPM, or missing - $backupStatus = $row['NBU'] ?? $row['DPM'] ?? null; - echo renderStatusCellWithDate($backupStatus, null, 30); - } - - // SCOM Cell - Simple logic - if ($row['SCOM'] === 'Y') { - echo ""; - } elseif (isset($row['SCOM'])) { - echo ""; - } else { - echo ""; - } - - // Zabbix Cell - Simple logic - $zabbixStatus = $row['zabbix'] ?? ''; - if ($zabbixStatus === 'Y' || str_contains($zabbixStatus, '.')) { - echo ""; - } elseif (isset($row['zabbix'])) { - echo ""; - } else { - echo ""; - } - - // S1 Cell - $s1Status = $row['S1'] ?? ''; - $s1Text = ($s1Status === 'Y' || str_contains($s1Status, '.')) ? str_replace('Y', 'OK', $s1Status) : 'OK'; - echo renderStatusCellWithDate($s1Status, $row['S1lu'], 7, $s1Text); - - echo ""; - } - // You can now use the $counters array to pass data to your JS for the KPIs - // For example: - echo ""; - - $stmt->close(); - $conn->close(); - ?> - - -
GLPISCCM
NESSUSSCOMZabbixSentinelOne
cells. - */ - function renderStatusCellWithDate(?string $status, ?string $lastUpdate, int $daysThreshold, string $okText = 'OK'): string { - // Sanitize output to prevent XSS - $status = htmlspecialchars($status ?? '', ENT_QUOTES, 'UTF-8'); - $lastUpdate = htmlspecialchars($lastUpdate ?? '', ENT_QUOTES, 'UTF-8'); - $okText = htmlspecialchars($okText, ENT_QUOTES, 'UTF-8'); - - if ($status === 'Y') { - if (empty($lastUpdate)) { - // Status is OK, but date is missing - return "$okTextMissing$okText$lastUpdate ($days days)$okText$lastUpdateInvalid Date$lastUpdate$status Missing $serverName$serverName $os$os
" . htmlspecialchars($row['crit'] ?? '') . "" . htmlspecialchars($row['EPO']) . "" . htmlspecialchars($row['EPO']) . "MissingOK" . htmlspecialchars($row['SCOM']) . "Missing" . htmlspecialchars(str_replace('Y', 'OK', $zabbixStatus)) . "" . htmlspecialchars($zabbixStatus) . "Missing
-
- -
-
-
-
- -
-

-
-
-
-
-
-
-
- -
-

-
-
-
-
-
-
-
AD
- -
-

-
-
-
-
-
-
-
GLPI/FI
- -
-

-
-
-
-
-
-
-
SCCM
- -
-

-
-
-
-
-
-
-
NESSUS
- -
-

-
-
-
-
-
-
-
- -
-

-
-
-
-
-
-
-
SCOM
- -
-

-
-
-
-
-
-
-
Zabbix
- -
-

-
-
-
-
-
-
-
SentinelOne
- -
-

-
-
-
+
+
+
+
+ +
+

+
+
+
+
+
+
+
+ +
+

+
+
+
+
+
+
+
AD
+ +
+

+
+
+
+
+
+
+
GLPI/FI
+ +
+

+
+
+
+
+
+
+
SCCM
+ +
+

+
+
+
+
+
+
+
NESSUS
+ +
+

+
+
+
+
+
+
+
+ +
+

+
+
+
+
+
+
+
SCOM
+ +
+

+
+
+
+
+
+
+
Zabbix
+ +
+

+
+
+
+
+
+
+
SentinelOne
+ +
+

+
+
-
+
- - +
+ + - - - \ No newline at end of file + \ No newline at end of file diff --git a/include/en.php b/include/en.php index 4bdbcad..f8b8ea4 100644 --- a/include/en.php +++ b/include/en.php @@ -13,6 +13,8 @@ $nav_3_2 = "VMs Backup"; $nav_3_3 = "VMs Mem hunt"; $nav_3_4 = "Hosts Mem hunt"; + $nav_3_5 = "VMs List"; + $nav_4 = "Shared Folders"; $nav_4_1 = "Projects & Teams"; @@ -61,6 +63,7 @@ $ti_16 = "Workstation Global Crossover"; $ti_17 = "HeartBeat Map for servers NOT in maintenance"; $ti_18 = "Cluster Resources"; + $ti_19 = "Virtual Machines"; // words $w_server = "Server"; @@ -148,4 +151,9 @@ $w_mask = "Mask"; $w_scopeOptions = "Scope Options"; $w_reservations = "Reservations"; - $w_globalOptionValues = "Global Options Values"; \ No newline at end of file + $w_globalOptionValues = "Global Options Values"; + $w_prefferedNode = "Preffered Node"; + $w_VMOnWrongOwner = "VM(s) on Wrong Owner"; + $w_unclusteredVMs = "Unclustered VM(s)"; + $w_vmCpuChecked = "VM(s) With 'CPU Compatibility' checked"; + $w_vmDynamicVHD = "VM(s) with dynamic VHD"; diff --git a/include/fr.php b/include/fr.php index 4aa7ee3..901a3f9 100644 --- a/include/fr.php +++ b/include/fr.php @@ -13,6 +13,7 @@ $nav_3_2 = "Sauvegardes MVs"; $nav_3_3 = "Chasse Mem MVs"; $nav_3_4 = "Chasse Mem Hôtes"; + $nav_3_5 = "Liste des MVs"; $nav_4 = "Dossiers Partagés"; $nav_4_1 = "Projets & Equipes"; @@ -61,6 +62,7 @@ $ti_16 = "Consolidation Multisources des Postes de Travail"; $ti_17 = "Carte des signes de présence pour les Serveurs qui ne sont pas en maintenance"; $ti_18 = "Ressources des Grappes de Serveurs"; + $ti_19 = "Machines Virtuelles"; // words $w_server = "Serveur"; @@ -149,3 +151,8 @@ $w_scopeOptions = "Options de portée"; $w_reservations = "Réservations"; $w_globalOptionValues = "Valeurs des Options Globales"; + $w_prefferedNode = "Noeud préféré"; + $w_VMOnWrongOwner = "MV(s) sur le mauvais noeud"; + $w_unclusteredVMs = "MV(s) non en ressource"; + $w_vmCpuChecked = "MV(s) avec 'Compatibilité CPU' coché"; + $w_vmDynamicVHD = "MV(s) avec VHD dynamique"; diff --git a/navbar.html b/navbar.html index 3d25310..0096306 100644 --- a/navbar.html +++ b/navbar.html @@ -107,6 +107,7 @@ --> - - + - @@ -151,7 +152,7 @@
  • - +