feat(07): add CSV format help text and Exchange 401 diagnostic hints
- CSV import dialog shows format line + example before mode selection - Exchange connection test: on 401, inline hint lists common causes (wrong credentials, domain format, username prefix, O365 not supported) - Both de/en translations updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -111,6 +111,11 @@ export function CsvImportButton({ onImported }: CsvImportButtonProps) {
|
||||
{/* Import mode inline dialog (below button, per UI-SPEC) */}
|
||||
{showDialog && selectedFile && (
|
||||
<div className="absolute right-0 top-10 z-30 w-80 rounded border border-border bg-card p-4 shadow-md">
|
||||
<div className="mb-3 rounded bg-muted/50 px-3 py-2 text-xs text-muted-foreground space-y-0.5">
|
||||
<p>{t('csvFormatHelp')}</p>
|
||||
<p className="font-mono">{t('csvFormatExample')}</p>
|
||||
</div>
|
||||
|
||||
<p className="text-sm font-medium text-foreground mb-3">
|
||||
{t('importMode')}
|
||||
</p>
|
||||
|
||||
@@ -507,6 +507,7 @@ export function InboxConfigForm() {
|
||||
|
||||
{/* Inline test feedback */}
|
||||
{testResult !== null && (
|
||||
<div className="space-y-1">
|
||||
<p
|
||||
className="text-sm"
|
||||
style={{
|
||||
@@ -521,6 +522,21 @@ export function InboxConfigForm() {
|
||||
error: testResult.message ?? 'Unbekannter Fehler',
|
||||
})}
|
||||
</p>
|
||||
{/* 401 hint for Exchange */}
|
||||
{!testResult.success &&
|
||||
form.protocol === 'exchange' &&
|
||||
testResult.message?.includes('401') && (
|
||||
<div className="rounded bg-muted/50 px-3 py-2 text-xs text-muted-foreground space-y-1">
|
||||
<p className="font-medium">{t('form.exchangeAuthHint')}</p>
|
||||
<ul className="list-disc list-inside space-y-0.5">
|
||||
<li>{t('form.exchangeAuthHint1')}</li>
|
||||
<li>{t('form.exchangeAuthHint2')}</li>
|
||||
<li>{t('form.exchangeAuthHint3')}</li>
|
||||
<li>{t('form.exchangeAuthHint4')}</li>
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Inline save feedback */}
|
||||
|
||||
@@ -296,6 +296,8 @@
|
||||
"deleteVehicle": "Fahrzeug loeschen",
|
||||
"deleteVehicleBody": "Das Fahrzeug {plate} wird dauerhaft aus der Stammdatenliste entfernt. Diese Aktion kann nicht rueckgaengig gemacht werden.",
|
||||
"importCsv": "CSV importieren",
|
||||
"csvFormatHelp": "CSV-Format (Semikolon): Kennzeichen;Marke;Modell;Fahrer",
|
||||
"csvFormatExample": "Beispiel: GP-JL 728E;Mercedes;GLC 300;Max Mustermann",
|
||||
"importMode": "Importmodus",
|
||||
"importMerge": "Zusammenfuehren — neue Fahrzeuge hinzufuegen, vorhandene behalten",
|
||||
"importReplace": "Ersetzen — alle vorhandenen Fahrzeuge loeschen und neu importieren",
|
||||
@@ -337,7 +339,12 @@
|
||||
"cancel": "Bearbeitung abbrechen",
|
||||
"cancelDialog": "Abbrechen",
|
||||
"showPassword": "Passwort anzeigen",
|
||||
"hidePassword": "Passwort verbergen"
|
||||
"hidePassword": "Passwort verbergen",
|
||||
"exchangeAuthHint": "401 — moegliche Ursachen:",
|
||||
"exchangeAuthHint1": "Falsches Passwort oder Benutzername",
|
||||
"exchangeAuthHint2": "Domain: Windows-Kurzname (z.B. FIRMA, nicht firma.de)",
|
||||
"exchangeAuthHint3": "Benutzername ohne Domain-Praefix (z.B. 'max.muster', nicht 'FIRMA\\max.muster')",
|
||||
"exchangeAuthHint4": "Office 365 / Exchange Online: EWS-Basisauthentifizierung seit Okt. 2022 deaktiviert — nicht unterstuetzt"
|
||||
},
|
||||
"errors": {
|
||||
"pollFailed": "Posteingang konnte nicht geprueft werden. Ueberpruefe die Konfiguration unter 'Moduleinstellungen > Posteingang'.",
|
||||
|
||||
@@ -296,6 +296,8 @@
|
||||
"deleteVehicle": "Delete Vehicle",
|
||||
"deleteVehicleBody": "Vehicle {plate} will be permanently removed from the master list. This action cannot be undone.",
|
||||
"importCsv": "Import CSV",
|
||||
"csvFormatHelp": "CSV format (semicolon): Kennzeichen;Marke;Modell;Fahrer",
|
||||
"csvFormatExample": "Example: GP-JL 728E;Mercedes;GLC 300;Max Mustermann",
|
||||
"importMode": "Import Mode",
|
||||
"importMerge": "Merge — add new vehicles, keep existing",
|
||||
"importReplace": "Replace — delete all existing vehicles and re-import",
|
||||
@@ -337,7 +339,12 @@
|
||||
"cancel": "Cancel Editing",
|
||||
"cancelDialog": "Cancel",
|
||||
"showPassword": "Show password",
|
||||
"hidePassword": "Hide password"
|
||||
"hidePassword": "Hide password",
|
||||
"exchangeAuthHint": "401 — possible causes:",
|
||||
"exchangeAuthHint1": "Wrong password or username",
|
||||
"exchangeAuthHint2": "Domain: Windows short name (e.g. COMPANY, not company.com)",
|
||||
"exchangeAuthHint3": "Username without domain prefix (e.g. 'max.muster', not 'COMPANY\\max.muster')",
|
||||
"exchangeAuthHint4": "Office 365 / Exchange Online: EWS basic auth disabled since Oct 2022 — not supported"
|
||||
},
|
||||
"errors": {
|
||||
"pollFailed": "Could not check inbox. Review the configuration under 'Module Settings > Inbox'.",
|
||||
|
||||
Reference in New Issue
Block a user