diff --git a/res/static/misc/MaterialIcons.woff2 b/res/static/misc/MaterialIcons.woff2 new file mode 100644 index 0000000..5492a6e Binary files /dev/null and b/res/static/misc/MaterialIcons.woff2 differ diff --git a/res/static/style/layout.css b/res/static/style/layout.css index 849197a..7ececaa 100644 --- a/res/static/style/layout.css +++ b/res/static/style/layout.css @@ -14,7 +14,7 @@ font-display: block; src: local('Material Icons'), local('MaterialIcons-Regular'), - url(/res/misc/MaterialIcons-Regular.ttf) format('truetype'); + url(/res/misc/MaterialIcons.woff2) format('truetype'); } .icon { @@ -31,6 +31,7 @@ direction: ltr; text-rendering: optimizeLegibility; vertical-align: middle; + font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; } .icon_unicode { diff --git a/svelte/src/filesystem/FilesystemAPI.js b/svelte/src/filesystem/FilesystemAPI.js index 47ce0a4..6da0678 100644 --- a/svelte/src/filesystem/FilesystemAPI.js +++ b/svelte/src/filesystem/FilesystemAPI.js @@ -117,3 +117,13 @@ export const fs_timeseries = async (path, start, end, interval = 60) => { ) ) } + +export const fs_import = async (parent_dir_path = "", filelist = []) => { + const form = new FormData() + form.append("action", "import") + form.append("files", JSON.stringify(filelist)) + + return await fs_check_response( + await fetch(fs_path_url(parent_dir_path), { method: "POST", body: form }) + ) +} diff --git a/svelte/src/filesystem/filemanager/FileImporter.svelte b/svelte/src/filesystem/filemanager/FileImporter.svelte new file mode 100644 index 0000000..f804cd2 --- /dev/null +++ b/svelte/src/filesystem/filemanager/FileImporter.svelte @@ -0,0 +1,45 @@ + + + {import_files(e.detail)}} + multi_select={true} + title="Import files from file list"> + diff --git a/svelte/src/filesystem/filemanager/FileManager.svelte b/svelte/src/filesystem/filemanager/FileManager.svelte index 9c606cd..fa47d79 100644 --- a/svelte/src/filesystem/filemanager/FileManager.svelte +++ b/svelte/src/filesystem/filemanager/FileManager.svelte @@ -5,6 +5,7 @@ import CreateDirectory from './CreateDirectory.svelte' import ListView from './ListView.svelte' import GalleryView from './GalleryView.svelte' import Button from '../../layout/Button.svelte'; +import FileImporter from './FileImporter.svelte'; let dispatch = createEventDispatcher() export let fs_navigator @@ -16,6 +17,7 @@ let uploader let mode = "viewing" let creating_dir = false let show_hidden = false +let file_importer $: selected_files = state.children.reduce((acc, file) => { if (file.fm_selected) { @@ -301,8 +303,13 @@ onMount(() => { + +