2020-11-17 23:39:27 +01:00
|
|
|
<script>
|
|
|
|
import { onMount, createEventDispatcher } from "svelte";
|
2023-05-11 15:01:29 +02:00
|
|
|
import { fs_mkdir } from "../FilesystemAPI.js";
|
2023-11-16 16:33:35 +01:00
|
|
|
import Button from "../../layout/Button.svelte";
|
2020-11-17 23:39:27 +01:00
|
|
|
let dispatch = createEventDispatcher()
|
|
|
|
|
|
|
|
export let state;
|
|
|
|
let name_input;
|
2023-05-11 15:01:29 +02:00
|
|
|
let new_dir_name = ""
|
2020-11-17 23:39:27 +01:00
|
|
|
let create_dir = () => {
|
|
|
|
dispatch("loading", true)
|
|
|
|
|
|
|
|
let form = new FormData()
|
|
|
|
form.append("type", "dir")
|
|
|
|
|
2023-05-30 15:51:10 +02:00
|
|
|
fs_mkdir(state.base.path+"/"+new_dir_name).then(resp => {
|
2023-05-11 15:01:29 +02:00
|
|
|
new_dir_name = "" // Clear input field
|
2020-11-17 23:39:27 +01:00
|
|
|
}).catch(err => {
|
2023-05-27 15:50:44 +02:00
|
|
|
if (err.value && err.value === "node_already_exists") {
|
|
|
|
alert("A directory with this name already exists")
|
|
|
|
} else {
|
|
|
|
alert(err)
|
|
|
|
}
|
2020-11-17 23:39:27 +01:00
|
|
|
}).finally(() => {
|
|
|
|
dispatch("done")
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
onMount(() => { name_input.focus() })
|
|
|
|
</script>
|
|
|
|
|
2023-11-16 16:33:35 +01:00
|
|
|
<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"/>
|
2023-11-16 16:33:35 +01:00
|
|
|
<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
|
|
|
}
|
2023-11-16 16:33:35 +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>
|