1 <ng-template #tasksTpl
>
3 <div *
ngFor=
"let executingTask of executingTasks; trackBy:trackByFn">
4 <div class=
"card tc_task border-0">
5 <div class=
"row no-gutters">
6 <div class=
"col-md-2 text-center">
7 <span [ngClass]=
"[icons.stack, icons.large2x]"
9 <i [ngClass]=
"[icons.stack2x, icons.circle]"></i>
10 <i [ngClass]=
"[icons.stack1x, icons.spinner, icons.spin, icons.inverse]"></i>
13 <div class=
"col-md-9">
14 <div class=
"card-body p-1">
15 <h6 class=
"card-title bold">{{ executingTask.description }}
</h6>
18 <ngb-progressbar type=
"info"
19 [value]=
"executingTask?.progress"
21 [animated]=
"true"></ngb-progressbar>
24 <p class=
"card-text text-muted">
25 <small class=
"date float-left">
26 {{ executingTask.begin_time | cdDate }}
29 <span class=
"float-right">
30 {{ executingTask.progress ||
0 }} %
43 <ng-template #notificationsTpl
>
44 <ng-container *
ngIf=
"notifications.length > 0">
46 class=
"btn btn-light btn-block"
47 (click)=
"removeAll(); $event.stopPropagation()">
48 <i [ngClass]=
"[icons.trash]"
49 aria-hidden=
"true"></i>
51 <ng-container i18n
>Clear notifications
</ng-container>
56 <div *
ngFor=
"let notification of notifications; let i = index"
57 [ngClass]=
"notification.borderClass">
58 <div class=
"card tc_notification border-0">
59 <div class=
"row no-gutters">
60 <div class=
"col-md-2 text-center">
61 <span [ngClass]=
"[icons.stack, icons.large2x, notification.textClass]">
62 <i [ngClass]=
"[icons.circle, icons.stack2x]"></i>
63 <i [ngClass]=
"[icons.stack1x, icons.inverse, notification.iconClass]"></i>
66 <div class=
"col-md-10">
67 <div class=
"card-body p-1">
68 <button class=
"btn btn-link float-right mt-0 pt-0"
69 title=
"Remove notification"
71 (click)=
"remove(i); $event.stopPropagation()">
72 <i [ngClass]=
"[icons.trash]"></i>
75 <h6 class=
"card-title bold">{{ notification.title }}
</h6>
77 [innerHtml]=
"notification.message"></p>
78 <p class=
"card-text text-muted">
79 <ng-container *
ngIf=
"notification.duration">
81 <ng-container i18n
>Duration:
</ng-container> {{ notification.duration | duration }}
86 [title]=
"notification.timestamp | cdDate">{{ notification.timestamp | relativeDate }}
</small>
87 <i class=
"float-right custom-icon"
88 [ngClass]=
"[notification.applicationClass]"
89 [title]=
"notification.application"></i>
101 <ng-template #emptyTpl
>
102 <div *
ngIf=
"notifications.length === 0 && executingTasks.length === 0">
103 <div class=
"message text-center"
104 i18n
>There are no notifications.
</div>
109 (clickOutside)=
"closeSidebar()"
110 [clickOutsideEnabled]=
"isSidebarOpened">
111 <div class=
"card-header">
112 <ng-container i18n
>Tasks and Notifications
</ng-container>
114 <button class=
"close float-right"
117 (click)=
"closeSidebar()">
119 <i [ngClass]=
"icons.close"></i>
124 <ngx-simplebar [options]=
"simplebar">
125 <div class=
"card-body">
126 <ng-container *
ngTemplateOutlet=
"tasksTpl"></ng-container>
127 <ng-container *
ngTemplateOutlet=
"notificationsTpl"></ng-container>
128 <ng-container *
ngTemplateOutlet=
"emptyTpl"></ng-container>