From 7849d483dfd8dccbbfbca0e3534ac282fee191dd Mon Sep 17 00:00:00 2001 From: roberto Date: Tue, 23 Jun 2020 14:47:38 -0500 Subject: [PATCH] fix: update doSave function #399 --- .../pages/time-entries.component.ts | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/app/modules/time-entries/pages/time-entries.component.ts b/src/app/modules/time-entries/pages/time-entries.component.ts index 22c717f67..3ea0fadcd 100644 --- a/src/app/modules/time-entries/pages/time-entries.component.ts +++ b/src/app/modules/time-entries/pages/time-entries.component.ts @@ -62,17 +62,40 @@ export class TimeEntriesComponent implements OnInit { } doSave(event: SaveEntryEvent) { - event.entry.start_date = new Date(event.entry.start_date).toISOString(); - if (event.entry.end_date !== null && event.entry.end_date !== undefined) { - event.entry.end_date = new Date(event.entry.end_date).toISOString(); - } if (this.entryId) { + const startDateChanged = this.entry.start_date !== event.entry.start_date; + const endDateChanged = this.entry.end_date !== event.entry.end_date; + + if (startDateChanged) { + const startDate = new Date(event.entry.start_date); + startDate.setSeconds(1, 0); + event.entry.start_date = startDate.toISOString(); + } + + if (endDateChanged) { + if (event.entry.end_date !== null && event.entry.end_date !== undefined) { + const endDate = new Date(event.entry.end_date); + endDate.setSeconds(0, 0); + event.entry.end_date = endDate.toISOString(); + } + } + event.entry.id = this.entryId; this.store.dispatch(new entryActions.UpdateEntry(event.entry)); if (event.shouldRestartEntry) { this.store.dispatch(new entryActions.RestartEntry(event.entry)); } } else { + const startDate = new Date(event.entry.start_date); + startDate.setSeconds(1, 0); + event.entry.start_date = startDate.toISOString(); + + if (event.entry.end_date !== null && event.entry.end_date !== undefined) { + const endDate = new Date(event.entry.end_date); + endDate.setSeconds(0, 0); + event.entry.end_date = endDate.toISOString(); + } + this.store.dispatch(new entryActions.CreateEntry(event.entry)); } }