feat(admin): updates as a version comparison, holds lead with the reason, free-tier line on the seat meter #329
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/admin-final"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Admin slice D of the UI port (#311). Presentation-only: no endpoints, ids, or save handlers change.
Updates — was a stack of "Label: value"
.sharemetalines. The question the page actually answers is a comparison (what you run vs. what exists), so the comparison is now the object: running version → latest, the box border warming when an update is due, with the apply instruction sitting directly beneath it because it is the only actionable thing on the page. Adds a "How checking works" table stating plainly what is sent (a version string — no instance name, no user count, no file data), how often, and that applying is always manual.Legal holds — the note is the reason, which is the first field an auditor reads, and it was being joined into a single meta string between the author and the timestamp. Rows now lead with the path, then the reason (or an explicit "No reason recorded"), then who/when as quiet meta. Lift demoted from
.dangerto.linkbtn: lifting a hold is deliberate but not destructive, and a row of red buttons reads as a hazard.Licensing — the free tier is the product's promise, not a lesser licence, so the 50-seat threshold is drawn on the seat meter instead of being left in prose. Footer states what a seat is (people who have signed in, not accounts), which is the recurring support question.
Peering — deliberately untouched. It already received a full relationship-card redesign (v0.6.32–41);
peerCardEljoins the inbound key we issued with the outbound peer entry and handles either half being absent. Restyling it would have re-litigated a design that already shipped, so this slice leaves it alone.Two things dropped rather than faked, recorded for #311:
Implementation notes: the free-tier marker hangs off an outer
.seatwrap, not.stobar, because the bar carriesoverflow:hiddento clip the fill's corners and would clip the marker out of existence. The updates fetch helper was read off the function being replaced rather than assumed. i18n audit passes with no missing keys; all four languages populated.