@@ -62,17 +62,31 @@ export class TimeEntriesComponent implements OnInit {
6262 }
6363
6464 doSave ( event : SaveEntryEvent ) {
65- event . entry . start_date = new Date ( event . entry . start_date ) . toISOString ( ) ;
66- if ( event . entry . end_date !== null && event . entry . end_date !== undefined ) {
67- event . entry . end_date = new Date ( event . entry . end_date ) . toISOString ( ) ;
68- }
65+ const endDateIsDefined = event . entry . end_date !== null && event . entry . end_date !== undefined ;
6966 if ( this . entryId ) {
67+ const startDateChanged = this . entry . start_date !== event . entry . start_date ;
68+ if ( startDateChanged ) {
69+ event . entry . start_date = this . adjustDateSecs ( event . entry . start_date , 1 ) ;
70+ }
71+
72+ if ( endDateIsDefined ) {
73+ const endDateChanged = this . entry . end_date !== event . entry . end_date ;
74+ if ( endDateChanged ) {
75+ event . entry . end_date = this . adjustDateSecs ( event . entry . end_date , 0 ) ;
76+ }
77+ }
78+
7079 event . entry . id = this . entryId ;
7180 this . store . dispatch ( new entryActions . UpdateEntry ( event . entry ) ) ;
7281 if ( event . shouldRestartEntry ) {
7382 this . store . dispatch ( new entryActions . RestartEntry ( event . entry ) ) ;
7483 }
7584 } else {
85+ event . entry . start_date = this . adjustDateSecs ( event . entry . start_date , 1 ) ;
86+ if ( endDateIsDefined ) {
87+ event . entry . end_date = this . adjustDateSecs ( event . entry . end_date , 0 ) ;
88+ }
89+
7690 this . store . dispatch ( new entryActions . CreateEntry ( event . entry ) ) ;
7791 }
7892 }
@@ -100,4 +114,10 @@ export class TimeEntriesComponent implements OnInit {
100114 this . message = `Are you sure you want to delete ${ item . activity_name } ?` ;
101115 this . showModal = true ;
102116 }
117+
118+ adjustDateSecs ( date : string , sec : number ) : string {
119+ const newDate = new Date ( date ) ;
120+ newDate . setSeconds ( sec , 0 ) ;
121+ return newDate . toISOString ( ) ;
122+ }
103123}
0 commit comments