11< div class ="row scroll-table mt-5 ml-0 ">
22 < app-search-user [users] ="users " (selectedUserId) ="user($event) "> </ app-search-user >
33
4- < table class ="table table-striped mb-0 " datatable [dtTrigger] ="dtTrigger " [dtOptions] ="dtOptions " *ngIf ="(reportDataSource$ | async) as dataSource ">
5- < thead class ="thead-blue ">
6- < tr class ="d-flex ">
7- < th class ="hidden-col "> ID</ th >
8- < th class ="col md-col "> User email</ th >
9- < th class ="col sm-col "> Date</ th >
10- < th class ="col sm-col " title ="Duration (hours) "> Duration</ th >
11- < th class ="col x-sm-col " title ="Time in "> Time in</ th >
12- < th class ="col x-sm-col " title ="Time out "> Time out</ th >
13- < th class ="col md-col "> Project</ th >
14- < th class ="hidden-col "> Project ID</ th >
15- < th class ="col md-col "> Customer</ th >
16- < th class ="hidden-col "> Customer ID</ th >
17- < th class ="col md-col "> Activity</ th >
18- < th class ="col lg-col "> Ticket</ th >
19- < th class ="col lg-col "> Description</ th >
20- < th class ="col lg-col "> Technologies</ th >
21- </ tr >
22- </ thead >
23- < app-loading-bar *ngIf ="dataSource.isLoading "> </ app-loading-bar >
24- < tbody *ngIf ="!dataSource.isLoading ">
25- < tr class ="d-flex col-height " *ngFor ="let entry of dataSource.data ">
26- < td class ="hidden-col "> {{ entry.id }}</ td >
27- < td class ="col md-col "> {{ entry.owner_email }}</ td >
28- < td class ="col sm-col ">
29- {{ entry.start_date | date: 'MM/dd/yyyy' }}
30- </ td >
31- < td class ="col sm-col ">
32- {{ entry.end_date | substractDate: entry.start_date }}
33- </ td >
34- < td class ="col x-sm-col "> {{ dateTimeOffset.parseDateTimeOffset(entry.start_date,entry.timezone_offset) }}</ td >
35- < td class ="col x-sm-col "> {{ dateTimeOffset.parseDateTimeOffset(entry.end_date , entry.timezone_offset) }}</ td >
36- < td class ="col md-col "> {{ entry.project_name }}</ td >
37- < td class ="hidden-col "> {{ entry.project_id }}</ td >
38- < td class ="col md-col "> {{ entry.customer_name }}</ td >
39- < td class ="hidden-col "> {{ entry.customer_id }}</ td >
40- < td class ="col md-col "> {{ entry.activity_name }}</ td >
41- < td class ="col lg-col ">
42- < ng-container *ngIf ="entry.uri !== null ">
43- < a [class.is-url] ="isURL(entry.uri) " (click) ="openURLInNewTab(entry.uri) ">
44- {{ entry.uri }}
45- </ a >
46- </ ng-container >
47- </ td >
48- < td class ="col lg-scroll "> {{ entry.description }}</ td >
49- < td class ="col lg-scroll ">
50- < ng-container *ngIf ="entry.technologies.length > 0 ">
51- < div *ngFor ="let technology of entry.technologies " class ="badge bg-secondary text-wrap ">
52- {{ technology }}
53- </ div >
54- </ ng-container >
55- </ td >
56- </ tr >
57- </ tbody >
58- </ table >
4+ < div class ="table-responsive ">
5+ < table class ="table table-striped mb-0 " datatable [dtTrigger] ="dtTrigger " [dtOptions] ="dtOptions " *ngIf ="(reportDataSource$ | async) as dataSource ">
6+ < thead class ="thead-blue ">
7+ < tr class ="d-flex ">
8+ < th class ="hidden-col "> ID</ th >
9+ < th class ="col md-col "> User email</ th >
10+ < th class ="col sm-col "> Date</ th >
11+ < th class ="col sm-col " title ="Duration (hours) "> Duration</ th >
12+ < th class ="col x-sm-col " title ="Time in "> Time in</ th >
13+ < th class ="col x-sm-col " title ="Time out "> Time out</ th >
14+ < th class ="col md-col "> Project</ th >
15+ < th class ="hidden-col "> Project ID</ th >
16+ < th class ="col md-col "> Customer</ th >
17+ < th class ="hidden-col "> Customer ID</ th >
18+ < th class ="col md-col "> Activity</ th >
19+ < th class ="col lg-col "> Ticket</ th >
20+ < th class ="col lg-col "> Description</ th >
21+ < th class ="col lg-col "> Technologies</ th >
22+ </ tr >
23+ </ thead >
24+ < app-loading-bar *ngIf ="dataSource.isLoading "> </ app-loading-bar >
25+ < tbody *ngIf ="!dataSource.isLoading ">
26+ < tr class ="d-flex col-height " *ngFor ="let entry of dataSource.data ">
27+ < td class ="hidden-col "> {{ entry.id }}</ td >
28+ < td class ="col md-col "> {{ entry.owner_email }}</ td >
29+ < td class ="col sm-col ">
30+ {{ entry.start_date | date: 'MM/dd/yyyy' }}
31+ </ td >
32+ < td class ="col sm-col ">
33+ {{ entry.end_date | substractDate: entry.start_date }}
34+ </ td >
35+ < td class ="col x-sm-col "> {{ dateTimeOffset.parseDateTimeOffset(entry.start_date,entry.timezone_offset) }}</ td >
36+ < td class ="col x-sm-col "> {{ dateTimeOffset.parseDateTimeOffset(entry.end_date , entry.timezone_offset) }}</ td >
37+ < td class ="col md-col "> {{ entry.project_name }}</ td >
38+ < td class ="hidden-col "> {{ entry.project_id }}</ td >
39+ < td class ="col md-col "> {{ entry.customer_name }}</ td >
40+ < td class ="hidden-col "> {{ entry.customer_id }}</ td >
41+ < td class ="col md-col "> {{ entry.activity_name }}</ td >
42+ < td class ="col lg-col ">
43+ < ng-container *ngIf ="entry.uri !== null ">
44+ < a [class.is-url] ="isURL(entry.uri) " (click) ="openURLInNewTab(entry.uri) ">
45+ {{ entry.uri }}
46+ </ a >
47+ </ ng-container >
48+ </ td >
49+ < td class ="col lg-scroll "> {{ entry.description }}</ td >
50+ < td class ="col lg-scroll ">
51+ < ng-container *ngIf ="entry.technologies.length > 0 ">
52+ < div *ngFor ="let technology of entry.technologies " class ="badge bg-secondary text-wrap ">
53+ {{ technology }}
54+ </ div >
55+ </ ng-container >
56+ </ td >
57+ </ tr >
58+ </ tbody >
59+ </ table >
60+ </ div >
5961</ div >
6062< div class ="alert alert-dark mt-3 "> Total: {{this.resultSum.hours}} hours, {{this.resultSum.minutes}} minutes</ div >
0 commit comments