Show error message when future data edit
This commit is contained in:
+2
-1
@@ -47,7 +47,8 @@ export default {
|
||||
deleteOption: 'Import and delete existing',
|
||||
errors: {
|
||||
couldNotOpenFile: 'Could not open file',
|
||||
postFix: 'No data was imported or changed'
|
||||
postFix: 'No data was imported or changed',
|
||||
futureEdit: 'Future dates may only contain a note, no other symptoms'
|
||||
},
|
||||
success: {
|
||||
message: 'Data successfully imported'
|
||||
|
||||
@@ -7,6 +7,8 @@ import {
|
||||
updateCycleStartsForAllCycleDays
|
||||
} from '../../db'
|
||||
import getColumnNamesForCsv from './get-csv-column-names'
|
||||
import { LocalDate } from 'js-joda'
|
||||
import labels from '../../i18n/en/settings'
|
||||
|
||||
export default async function importCsv(csv, deleteFirst) {
|
||||
const parseFuncs = {
|
||||
@@ -48,6 +50,7 @@ export default async function importCsv(csv, deleteFirst) {
|
||||
|
||||
//remove symptoms where all fields are null
|
||||
putNullForEmptySymptoms(cycleDays)
|
||||
throwIfFutureData(cycleDays)
|
||||
|
||||
if (deleteFirst) {
|
||||
tryToImportWithDelete(cycleDays)
|
||||
@@ -88,3 +91,14 @@ function getDbType(modelProperties, path) {
|
||||
const modelName = modelProperties[path[0]].objectType
|
||||
return getDbType(schema[modelName], path.slice(1))
|
||||
}
|
||||
|
||||
function throwIfFutureData(cycleDays) {
|
||||
const today = LocalDate.now().toString()
|
||||
for (const i in cycleDays) {
|
||||
const day = cycleDays[i]
|
||||
// notes are allowed for future dates but everything else isn't
|
||||
if (day.date > today && Object.keys(day).some(symptom => symptom != 'date' && symptom != 'note')) {
|
||||
throw new Error(labels.import.errors.futureEdit)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user