node.js dashboard works
This commit is contained in:
@ -18,6 +18,7 @@ function fetchSSDData() {
|
||||
|
||||
return json_decode($result, true); // Decode JSON as an associative array
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
@ -28,60 +29,51 @@ function fetchSSDData() {
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<button onclick="window.location.reload();" class="title-button"><h1>SSD Health Dashboard</h1></button>
|
||||
<button onclick="window.location.reload();" class="title-button"><h1>SSD Health Dashboard</h1></button><p>
|
||||
This lists every disk ever scanned by this device.<br>
|
||||
|
||||
<?php
|
||||
$i=0;
|
||||
echo "For a live dashboard, please visit <a href=http://{$_SERVER['HTTP_HOST']}:3000/>this link</a>.<p>";
|
||||
$ssdData = fetchSSDData(); // Fetch data from the API
|
||||
echo '<div class="group-columns">';
|
||||
foreach ($ssdData as $ssd):
|
||||
if ($i % 2 == 0) {
|
||||
echo '</div><div class="group-columns">';
|
||||
}
|
||||
echo <<<EOL
|
||||
<div class="meter">
|
||||
<table>
|
||||
<tr><td align ="right">
|
||||
Disk ID:
|
||||
</td><td align ="left">
|
||||
{$ssd['id']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
Model String:
|
||||
</td><td align ="left">
|
||||
{$ssd['model']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
Serial Number:
|
||||
</td><td align ="left">
|
||||
{$ssd['serial']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
TB Written:
|
||||
</td><td align ="left">
|
||||
{$ssd['TBW']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
Disk Capacity:
|
||||
</td><td align ="left">
|
||||
{$ssd['capacity']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
Disk Flavor:
|
||||
</td><td align ="left">
|
||||
{$ssd['flavor']}
|
||||
</td></tr><tr>
|
||||
<tr><td align ="right">
|
||||
SMART Result:
|
||||
</td><td align ="left">
|
||||
{$ssd['smart']}
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
EOL;
|
||||
$i++;
|
||||
endforeach;
|
||||
echo '</div>';
|
||||
// Start the table
|
||||
echo '<table class="ssd-list" style="border-collapse:collapse;width:100%;">';
|
||||
// Table header (optional but handy)
|
||||
echo '<thead>
|
||||
<tr>
|
||||
<th>Disk ID</th>
|
||||
<th>Model String</th>
|
||||
<th>Serial Number</th>
|
||||
<th>TB Written</th>
|
||||
<th>Disk Capacity</th>
|
||||
<th>Disk Flavor</th>
|
||||
<th>SMART Result</th>
|
||||
</tr>
|
||||
</thead>';
|
||||
// Table body - one row per SSD
|
||||
echo '<tbody>';
|
||||
foreach ($ssdData as $ssd) {
|
||||
// Escape the values so the page stays safe
|
||||
$id = htmlspecialchars($ssd['id']);
|
||||
$model = htmlspecialchars($ssd['model']);
|
||||
$serial = htmlspecialchars($ssd['serial']);
|
||||
$tbw = htmlspecialchars($ssd['TBW']);
|
||||
$cap = htmlspecialchars($ssd['capacity']);
|
||||
$flavor = htmlspecialchars($ssd['flavor']);
|
||||
$smart = htmlspecialchars($ssd['smart']);
|
||||
|
||||
echo "<tr>
|
||||
<td>{$id}</td>
|
||||
<td>{$model}</td>
|
||||
<td>{$serial}</td>
|
||||
<td>{$tbw}</td>
|
||||
<td>{$cap}</td>
|
||||
<td>{$flavor}</td>
|
||||
<td>{$smart}</td>
|
||||
</tr>";
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -24,8 +24,27 @@ body {
|
||||
margin: 4px 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
th, td {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 800px;
|
||||
max-width: 950px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #34495e; /* Darker background for container */
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); /* Slightly darker shadow */
|
||||
margin-top: 20px;
|
||||
}
|
||||
.container-small {
|
||||
max-width: 550px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #34495e; /* Darker background for container */
|
||||
|
||||
Reference in New Issue
Block a user