import-export advanced config

This commit is contained in:
Jan Prochazka
2020-12-08 17:34:40 +01:00
parent cc11e63cd7
commit e0c91214fd
3 changed files with 17 additions and 20 deletions

View File

@@ -2,11 +2,11 @@ import _ from 'lodash';
import { extractShellApiFunctionName, extractShellApiPlugins } from 'dbgate-tools'; import { extractShellApiFunctionName, extractShellApiPlugins } from 'dbgate-tools';
export default class ScriptWriter { export default class ScriptWriter {
constructor() { constructor(varCount) {
this.s = ''; this.s = '';
this.packageNames = []; this.packageNames = [];
// this.engines = []; // this.engines = [];
this.varCount = 0; this.varCount = parseInt(varCount) || 0;
} }
allocVariable(prefix = 'var') { allocVariable(prefix = 'var') {
@@ -32,22 +32,14 @@ export default class ScriptWriter {
this.put(`// ${s}`); this.put(`// ${s}`);
} }
getScript(extensions) { getScript(extensions, schedule) {
// if (this.packageNames.length > 0) {
// this.comment('@packages');
// this.comment(JSON.stringify(this.packageNames));
// }
// if (this.engines.length > 0) {
// this.comment('@engines');
// this.comment(JSON.stringify(this.engines));
// }
const packageNames = this.packageNames; const packageNames = this.packageNames;
return ( let prefix = _.uniq(packageNames)
_.uniq(packageNames) .map((packageName) => `// @require ${packageName}\n`)
.map((packageName) => `// @require ${packageName}\n`) .join('');
.join('') + if (schedule) prefix += `// @schedule ${schedule}`;
'\n' + if (prefix) prefix += '\n';
this.s
); return prefix + this.s;
} }
} }

View File

@@ -150,7 +150,7 @@ function getTargetExpr(extensions, sourceName, values, targetConnection, targetD
} }
export default async function createImpExpScript(extensions, values, addEditorInfo = true) { export default async function createImpExpScript(extensions, values, addEditorInfo = true) {
const script = new ScriptWriter(); const script = new ScriptWriter(values.startVariableIndex || 0);
const [sourceConnection, sourceDriver] = await getConnection( const [sourceConnection, sourceDriver] = await getConnection(
extensions, extensions,
@@ -182,7 +182,7 @@ export default async function createImpExpScript(extensions, values, addEditorIn
script.comment('@ImportExportConfigurator'); script.comment('@ImportExportConfigurator');
script.comment(JSON.stringify(values)); script.comment(JSON.stringify(values));
} }
return script.getScript(extensions); return script.getScript(extensions, values.schedule);
} }
export function getActionOptions(extensions, source, values, targetDbinfo) { export function getActionOptions(extensions, source, values, targetDbinfo) {

View File

@@ -24,6 +24,7 @@ import LargeButton, { LargeFormButton } from '../widgets/LargeButton';
import { getDefaultFileFormat } from '../utility/fileformats'; import { getDefaultFileFormat } from '../utility/fileformats';
import useExtensions from '../utility/useExtensions'; import useExtensions from '../utility/useExtensions';
import { FormProvider, useForm } from '../utility/FormProvider'; import { FormProvider, useForm } from '../utility/FormProvider';
import { FormTextField } from '../utility/forms';
const headerHeight = '60px'; const headerHeight = '60px';
const footerHeight = '100px'; const footerHeight = '100px';
@@ -213,6 +214,10 @@ export default function ImportExportModal({
<PreviewDataGrid reader={previewReader} /> <PreviewDataGrid reader={previewReader} />
</WidgetColumnBarItem> </WidgetColumnBarItem>
)} )}
<WidgetColumnBarItem title="Advanced configuration" name="config" collapsed>
<FormTextField label="Schedule" name="schedule" />
<FormTextField label="Start variable index" name="startVariableIndex" />
</WidgetColumnBarItem>
</WidgetColumnBar> </WidgetColumnBar>
</WidgetColumnWrapper> </WidgetColumnWrapper>
</Wrapper> </Wrapper>