31 Commits

Author SHA1 Message Date
kodi 94a2f4586a fix: cpu/mem container view 2026-03-27 18:23:16 +01:00
kodi 2dfe53895b feat (ui): compacte IDE-sidebar tree view voor Files tabblad
- Vervang kaart-stijl folder-rijen door compacte, platte rijen (2px padding, geen border)
- Verwijder badge-tellers (📁 N, 📄 N) uit folder-rijen
- Voeg .btn.tiny toe voor kleine actieknoppen (+/✕) in boom
- Alle mappen standaard ingeklapt; localStorage behoudt uitgeklapte staat
- file-entry hover highlight; verwijder bottom-border per rij

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 18:19:04 +01:00
kodi 5f6719464d fix (ui/volumes): herstel container-koppeling via inspect endpoint
containers-dashboard geeft Mounts als strings (destination paden).
Volledige mount-info (Type + Name) zit alleen in /containers/inspect/{name}.

Fix: voor containers met niet-lege Mounts parallel inspect ophalen,
daarna filteren op Type === "volume" voor named volume koppeling.

Getest: postgresdb_data → postgres-db, n8n_data → n8n.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 17:51:37 +01:00
kodi 249d24721c feat (ui): voeg Volumes tabblad toe aan webui
Nieuw tabblad na Images met:
- Tabel: Naam, Driver, Mountpoint (afgekapt + tooltip), Aangemaakt
  (relatieve tijd), Labels (pills), Containers (pills via Mounts koppeling)
- Toolbar: Ververs, + Volume, Prune (met bevestigingsdialoog)
- Verwijder knop per rij (uitgeschakeld als volume in gebruik)
- Create Volume modal: naam (verplicht) + labels (key=value per regel)
- Lege staat via renderStateBox

volumes.js: _volEsc() voor XSS-safe rendering, encodeURIComponent
voor onclick-handlers, parallel fetch volumes + containers-dashboard
voor container-koppeling via Mounts[].Name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 17:34:29 +01:00
kodi e469508570 feat (docs): voeg Swagger UI toe op /docs, lokaal gebundeld
- Swagger UI v5.32.1 lokaal in assets/swagger-ui/ (geen CDN, offline bruikbaar)
- webui/html/docs/index.html: custom pagina die /api/openapi.json laadt
  met requestInterceptor zodat Try it out via same-origin werkt
- Link toegevoegd aan dashboard "Snel acties": API docs ↗ (opent in nieuw tabblad)
- Docstrings toegevoegd aan destructieve endpoints (app_containers, app_images):
  container stop/restart, image remove (batch + single), image prune
  geven nu ⚠️-waarschuwingen in de Swagger UI beschrijving
- Backend rebuild nodig voor docstrings zichtbaar in spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 07:30:51 +01:00
kodi c338955320 refactor (networks): herschrijf networks_usage, bundel D3 lokaal
- Verwijder phase-3 hex-ID fallback (~160 regels): NetworkSettings.Networks
  uit container inspect is de ground truth, niet netwerk-inspect + scannen
- Filter infra containers via IsInfra flag + naam-regex ^[0-9a-f]+-infra$
- Voeg IP en aliases toe aan byNetwork container entries (via inspect)
- Bridge containers krijgen altijd een inspect-call voor IP/aliases;
  pasta/host/none containers worden overgeslagen
- D3 v7.9.0 lokaal gebundeld (assets/js/d3.min.js, CDN-afhankelijkheid weg)
- Nieuw webui/Containerfile voor reproduceerbare webui image builds

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:28:39 +01:00
kodi f016c2bae0 perf: stats poll via lichtgewicht /api/stats i.p.v. /containers-dashboard
De frontend haalde CPU/mem stats op via het zware /containers-dashboard
endpoint (Podman call + os.walk + systemctl subprocesses per container).
Nu gaat de stats poll via een nieuw /api/stats endpoint dat alleen de
bestaande in-memory cache teruggeeft (<5ms vs ~400ms).

- app_containers.py: /api/stats endpoint toegevoegd (cache direct return)
- app_containers.py: _STATS_SHOWN_NAMES bijgehouden per dashboard call
  (filtert infra/management containers eruit op basis van _dashboard_source)
