22 < div class ="d-flex h-100 flex-column " *ngIf ="widget ">
33 < oitc-block-loader *ngIf ="!resources "> </ oitc-block-loader >
44 < div *ngIf ="resources ">
5- < c-row >
6- < c-col class ="flex-1 ">
7- < h5 *ngIf ="resources.resources.total === 0 " class ="fw-normal ">
8- < fa-icon [icon] ="['fas', 'circle-info'] " class ="text-info "> </ fa-icon >
9- {{ t('No own resources defined!') }}
10- </ h5 >
11- < h5 *ngIf ="resources.resources.total > 0 && resources.resources.status_overview[0] === 0 "
12- class ="fw-normal ">
13- {{ t('All resources are confirmed') }}
14- < fa-icon [icon] ="['fas', 'check-check'] " class ="text-success "> </ fa-icon >
15- </ h5 >
16- @if (resources.resources.total > 0 && resources.resources.status_overview[0] > 0) {
17- < h5 class ="m-0 fw-normal ">
18- {{ t('Unconfirmed resources exists') }}
19- < span class ="pl-3 float-end ">
20- ⏰ {{ t('Deadline') }}
21- < time > {{ deadline }}</ time >
22- </ span >
23- < div *ngIf ="deadlineExceeded " class ="text-danger font-xs py-2 ">
24- ‼️ {{ t('Deadline has been exceeded!!') }}
25- </ div >
26- < div *ngIf ="!deadlineExceeded " class ="text-warning font-xs py-2 ">
27- ⚠️ {{ t('Please confirm the missing resource status before the deadline expires!') }}
28- </ div >
29- </ h5 >
30- }
31- </ c-col >
32- </ c-row >
5+
6+ <!-- status overview -->
337 < c-row >
348 < c-col [xs] ="12 " [md] ="3 " [lg] ="3 ">
35- < div class ="p-2 bg-primary rounded overflow-hidden position-relative text-white mb-g ">
36- < div >
9+ < div class ="p-2 bg-primary rounded overflow-hidden position-relative text-white mb-g h-100 ">
10+ < div class =" position-relative z-1 " >
3711 < h6 class ="display-4 d-block l-h-n m-0 fw-500 ">
3812 @if (resources.resources.status_overview[0] > 0 && ( PermissionsService.hasPermissionObservable(['scmmodule', 'resources', 'index'])|async )) {
3913 < a [routerLink] ="['/', 'scm_module', 'resources', 'index'] " class ="text-white "
@@ -53,8 +27,8 @@ <h6 class="display-4 d-block l-h-n m-0 fw-500">
5327 </ div >
5428 </ c-col >
5529 < c-col [xs] ="12 " [md] ="3 " [lg] ="3 ">
56- < div class ="p-2 bg-success rounded overflow-hidden position-relative text-white mb-g ">
57- < div >
30+ < div class ="p-2 bg-success rounded overflow-hidden position-relative text-white mb-g h-100 ">
31+ < div class =" position-relative z-1 " >
5832 < h6 class ="display-4 d-block l-h-n m-0 fw-500 ">
5933 @if (resources.resources.status_overview[1] > 0 && ( PermissionsService.hasPermissionObservable(['scmmodule', 'resources', 'index'])|async )) {
6034 < a [routerLink] ="['/', 'scm_module', 'resources', 'index'] " class ="text-white "
@@ -74,8 +48,8 @@ <h6 class="display-4 d-block l-h-n m-0 fw-500">
7448 </ div >
7549 </ c-col >
7650 < c-col [xs] ="12 " [md] ="3 " [lg] ="3 ">
77- < div class ="p-2 bg-warning rounded overflow-hidden position-relative text-white mb-g ">
78- < div >
51+ < div class ="p-2 bg-warning rounded overflow-hidden position-relative text-white mb-g h-100 ">
52+ < div class =" position-relative z-1 " >
7953 < h6 class ="display-4 d-block l-h-n m-0 fw-500 ">
8054 @if (resources.resources.status_overview[2] > 0 && ( PermissionsService.hasPermissionObservable(['scmmodule', 'resources', 'index'])|async )) {
8155 < a [routerLink] ="['/', 'scm_module', 'resources', 'index'] " class ="text-white "
@@ -95,8 +69,8 @@ <h6 class="display-4 d-block l-h-n m-0 fw-500">
9569 </ div >
9670 </ c-col >
9771 < c-col [xs] ="12 " [md] ="3 " [lg] ="3 ">
98- < div class ="p-2 bg-critical rounded overflow-hidden position-relative text-white mb-g ">
99- < div >
72+ < div class ="p-2 bg-critical rounded overflow-hidden position-relative text-white mb-g h-100 ">
73+ < div class =" position-relative z-1 " >
10074 < h6 class ="display-4 d-block l-h-n m-0 fw-500 ">
10175 @if (resources.resources.status_overview[3] > 0 && ( PermissionsService.hasPermissionObservable(['scmmodule', 'resources', 'index'])|async )) {
10276 < a [routerLink] ="['/', 'scm_module', 'resources', 'index'] " class ="text-white "
@@ -116,6 +90,54 @@ <h6 class="display-4 d-block l-h-n m-0 fw-500">
11690 </ div >
11791 </ c-col >
11892 </ c-row >
93+
94+ <!-- accordion -->
95+ < c-row class ="mt-2 ">
96+ < c-col >
97+ < c-accordion >
98+ @for (deadlineItem of deadlines; track $index) {
99+
100+ < c-accordion-item #item0 ="cAccordionItem " [visible] ="false ">
101+ < ng-template cTemplateId ="accordionHeaderTemplate ">
102+ < button (click) ="item0.toggleItem() " [collapsed] ="!item0.visible "
103+ cAccordionButton >
104+ ⏰ {{ t('Deadline') }}
105+
106+ {{ deadlineItem.key }}
107+
108+ < span class ="px-1 ">
109+ @if (deadlineItem.exceeded) {
110+ < span class ="text-danger ">
111+ ‼️ {{ t('Deadline has been exceeded!!') }}
112+ </ span >
113+ } @else {
114+ < span class ="text-warning ">
115+ ⚠️ {{ t('Please confirm the missing resource status before the deadline expires!') }}
116+ </ span >
117+ }
118+ </ span >
119+ </ button >
120+ </ ng-template >
121+ < ng-template cTemplateId ="accordionBodyTemplate ">
122+ < div class ="accordion-body ">
123+ < ul class ="list-inline ">
124+ @for (resourcegroup of deadlineItem.resourcegroups; track $index) {
125+ < li class ="list-inline-item pe-1 ">
126+ •< a *oitcPermission ="['scmmodule','resources', 'index'] "
127+ [routerLink] ="['/','scm_module', 'resources', 'index'] "
128+ [queryParams] ="{resourcegroupId: resourcegroup.id} ">
129+ {{ resourcegroup.name }}
130+ </ a >
131+ </ li >
132+ }
133+ </ ul >
134+ </ div >
135+ </ ng-template >
136+ </ c-accordion-item >
137+ }
138+ </ c-accordion >
139+ </ c-col >
140+ </ c-row >
119141 </ div >
120142 </ div >
121143</ ng-container >
0 commit comments