mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-17 23:45:59 +00:00
data import download fixes
This commit is contained in:
@@ -43,8 +43,8 @@ ${
|
||||
? `
|
||||
const downloaded=await dbgateApi.download(${JSON.stringify(props.downloadUrl)});
|
||||
const reader=await ${extractShellApiFunctionName(functionName)}(Object.assign(${JSON.stringify(
|
||||
props
|
||||
)}, { fileName: downloaded, downloadUrl: undefined }));
|
||||
_.omit(props, ['downloadUrl'])
|
||||
)}, { fileName: downloaded }));
|
||||
`
|
||||
: `const reader=await ${extractShellApiFunctionName(functionName)}(${JSON.stringify(props)});`
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ const { uploadsdir } = require('../utility/directories');
|
||||
const { downloadFile } = require('../utility/downloader');
|
||||
|
||||
async function download(url) {
|
||||
const tmpFile = path.join(uploadsdir(), uuidv1() + '.tgz');
|
||||
const tmpFile = path.join(uploadsdir(), uuidv1());
|
||||
await downloadFile(url, tmpFile);
|
||||
return tmpFile;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import React from 'react';
|
||||
import _ from 'lodash';
|
||||
|
||||
const iconNames = {
|
||||
'icon minus-box': 'mdi mdi-minus-box-outline',
|
||||
@@ -26,6 +25,7 @@ const iconNames = {
|
||||
'icon save': 'mdi mdi-content-save',
|
||||
'icon account': 'mdi mdi-account',
|
||||
'icon sql-file': 'mdi mdi-file',
|
||||
'icon web': 'mdi mdi-web',
|
||||
|
||||
'icon edit': 'mdi mdi-pencil',
|
||||
'icon delete': 'mdi mdi-delete',
|
||||
|
||||
@@ -61,12 +61,17 @@ const SourceNameWrapper = styled.div`
|
||||
justify-content: space-between;
|
||||
`;
|
||||
|
||||
const TrashWrapper = styled.div`
|
||||
const SourceNameButtons = styled.div`
|
||||
display: flex;
|
||||
`;
|
||||
|
||||
const IconButtonWrapper = styled.div`
|
||||
&:hover {
|
||||
background-color: ${(props) => props.theme.modal_background2};
|
||||
}
|
||||
cursor: pointer;
|
||||
color: ${(props) => props.theme.modal_font_blue[7]};
|
||||
margin-left: 5px;
|
||||
`;
|
||||
|
||||
const SqlWrapper = styled.div`
|
||||
@@ -371,19 +376,36 @@ function SourceTargetConfig({
|
||||
function SourceName({ name }) {
|
||||
const { values, setFieldValue } = useFormikContext();
|
||||
const theme = useTheme();
|
||||
const showModal = useShowModal();
|
||||
const obj = values[`sourceFile_${name}`];
|
||||
const handleDelete = () => {
|
||||
setFieldValue(
|
||||
'sourceList',
|
||||
values.sourceList.filter((x) => x != name)
|
||||
);
|
||||
};
|
||||
const doChangeUrl = (url) => {
|
||||
setFieldValue(`sourceFile_${name}`, { downloadUrl: url });
|
||||
};
|
||||
const handleChangeUrl = () => {
|
||||
showModal((modalState) => (
|
||||
<ChangeDownloadUrlModal modalState={modalState} url={obj.downloadUrl} onConfirm={doChangeUrl} />
|
||||
));
|
||||
};
|
||||
|
||||
return (
|
||||
<SourceNameWrapper>
|
||||
<div>{name}</div>
|
||||
<TrashWrapper onClick={handleDelete} theme={theme}>
|
||||
<FontIcon icon="icon delete" />
|
||||
</TrashWrapper>
|
||||
<SourceNameButtons>
|
||||
{obj && !!obj.downloadUrl && (
|
||||
<IconButtonWrapper onClick={handleChangeUrl} theme={theme}>
|
||||
<FontIcon icon="icon web" />
|
||||
</IconButtonWrapper>
|
||||
)}
|
||||
<IconButtonWrapper onClick={handleDelete} theme={theme}>
|
||||
<FontIcon icon="icon delete" />
|
||||
</IconButtonWrapper>
|
||||
</SourceNameButtons>
|
||||
</SourceNameWrapper>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -24,12 +24,9 @@ export default class ScriptWriter {
|
||||
const fileNameVar = this.allocVariable();
|
||||
this.put(`const ${fileNameVar} = await dbgateApi.download(${JSON.stringify(props.downloadUrl)});`);
|
||||
this.put(
|
||||
`const ${variableName} = await ${extractShellApiFunctionName(functionName)}(
|
||||
Object.assign(${JSON.stringify(props)}, {
|
||||
fileName: ${fileNameVar},
|
||||
downloadUrl: undefined
|
||||
})
|
||||
);`
|
||||
`const ${variableName} = await ${extractShellApiFunctionName(functionName)}(Object.assign(${JSON.stringify(
|
||||
_.omit(props, ['downloadUrl'])
|
||||
)}, { fileName: ${fileNameVar} }));`
|
||||
);
|
||||
} else {
|
||||
this.put(`const ${variableName} = await ${extractShellApiFunctionName(functionName)}(${JSON.stringify(props)});`);
|
||||
|
||||
Reference in New Issue
Block a user