Skip to content

Commit 35c5075

Browse files
TTL 886 display time zone reports (#988)
feat: TTL-886 add time_zone column to reports
1 parent f04b4df commit 35c5075

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

src/app/modules/reports/components/time-entries-table/time-entries-table.component.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
[dtTrigger]="dtTrigger"
88
[dtOptions]="dtOptions"
99
*ngIf="reportDataSource$ | async as dataSource"
10+
id="time-entries-table"
1011
>
1112
<thead class="thead-blue">
1213
<tr class="d-flex">
@@ -17,6 +18,7 @@
1718
<th class="col sm-col" title="Duration (hours)">Duration</th>
1819
<th class="col x-sm-col" title="Time in">Time in</th>
1920
<th class="col x-sm-col" title="Time out">Time out</th>
21+
<th class="col sm-col" title="Time zone">Time zone</th>
2022
<th class="col md-col">Project</th>
2123
<th class="hidden-col">Project ID</th>
2224
<th class="col md-col">Customer</th>
@@ -38,11 +40,14 @@
3840
<td class="col sm-col">
3941
{{ entry.start_date | date: 'MM/dd/yyyy' }}
4042
</td>
41-
<td class="col sm-col">
43+
<td class="col sm-col text-center">
4244
{{ entry.end_date | substractDateDisplayAsFloat: entry.start_date }}
4345
</td>
44-
<td class="col x-sm-col">{{ dateTimeOffset.parseDateTimeOffset(entry.start_date, entry.timezone_offset) }}</td>
45-
<td class="col x-sm-col">{{ dateTimeOffset.parseDateTimeOffset(entry.end_date, entry.timezone_offset) }}</td>
46+
<td class="col x-sm-col text-center">{{ dateTimeOffset.parseDateTimeOffset(entry.start_date, entry.timezone_offset) }}</td>
47+
<td class="col x-sm-col text-center">{{ dateTimeOffset.parseDateTimeOffset(entry.end_date, entry.timezone_offset) }}</td>
48+
<td class="col sm-col text-center">
49+
UTC{{ (entry.timezone_offset < 0) ? "+" : "" }}{{ - entry.timezone_offset / 60 }}
50+
</td>
4651
<td class="col md-col">{{ entry.project_name }}</td>
4752
<td class="hidden-col">{{ entry.project_id }}</td>
4853
<td class="col md-col">{{ entry.customer_name }}</td>

src/app/modules/reports/components/time-entries-table/time-entries-table.component.spec.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ describe('Reports Page', () => {
3030
uri: 'custom uri',
3131
project_id: '123',
3232
project_name: 'Time-Tracker',
33+
timezone_offset: 300,
3334
};
3435

3536
const timeEntryList: Entry[] = [
@@ -253,6 +254,25 @@ describe('Reports Page', () => {
253254
});
254255
});
255256

257+
it('Should render column header called Time Zone', () => {
258+
const table = document.querySelector('table#time-entries-table');
259+
const tableHeaderElements = Array.from(table.getElementsByTagName('th'));
260+
const tableHeaderTitles = tableHeaderElements.map(element => (element.textContent));
261+
expect(tableHeaderTitles).toContain('Time zone');
262+
});
263+
264+
it('Should render a cell content with UTC text', () => {
265+
const TIME_ZONE_CELL_NUMBER = 7;
266+
const TABLE_ROW_NUMBER = 1;
267+
const table = document.querySelector('table#time-entries-table');
268+
const arrayTableRows = Array.from(table.getElementsByTagName('tr'));
269+
const tablerow = arrayTableRows[TABLE_ROW_NUMBER];
270+
const cells = Array.from(tablerow.getElementsByTagName('td'));
271+
const cell = cells[TIME_ZONE_CELL_NUMBER].textContent;
272+
expect(cell).toContain('UTC-5');
273+
});
274+
275+
256276
afterEach(() => {
257277
fixture.destroy();
258278
});

src/app/modules/shared/models/entry.model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export interface Entry {
1515

1616
customer_id?: string;
1717
customer_name?: string;
18+
timezone_offset?: number;
1819
}
1920

2021
export interface NewEntry {

0 commit comments

Comments
 (0)