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": "Contatti",
|
||||
"calendar": "Calendario",
|
||||
"settings": "Impostazioni",
|
||||
"files": "File",
|
||||
"loading_mailboxes": "Caricamento caselle di posta...",
|
||||
"push_connected": "Aggiornamenti in tempo reale attivi",
|
||||
"push_disconnected": "Aggiornamenti in tempo reale non attivi",
|
||||
@@ -1692,5 +1693,83 @@
|
||||
"got_it": "Ho capito",
|
||||
"settings": "Impostazioni",
|
||||
"dismiss": "Chiudi"
|
||||
},
|
||||
"files": {
|
||||
"title": "File",
|
||||
"search_placeholder": "Cerca file...",
|
||||
"empty_state_title": "Nessun file ancora",
|
||||
"empty_state_description": "Carica file o crea cartelle per iniziare",
|
||||
"upload": "Carica",
|
||||
"upload_files": "Carica file",
|
||||
"new_folder": "Nuova cartella",
|
||||
"new_folder_name": "Nome cartella",
|
||||
"rename": "Rinomina",
|
||||
"rename_title": "Rinomina",
|
||||
"new_name": "Nuovo nome",
|
||||
"delete": "Elimina",
|
||||
"delete_confirm_title": "Elimina risorsa",
|
||||
"delete_confirm_message": "Sei sicuro di voler eliminare \"{name}\"? Questa azione non può essere annullata.",
|
||||
"download": "Scarica",
|
||||
"name": "Nome",
|
||||
"size": "Dimensione",
|
||||
"modified": "Modificato",
|
||||
"type": "Tipo",
|
||||
"folder": "Cartella",
|
||||
"file": "File",
|
||||
"parent_directory": "Directory superiore",
|
||||
"breadcrumb_root": "Home",
|
||||
"drop_files_here": "Trascina i file qui per caricarli",
|
||||
"uploading": "Caricamento in corso...",
|
||||
"upload_success": "{count, plural, one {1 file caricato} other {# file caricati}}",
|
||||
"upload_error": "Caricamento del file non riuscito",
|
||||
"create_folder_success": "Cartella creata",
|
||||
"create_folder_error": "Creazione della cartella non riuscita",
|
||||
"delete_success": "Eliminato con successo",
|
||||
"delete_error": "Eliminazione non riuscita",
|
||||
"rename_success": "Rinominato con successo",
|
||||
"rename_error": "Rinominazione non riuscita",
|
||||
"download_error": "Download non riuscito",
|
||||
"not_available": "L'archiviazione file WebDAV non è disponibile su questo server",
|
||||
"cancel": "Annulla",
|
||||
"create": "Crea",
|
||||
"save": "Salva",
|
||||
"no_results": "Nessun file corrisponde alla ricerca",
|
||||
"batch_delete_confirm_message": "Sei sicuro di voler eliminare {count, plural, one {1 elemento} other {# elementi}}? Questa azione non può essere annullata.",
|
||||
"batch_delete_success": "{count, plural, one {1 elemento eliminato} other {# elementi eliminati}}",
|
||||
"grid_view": "Vista a griglia",
|
||||
"list_view": "Vista a elenco",
|
||||
"details": "Dettagli",
|
||||
"path": "Percorso",
|
||||
"preview": "Anteprima",
|
||||
"preview_error": "Caricamento dell'anteprima non riuscito",
|
||||
"cut": "Taglia",
|
||||
"copy": "Copia",
|
||||
"paste": "Incolla",
|
||||
"move_success": "{count, plural, one {1 elemento spostato} other {# elementi spostati}}",
|
||||
"move_error": "Spostamento non riuscito",
|
||||
"paste_success": "Incollato con successo",
|
||||
"paste_error": "Incollaggio non riuscito",
|
||||
"new_text_file": "Nuovo file di testo",
|
||||
"file_name": "Nome del file",
|
||||
"retry": "Riprova",
|
||||
"refresh": "Aggiorna",
|
||||
"toggle_favorite": "Attiva/disattiva preferito",
|
||||
"duplicate": "Duplica",
|
||||
"duplicate_success": "Duplicato con successo",
|
||||
"duplicate_error": "Duplicazione non riuscita",
|
||||
"create_file_success": "File creato",
|
||||
"create_file_error": "Creazione del file non riuscita",
|
||||
"favorites": "Preferiti",
|
||||
"recent": "Recenti",
|
||||
"properties": "Proprietà",
|
||||
"open_folder": "Apri cartella",
|
||||
"upload_folder": "Carica cartella",
|
||||
"file_too_large": "\"{name}\" supera la dimensione massima del file ({max})",
|
||||
"undo": "Annulla",
|
||||
"undo_success": "Azione annullata",
|
||||
"undo_error": "Annullamento non riuscito",
|
||||
"toolbar": "Azioni file",
|
||||
"file_list": "File e cartelle",
|
||||
"context_menu": "Azioni"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user