Adressen tragen die Kennungen ihrer Jobs (job_ids) – das Anruf-Popup zeigt
je Kennung einen Knopf, der den Job über den neuen Endpunkt
GET /api/jobs/{id} aus der Sammlung holt und seine Sprungadresse (url) in
einem neuen Tab öffnet; Fehler (unbekannte Kennung, Ablage nicht
erreichbar) erscheinen im Popup. Der Knopf "Auftrag öffnen" (customer.url)
ist entfallen.
Das Popup öffnet jetzt bei jedem eingehenden Anruf – mit Kundendaten, wenn
die Rufnummer einem Kunden gehört, sonst nur mit der Rufnummer – und trägt
links unten einen grünen Knopf "Anruf annehmen", solange es klingelt. Die
Anrufkarte über den Tabs (IncomingCallCard) ist damit überflüssig und
samt Styles ausgebaut; ein Ablehnen-Knopf fehlt dem Popup noch.
Die Debug-Starts beenden vorab einen Altlauf des Backends: eine Task macht
Port 8080 frei (nur der Lauscher – lsof ohne -sTCP:LISTEN träfe auch den
Vite-Proxy) und hängt als preLaunchTask an beiden Backend-Konfigurationen;
tasks.json wandert dafür mit ins Repo.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
25 lines
1.0 KiB
JSON
25 lines
1.0 KiB
JSON
{
|
||
"version": "2.0.0",
|
||
"tasks": [
|
||
{
|
||
// Beendet ein noch laufendes Backend (den Lauscher auf Port 8080), damit
|
||
// der Debug-Start immer den frischen Stand startet statt an der
|
||
// Portbelegung zu scheitern – egal ob der Altlauf aus VS Code,
|
||
// "mvnw spring-boot:run" oder einem Terminal stammt. Nur -sTCP:LISTEN:
|
||
// ohne die Einschränkung träfe lsof auch Prozesse mit offener Verbindung
|
||
// zum Backend, etwa den Vite-Dev-Server (Proxy). Wartet kurz, bis der
|
||
// Port wirklich frei ist; "exit 0" auch ohne Treffer, sonst bräche der
|
||
// Launch ab.
|
||
"label": "Backend-Port 8080 freimachen",
|
||
"type": "shell",
|
||
"command": "pids=$(lsof -ti tcp:8080 -sTCP:LISTEN); if [ -n \"$pids\" ]; then echo \"Beende laufendes Backend (PID $pids) …\"; kill $pids; for i in $(seq 1 25); do lsof -ti tcp:8080 -sTCP:LISTEN >/dev/null || break; sleep 0.2; done; fi; exit 0",
|
||
"presentation": {
|
||
"reveal": "silent",
|
||
"panel": "shared",
|
||
"close": true
|
||
},
|
||
"problemMatcher": []
|
||
}
|
||
]
|
||
}
|