File
Implements
Index
Properties
|
|
Methods
|
|
Inputs
|
|
Outputs
|
|
contextSourceId
|
Type : number | string | null
|
Outputs
onFilterApplied
|
Type : EventEmitter
|
EventEmitter to notify when filters have been applied.
Emits a AlarmListFormFilters object representing the filter criteria applied by the user.
|
Methods
allChanged
|
allChanged(selected: boolean)
|
Parameters :
Name |
Type |
Optional |
selected |
boolean
|
No
|
|
applyFilters
|
applyFilters(emit, navigate)
|
Parameters :
Name |
Optional |
Default value |
emit |
No
|
true
|
navigate |
No
|
true
|
|
closeDropdown
|
closeDropdown()
|
|
deselectChip
|
deselectChip(chip: SeverityType)
|
Parameters :
Name |
Type |
Optional |
chip |
SeverityType
|
No
|
|
markSeveritiesAsTouched
|
markSeveritiesAsTouched()
|
|
ngAfterViewInit
|
ngAfterViewInit()
|
|
ngOnDestroy
|
ngOnDestroy()
|
|
Async
updateAlarmsCount
|
updateAlarmsCount(showCleared)
|
Asynchronously fetches and updates the count of alarms for each severity level.
Defaults to the current value of this.currentShowClearedValue .
or rejects with an error if the operation fails.
Parameters :
Name |
Optional |
Default value |
Description |
showCleared |
No
|
this.currentShowClearedValue
|
- Whether to include cleared alarms in the count.
Defaults to the current value of
this.currentShowClearedValue .
|
Returns : Promise<void>
A Promise that resolves when all alarm counts have been fetched,
or rejects with an error if the operation fails.
|
alarmCounts
|
Type : AlarmCount
|
Default value : DEFAULT_ALARM_COUNTS
|
chips
|
Type : SeverityType[]
|
Default value : []
|
filtersDropdown
|
Type : BsDropdownDirective
|
Decorators :
@ViewChild('filtersDropdown')
|
formGroup
|
Default value : this.formBuilder.group(DEFAULT_SEVERITY_VALUES)
|
isEachCheckboxSelected$
|
Type : Observable<boolean>
|
isIndeterminate$
|
Type : Observable<boolean>
|
Readonly
severitiesList
|
Default value : Object.keys(SEVERITY_LABELS) as SeverityType[]
|
Protected
Readonly
SEVERITY_LABELS
|
Default value : SEVERITY_LABELS
|
shouldDisableApplyButton$
|
Type : Observable<boolean>
|
showCleared
|
Default value : false
|
<form
class="d-flex a-i-center"
[formGroup]="formGroup"
>
<div
class="dropdown"
title="{{ 'Filter by severity' | translate }}"
dropdown
#filtersDropdown="bs-dropdown"
[cdkTrapFocus]="filtersDropdown.isOpen"
[insideClick]="true"
>
<div class="input-group fit-w">
<div class="form-control d-flex a-i-center inner-scroll" style="min-width: 104px;">
<ng-container *ngIf="chips.length !== severitiesList.length; else allAlarms">
<span
class="tag tag--info chip"
*ngFor="let chip of chips"
>
<button
class="btn btn-xs btn-clean text-10"
title="{{ 'Remove' | translate }}"
type="button"
(click)="deselectChip(chip); $event.stopPropagation()"
>
<i c8yIcon="times"></i>
</button>
<i
class="status stroked-icon icon-12"
[c8yIcon]="chip | AlarmSeverityToIcon"
[ngClass]="chip | lowercase"
></i>
{{ SEVERITY_LABELS[chip] | translate }}
</span>
</ng-container>
<ng-template #allAlarms>
<span class="text-truncate" title="{{ 'All severities' | translate }}">
{{ 'All severities' | translate }}
</span>
</ng-template>
</div>
<div class="input-group-btn input-group-btn--last">
<button
class="btn-default btn btn--caret"
title="{{ chips | AlarmSeveritiesToTitle }}"
data-cy="c8y-alarm-filter"
dropdownToggle
(click)="resetForm()"
>
<i class="caret"></i>
</button>
</div>
</div>
<ul
class="dropdown-menu dropdown-menu-action-bar"
*dropdownMenu
>
<li class="p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center sticky-top separator-bottom">
<label
class="c8y-checkbox d-flex a-i-center"
[title]="'All' | translate"
>
<input
type="checkbox"
data-cy="c8y-alarm-filter--all"
[ngModelOptions]="{ standalone: true }"
(ngModelChange)="allChanged($event)"
[ngModel]="isEachCheckboxSelected$ | async"
[indeterminate]="isIndeterminate$ | async"
(click)="markSeveritiesAsTouched()"
/>
<span></span>
<i
class="status stroked-icon m-l-8 icon-20"
[c8yIcon]="'bell'"
></i>
<span class="m-l-8">{{ 'All' | translate }}</span>
</label>
</li>
<li
class="p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center"
*ngFor="let severity of severitiesList"
>
<label
class="c8y-checkbox d-flex a-i-center"
[title]="SEVERITY_LABELS[severity] | translate"
>
<input
type="checkbox"
[attr.data-cy]="'c8y-alarm-filter--' + severity"
[formControlName]="severity"
[value]="severity"
(click)="markSeveritiesAsTouched()"
/>
<span></span>
<i
class="status stroked-icon m-l-8 icon-20"
[c8yIcon]="severity | AlarmSeverityToIcon"
[ngClass]="severity | lowercase"
></i>
<span class="m-l-8">{{ SEVERITY_LABELS[severity] | translate }}</span>
</label>
<!-- badge -->
<div
class="badge badge-info m-l-auto"
*ngIf="alarmCounts[severity] || alarmCounts[severity] === 0"
>
<i
class="icon-spin"
[c8yIcon]="'circle-o-notch'"
*ngIf="countLoading"
></i>
<span
*ngIf="!countLoading"
[attr.data-cy]="severity + '-badge'"
>
{{ alarmCounts[severity] < 99 ? alarmCounts[severity] : '99+' }}
</span>
</div>
</li>
<li class="p-l-16 p-r-16 p-t-4 p-b-4 d-flex a-i-center separator-top">
<label
class="c8y-switch"
[attr.aria-label]="'Show cleared alarms' | translate"
[attr.data-cy]="'c8y-alarms-filter--cleared'"
>
<input
type="checkbox"
#showClearedCheckbox
[ngModelOptions]="{ standalone: true }"
[(ngModel)]="showCleared"
(click)="markSeveritiesAsTouched(); updateAlarmsCount(showClearedCheckbox.checked)"
/>
<span></span>
<span
class="text-truncate"
title="{{ 'Show cleared alarms' | translate }}"
>
{{ 'Show cleared alarms' | translate }}
</span>
</label>
</li>
<div class="p-16 d-flex sticky-bottom separator-top">
<button
[attr.data-cy]="'c8y-alarms-filter--apply'"
class="btn btn-primary btn-sm flex-grow"
title="{{ 'Apply' | translate }}"
type="button"
(click)="applyFilters(false); closeDropdown()"
[disabled]="shouldDisableApplyButton$ | async"
>
{{ 'Apply' | translate }}
</button>
</div>
</ul>
</div>
</form>