fix(portal): Modul-Kachel-Links dynamisch statt hartkodiertem localhost auflösen #260

Merged
patrick merged 1 commits from feature/shl-04-modul-kachel-links-dynamisch into main 2026-10-14 16:24:34 +02:00
Owner

Problem: web/portal/config/modules.json enthaelt fuer jede Modul-Kachel einen hartkodierten href wie http://localhost:3107. Beim Aufruf des Portals von einem anderen Host im LAN zeigt ein Klick auf eine Kachel auf localhost beim aufrufenden Client, nicht auf den Portal-Host — unerreichbar. Live im Portal gefunden.

Fix: web/portal/app/ModuleGrid.tsx: neue Funktion resolveModuleHref(href, currentHostname) ersetzt url.hostname nur wenn er localhost ist UND der aktuelle Hostname (aus window.location.hostname) davon abweicht. Kein Eingriff in modules.json-Format oder Backend-API.

Pruefungen:

  • npx vitest run ModuleGrid.test.tsx: 5/5 PASS
  • npx tsc --noEmit: keine Fehler in ModuleGrid.tsx/.test.tsx

🤖 Generated with Claude Code

**Problem:** `web/portal/config/modules.json` enthaelt fuer jede Modul-Kachel einen hartkodierten `href` wie `http://localhost:3107`. Beim Aufruf des Portals von einem anderen Host im LAN zeigt ein Klick auf eine Kachel auf `localhost` beim aufrufenden Client, nicht auf den Portal-Host — unerreichbar. Live im Portal gefunden. **Fix:** `web/portal/app/ModuleGrid.tsx`: neue Funktion `resolveModuleHref(href, currentHostname)` ersetzt `url.hostname` nur wenn er `localhost` ist UND der aktuelle Hostname (aus `window.location.hostname`) davon abweicht. Kein Eingriff in `modules.json`-Format oder Backend-API. **Pruefungen:** - `npx vitest run ModuleGrid.test.tsx`: 5/5 PASS - `npx tsc --noEmit`: keine Fehler in ModuleGrid.tsx/.test.tsx 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-10-14 15:49:24 +02:00
fix(portal): Modul-Kachel-Links dynamisch statt hartkodiertem localhost auflösen
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
c09093b572
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit 6cf14b957c into main 2026-10-14 16:24:34 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#260