Full PWA mobile version added, bug fixes on deployment status, navigation links added

This commit is contained in:
serversdwn
2025-12-11 04:03:23 +00:00
parent 195df967e4
commit 274e390c3e
26 changed files with 2393 additions and 34 deletions

View File

@@ -42,15 +42,15 @@
<div class="space-y-3">
<div class="flex justify-between items-center">
<span class="text-gray-600 dark:text-gray-400">Total Units</span>
<span id="total-units" class="text-2xl font-bold text-gray-900 dark:text-white">--</span>
<span id="total-units" class="text-3xl md:text-2xl font-bold text-gray-900 dark:text-white">--</span>
</div>
<div class="flex justify-between items-center">
<span class="text-gray-600 dark:text-gray-400">Deployed</span>
<span id="deployed-units" class="text-2xl font-bold text-blue-600 dark:text-blue-400">--</span>
<span id="deployed-units" class="text-3xl md:text-2xl font-bold text-blue-600 dark:text-blue-400">--</span>
</div>
<div class="flex justify-between items-center">
<span class="text-gray-600 dark:text-gray-400">Benched</span>
<span id="benched-units" class="text-2xl font-bold text-gray-600 dark:text-gray-400">--</span>
<span id="benched-units" class="text-3xl md:text-2xl font-bold text-gray-600 dark:text-gray-400">--</span>
</div>
<div class="border-t border-gray-200 dark:border-gray-700 pt-3 mt-3">
<p class="text-xs text-gray-500 dark:text-gray-500 mb-2 italic">Deployed Status:</p>
@@ -134,7 +134,7 @@
<h2 class="text-xl font-semibold text-gray-900 dark:text-white">Fleet Map</h2>
<span class="text-sm text-gray-500 dark:text-gray-400">Deployed units</span>
</div>
<div id="fleet-map" class="w-full h-96 rounded-lg"></div>
<div id="fleet-map" class="w-full h-64 md:h-96 rounded-lg"></div>
</div>
<!-- Fleet Status Section with Tabs -->
@@ -224,17 +224,16 @@ function updateDashboard(event) {
// ===== Alerts =====
const alertsList = document.getElementById('alerts-list');
// Only show alerts for deployed units (not benched)
// Only show alerts for deployed units that are MISSING (not pending)
const missingUnits = Object.entries(data.active).filter(([_, u]) => u.status === 'Missing');
const pendingUnits = Object.entries(data.active).filter(([_, u]) => u.status === 'Pending');
if (!missingUnits.length && !pendingUnits.length) {
if (!missingUnits.length) {
alertsList.innerHTML =
'<p class="text-sm text-green-600 dark:text-green-400">✓ All units reporting normally</p>';
} else {
let alertsHtml = '';
missingUnits.slice(0, 3).forEach(([id, unit]) => {
missingUnits.forEach(([id, unit]) => {
alertsHtml += `
<div class="flex items-start space-x-2 text-sm">
<span class="w-2 h-2 rounded-full bg-red-500 mt-1.5"></span>
@@ -245,17 +244,6 @@ function updateDashboard(event) {
</div>`;
});
pendingUnits.slice(0, 2).forEach(([id, unit]) => {
alertsHtml += `
<div class="flex items-start space-x-2 text-sm">
<span class="w-2 h-2 rounded-full bg-yellow-500 mt-1.5"></span>
<div>
<a href="/unit/${id}" class="font-medium text-yellow-600 dark:text-yellow-400 hover:underline">${id}</a>
<p class="text-gray-600 dark:text-gray-400">Pending for ${unit.age}</p>
</div>
</div>`;
});
alertsList.innerHTML = alertsHtml;
}