mirror of
https://github.com/dbgate/dbgate
synced 2024-09-19 21:02:03 +00:00
open import/export tab function
This commit is contained in:
parent
a7846b4adf
commit
d255273368
@ -71,12 +71,13 @@
|
||||
import { getExtensions } from '../stores';
|
||||
|
||||
import createQuickExportMenu from '../utility/createQuickExportMenu';
|
||||
import { exportQuickExportFile } from '../utility/exportFileTools';
|
||||
import { exportQuickExportFile, } from '../utility/exportFileTools';
|
||||
import openNewTab from '../utility/openNewTab';
|
||||
import AppObjectCore from './AppObjectCore.svelte';
|
||||
import InputTextModal from '../modals/InputTextModal.svelte';
|
||||
import ConfirmModal from '../modals/ConfirmModal.svelte';
|
||||
import { apiCall } from '../utility/api';
|
||||
import { openImportExportTab } from '../utility/importExportTools';
|
||||
|
||||
export let data;
|
||||
|
||||
@ -156,13 +157,19 @@
|
||||
{
|
||||
text: 'Export',
|
||||
onClick: () => {
|
||||
showModal(ImportExportModal, {
|
||||
initialValues: {
|
||||
sourceStorageType: 'archive',
|
||||
sourceArchiveFolder: data.folderName,
|
||||
sourceList: [data.fileName],
|
||||
},
|
||||
openImportExportTab({
|
||||
sourceStorageType: 'archive',
|
||||
sourceArchiveFolder: data.folderName,
|
||||
sourceList: [data.fileName],
|
||||
});
|
||||
|
||||
// showModal(ImportExportModal, {
|
||||
// initialValues: {
|
||||
// sourceStorageType: 'archive',
|
||||
// sourceArchiveFolder: data.folderName,
|
||||
// sourceList: [data.fileName],
|
||||
// },
|
||||
// });
|
||||
},
|
||||
}
|
||||
),
|
||||
|
@ -98,25 +98,39 @@
|
||||
};
|
||||
|
||||
const handleImport = () => {
|
||||
showModal(ImportExportModal, {
|
||||
initialValues: {
|
||||
sourceStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
targetStorageType: 'database',
|
||||
targetConnectionId: connection._id,
|
||||
targetDatabaseName: name,
|
||||
},
|
||||
openImportExportTab({
|
||||
sourceStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
targetStorageType: 'database',
|
||||
targetConnectionId: connection._id,
|
||||
targetDatabaseName: name,
|
||||
});
|
||||
|
||||
// showModal(ImportExportModal, {
|
||||
// initialValues: {
|
||||
// sourceStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
// targetStorageType: 'database',
|
||||
// targetConnectionId: connection._id,
|
||||
// targetDatabaseName: name,
|
||||
// },
|
||||
// });
|
||||
};
|
||||
|
||||
const handleExport = () => {
|
||||
showModal(ImportExportModal, {
|
||||
initialValues: {
|
||||
targetStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
sourceStorageType: 'database',
|
||||
sourceConnectionId: connection._id,
|
||||
sourceDatabaseName: name,
|
||||
},
|
||||
openImportExportTab({
|
||||
targetStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
sourceStorageType: 'database',
|
||||
sourceConnectionId: connection._id,
|
||||
sourceDatabaseName: name,
|
||||
});
|
||||
|
||||
// showModal(ImportExportModal, {
|
||||
// initialValues: {
|
||||
// targetStorageType: getDefaultFileFormat($extensions).storageType,
|
||||
// sourceStorageType: 'database',
|
||||
// sourceConnectionId: connection._id,
|
||||
// sourceDatabaseName: name,
|
||||
// },
|
||||
// });
|
||||
};
|
||||
|
||||
const handleSqlGenerator = () => {
|
||||
@ -390,13 +404,13 @@
|
||||
import ConfirmSqlModal, { runOperationOnDatabase, saveScriptToDatabase } from '../modals/ConfirmSqlModal.svelte';
|
||||
import { filterAppsForDatabase } from '../utility/appTools';
|
||||
import newQuery from '../query/newQuery';
|
||||
import { exportSqlDump } from '../utility/exportFileTools';
|
||||
import ImportDatabaseDumpModal from '../modals/ImportDatabaseDumpModal.svelte';
|
||||
import ExportDatabaseDumpModal from '../modals/ExportDatabaseDumpModal.svelte';
|
||||
import ConfirmModal from '../modals/ConfirmModal.svelte';
|
||||
import { closeMultipleTabs } from '../tabpanel/TabsPanel.svelte';
|
||||
import NewCollectionModal from '../modals/NewCollectionModal.svelte';
|
||||
import hasPermission from '../utility/hasPermission';
|
||||
import { openImportExportTab } from '../utility/importExportTools';
|
||||
|
||||
export let data;
|
||||
export let passProps;
|
||||
|
@ -764,22 +764,13 @@
|
||||
},
|
||||
{
|
||||
onClick: () => {
|
||||
openNewTab(
|
||||
{
|
||||
tabComponent: 'ImportExportTab',
|
||||
title: 'Import/Export',
|
||||
icon: 'img export',
|
||||
},
|
||||
{
|
||||
editor: {
|
||||
sourceStorageType: 'database',
|
||||
sourceConnectionId: data.conid,
|
||||
sourceDatabaseName: data.database,
|
||||
sourceSchemaName: data.schemaName,
|
||||
sourceList: [data.pureName],
|
||||
},
|
||||
}
|
||||
);
|
||||
openImportExportTab({
|
||||
sourceStorageType: 'database',
|
||||
sourceConnectionId: data.conid,
|
||||
sourceDatabaseName: data.database,
|
||||
sourceSchemaName: data.schemaName,
|
||||
sourceList: [data.pureName],
|
||||
});
|
||||
// showModal(ImportExportModal, {
|
||||
// initialValues: {
|
||||
// sourceStorageType: 'database',
|
||||
@ -848,6 +839,7 @@
|
||||
import { format as dateFormat } from 'date-fns';
|
||||
import { getDefaultFileFormat } from '../plugins/fileformats';
|
||||
import hasPermission from '../utility/hasPermission';
|
||||
import { openImportExportTab } from '../utility/importExportTools';
|
||||
|
||||
export let data;
|
||||
export let passProps;
|
||||
|
@ -42,8 +42,8 @@ export async function exportSqlDump(outputFile, connection, databaseName, pureFi
|
||||
onOpenResult:
|
||||
pureFileName && !getElectron()
|
||||
? () => {
|
||||
downloadFromApi(`uploads/get?file=${pureFileName}`, 'file.sql');
|
||||
}
|
||||
downloadFromApi(`uploads/get?file=${pureFileName}`, 'file.sql');
|
||||
}
|
||||
: null,
|
||||
openResultLabel: 'Download SQL file',
|
||||
});
|
||||
@ -226,17 +226,18 @@ export async function downloadFromApi(route: string, donloadName: string) {
|
||||
method: 'GET',
|
||||
headers: resolveApiHeaders(),
|
||||
})
|
||||
.then((res) => res.blob())
|
||||
.then((blob) => {
|
||||
.then(res => res.blob())
|
||||
.then(blob => {
|
||||
const objUrl = URL.createObjectURL(blob);
|
||||
const a = document.createElement("a");
|
||||
const a = document.createElement('a');
|
||||
document.body.appendChild(a);
|
||||
a.download = donloadName;
|
||||
a.href = objUrl;
|
||||
a.click();
|
||||
a.remove();
|
||||
setTimeout(() => {
|
||||
URL.revokeObjectURL(objUrl)
|
||||
})
|
||||
})
|
||||
URL.revokeObjectURL(objUrl);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
14
packages/web/src/utility/importExportTools.ts
Normal file
14
packages/web/src/utility/importExportTools.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import openNewTab from './openNewTab';
|
||||
|
||||
export function openImportExportTab(editorProps) {
|
||||
openNewTab(
|
||||
{
|
||||
tabComponent: 'ImportExportTab',
|
||||
title: 'Import/Export',
|
||||
icon: 'img export',
|
||||
},
|
||||
{
|
||||
editor: editorProps,
|
||||
}
|
||||
);
|
||||
}
|
Loading…
Reference in New Issue
Block a user