Add node heatmaps to the overview and node lists - #504
Merged
Merged
Conversation
Use the public Goresheat setting and per-node FQDN links from the legacy UI. Open charts on demand in a responsive dialog from public, member and admin node lists while preserving node-type and maintenance eligibility.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
English
The legacy overview provides a heatmap action after cgroups, but the new UI has no equivalent. Add a labeled Heatmap button to the public node table/cards and the member/admin node lists. It opens a large responsive dialog (fullscreen on mobile) with the existing live Goresheat page, CPU/disk description, a persistent Close button and an Open in new tab fallback.
The integration reads the existing public
webui/goresheat_urlSystemConfig setting. It uses the exact node FQDN path and legacy eligibility: typenodeorstorage,maintenance_lock=no. No hardcoded service host or new backend endpoint. External charts load only after clicking; closing removes the iframe. Missing, failed or unsafe configuration leaves the node list usable without heatmap actions. URLs must be HTTPS and contain no credentials; no application token is added to chart URLs and iframe referrers are suppressed.Implementation includes an opt-in XL size for the existing Modal and a viewport height token, plus Czech/English labels. No existing modal size changes.
Validation:
page_index.php,goresheat.js, plugin config and SystemConfig API. Current Goresheat page returned HTTP 200 without X-Frame-Options/frame-ancestors restrictions. Its live WebSocket charts were not exercised by these fixture tests.Risk: rendering still depends on the configured external Goresheat service and its framing policy. A direct external link remains available. No API mutation, migration, merge or deployment included.
Česky
Doplňuje chybějící heatmapy ze starého UI. Tlačítko Heatmapa je napravo od cgroups ve veřejném přehledu a mezi akcemi v seznamu nodů člena/admina; na mobilu v kartách. Otevírá velké okno s grafy, na mobilu přes celou obrazovku, s odkazem do nové karty a dostupným zavřením.
Používá stávající veřejnou konfiguraci
webui/goresheat_url, skutečné FQDN nodu a stejné podmínky jako staré UI: výpočetní/storage node bez zámku údržby. Grafy se načítají až na vyžádání a po zavření se iframe odstraní. Chybějící konfigurace ani její chyba nezablokuje seznam. Jen HTTPS adresy bez přihlašovacích údajů; bez tokenu aplikace v odkazu.Ověřeno: typecheck, lint, překlady, build, 27 unit testů, 22 širších desktop/mobile Playwright kontrol a následně finální sada heatmap 16/16 včetně chybějící/nedostupné konfigurace. České/anglické UI, anonym/člen/admin, URL, zavření, fokus a responzivní okno; vizuálně zkontrolované screenshoty. Jde o fixture testy, ne live VM ani produkční telemetrii. Goresheat ověřen read-only přes HTTP; jeho živé WebSocket grafy testy nenahrazují.
Bez změny backendu či nasazení. Dostupnost grafů závisí na službě Goresheat; záložní odkaz do samostatné karty zůstává k dispozici.