feat: multi-link files to multiple bookings and places — closes #23
Files can now be linked to multiple bookings and places simultaneously via a new file_links junction table. Booking modal includes a file picker to link existing uploads. Unlinking removes the association without deleting the file.
This commit is contained in:
@@ -750,6 +750,7 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
|
||||
'reservations.pendingSave': 'سيتم الحفظ…',
|
||||
'reservations.uploading': 'جارٍ الرفع...',
|
||||
'reservations.attachFile': 'إرفاق ملف',
|
||||
'reservations.linkExisting': 'ربط ملف موجود',
|
||||
'reservations.toast.saveError': 'فشل الحفظ',
|
||||
'reservations.toast.updateError': 'فشل التحديث',
|
||||
'reservations.toast.deleteError': 'فشل الحذف',
|
||||
|
||||
@@ -758,6 +758,7 @@ const de: Record<string, string | { name: string; category: string }[]> = {
|
||||
'reservations.pendingSave': 'wird gespeichert…',
|
||||
'reservations.uploading': 'Wird hochgeladen...',
|
||||
'reservations.attachFile': 'Datei anhängen',
|
||||
'reservations.linkExisting': 'Vorhandene verknüpfen',
|
||||
'reservations.linkAssignment': 'Mit Tagesplanung verknüpfen',
|
||||
'reservations.pickAssignment': 'Zuordnung aus dem Plan wählen...',
|
||||
'reservations.noAssignment': 'Keine Verknüpfung',
|
||||
|
||||
@@ -754,6 +754,7 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'reservations.pendingSave': 'will be saved…',
|
||||
'reservations.uploading': 'Uploading...',
|
||||
'reservations.attachFile': 'Attach file',
|
||||
'reservations.linkExisting': 'Link existing file',
|
||||
'reservations.toast.saveError': 'Failed to save',
|
||||
'reservations.toast.updateError': 'Failed to update',
|
||||
'reservations.toast.deleteError': 'Failed to delete',
|
||||
|
||||
@@ -706,6 +706,7 @@ const es: Record<string, string> = {
|
||||
'reservations.pendingSave': 'se guardará…',
|
||||
'reservations.uploading': 'Subiendo...',
|
||||
'reservations.attachFile': 'Adjuntar archivo',
|
||||
'reservations.linkExisting': 'Vincular archivo existente',
|
||||
'reservations.toast.saveError': 'No se pudo guardar',
|
||||
'reservations.toast.updateError': 'No se pudo actualizar',
|
||||
'reservations.toast.deleteError': 'No se pudo eliminar',
|
||||
|
||||
@@ -743,6 +743,7 @@ const fr: Record<string, string> = {
|
||||
'reservations.pendingSave': 'sera enregistré…',
|
||||
'reservations.uploading': 'Téléversement...',
|
||||
'reservations.attachFile': 'Joindre un fichier',
|
||||
'reservations.linkExisting': 'Lier un fichier existant',
|
||||
'reservations.toast.saveError': 'Échec de l\'enregistrement',
|
||||
'reservations.toast.updateError': 'Échec de la mise à jour',
|
||||
'reservations.toast.deleteError': 'Échec de la suppression',
|
||||
|
||||
@@ -743,6 +743,7 @@ const nl: Record<string, string> = {
|
||||
'reservations.pendingSave': 'wordt opgeslagen…',
|
||||
'reservations.uploading': 'Uploaden...',
|
||||
'reservations.attachFile': 'Bestand bijvoegen',
|
||||
'reservations.linkExisting': 'Bestaand bestand koppelen',
|
||||
'reservations.toast.saveError': 'Opslaan mislukt',
|
||||
'reservations.toast.updateError': 'Bijwerken mislukt',
|
||||
'reservations.toast.deleteError': 'Verwijderen mislukt',
|
||||
|
||||
@@ -743,6 +743,7 @@ const ru: Record<string, string> = {
|
||||
'reservations.pendingSave': 'будет сохранено…',
|
||||
'reservations.uploading': 'Загрузка...',
|
||||
'reservations.attachFile': 'Прикрепить файл',
|
||||
'reservations.linkExisting': 'Привязать существующий файл',
|
||||
'reservations.toast.saveError': 'Ошибка сохранения',
|
||||
'reservations.toast.updateError': 'Ошибка обновления',
|
||||
'reservations.toast.deleteError': 'Ошибка удаления',
|
||||
|
||||
@@ -743,6 +743,7 @@ const zh: Record<string, string> = {
|
||||
'reservations.pendingSave': '将被保存…',
|
||||
'reservations.uploading': '上传中...',
|
||||
'reservations.attachFile': '附加文件',
|
||||
'reservations.linkExisting': '关联已有文件',
|
||||
'reservations.toast.saveError': '保存失败',
|
||||
'reservations.toast.updateError': '更新失败',
|
||||
'reservations.toast.deleteError': '删除失败',
|
||||
|
||||
Reference in New Issue
Block a user