Files
Web-Infra-Reports-IT/Rollups/Rollup-Calendar.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

165 lines
7.8 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Page Title -->
<title>Web Infra Reports IT</title>
<link rel="shortcut icon" type="image/png" href="/include/favicon-32x32.png">
<!-- JQuery -->
<script src="/js/jquery-3.6.1.min.js"></script>
<!-- Bootstrap -->
<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>
<!-- Bootstrap-tables -->
<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"; ?> <!-- Include All -->
<?php // DATA
$answers = Invoke_GLPI("SELECT a.name as server,left(d.name,4) as 'type',
b.arretprogrammezeroonefield as january,
b.arretprogrammezerotwofield as february,
b.arretprogrammezerothreefield as march,
b.arretprogrammezerofourfield as april,
b.arretprogrammezerofivefield as may,
b.arretprogrammezerosixfield as june,
b.arretprogrammezerosevenfield as july,
b.arretprogrammezeroeightfield as august,
b.arretprogrammezeroninefield as september,
b.arretprogrammeonezerofield as october,
b.arretprogrammeoneonefield as november,
b.arretprogrammeonetwofield as december
from glpi_computers a
left join glpi_plugin_fields_computercreneaumaintenances b on b.items_id = a.id
left join glpi_plugin_fields_computerdatasupps c on c.items_id = a.id
left join glpi_plugin_fields_typearretfielddropdowns d on d.id = c.plugin_fields_typearretfielddropdowns_id
where a.entities_id = 6 and a.name is not null and d.name is not null and b.arretprogrammezeroonefield is not null
order by Server asc");
?>
<!-- HTML -->
<div class="container-fluid" id="content">
<div class="row flex-nowrap">
<!-- Left NAVBAR -->
<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>
<!-- Display -->
<div class="col py-3">
<!-- Page Title -->
<h1><span class="badge text-bg-secondary font-weight-bold" style="width:100%;"><?php echo $ti_14;?></h6></span></h1>
<!-- Main content -->
<div class="container-fluid">
<!-- MODAL WAIT -->
<div class="modal fade bs-example-modal-sm" id="wait" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="padding-top: 15%;">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title mb-1 text-dark text-uppercase text-center">
<i class="bi bi-hourglass-split"></i><br> Work in progress ...
</h4>
</div>
<div class="modal-body">
<div class="progress">
<div class="progress-bar progress-bar-secondary progress-bar-striped progress-bar-animated" style="width: 100%"></div>
</div>
</div>
</div>
</div>
</div>
<!-- TABLE -->
<div style="zoom:80%">
<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> <!-- Header -->
<tr>
<th data-field="Server" data-sortable="true"><?php echo $w_server;?></th>
<th data-field="Type" data-sortable="true">Type</th>
<th data-field="January" data-sortable="true">01</th>
<th data-field="February" data-sortable="true">02</th>
<th data-field="March" data-sortable="true">03</th>
<th data-field="April" data-sortable="true">04</th>
<th data-field="May" data-sortable="true">05</th>
<th data-field="June" data-sortable="true">06</th>
<th data-field="July" data-sortable="true">07</th>
<th data-field="August" data-sortable="true">08</th>
<th data-field="September" data-sortable="true">09</th>
<th data-field="October" data-sortable="true">10</th>
<th data-field="November" data-sortable="true">11</th>
<th data-field="December" data-sortable="true">12</th>
</tr>
</thead>
<tbody> <!-- Body -->
<?php
foreach ($answers as $answer) {
echo "<td class='text-nowrap'><b>".$answer['server']."</b></td>";
echo "<td>".$answer['type']."</td>";
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['january']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['february']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['march']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['april']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['may']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['june']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['july']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['august']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['september']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['october']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['november']."</small></td>")));
echo "<td class='text-nowrap'><small>".str_replace(':30:00',':30',(str_replace(':00:00',':00',$answer['december']."</small></td>")));
echo "</tr>";
}
?>
</tbody>
</table>
<br>
</div>
</div>
<!-- End of main content -->
</div>
</div>
</div>
</body>
<script src="/js/switch.js"></script>
</HTML>
<SCRIPT>
let table = $('#t1');
$(document).ready(function() {
table.DataTable({
scrollY: '50vh',
scrollCollapse: true,
paging: false,
});
});
$(function () {
let options = table.bootstrapTable('getOptions');
options.height= document.getElementById('content').clientHeight-170;
table.bootstrapTable('refreshOptions',options);
});
function tableresize() {
let options = table.bootstrapTable('getOptions');
options.height= document.getElementById('content').clientHeight-170;
table.bootstrapTable('refreshOptions',options);
}
window.addEventListener("resize", tableresize);
</SCRIPT>