Skip to content

Commit 2ec6cb9

Browse files
authored
Merge pull request ioet#416 from ioet/399-set-sec-to-zero
set seconds to zero on create time-entry closes ioet#399
2 parents 086601b + 4944d40 commit 2ec6cb9

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

src/app/modules/time-entries/pages/time-entries.component.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ describe('TimeEntriesComponent', () => {
220220
});
221221

222222
it('should dispatch an action when entry is going to be saved', () => {
223+
component.entry = { start_date: new Date(), id: '1234', technologies: []};
223224
const newEntry = {
224225
entry: {
225226
project_id: 'p-id',
@@ -308,6 +309,7 @@ describe('TimeEntriesComponent', () => {
308309
}));
309310

310311
it('when event contains should restart as true, then a restart Entry action should be triggered', () => {
312+
component.entry = { start_date: new Date(), id: '1234', technologies: []};
311313
const entryToSave = {
312314
entry: {
313315
id: '123',

src/app/modules/time-entries/pages/time-entries.component.ts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)