mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 03:06:00 +00:00
quick export - added to grids
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
{
|
||||
divider: true,
|
||||
},
|
||||
electron && {
|
||||
{
|
||||
isQuickExport: true,
|
||||
functionName: 'tableReader',
|
||||
},
|
||||
@@ -113,8 +113,8 @@
|
||||
{
|
||||
divider: true,
|
||||
},
|
||||
electron && {
|
||||
label: 'Quick export',
|
||||
{
|
||||
isQuickExport: true,
|
||||
functionName: 'tableReader',
|
||||
},
|
||||
{
|
||||
@@ -174,8 +174,8 @@
|
||||
{
|
||||
divider: true,
|
||||
},
|
||||
electron && {
|
||||
label: 'Quick export',
|
||||
{
|
||||
isQuickExport: true,
|
||||
functionName: 'tableReader',
|
||||
},
|
||||
{
|
||||
@@ -274,8 +274,8 @@
|
||||
},
|
||||
},
|
||||
},
|
||||
electron && {
|
||||
label: 'Quick export',
|
||||
{
|
||||
isQuickExport: true,
|
||||
functionName: 'tableReader',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
|
||||
return response.data.count;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -125,10 +126,14 @@
|
||||
import ErrorMessageModal from '../modals/ErrorMessageModal.svelte';
|
||||
import ImportExportModal from '../modals/ImportExportModal.svelte';
|
||||
import { showModal } from '../modals/modalTools';
|
||||
import { extensions } from '../stores';
|
||||
|
||||
import axiosInstance from '../utility/axiosInstance';
|
||||
import { registerMenu } from '../utility/contextMenu';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import createQuickExportMenu from '../utility/createQuickExportMenu';
|
||||
import { exportElectronFile } from '../utility/exportElectronFile';
|
||||
import { getConnectionInfo } from '../utility/metadataLoaders';
|
||||
import openNewTab from '../utility/openNewTab';
|
||||
import ChangeSetGrider from './ChangeSetGrider';
|
||||
|
||||
@@ -201,8 +206,30 @@
|
||||
|
||||
registerMenu(
|
||||
{ command: 'collectionDataGrid.openQuery', tag: 'export' },
|
||||
{
|
||||
...createQuickExportMenu($extensions, fmt => async () => {
|
||||
const coninfo = await getConnectionInfo({ conid });
|
||||
exportElectronFile(
|
||||
pureName || 'Data',
|
||||
{
|
||||
functionName: 'queryReader',
|
||||
props: {
|
||||
connection: {
|
||||
..._.omit(coninfo, ['_id', 'displayName']),
|
||||
database,
|
||||
},
|
||||
sql: getExportQuery(),
|
||||
},
|
||||
},
|
||||
fmt
|
||||
);
|
||||
}),
|
||||
tag: 'export',
|
||||
},
|
||||
|
||||
{ command: 'collectionDataGrid.export', tag: 'export' }
|
||||
);
|
||||
|
||||
</script>
|
||||
|
||||
<LoadingDataGridCore
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
});
|
||||
return response.data.rowCount;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -46,10 +47,13 @@
|
||||
import registerCommand from '../commands/registerCommand';
|
||||
import ImportExportModal from '../modals/ImportExportModal.svelte';
|
||||
import { showModal } from '../modals/modalTools';
|
||||
import { extensions } from '../stores';
|
||||
|
||||
import axiosInstance from '../utility/axiosInstance';
|
||||
import { registerMenu } from '../utility/contextMenu';
|
||||
import createActivator, { getActiveComponent } from '../utility/createActivator';
|
||||
import createQuickExportMenu from '../utility/createQuickExportMenu';
|
||||
import { exportElectronFile } from '../utility/exportElectronFile';
|
||||
import socket from '../utility/socket';
|
||||
import useEffect from '../utility/useEffect';
|
||||
|
||||
@@ -103,7 +107,40 @@
|
||||
showModal(ImportExportModal, { initialValues });
|
||||
}
|
||||
|
||||
registerMenu({ command: 'jslTableGrid.export', tag: 'export' });
|
||||
registerMenu(
|
||||
{
|
||||
...createQuickExportMenu($extensions, fmt => async () => {
|
||||
const archiveMatch = jslid.match(/^archive:\/\/([^/]+)\/(.*)$/);
|
||||
if (archiveMatch) {
|
||||
exportElectronFile(
|
||||
archiveMatch[2],
|
||||
{
|
||||
functionName: 'archiveReader',
|
||||
props: {
|
||||
folderName: archiveMatch[1],
|
||||
fileName: archiveMatch[2],
|
||||
},
|
||||
},
|
||||
fmt
|
||||
);
|
||||
} else {
|
||||
exportElectronFile(
|
||||
'Query',
|
||||
{
|
||||
functionName: 'jslDataReader',
|
||||
props: {
|
||||
jslid,
|
||||
},
|
||||
},
|
||||
fmt
|
||||
);
|
||||
}
|
||||
}),
|
||||
tag: 'export',
|
||||
},
|
||||
{ command: 'jslTableGrid.export', tag: 'export' }
|
||||
);
|
||||
|
||||
</script>
|
||||
|
||||
<LoadingDataGridCore
|
||||
|
||||
@@ -38,7 +38,7 @@ function doExtractMenuItems(menu, res) {
|
||||
for (const item of menu) {
|
||||
doExtractMenuItems(item, res);
|
||||
}
|
||||
} else if (_.isPlainObject(menu)) {
|
||||
} else if (_.isPlainObject(menu) && !menu._skip) {
|
||||
res.push(menu);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
import { ExtensionsDirectory, QuickExportDefinition } from 'dbgate-types';
|
||||
import getElectron from './getElectron';
|
||||
|
||||
export default function createQuickExportMenu(
|
||||
extensions: ExtensionsDirectory,
|
||||
handler: (fmt: QuickExportDefinition) => Function
|
||||
) {
|
||||
const electron = getElectron();
|
||||
if (!electron) {
|
||||
return { _skip: true };
|
||||
}
|
||||
return {
|
||||
text: 'Quick export',
|
||||
submenu: extensions.quickExports.map(fmt => ({
|
||||
|
||||
Reference in New Issue
Block a user