varaverk: monitor tab overhaul — grid layout, dynamic thresholds, new cards
Layout: - Switch from three flex rows to single CSS grid (repeat(8,1fr)) — eliminates gap-count discrepancy between rows; span 1/2/4/8 cards are now pixel-identical across all rows regardless of how many cards share the row New cards: - Scripts card: last-run status (ok/warn/running/unknown), clickable filter pills, 7-row scroll, flex:1 matching Power/Parity - Streams card: live per-second progress counters, color-coded play buttons (blue=live, orange=transcoding, green=direct, yellow=paused), server badges with counts, left-fill column layout (3 per col) - Transcode card: NVMe indicator, active session count + scrollable list, session rows with server icon + title + type + method Dynamic thresholds: - vv_disk_thresholds() reads /boot/config/plugins/dynamix/dynamix.cfg - Disk utilization bars: green/orange/red based on warning/critical settings - Temperature colors: hot/max for HDD, hotssd/maxssd for SSD/NVMe - Thresholds update every poll cycle; changing Unraid settings takes effect automatically Other: - SSD path detection uses findmnt FSTYPE to exclude tmpfs/ramfs (fixes RAM being reported as SSD transcode target) - varaverk.css h3: add white-space:normal + overflow:hidden to neutralise any Unraid global h3 styles that could force card width
This commit is contained in:
@@ -110,17 +110,18 @@ function vv_fetch_jf_sessions(array $srv): array {
|
||||
}
|
||||
|
||||
$result[] = [
|
||||
'server' => $srv['name'],
|
||||
'user' => $s['UserName'] ?? '?',
|
||||
'title' => $title,
|
||||
'type' => $type,
|
||||
'client' => trim(($s['Client'] ?? '') . ' / ' . ($s['DeviceName'] ?? ''), ' /'),
|
||||
'method' => $method,
|
||||
'paused' => !empty($ps['IsPaused']),
|
||||
'pct' => $pct,
|
||||
'pos_sec' => (int)($pos / 10000000),
|
||||
'dur_sec' => (int)($dur / 10000000),
|
||||
'is_tc' => $tc !== null,
|
||||
'server' => $srv['name'],
|
||||
'server_type' => $srv['type'],
|
||||
'user' => $s['UserName'] ?? '?',
|
||||
'title' => $title,
|
||||
'type' => $type,
|
||||
'client' => trim(($s['Client'] ?? '') . ' / ' . ($s['DeviceName'] ?? ''), ' /'),
|
||||
'method' => $method,
|
||||
'paused' => !empty($ps['IsPaused']),
|
||||
'pct' => $pct,
|
||||
'pos_sec' => (int)($pos / 10000000),
|
||||
'dur_sec' => (int)($dur / 10000000),
|
||||
'is_tc' => $tc !== null,
|
||||
];
|
||||
}
|
||||
return $result;
|
||||
@@ -160,17 +161,18 @@ function vv_fetch_plex_sessions(array $srv): array {
|
||||
|
||||
$player = $m['Player'] ?? [];
|
||||
$result[] = [
|
||||
'server' => $srv['name'],
|
||||
'user' => ($m['User']['title'] ?? '?'),
|
||||
'title' => $title,
|
||||
'type' => ucfirst($type),
|
||||
'client' => trim(($player['product'] ?? '') . ' / ' . ($player['title'] ?? ''), ' /'),
|
||||
'method' => $method,
|
||||
'paused' => ($player['state'] ?? '') === 'paused',
|
||||
'pct' => $pct,
|
||||
'pos_sec' => (int)($offset / 1000),
|
||||
'dur_sec' => (int)($dur / 1000),
|
||||
'is_tc' => $isTc,
|
||||
'server' => $srv['name'],
|
||||
'server_type' => $srv['type'],
|
||||
'user' => ($m['User']['title'] ?? '?'),
|
||||
'title' => $title,
|
||||
'type' => ucfirst($type),
|
||||
'client' => trim(($player['product'] ?? '') . ' / ' . ($player['title'] ?? ''), ' /'),
|
||||
'method' => $method,
|
||||
'paused' => ($player['state'] ?? '') === 'paused',
|
||||
'pct' => $pct,
|
||||
'pos_sec' => (int)($offset / 1000),
|
||||
'dur_sec' => (int)($dur / 1000),
|
||||
'is_tc' => $isTc,
|
||||
];
|
||||
}
|
||||
return $result;
|
||||
|
||||
Reference in New Issue
Block a user