From eeb89e09db1bccc0042701655bc5f6385915b499 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Thu, 9 Jul 2026 13:34:55 +0200 Subject: [PATCH] Vertrag-Zugangsdaten: Externtab-Links neben Stressfrei-Select MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rechts neben dem Stressfrei-Adressen-Dropdown sitzen jetzt zwei kleine Icon-Links (nur bei gewähltem Kunden sichtbar): - ExternalLink → öffnet den Stressfrei-Tab des Kunden im neuen Tab (dort kann man die Adressen anlegen/pflegen) - Mail → öffnet den E-Mail-Postfach-Tab des Kunden im neuen Tab Damit muss man beim Vertragserstellen nicht mehr die Seite wechseln, um schnell eine Stressfrei-Adresse anzulegen oder ins Postfach zu springen. Co-Authored-By: Claude Opus 4.7 --- frontend/src/pages/contracts/ContractForm.tsx | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/frontend/src/pages/contracts/ContractForm.tsx b/frontend/src/pages/contracts/ContractForm.tsx index 8df2bf6a..30813fd2 100644 --- a/frontend/src/pages/contracts/ContractForm.tsx +++ b/frontend/src/pages/contracts/ContractForm.tsx @@ -15,7 +15,7 @@ import { buildContractLabelParts } from '../../utils/contractLabel'; import type { ContractType } from '../../types'; import { formatDate } from '../../utils/dateFormat'; import { useProviderSettings } from '../../hooks/useProviderSettings'; -import { Plus, Trash2, Eye, EyeOff, Info, X, ArrowLeft, ExternalLink } from 'lucide-react'; +import { Plus, Trash2, Eye, EyeOff, Info, X, ArrowLeft, ExternalLink, Mail } from 'lucide-react'; // Kleine Helper-Komponente: Label + Mini-Link im neuen Tab. Wird neben // Select-Feldern eingesetzt, deren Stammdaten an anderer Stelle gepflegt @@ -1116,15 +1116,43 @@ export default function ContractForm() { {customerEmailLabel} Adresse {usernameType === 'stressfrei' && ( - setSelectedStressfreiEmailId(e.target.value)} + options={stressfreiEmails.map((e: { id: number; email: string; notes?: string }) => ({ + value: e.id, + label: e.email + (e.notes ? ` (${e.notes})` : ''), + }))} + placeholder={stressfreiEmails.length === 0 ? 'Keine Stressfrei-Adressen vorhanden' : 'Adresse auswählen...'} + /> + + {customerId && ( +
+ + + + + + +
+ )} + )} {usernameType === 'stressfrei' && stressfreiEmails.length === 0 && (