mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 17:06:01 +00:00
quick export with snackbar info, allows canceling process
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import ScriptWriter from '../impexp/ScriptWriter';
|
||||
import getElectron from './getElectron';
|
||||
import axiosInstance from '../utility/axiosInstance';
|
||||
import socket from '../utility/socket';
|
||||
import { showSnackbar, showSnackbarInfo, showSnackbarError, closeSnackbar } from '../utility/snackbar';
|
||||
|
||||
export async function exportElectronFile(dataName, reader, format) {
|
||||
const electron = getElectron();
|
||||
@@ -18,8 +20,6 @@ export async function exportElectronFile(dataName, reader, format) {
|
||||
const sourceVar = script.allocVariable();
|
||||
script.assign(sourceVar, reader.functionName, reader.props);
|
||||
|
||||
console.log('format.createWriter(filePath, dataName)', format.createWriter(filePath, dataName));
|
||||
|
||||
const targetVar = script.allocVariable();
|
||||
const writer = format.createWriter(filePath, dataName);
|
||||
script.assign(targetVar, writer.functionName, writer.props);
|
||||
@@ -27,8 +27,30 @@ export async function exportElectronFile(dataName, reader, format) {
|
||||
script.copyStream(sourceVar, targetVar);
|
||||
script.put();
|
||||
|
||||
console.log('script.getScript()', script.getScript());
|
||||
|
||||
const resp = await axiosInstance.post('runners/start', { script: script.getScript() });
|
||||
const runid = resp.data.runid;
|
||||
let isCanceled = false;
|
||||
|
||||
const snackId = showSnackbar({
|
||||
message: `Exporting ${dataName}`,
|
||||
icon: 'icon loading',
|
||||
buttons: [
|
||||
{
|
||||
label: 'Cancel',
|
||||
onClick: () => {
|
||||
isCanceled = true;
|
||||
axiosInstance.post('runners/cancel', { runid });
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
function handleRunnerDone() {
|
||||
closeSnackbar(snackId);
|
||||
socket.off(`runner-done-${runid}`, handleRunnerDone);
|
||||
if (isCanceled) showSnackbarError(`Export ${dataName} canceled`);
|
||||
else showSnackbarInfo(`Export ${dataName} finished`);
|
||||
}
|
||||
|
||||
socket.on(`runner-done-${runid}`, handleRunnerDone);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user