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 ;
}