diff --git a/packages/api/src/shell/csvReader.js b/packages/api/src/shell/csvReader.js index deb987e36..25261c8d0 100644 --- a/packages/api/src/shell/csvReader.js +++ b/packages/api/src/shell/csvReader.js @@ -37,12 +37,11 @@ class CsvPrepareStream extends stream.Transform { } } -async function csvReader({ fileName, encoding = 'utf-8', header = true, delimiter, quoted, limitRows = undefined }) { +async function csvReader({ fileName, encoding = 'utf-8', header = true, delimiter, limitRows = undefined }) { console.log(`Reading file ${fileName}`); const csvStream = csv.parse({ // @ts-ignore delimiter, - quoted, skip_lines_with_error: true, to_line: limitRows ? limitRows + 1 : -1, }); diff --git a/packages/web/src/fileformats/csv.ts b/packages/web/src/fileformats/csv.ts index 4bec4d46b..1e7cd655d 100644 --- a/packages/web/src/fileformats/csv.ts +++ b/packages/web/src/fileformats/csv.ts @@ -21,6 +21,20 @@ const csvFormat: FileFormatDefinition = { ], apiName: 'delimiter', }, + { + type: 'checkbox', + name: 'quoted', + label: 'Quoted', + apiName: 'quoted', + direction: 'target', + }, + { + type: 'checkbox', + name: 'header', + label: 'Has header row', + apiName: 'header', + default: true, + }, ], }; diff --git a/packages/web/src/impexp/createImpExpScript.js b/packages/web/src/impexp/createImpExpScript.js index 393a4493c..81d0c90c8 100644 --- a/packages/web/src/impexp/createImpExpScript.js +++ b/packages/web/src/impexp/createImpExpScript.js @@ -22,7 +22,7 @@ function extractApiParameters(values, direction, format) { const pairs = (format.args || []) .filter((arg) => arg.apiName) .map((arg) => [arg.apiName, values[`${direction}_${format.storageType}_${arg.name}`]]) - .filter((x) => x[1]); + .filter((x) => x[1] != null); return _.fromPairs(pairs); } diff --git a/packages/web/src/utility/FormArgumentList.js b/packages/web/src/utility/FormArgumentList.js index fd9041763..ecf98bdbf 100644 --- a/packages/web/src/utility/FormArgumentList.js +++ b/packages/web/src/utility/FormArgumentList.js @@ -20,7 +20,7 @@ function FormArgument({ arg, namePrefix }) { return ; } if (arg.type == 'checkbox') { - return ; + return ; } if (arg.type == 'select') { return ( diff --git a/packages/web/src/utility/forms.js b/packages/web/src/utility/forms.js index 7335464c3..f035f913f 100644 --- a/packages/web/src/utility/forms.js +++ b/packages/web/src/utility/forms.js @@ -50,12 +50,14 @@ export function FormTextField({ label, ...other }) { ); } -export function FormCheckboxFieldRaw({ name = undefined, ...other }) { +export function FormCheckboxFieldRaw({ name = undefined, defaultValue = undefined, ...other }) { const { values, setFieldValue } = useFormikContext(); const handleChange = (event) => { setFieldValue(name, event.target.checked); }; - return ; + let isChecked = values[name]; + if (isChecked == null) isChecked = defaultValue; + return ; // return ; }