- containers.js: pollContainersDashboardStatsOnce() gebruikt /api/stats

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:09:53 +01:00
kodi 2c5cb07cdb feat (ui): exec fase 5 2026-03-06 19:55:31 +01:00
kodi a4099867a5 feat (ui): exec fase 3 2026-03-06 18:13:55 +01:00
kodi 39a33e5711 feat (ui): exec fase 2 2026-03-06 17:25:11 +01:00
kodi 92e0e04905 feat (ui): exec fase 1 2026-03-04 16:39:41 +01:00
kodi a1609c8ea7 Opschonen app.css: Stap 1 & 2 voltooid
Stap 1: Verwijderen ongebruikte tokens en selectors
- Ongebruikte tokens: --badge-green-*, --badge-yellow-*
- Ongebruikte selectors: .pill, .data-table, .badge-green/yellow
- Resultaat: -38 regels, lagere onderhoudslast.

Stap 2: Consolidatie en opschonen cascade
- .mapLegend volledig geconsolideerd naar één definitieve set.
- Overlappende file-row fallback verwijderd.
- Resultaat: -68 regels, cascade opgeschoond.
2026-03-04 08:13:45 +01:00
kodi 6bf30db62c feat (ui): Light/Dark Theme added Complete 2026-03-04 07:48:58 +01:00
kodi ebefd2d80c feat (ui): Light/Dark Theme added 02 2026-03-04 07:29:43 +01:00
kodi 1d5bdd5089 feat (ui): Light/Dark Theme added 2026-03-03 15:17:52 +01:00
kodi 3a80ba09af feat(ui): ondersteuning Containerfile zichtbaar in build UI
- Label aangepast naar 'Dockerfile/Containerfile'
- Picker-titel aangepast naar 'Kies Dockerfile/Containerfile'
- Default waarde van buildDockerfile input leeggemaakt
- Validatiemelding aangepast naar 'Dockerfile/Containerfile'

Geen backend- of API-wijzigingen; dockerfile blijft leidend veld.
2026-03-01 11:09:18 +01:00
kodi 1226b0654e refactor(api): move /test-hybrid into app_system router 2026-02-28 11:58:55 +01:00
kodi b21d2cb2ac refact (ui): 01 2026-02-25 18:17:08 +01:00
kodi ebb6d755a0 feat (ui): netwerken en files verfraaid 2026-02-25 10:07:35 +01:00
kodi ec13059437 feat (ui): netwerk map functionaliteit verder uitgebreid en polish 2026-02-24 12:37:17 +01:00
kodi 289d222707 feat (ui): netwerk map functionaliteit verder uitgebreid met detail info per netwerk 2026-02-23 16:27:07 +01:00
kodi 001b745e2f feat (ui): functionaliteit knoppen auto-layout en reset-view toegevoegd 2026-02-23 14:04:29 +01:00
kodi 0337f1438f feat(gui): netwerk tab netwerk layout grafisch - 02 2026-02-22 19:59:45 +01:00
kodi 18ee367e1d feat(gui): netwerk tab netwerk layout grafisch 2026-02-22 18:24:57 +01:00
kodi e4214858ac Netwerken UI refactor: shared netns badge verplaatst naar Flags kolom
- Containers kolom toont nu uitsluitend het numerieke aantal containers
- Shared network namespace wordt bepaald via expliciete isShared check
- 'shared' badge verplaatst van Containers kolom naar Flags kolom
- Eerdere uitlijnings-experimenten en CSS overrides opgeschoond
- Duidelijke scheiding aangebracht tussen metriek (aantal) en status (shared netns)

Resultaat: semantisch correctere tabel, stabielere layout en betere leesbaarheid.
2026-02-22 13:51:56 +01:00
kodi cffb5e94a2 refract(ui): WebUI: netwerklogica uit index.html gehaald naar networks.js 2026-02-22 07:48:39 +01:00
kodi 597388055c feat(ui): image tabblad sorteren toegevoegd 2026-02-21 14:34:55 +01:00
kodi d28633a22d feat(ui): image tabblad uitgebreid met Dockerfile selectie en tag suggestie 2026-02-21 14:09:13 +01:00
kodi 815d16f872 feat(ui): image tabblad toegevoegd 2026-02-21 12:33:10 +01:00
kodi acbf150e28 feat(ui): netwerk overzicht toegevoegd 2026-02-21 10:28:20 +01:00
kodi b8ba0f08dc refactor(webui): introduceer assets-structuur en externe stylesheet
- CSS verplaatst naar assets/css/app.css
- Logo en favicon verplaatst naar assets/img en assets/icons
- index.html verwijst naar nieuwe paden
2026-02-20 12:05:28 +01:00