Files
Web-Infra-Reports-IT/X/Backups.php
sva-e025532 10c228f255 Remove test.php and enhance null safety and sorting across components
- Deleted `test.php` as it was no longer in use.
- Enhanced null safety checks in `Inventory.php`, `StdOut-detail.php`, `Backups.php`, and `SwitchsSAN.php` to prevent potential warnings.
- Refactored `SwitchsSAN.php` to improve sorting logic for ports based on errors, vFabric, and Port ID.
- Added seasonal snow effect script in `all.php` with toggle functionality for user engagement.
- Updated navigation bar (`navbar.html`) to include a new VIO page link.
- Introduced a new `VIO.php` page to display VIO monitoring details with table export and sorting features.
2026-03-31 11:33:57 +02:00

153 lines
6.1 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-t">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Web Infra Reports IT</title>
<link rel="shortcut icon" type="image/png" href="/include/favicon-32x32.png">
<script src="/js/jquery-3.6.1.min.js"></script>
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/bootstrap-icons/bootstrap-icons.css">
<link rel="stylesheet" href="/css/preloader.css">
<script src="/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="/css/bootstrap-table.min.css">
<script src="/js/bootstrap-table.min.js"></script>
<script src="/js/bootstrap-table-fr-FR.min.js"></script>
<script src="/js/tableExport.min.js"></script>
<script src="/js/bootstrap-table-export.min.js"></script>
<script src="/js/libs/js-xlsx/xlsx.core.min.js"></script>
</head>
<body class="bg-light text-dark">
<?php
include $_SERVER['DOCUMENT_ROOT'] . "/include/all.php";
$list = Invoke_Infra("select * from X_cmdb_backupsys order by HOSTNAME");
$all = $_POST['show_all'] ?? 0;
// Si on affiche TOUT, alors on force l'affichage de la taille,
// ou on récupère la valeur normale si All n'est pas coché.
if ($all == 1) {
$showSize = 1;
} else {
$showSize = $_POST['show_size'] ?? 0;
}
?>
<div class="container-fluid" id="content">
<div class="row flex-nowrap">
<div class="col-auto col-md-2 col-xl-2 px-sm-2 px-0 bg-dark vh-100 position-sticky top-0" style="-ms-flex: 0 0 230px;flex: 0 0 230px;">
<?php include $_SERVER['DOCUMENT_ROOT'] . "/navbar.html"; ?>
</div>
<div class="col py-3">
<h1><span class="badge text-bg-secondary font-weight-bold" style="width:100%;"><?php echo $w_backup;?> Linux/AIX</span></h1>
<div class="d-flex justify-content-start align-items-center mb-2 p-2 rounded bg-secondary-subtle">
<form class="form-inline d-flex gap-4" action="Backups.php" method="post" >
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch"
id="showAll" name="show_all" value="1"
<?php echo ($all == 1) ? 'checked' : ''; ?>>
<label class="form-check-label" for="showAll"><strong><?php echo $w_all ;?></strong></label>
</div>
<div class="form-check form-switch" <?php echo ($all == 1) ? 'style="display:none;"' : ''; ?>>
<input class="form-check-input" type="checkbox" role="switch"
id="showSize" name="show_size" value="1"
<?php echo ($showSize == 1) ? 'checked' : ''; ?>>
<label class="form-check-label" for="showSize"><strong><?php echo $w_size ;?> >= 15GB</strong></label>
</div>
</form>
</div>
<div>
<table class='table table-bordered table-hover table-sm' id='t1' data-height="620" data-toggle="table" data-search="true" data-show-columns="true" data-export-types="['xlsx','csv','json']" data-show-export="true" data-sortable="true" data-sort-name="VM">
<thead>
<tr>
<th data-field="Name" data-sortable="true"><?php echo $w_name ;?></th>
<th data-field="ts" data-sortable="true">Date</th>
<th data-field="Log" data-sortable="true">Log</th>
<th data-field="Type" data-sortable="true">Type</th>
<th data-field="Location" data-sortable="true"><?php echo $w_location ;?></th>
</tr>
</thead>
<tbody>
<?php
$now = new DateTime();
foreach ($list as $s) {
$name = $s['HOSTNAME'];
$ts = $s['ts'];
$lastBackup = (explode(".",$s['LastBackup'] ?? ''))[0];
$location = $s['Location'];
$log = $s['Log'];
$backuptype = $s['BackupType'];
if(str_contains($log, "Length")) {
$size = floor(explode(" ",$log)[1] / 1024 / 1024 / 1024);
if(explode(" ",$log)[1] > 16106127360) {
$log = "Size : $size GB";
if($showSize == 0){ continue; }
}else{
$log = "OK - $size GB";
if($all == 0){ continue; }
}
}
if(str_contains($log, "Total bytes written:")) {
$size = floor(explode(" ",$log)[3] / 1024 / 1024 / 1024);
if(explode(" ",$log)[3] > 16106127360) {
$log = "Size : $size GB";
if($showSize == 0){ continue; }
}else{
$log = "OK - $size GB";
if($all == 0){ continue; }
}
}
echo "</tr>";
echo "<td>$name</td>";
echo "<td>$ts</td>";
if(str_contains($log, "waiting")) {
echo "<td class='table-primary'><b>$log</b></td>";
}elseif(str_contains($log, "error")){
echo "<td class='table-danger'><b>$log</b></td>";
}elseif(str_contains($log, "progress")){
echo "<td class='table-success'><b>$log</b></td>";
}elseif(str_contains($log, "OK -")){
echo "<td class='table-success'>$log</td>";
}elseif(str_contains($log, "Size : ")){
echo "<td class='table-warning'>$log</td>";
}else{echo "<td>$log</td>"; }
echo "<td>$backuptype</td>";
echo "<td>$location</td>";
echo "</tr>";
}
?>
</tbody>
</table><br>
</div>
</div>
</div>
</div>
</body>
<script src="/js/switch.js"></script>
<script>
$(function() {
$('#showAll').on('change', function() {
$(this).closest('form').submit();
});
$('#showSize').on('change', function() {
$(this).closest('form').submit();
});
});
</script>
</HTML>
<script src="/js/tableResize.js"></script>