From 3e914d32282fbd875d9791e41ebb0a40d2fb4f78 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 30 Mar 2022 14:05:54 +0800 Subject: [PATCH 1/2] fix: add missing validation for checking null value Signed-off-by: Wing-Kam Wong --- .../components/importExport/columnMappingModal.vue | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/nc-gui/components/project/spreadsheet/components/importExport/columnMappingModal.vue b/packages/nc-gui/components/project/spreadsheet/components/importExport/columnMappingModal.vue index c86b7afa86..4b0c182d5e 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/importExport/columnMappingModal.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/importExport/columnMappingModal.vue @@ -151,6 +151,14 @@ export default { if ((this.mappings || []).filter(v => v.destCn === _cn).length > 1) { return 'Duplicate mapping found, please remove one of the mapping' } + // check if the input contains null value for a required column + if (v.pk ? !v.ai && !v.cdf : !v.cdf && v.rqd) { + if (this.parsedCsv && this.parsedCsv.data && this.parsedCsv.data.slice(0, 500) + .some(r => r[row.sourceCn] === null || r[row.sourceCn] === undefined || r[row.sourceCn] === "" )) { + return `null value violates not-null constraint` + } + } + switch (v.uidt) { case UITypes.Number: if (this.parsedCsv && this.parsedCsv.data && this.parsedCsv.data.slice(0, 500) From edf2f41b8b8a999879b64825ec9cbd66545c76a9 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 30 Mar 2022 14:06:21 +0800 Subject: [PATCH 2/2] fix: handle null number for non-nn column Signed-off-by: Wing-Kam Wong --- .../components/project/spreadsheet/components/moreActions.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/nc-gui/components/project/spreadsheet/components/moreActions.vue b/packages/nc-gui/components/project/spreadsheet/components/moreActions.vue index 6c612d147e..217fa15428 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/moreActions.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/moreActions.vue @@ -289,6 +289,8 @@ export default { } else if (input == 'true' || input == 'yes' || input == 'y') { input = '1' } + } else if (v.uidt === UITypes.Number) { + if (input == "") input = null } res[col.destCn] = input }