Files
Web-Infra-Reports-IT/X/StdOut-detail.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

246 lines
10 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 $script = $_GET['s']; ?>
<!-- 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%;">Script <b><?php echo $script; ?></b> Details</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" style="font-size: 1.2rem;">
<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>
<?php
$aix = $linux = $dun = $azt = $other = "Checked";
$where = "";
if (!isset($_GET['AIX'])){$aix = "Unchecked";}
if (!isset($_GET['linux'])){$linux = "Unchecked";}
if($linux=="Unchecked" && $aix=="Unchecked"){ $where = " and 1=2 ";}
if($linux=="Unchecked" && $aix=="Checked"){ $where = " and Type ='AIX' ";}
if($linux=="Checked" && $aix=="Unchecked"){ $where = " and not Type ='AIX' ";}
$site = "";
if (isset($_GET['DUN'])) {
if ($_GET['DUN'] == 1) {
$site .= " or UPPER(HOSTNAME) like 'DUN%' or UPPER(HOSTNAME) like 'DMV%' or UPPER(HOSTNAME) like 'MDK%' or UPPER(HOSTNAME) like 'APPQPC%'";
} else {
$dun = "Unchecked";
}
} else {
$dun = "Unchecked";
}
if (isset($_GET['AZT'])) {
if ($_GET['AZT'] == 1) {
$site .= " or UPPER(HOSTNAME) like 'AZT%'";
} else {
$azt = "Unchecked";
}
} else {
$azt = "Unchecked";
}
if (isset($_GET['other'])) {
if ($_GET['other'] == 1) {
$site .= " or UPPER(HOSTNAME) like 'BAD%' or UPPER(HOSTNAME) like 'FLO%' or UPPER(HOSTNAME) like 'MON%'";
} else {
$other = "Unchecked";
}
} else {
$other = "Unchecked";
}
$site = " and (" . ltrim($site, ' or') . ") ";
$where .= $site;
$sql = "select HOSTNAME, Type, OSVersion from x_srvall where Decom is null $where order by hostname";
$hosts = Invoke_Infra($sql);
//print_r($hosts);exit;
$taix = $aixok = $aixko = $tlinux = $linuxok = $linuxko = 0;
$resultsByHost = [];
if (!empty($hosts)) {
$hostnames = array_map(function ($h) {
return "'" . strtoupper($h['HOSTNAME']) . "'";
}, $hosts);
$hostnamesList = implode(',', $hostnames);
$sqlResults = "SELECT * FROM x_stdout WHERE cmd = '$script' AND host IN ($hostnamesList)";
$allAnswers = Invoke_Infra($sqlResults);
if (is_array($allAnswers)) {
foreach ($allAnswers as $answer) {
$resultsByHost[strtoupper($answer['host'])] = $answer;
}
}
}
?>
<form class="row">
<div class="col border rounded">
<b><?php echo $w_filter;?> : </b>
<div class="form-check form-check-inline form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="AIX" <?php echo $aix; ?> name="AIX" value="1">
<label class="form-check-label" for="AIX">AIX</label>
</div>
&nbsp;
<div class="form-check form-check-inline form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="linux" <?php echo $linux; ?> name="linux" value="1">
<label class="form-check-label" for="linux">Linux</label>
</div>
&nbsp; | &nbsp;
<div class="form-check form-check-inline form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="DUN" <?php echo $dun; ?> name="DUN" value="1">
<label class="form-check-label" for="DUN">DMV/DUN/MDK</label>
</div>
&nbsp;
<div class="form-check form-check-inline form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="AZT" <?php echo $azt; ?> name="AZT" value="1">
<label class="form-check-label" for="AZT">Azure</label>
</div>
&nbsp;
<div class="form-check form-check-inline form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="other" <?php echo $other; ?> name="other" value="1">
<label class="form-check-label" for="other"><?php echo $w_other;?></label>
</div>
<input type="hidden" name="s" value="<?php echo $script; ?>">
<button type="submit" class="btn btn-success btn-small mb-2 mt-2">Apply</button>
</div>
</form>
<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='host' data-sortable='true'><?php echo $w_host;?></th>
<th data-field='OS' data-sortable='true'><?php echo $w_os;?></th>
<th data-field='OSVer' data-sortable='true'>Distrib.</th>
<th data-field='TimeStamp' data-sortable='true'>Date</th>
<th data-field='RC' data-sortable='true'>RC</th>
<th data-field='Result' data-sortable='true'>StdOut</th>
</tr>
</thead>
<tbody> <?php
foreach ($hosts as $h) {
$host = strtoupper($h['HOSTNAME']);
$os = strtoupper($h['Type'] ?? "");
$osver = strtoupper($h['OSVersion'] ?? "");
if ($os == "AIX") {
$taix++;
} else {
$tlinux++;
}
$answer = $resultsByHost[$host] ?? null;
if ($answer) {
$rc = $answer['rc'];
$stdout = $answer['stdout'];
$ts = $answer['ts'];
if ($os == "AIX") {
if ($rc == 0 && (string)$rc <> "") {
$aixok++;
} elseif ((string)$rc <> "") {
$aixko++;
}
} else { // Linux
if ($rc == 0 && (string)$rc <> "") {
$linuxok++;
} elseif ((string)$rc <> "") {
$linuxko++;
}
}
} else {
$rc = $stdout = $ts = "";
}
echo "<tr><td><b>$host</b></td>";
echo "<td>$os</td>";
echo "<td>$osver</td>";
echo "<td>" . $ts . "</td>";
if ($rc == 0 && (string)$rc <> "") {
echo "<td class='table-success'>" . $rc . "</td>";
} else {
if ((string)$rc <> "") {
echo "<td class='table-danger'>" . $rc . "</td>";
} else {
echo "<td></td>";
}
}
echo "<td>" . $stdout . "</td></tr>";
}
?>
</tbody>
<br>
<?php
$aixNO = $taix - $aixok - $aixko;
$linuxNO = $tlinux - $linuxok - $linuxko;
echo "<div class='row'><div class='col text-center h4'><b>$taix AIX : </b>";
echo "<span class='badge bg-success'>$aixok</span>&nbsp;<span class='badge bg-danger'>$aixko</span>&nbsp;<span class='badge bg-secondary'>$aixNO</span></div>";
echo "<div class='col text-center h4'><b>$tlinux Linux : </b>";
echo "<span class='badge bg-success'>$linuxok</span>&nbsp;<span class='badge bg-danger'>$linuxko</span>&nbsp;<span class='badge bg-secondary'>$linuxNO</span></div></div> ";
?>
</div>
</div>
<!-- End of main content -->
</div>
</div>
</div>
</body>
<script src="/js/switch.js"></script>
</HTML>