Files
fnx_web/svelte/src/filesystem/filemanager/CreateDirectory.svelte

67 lines
1.4 KiB
Svelte
Raw Normal View History

2020-11-17 23:39:27 +01:00
<script>
import { onMount } from "svelte";
import { fs_mkdir } from "../FilesystemAPI.js";
import Button from "../../layout/Button.svelte";
2020-11-17 23:39:27 +01:00
export let nav;
2020-11-17 23:39:27 +01:00
let name_input;
let new_dir_name = ""
let error_msg = ""
let create_dir = async () => {
2020-11-17 23:39:27 +01:00
let form = new FormData()
form.append("type", "dir")
try {
nav.set_loading(true)
await fs_mkdir(nav.base.path+"/"+new_dir_name)
new_dir_name = "" // Clear input field
error_msg = "" // Clear error msg
nav.reload()
} catch (err) {
2023-05-27 15:50:44 +02:00
if (err.value && err.value === "node_already_exists") {
error_msg = "A directory with this name already exists"
2023-05-27 15:50:44 +02:00
} else {
error_msg = "Server returned an error: "+err
2023-05-27 15:50:44 +02:00
}
} finally {
nav.set_loading(false)
}
2020-11-17 23:39:27 +01:00
}
onMount(() => {
name_input.focus()
})
2020-11-17 23:39:27 +01:00
</script>
{#if error_msg !== ""}
<div class="highlight_yellow create_dir">
{error_msg}
</div>
{/if}
<form id="create_dir_form" class="create_dir" on:submit|preventDefault={create_dir}>
2022-02-22 19:53:48 +01:00
<img src="/res/img/mime/folder.png" class="icon" alt="icon"/>
<input class="dirname" type="text" bind:this={name_input} bind:value={new_dir_name} />
<Button form="create_dir_form" type="submit" icon="create_new_folder" label="Create"/>
2020-11-17 23:39:27 +01:00
</form>
2022-02-22 19:53:48 +01:00
<style>
.create_dir {
2023-11-16 19:48:17 +01:00
display: flex;
2022-02-22 19:53:48 +01:00
flex-direction: row;
2022-11-07 17:10:17 +01:00
width: 100%;
max-width: 1000px;
2023-11-16 19:48:17 +01:00
margin: auto;
2022-02-22 19:53:48 +01:00
}
.icon {
align-self: center;
2022-02-22 19:53:48 +01:00
height: 32px;
width: 32px;
flex: 0 0 auto;
}
.dirname {
flex: 1 1 auto;
}
</style>