add new archive folder command

This commit is contained in:
Jan Prochazka
2021-12-09 13:03:08 +01:00
parent 1cf4dc0013
commit 60333cbbd7
3 changed files with 26 additions and 2 deletions

View File

@@ -106,7 +106,7 @@
const handleOpenWrite = () => { const handleOpenWrite = () => {
openNewTab({ openNewTab({
title: data.fileName, title: data.fileName,
icon: 'img archive', icon: 'img free-table',
tabComponent: 'FreeTableTab', tabComponent: 'FreeTableTab',
props: { props: {
initialArgs: { initialArgs: {

View File

@@ -112,6 +112,23 @@ registerCommand({
}, },
}); });
registerCommand({
id: 'new.archiveFolder',
category: 'New',
icon: 'img archive',
name: 'Archive folder',
onClick: () => {
showModal(InputTextModal, {
value: '',
label: 'New archive folder name',
header: 'Create archive folder',
onConfirm: async folder => {
axiosInstance.post('archive/create-folder', { folder });
},
});
},
});
registerCommand({ registerCommand({
id: 'new.table', id: 'new.table',
category: 'New', category: 'New',

View File

@@ -3,11 +3,13 @@
import AppObjectList from '../appobj/AppObjectList.svelte'; import AppObjectList from '../appobj/AppObjectList.svelte';
import * as archiveFolderAppObject from '../appobj/ArchiveFolderAppObject.svelte'; import * as archiveFolderAppObject from '../appobj/ArchiveFolderAppObject.svelte';
import runCommand from '../commands/runCommand';
import InlineButton from '../elements/InlineButton.svelte'; import InlineButton from '../elements/InlineButton.svelte';
import SearchBoxWrapper from '../elements/SearchBoxWrapper.svelte'; import SearchBoxWrapper from '../elements/SearchBoxWrapper.svelte';
import SearchInput from '../elements/SearchInput.svelte'; import SearchInput from '../elements/SearchInput.svelte';
import FontIcon from '../icons/FontIcon.svelte';
import axiosInstance from '../utility/axiosInstance'; import axiosInstance from '../utility/axiosInstance';
import { useArchiveFolders } from '../utility/metadataLoaders'; import { useArchiveFolders } from '../utility/metadataLoaders';
import WidgetsInnerContainer from './WidgetsInnerContainer.svelte'; import WidgetsInnerContainer from './WidgetsInnerContainer.svelte';
@@ -23,7 +25,12 @@
<SearchBoxWrapper> <SearchBoxWrapper>
<SearchInput placeholder="Search archive folders" bind:value={filter} /> <SearchInput placeholder="Search archive folders" bind:value={filter} />
<InlineButton on:click={handleRefreshFolders}>Refresh</InlineButton> <InlineButton on:click={() => runCommand('new.archiveFolder')} title="Add new archive folder">
<FontIcon icon="icon plus-thick" />
</InlineButton>
<InlineButton on:click={handleRefreshFolders} title="Refresh archive folder list">
<FontIcon icon="icon refresh" />
</InlineButton>
</SearchBoxWrapper> </SearchBoxWrapper>
<WidgetsInnerContainer> <WidgetsInnerContainer>
<AppObjectList list={_.sortBy($folders, 'name')} module={archiveFolderAppObject} {filter} /> <AppObjectList list={_.sortBy($folders, 'name')} module={archiveFolderAppObject} {filter} />