free table - save to archive

This commit is contained in:
Jan Prochazka
2021-03-14 13:18:29 +01:00
parent 7cd26c4fe4
commit 49337a4112
9 changed files with 152 additions and 10 deletions

View File

@@ -0,0 +1,52 @@
<script lang="ts">
import InputTextModal from '../modals/InputTextModal.svelte';
import { showModal } from '../modals/modalTools';
import axiosInstance from '../utility/axiosInstance';
import { useArchiveFolders } from '../utility/metadataLoaders';
import { getFormContext } from './FormProviderCore.svelte';
import FormSelectField from './FormSelectField.svelte';
export let additionalFolders = [];
export let name;
const { setFieldValue } = getFormContext();
const folders = useArchiveFolders();
$: folderOptions = [
...($folders || []).map(folder => ({
value: folder.name,
label: folder.name,
})),
...additionalFolders
.filter(x => !($folders || []).find(y => y.name == x))
.map(folder => ({
value: folder,
label: folder,
})),
{
label: '(Create new)',
value: '@create',
},
];
const createOption = folder => {
axiosInstance.post('archive/create-folder', { folder });
setFieldValue(name, folder);
};
function handleChange(e) {
if (e.detail == '@create') {
showModal(InputTextModal, {
header: 'Archive',
label: 'Name of new folder',
onConfirm: createOption,
});
}
}
</script>
<FormSelectField {...$$props} options={folderOptions} on:change={handleChange} />