open import/export tab function

This commit is contained in:
SPRINX0\prochazka
2024-09-16 12:47:13 +02:00
parent a7846b4adf
commit d255273368
5 changed files with 74 additions and 46 deletions

View File

@@ -71,12 +71,13 @@
import { getExtensions } from '../stores'; import { getExtensions } from '../stores';
import createQuickExportMenu from '../utility/createQuickExportMenu'; import createQuickExportMenu from '../utility/createQuickExportMenu';
import { exportQuickExportFile } from '../utility/exportFileTools'; import { exportQuickExportFile, } from '../utility/exportFileTools';
import openNewTab from '../utility/openNewTab'; import openNewTab from '../utility/openNewTab';
import AppObjectCore from './AppObjectCore.svelte'; import AppObjectCore from './AppObjectCore.svelte';
import InputTextModal from '../modals/InputTextModal.svelte'; import InputTextModal from '../modals/InputTextModal.svelte';
import ConfirmModal from '../modals/ConfirmModal.svelte'; import ConfirmModal from '../modals/ConfirmModal.svelte';
import { apiCall } from '../utility/api'; import { apiCall } from '../utility/api';
import { openImportExportTab } from '../utility/importExportTools';
export let data; export let data;
@@ -156,13 +157,19 @@
{ {
text: 'Export', text: 'Export',
onClick: () => { onClick: () => {
showModal(ImportExportModal, { openImportExportTab({
initialValues: { sourceStorageType: 'archive',
sourceStorageType: 'archive', sourceArchiveFolder: data.folderName,
sourceArchiveFolder: data.folderName, sourceList: [data.fileName],
sourceList: [data.fileName],
},
}); });
// showModal(ImportExportModal, {
// initialValues: {
// sourceStorageType: 'archive',
// sourceArchiveFolder: data.folderName,
// sourceList: [data.fileName],
// },
// });
}, },
} }
), ),

View File

