diff --git a/src/assets/js/utils.js b/src/assets/js/utils.js index 4b01c67ef07d0bf803528976e6708657894fa821..0680fcdfad82586d6325e4cc501bf9873abf4d7c 100644 --- a/src/assets/js/utils.js +++ b/src/assets/js/utils.js @@ -24,14 +24,18 @@ export function csvToJson(csv, delimiter) { const [, ...lines] = allLines; for (const line of lines) { - const obj = {}; - const currentLine = line.split(delimiter); + if (line) { + const obj = {}; + const currentLine = line.split(delimiter).map(el => { + return el.replace('\r', ''); + }); - for (let i = 0; i < headers.length; i++) { - obj[headers[i]] = currentLine[i]; - } + for (let i = 0; i < headers.length; i++) { + obj[headers[i]] = currentLine[i]; + } - result.push(obj); + result.push(obj); + } } return JSON.parse(JSON.stringify(result)); } diff --git a/src/views/FeatureType/FeatureTypeDetail.vue b/src/views/FeatureType/FeatureTypeDetail.vue index b82834fc4baa103d8655a8f8b2bd8ba20160f915..58303368fb891af77f861fecb6985e2ed83d9ac8 100644 --- a/src/views/FeatureType/FeatureTypeDetail.vue +++ b/src/views/FeatureType/FeatureTypeDetail.vue @@ -663,7 +663,8 @@ export default { //* if field type is list, it's not possible to guess from value type if (field_type === 'list') { //*then check if the value is an available option - if (!options.includes(fieldInFeature)) { + if (fieldInFeature && !options.includes(fieldInFeature)) { + this.importError = `Le champ ${name} contient une valeur invalide.`; return false; } } else if (customType !== field_type) { @@ -693,7 +694,7 @@ export default { reader.addEventListener('load', (e) => { // bypass json check for files larger then 10 Mo let jsonValidity; - if (parseFloat(fileConvertSizeToMo(files[0])) <= 10) { + if (parseFloat(fileConvertSizeToMo(files[0].size)) <= 10) { jsonValidity = this.checkJsonValidity(JSON.parse(e.target.result)); } else { jsonValidity = true; diff --git a/src/views/FeatureType/FeatureTypeEdit.vue b/src/views/FeatureType/FeatureTypeEdit.vue index 67d6def4ac8f5dab0ad86109b2c411d25e4f0afa..303f3d2f59107f7d8e031dae3e24aa8308d13d28 100644 --- a/src/views/FeatureType/FeatureTypeEdit.vue +++ b/src/views/FeatureType/FeatureTypeEdit.vue @@ -244,6 +244,7 @@ export default { slug: this.$route.params.slug, reservedKeywords: [ // todo : add keywords for mapstyle (strokewidth...) + 'id', 'title', 'description', 'status',