feat: add WebDAV file browser with auth improvements
Add a new Files section powered by WebDAV for browsing, uploading, downloading, renaming, and deleting files and folders. New features: - WebDAV file browser with grid/list views and breadcrumb navigation - File upload (drag-and-drop and button), folder creation, rename, delete - File preview modals for images and other file types - WebDAV proxy API route to handle authentication - Navigation rail entry for Files (auto-hidden when WebDAV is unsupported) Auth improvements: - Fix premature redirects on calendar, contacts, and settings pages by adding explicit auth check on mount before redirecting to login - Persist active settings tab in localStorage Other: - Expose getAuthHeader() and getServerUrl() on JMAPClient - Add WebDAV store with connection testing and capability detection - Add i18n translations for file browser in all 8 locales (de, en, es, fr, it, ja, nl, pt)
This commit is contained in:
@@ -61,6 +61,7 @@
|
||||
"contacts": "Kontakte",
|
||||
"calendar": "Kalender",
|
||||
"settings": "Einstellungen",
|
||||
"files": "Dateien",
|
||||
"loading_mailboxes": "Postfächer werden geladen...",
|
||||
"push_connected": "Echtzeit-Updates aktiv",
|
||||
"push_disconnected": "Echtzeit-Updates inaktiv",
|
||||
@@ -1692,5 +1693,83 @@
|
||||
"got_it": "Verstanden",
|
||||
"settings": "Einstellungen",
|
||||
"dismiss": "Schließen"
|
||||
},
|
||||
"files": {
|
||||
"title": "Dateien",
|
||||
"search_placeholder": "Dateien suchen...",
|
||||
"empty_state_title": "Noch keine Dateien",
|
||||
"empty_state_description": "Laden Sie Dateien hoch oder erstellen Sie Ordner, um loszulegen",
|
||||
"upload": "Hochladen",
|
||||
"upload_files": "Dateien hochladen",
|
||||
"new_folder": "Neuer Ordner",
|
||||
"new_folder_name": "Ordnername",
|
||||
"rename": "Umbenennen",
|
||||
"rename_title": "Umbenennen",
|
||||
"new_name": "Neuer Name",
|
||||
"delete": "Löschen",
|
||||
"delete_confirm_title": "Ressource löschen",
|
||||
"delete_confirm_message": "Möchten Sie \"{name}\" wirklich löschen? Dies kann nicht rückgängig gemacht werden.",
|
||||
"download": "Herunterladen",
|
||||
"name": "Name",
|
||||
"size": "Größe",
|
||||
"modified": "Geändert",
|
||||
"type": "Typ",
|
||||
"folder": "Ordner",
|
||||
"file": "Datei",
|
||||
"parent_directory": "Übergeordnetes Verzeichnis",
|
||||
"breadcrumb_root": "Startseite",
|
||||
"drop_files_here": "Dateien hier ablegen zum Hochladen",
|
||||
"uploading": "Wird hochgeladen...",
|
||||
"upload_success": "{count, plural, one {1 Datei hochgeladen} other {# Dateien hochgeladen}}",
|
||||
"upload_error": "Datei konnte nicht hochgeladen werden",
|
||||
"create_folder_success": "Ordner erstellt",
|
||||
"create_folder_error": "Ordner konnte nicht erstellt werden",
|
||||
"delete_success": "Erfolgreich gelöscht",
|
||||
"delete_error": "Löschen fehlgeschlagen",
|
||||
"rename_success": "Erfolgreich umbenannt",
|
||||
"rename_error": "Umbenennen fehlgeschlagen",
|
||||
"download_error": "Herunterladen fehlgeschlagen",
|
||||
"not_available": "WebDAV-Dateispeicher ist auf diesem Server nicht verfügbar",
|
||||
"cancel": "Abbrechen",
|
||||
"create": "Erstellen",
|
||||
"save": "Speichern",
|
||||
"no_results": "Keine Dateien entsprechen Ihrer Suche",
|
||||
"batch_delete_confirm_message": "Möchten Sie wirklich {count, plural, one {1 Element} other {# Elemente}} löschen? Dies kann nicht rückgängig gemacht werden.",
|
||||
"batch_delete_success": "{count, plural, one {1 Element gelöscht} other {# Elemente gelöscht}}",
|
||||
"grid_view": "Rasteransicht",
|
||||
"list_view": "Listenansicht",
|
||||
"details": "Details",
|
||||
"path": "Pfad",
|
||||
"preview": "Vorschau",
|
||||
"preview_error": "Vorschau konnte nicht geladen werden",
|
||||
"cut": "Ausschneiden",
|
||||
"copy": "Kopieren",
|
||||
"paste": "Einfügen",
|
||||
"move_success": "{count, plural, one {1 Element verschoben} other {# Elemente verschoben}}",
|
||||
"move_error": "Verschieben fehlgeschlagen",
|
||||
"paste_success": "Erfolgreich eingefügt",
|
||||
"paste_error": "Einfügen fehlgeschlagen",
|
||||
"new_text_file": "Neue Textdatei",
|
||||
"file_name": "Dateiname",
|
||||
"retry": "Wiederholen",
|
||||
"refresh": "Aktualisieren",
|
||||
"toggle_favorite": "Favorit umschalten",
|
||||
"duplicate": "Duplizieren",
|
||||
"duplicate_success": "Erfolgreich dupliziert",
|
||||
"duplicate_error": "Duplizieren fehlgeschlagen",
|
||||
"create_file_success": "Datei erstellt",
|
||||
"create_file_error": "Datei konnte nicht erstellt werden",
|
||||
"favorites": "Favoriten",
|
||||
"recent": "Zuletzt verwendet",
|
||||
"properties": "Eigenschaften",
|
||||
"open_folder": "Ordner öffnen",
|
||||
"upload_folder": "Ordner hochladen",
|
||||
"file_too_large": "\"{name}\" überschreitet die maximale Dateigröße ({max})",
|
||||
"undo": "Rückgängig",
|
||||
"undo_success": "Aktion rückgängig gemacht",
|
||||
"undo_error": "Rückgängig machen fehlgeschlagen",
|
||||
"toolbar": "Dateiaktionen",
|
||||
"file_list": "Dateien und Ordner",
|
||||
"context_menu": "Aktionen"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user