@@ -98,25 +98,39 @@
}; };
const handleImport = () => { const handleImport = () => {
showModal(ImportExportModal, { openImportExportTab({
initialValues: { sourceStorageType: getDefaultFileFormat($extensions).storageType,
sourceStorageType: getDefaultFileFormat($extensions).storageType, targetStorageType: 'database',
targetStorageType: 'database', targetConnectionId: connection._id,
targetConnectionId: connection._id, targetDatabaseName: name,
targetDatabaseName: name,
},
}); });
// showModal(ImportExportModal, {
// initialValues: {
// sourceStorageType: getDefaultFileFormat($extensions).storageType,
// targetStorageType: 'database',
// targetConnectionId: connection._id,
// targetDatabaseName: name,
// },
// });
}; };
const handleExport = () => { const handleExport = () => {
showModal(ImportExportModal, { openImportExportTab({
initialValues: { targetStorageType: getDefaultFileFormat($extensions).storageType,
targetStorageType: getDefaultFileFormat($extensions).storageType, sourceStorageType: 'database',
sourceStorageType: 'database', sourceConnectionId: connection._id,
sourceConnectionId: connection._id, sourceDatabaseName: name,
sourceDatabaseName: name,
},
}); });
// showModal(ImportExportModal, {
// initialValues: {
// targetStorageType: getDefaultFileFormat($extensions).storageType,
// sourceStorageType: 'database',
// sourceConnectionId: connection._id,
// sourceDatabaseName: name,
// },
// });
}; };
const handleSqlGenerator = () => { const handleSqlGenerator = () => {
@@ -390,13 +404,13 @@
import ConfirmSqlModal, { runOperationOnDatabase, saveScriptToDatabase } from '../modals/ConfirmSqlModal.svelte'; import ConfirmSqlModal, { runOperationOnDatabase, saveScriptToDatabase } from '../modals/ConfirmSqlModal.svelte';
import { filterAppsForDatabase } from '../utility/appTools'; import { filterAppsForDatabase } from '../utility/appTools';
import newQuery from '../query/newQuery'; import newQuery from '../query/newQuery';
import { exportSqlDump } from '../utility/exportFileTools';
import ImportDatabaseDumpModal from '../modals/ImportDatabaseDumpModal.svelte'; import ImportDatabaseDumpModal from '../modals/ImportDatabaseDumpModal.svelte';
import ExportDatabaseDumpModal from '../modals/ExportDatabaseDumpModal.svelte'; import ExportDatabaseDumpModal from '../modals/ExportDatabaseDumpModal.svelte';
import ConfirmModal from '../modals/ConfirmModal.svelte'; import ConfirmModal from '../modals/ConfirmModal.svelte';
import { closeMultipleTabs } from '../tabpanel/TabsPanel.svelte'; import { closeMultipleTabs } from '../tabpanel/TabsPanel.svelte';
import NewCollectionModal from '../modals/NewCollectionModal.svelte'; import NewCollectionModal from '../modals/NewCollectionModal.svelte';
import hasPermission from '../utility/hasPermission'; import hasPermission from '../utility/hasPermission';
import { openImportExportTab } from '../utility/importExportTools';
export let data; export let data;
export let passProps; export let passProps;

View File

@@ -764,22 +764,13 @@
}, },
{ {
onClick: () => { onClick: () => {
openNewTab( openImportExportTab({
{ sourceStorageType: 'database',
tabComponent: 'ImportExportTab', sourceConnectionId: data.conid,
title: 'Import/Export', sourceDatabaseName: data.database,
icon: 'img export', sourceSchemaName: data.schemaName,
}, sourceList: [data.pureName],
{ });
editor: {
sourceStorageType: 'database',
sourceConnectionId: data.conid,
sourceDatabaseName: data.database,
sourceSchemaName: data.schemaName,
sourceList: [data.pureName],
},
}
);
// showModal(ImportExportModal, { // showModal(ImportExportModal, {
// initialValues: { // initialValues: {
// sourceStorageType: 'database', // sourceStorageType: 'database',
@@ -848,6 +839,7 @@
import { format as dateFormat } from 'date-fns'; import { format as dateFormat } from 'date-fns';
import { getDefaultFileFormat } from '../plugins/fileformats'; import { getDefaultFileFormat } from '../plugins/fileformats';
import hasPermission from '../utility/hasPermission'; import hasPermission from '../utility/hasPermission';
import { openImportExportTab } from '../utility/importExportTools';
export let data; export let data;
export let passProps; export let passProps;

View File

@@ -42,8 +42,8 @@ export async function exportSqlDump(outputFile, connection, databaseName, pureFi
onOpenResult: onOpenResult:
pureFileName && !getElectron() pureFileName && !getElectron()
? () => { ? () => {
downloadFromApi(`uploads/get?file=${pureFileName}`, 'file.sql'); downloadFromApi(`uploads/get?file=${pureFileName}`, 'file.sql');
} }
: null, : null,
openResultLabel: 'Download SQL file', openResultLabel: 'Download SQL file',
}); });
@@ -226,17 +226,18 @@ export async function downloadFromApi(route: string, donloadName: string) {
method: 'GET', method: 'GET',
headers: resolveApiHeaders(), headers: resolveApiHeaders(),
}) })
.then((res) => res.blob()) .then(res => res.blob())
.then((blob) => { .then(blob => {
const objUrl = URL.createObjectURL(blob); const objUrl = URL.createObjectURL(blob);
const a = document.createElement("a"); const a = document.createElement('a');
document.body.appendChild(a); document.body.appendChild(a);
a.download = donloadName; a.download = donloadName;
a.href = objUrl; a.href = objUrl;
a.click(); a.click();
a.remove(); a.remove();
setTimeout(() => { setTimeout(() => {
URL.revokeObjectURL(objUrl) URL.revokeObjectURL(objUrl);
}) });
}) });
} }

View File

@@ -0,0 +1,14 @@
import openNewTab from './openNewTab';
export function openImportExportTab(editorProps) {
openNewTab(
{
tabComponent: 'ImportExportTab',
title: 'Import/Export',
icon: 'img export',
},
{
editor: editorProps,
}
);
}