Docs: the row-height cap is conditional now, and the board's narrow-screen behaviour was nowhere in the page help

This commit is contained in:
Gmer4Lfe
2026-08-25 17:15:20 -04:00
parent 74c6a0f5eb
commit 820e8325a6
3 changed files with 29 additions and 7 deletions
+6 -4
View File
@@ -110,10 +110,12 @@ naming every card on the Monitor grid, its width and its order, and generates th
from it — the column ladder, the span clamps at each width, the row-height cap, and the from it — the column ladder, the span clamps at each width, the row-height cap, and the
compensation when a conditional card is absent. Column counts are 8/4/2/1 and spans are 1/2/4/8, compensation when a conditional card is absent. Column counts are 8/4/2/1 and spans are 1/2/4/8,
which is what lets the board re-cut itself at any width with no holes and no hand-placed card. which is what lets the board re-cut itself at any width with no holes and no hand-placed card.
Breakpoints are arithmetic over `VV_MON_CARD_FLOOR`, never chosen by eye. `pages/monitor.php` Breakpoints are arithmetic over `VV_MON_CARD_FLOOR`, never chosen by eye. The row-height cap is
carries the card bodies and nothing about where they go; moving a card is moving a line in that conditional on the same arithmetic: it applies only where a rung fits one screen, because a rung
array. The page cross-checks the declaration against the cards that actually rendered and says so with more rows than that scrolls the page however its rows are sized, and capping there would clip
in the browser if they disagree. every card to buy nothing. `pages/monitor.php` carries the card bodies and nothing about where
they go; moving a card is moving a line in that array. The page cross-checks the declaration
against the cards that actually rendered and says so in the browser if they disagree.
**Caching.** Several endpoints serve from `$VV_CACHE_DIR` (`/tmp/varaverk/api`, tmpfs) rather than hitting live **Caching.** Several endpoints serve from `$VV_CACHE_DIR` (`/tmp/varaverk/api`, tmpfs) rather than hitting live
APIs on every page view, refreshed by `Tools/api_cache_writer.sh`. `?live=1` bypasses the APIs on every page view, refreshed by `Tools/api_cache_writer.sh`. `?live=1` bypasses the
+7 -3
View File
@@ -80,9 +80,13 @@ const VV_MON_PAD = 20; // horizontal padding the Unraid page wrapper takes off
// The column ladder, widest first. // The column ladder, widest first.
const VV_MON_RUNGS = [8, 4, 2, 1]; const VV_MON_RUNGS = [8, 4, 2, 1];
// Cap on how many rows may share one screen height. The row-height cap divides the viewport by // Cap on how many rows may share one screen height — and the line between two behaviours, not one
// this, so a card can never grow past a quarter of the screen and push the rest off it. Rungs // rule. A rung with no more rows than this fits a screen: the row-height cap divides the viewport
// with fewer rows than this divide by their own row count instead and fill the screen. // by the rung's own row count, or by this when the rung has more, so the board fills the screen
// and no card grows past its share. A rung with MORE rows than this cannot fit however its rows
// are sized, so the cap is dropped there and rows size to content instead — see
// vv_mon_rung_overflows(). Capping a board that scrolls regardless buys nothing and clips every
// card to pay for it. This board is 4 rows at eight columns and 8 at four, so both cases are live.
const VV_MON_ROWS_PER_SCREEN = 4; const VV_MON_ROWS_PER_SCREEN = 4;
// ── The board ───────────────────────────────────────────────────────────────────────────────── // ── The board ─────────────────────────────────────────────────────────────────────────────────
@@ -10,6 +10,22 @@ a minute, so polling faster could not make it newer — it only decides how soon
**Cards you do not have do not appear.** No GPU, no UPS, no VMs, no partner — the card is absent **Cards you do not have do not appear.** No GPU, no UPS, no VMs, no partner — the card is absent
rather than showing zeros. An empty card would be a permanent reminder of nothing. rather than showing zeros. An empty card would be a permanent reminder of nothing.
**The board re-flows on a narrow screen.** On a tablet or a phone the cards regroup into fewer,
wider columns rather than shrinking in place. Nothing is hidden and nothing is dropped — the same
cards are there in the same order, cut into different rows.
Below the full-width layout the page scrolls as a whole instead of each card scrolling inside
itself. A board that is taller than the screen has to scroll somewhere, and scrolling the page
once is better than being handed a screen of cards that are each too short to read.
**Cards in the same row share a height.** They line up along the bottom, so a card with little to
say carries empty space under it. That space means its neighbour is the taller card — not that a
reading is missing.
The System card is the one exception. On a narrow screen it stops after Version and the Varaverk
figures below scroll, so that the host itself — hostname, clock, array state, uptime — is what
you get without scrolling anything.
--- ---
## Reference — System, power, CPU, memory, network ## Reference — System, power, CPU, memory, network