mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 12:42:38 +00:00
fix agent boot_time
fix UI scrollbar, and removed setting reset button
This commit is contained in:
@@ -400,9 +400,10 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors
|
||||
switch (eventId)
|
||||
{
|
||||
case EventId_ProvisioningWillLaunch: // 358
|
||||
eventType = "hello_provisioning_started";
|
||||
eventType = "hello_provisioning_willlaunch";
|
||||
severity = EventSeverity.Info;
|
||||
message = "Windows Hello for Business provisioning started - prerequisites passed";
|
||||
message = "Windows Hello for Business provisioning will launch - prerequisites passed (snapshot only, not a final state)";
|
||||
_logger.Info("Windows Hello provisioning will launch - prerequisites passed (snapshot only, not a final state)");
|
||||
break;
|
||||
|
||||
case EventId_NgcKeyRegistered: // 300
|
||||
@@ -422,9 +423,9 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors
|
||||
break;
|
||||
|
||||
case EventId_ProvisioningWillNotLaunch: // 360
|
||||
eventType = "hello_provisioning_skipped";
|
||||
eventType = "hello_provisioning_willnotlaunch";
|
||||
severity = EventSeverity.Warning;
|
||||
message = "Windows Hello for Business provisioning prerequisites not met (snapshot only, not terminal)";
|
||||
message = "Windows Hello for Business provisioning prerequisites not met (snapshot only, not a final state";
|
||||
// DO NOT mark Hello as completed - event 360 is just a snapshot and can change
|
||||
_logger.Info("Windows Hello provisioning prerequisites not met (snapshot, not terminal)");
|
||||
break;
|
||||
|
||||
@@ -205,16 +205,21 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Tracking
|
||||
if (!string.IsNullOrEmpty(lastBootUpTimeStr))
|
||||
{
|
||||
// WMI time format: yyyyMMddHHmmss.ffffff+/-UUU
|
||||
var bootTime = ManagementDateTimeConverter.ToDateTime(lastBootUpTimeStr);
|
||||
data["bootTime"] = bootTime.ToString("o"); // ISO 8601 format
|
||||
data["bootTimeUtc"] = bootTime.ToUniversalTime().ToString("o");
|
||||
// ManagementDateTimeConverter.ToDateTime returns DateTimeKind.Local,
|
||||
// so we must explicitly convert to UTC and tag it as UTC to ensure
|
||||
// correct ISO 8601 serialization with Z suffix.
|
||||
var bootTimeLocal = ManagementDateTimeConverter.ToDateTime(lastBootUpTimeStr);
|
||||
var bootTimeUtc = DateTime.SpecifyKind(bootTimeLocal.ToUniversalTime(), DateTimeKind.Utc);
|
||||
|
||||
// Calculate uptime
|
||||
var uptime = DateTime.Now - bootTime;
|
||||
data["bootTimeUtc"] = bootTimeUtc.ToString("o"); // always ends with Z
|
||||
data["bootTime"] = bootTimeUtc.ToString("o"); // keep for compat, also UTC
|
||||
|
||||
// Calculate uptime using UTC to avoid local-clock drift
|
||||
var uptime = DateTime.UtcNow - bootTimeUtc;
|
||||
data["uptimeMinutes"] = (int)uptime.TotalMinutes;
|
||||
data["uptimeHours"] = uptime.TotalHours;
|
||||
|
||||
_logger.Debug($"Boot time: {bootTime:o}, Uptime: {uptime.TotalMinutes:F1} minutes");
|
||||
_logger.Debug($"Boot time (UTC): {bootTimeUtc:o}, Uptime: {uptime.TotalMinutes:F1} minutes");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,6 +292,7 @@ body {
|
||||
::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
transition: width 0.2s ease;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
@@ -301,12 +302,16 @@ body {
|
||||
border-radius: 4px;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #cbd5e1;
|
||||
background: #94a3b8;
|
||||
}
|
||||
html:hover ::-webkit-scrollbar-thumb,
|
||||
body:hover ::-webkit-scrollbar-thumb {
|
||||
background: #cbd5e1;
|
||||
}
|
||||
::-webkit-scrollbar:hover {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
/* -- Scrollbar (dark mode) -- */
|
||||
.dark ::-webkit-scrollbar {
|
||||
@@ -321,9 +326,13 @@ body:hover ::-webkit-scrollbar-thumb {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.dark ::-webkit-scrollbar-thumb:hover {
|
||||
background: #64748b;
|
||||
background: #94a3b8;
|
||||
}
|
||||
.dark html:hover ::-webkit-scrollbar-thumb,
|
||||
.dark body:hover ::-webkit-scrollbar-thumb {
|
||||
background: #475569;
|
||||
}
|
||||
.dark ::-webkit-scrollbar:hover {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
@@ -377,31 +377,6 @@ export default function SettingsPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleReset = () => {
|
||||
if (!config) return;
|
||||
|
||||
setManufacturerWhitelist(config.manufacturerWhitelist);
|
||||
setModelWhitelist(config.modelWhitelist);
|
||||
setValidateSerialNumber(config.validateSerialNumber);
|
||||
setDataRetentionDays(config.dataRetentionDays ?? 90);
|
||||
setSessionTimeoutHours(config.sessionTimeoutHours ?? 5);
|
||||
setEnablePerformanceCollector(config.enablePerformanceCollector ?? false);
|
||||
setPerformanceCollectorInterval(config.performanceCollectorIntervalSeconds ?? 60);
|
||||
setSelfDestructOnComplete(config.selfDestructOnComplete ?? false);
|
||||
setKeepLogFile(config.keepLogFile ?? true);
|
||||
setRebootOnComplete(config.rebootOnComplete ?? false);
|
||||
setRebootDelaySeconds(config.rebootDelaySeconds ?? 10);
|
||||
setEnableGeoLocation(config.enableGeoLocation ?? true);
|
||||
setEnableImeMatchLog(config.enableImeMatchLog ?? false);
|
||||
setLogLevel(config.logLevel ?? "Info");
|
||||
setTeamsWebhookUrl(config.teamsWebhookUrl ?? "");
|
||||
setTeamsNotifyOnSuccess(config.teamsNotifyOnSuccess ?? true);
|
||||
setTeamsNotifyOnFailure(config.teamsNotifyOnFailure ?? true);
|
||||
setDiagnosticsBlobSasUrl(config.diagnosticsBlobSasUrl ?? "");
|
||||
setDiagnosticsUploadMode(config.diagnosticsUploadMode ?? "Off");
|
||||
setSuccessMessage(null);
|
||||
setError(null);
|
||||
};
|
||||
|
||||
const handleAddAdmin = async () => {
|
||||
if (!tenantId || !newAdminEmail.trim()) return;
|
||||
@@ -597,13 +572,6 @@ export default function SettingsPage() {
|
||||
</div>
|
||||
{!loading && (
|
||||
<div className="flex items-center space-x-3">
|
||||
<button
|
||||
onClick={handleReset}
|
||||
disabled={saving}
|
||||
className="px-4 py-2 border border-gray-300 rounded-md text-sm text-gray-700 bg-white hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
|
||||
>
|
||||
Reset
|
||||
</button>
|
||||
<button
|
||||
onClick={handleSave}
|
||||
disabled={saving}
|
||||
|
||||
Reference in New Issue
Block a user