diff --git a/control/frontend/src/lib/ts/file_transfer_handler.ts b/control/frontend/src/lib/ts/file_transfer_handler.ts index 6d02519..e43092f 100644 --- a/control/frontend/src/lib/ts/file_transfer_handler.ts +++ b/control/frontend/src/lib/ts/file_transfer_handler.ts @@ -2,6 +2,7 @@ import { db } from './database'; import { get_display_by_id } from './stores/displays'; import { get_current_folder_elements, + create_path_on_all_selected_displays, get_file_by_id, remove_all_files_without_display, remove_file_from_display @@ -28,6 +29,8 @@ export async function add_upload( ) { if (file_list.length === 0) return console.warn('Upload canceled: no selected files'); + await create_path_on_all_selected_displays(current_file_path, selected_display_ids); + const used_file_names: string[] = await ( await get_current_folder_elements(current_file_path, selected_display_ids) ).map((e) => e.name); diff --git a/control/frontend/src/lib/ts/stores/files.ts b/control/frontend/src/lib/ts/stores/files.ts index 2565cb6..2b2c14f 100755 --- a/control/frontend/src/lib/ts/stores/files.ts +++ b/control/frontend/src/lib/ts/stores/files.ts @@ -377,6 +377,14 @@ export async function create_folder_on_all_selected_displays( path: string, selected_display_ids: string[] ): Promise { + const path_with_folder_name = (path += folder_name + '/'); + await create_path_on_all_selected_displays(path_with_folder_name, selected_display_ids); +} + +export async function create_path_on_all_selected_displays( + path: string, + selected_display_ids: string[] +) { const path_parts = path .slice(1, path.length - 1) .split('/') @@ -397,9 +405,8 @@ export async function create_folder_on_all_selected_displays( const displays = await getDisplaysForPath(currentPath); if (!displays.length) continue; - const folders_to_create = [...path_parts.slice(depth), folder_name]; for (const display of displays) { - await create_folders(display.ip, currentPath, folders_to_create); + await create_folders(display.ip, currentPath, path_parts.slice(depth)); remaining_display_ids = remaining_display_ids.filter((id) => id !== display.id); } }