free table editor - save and load

This commit is contained in:
Jan Prochazka
2020-10-28 18:42:02 +01:00
parent 2ba0c2cc46
commit 8a2b6f3f37
7 changed files with 162 additions and 28 deletions

View File

@@ -7,13 +7,46 @@ import { openNewTab } from '../utility/common';
import { filterName } from '@dbgate/datalib';
import axios from '../utility/axios';
function openArchive(setOpenedTabs, fileName, folderName) {
openNewTab(setOpenedTabs, {
title: fileName,
icon: 'archtable.svg',
tooltip: `${folderName}\n${fileName}`,
tabComponent: 'ArchiveFileTab',
props: {
archiveFile: fileName,
archiveFolder: folderName,
},
});
}
function Menu({ data, setOpenedTabs }) {
const handleDelete = () => {
axios.post('archive/delete-file', { file: data.fileName, folder: data.folderName });
// setOpenedTabs((tabs) => tabs.filter((x) => x.tabid != data.tabid));
};
const handleOpenRead = () => {
openArchive(setOpenedTabs, data.fileName, data.folderName);
};
const handleOpenWrite = async () => {
const resp = await axios.post('archive/load-free-table', { file: data.fileName, folder: data.folderName });
openNewTab(setOpenedTabs, {
title: data.fileName,
icon: 'freetable.svg',
tabComponent: 'FreeTableTab',
props: {
initialData: resp.data,
archiveFile: data.fileName,
archiveFolder: data.folderName,
},
});
};
return (
<>
<DropDownMenuItem onClick={handleOpenRead}>Open (readonly)</DropDownMenuItem>
<DropDownMenuItem onClick={handleOpenWrite}>Open in free table editor</DropDownMenuItem>
<DropDownMenuItem onClick={handleDelete}>Delete</DropDownMenuItem>
</>
);
@@ -24,16 +57,7 @@ const archiveFileAppObject = () => ({ fileName, folderName }, { setOpenedTabs })
// const Icon = (props) => <i className="fas fa-archive" />;
const Icon = ArchiveTableIcon;
const onClick = () => {
openNewTab(setOpenedTabs, {
title: fileName,
icon: 'archtable.svg',
tooltip: `${folderName}\n${fileName}`,
tabComponent: 'ArchiveFileTab',
props: {
archiveFile: fileName,
archiveFolder: folderName,
},
});
openArchive(setOpenedTabs, fileName, folderName);
};
const matcher = (filter) => filterName(filter, fileName);