+
+
+
+
+
+
diff --git a/src/app/datapoints-graph/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts b/src/app/datapoints-graph/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts
index 539d9da4..e07ceb2d 100644
--- a/src/app/datapoints-graph/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts
+++ b/src/app/datapoints-graph/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts
@@ -11,7 +11,9 @@ import {
Validators,
} from '@angular/forms';
import { take } from 'rxjs/operators';
-import { TimelineType } from '../alarm-event-selector.model';
+import { SelectedDatapoint, TimelineType } from '../alarm-event-selector.model';
+import { IIdentified } from '@c8y/client';
+import { KPIDetails } from '@c8y/ngx-components/datapoint-selector';
@Component({
selector: 'c8y-alarm-event-attributes-form',
@@ -33,6 +35,8 @@ export class AlarmEventAttributesFormComponent
implements ControlValueAccessor, Validator, OnInit
{
@Input() timelineType: TimelineType;
+ @Input() target: IIdentified;
+ @Input() datapoints: KPIDetails[] = [];
formGroup: FormGroup;
constructor(private formBuilder: FormBuilder) {}
@@ -42,7 +46,9 @@ export class AlarmEventAttributesFormComponent
label: ['', [Validators.required]],
filters: this.formBuilder.group({ type: ['', [Validators.required]] }),
timelineType: '',
+ selectedDatapoint: [{}, []],
});
+ this.listKpis();
}
validate(_control: AbstractControl): ValidationErrors {
@@ -64,4 +70,20 @@ export class AlarmEventAttributesFormComponent
setDisabledState(isDisabled: boolean): void {
isDisabled ? this.formGroup.disable() : this.formGroup.enable();
}
+
+ changeDatapointSelection(selectedDatapoint: SelectedDatapoint) {
+ this.formGroup.patchValue({ selectedDatapoint });
+ }
+
+ trackByFn(_index: number, item: KPIDetails) {
+ return `${item.fragment}-${item.series}-${item.__target?.id}`;
+ }
+
+ private listKpis() {
+ if (this.target && this.target.id) {
+ this.datapoints = this.datapoints.filter(
+ (dp) => dp.__target?.id === this.target.id
+ );
+ }
+ }
}
diff --git a/src/app/datapoints-graph/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html b/src/app/datapoints-graph/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html
index 8c5313ef..d947075d 100644
--- a/src/app/datapoints-graph/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html
+++ b/src/app/datapoints-graph/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.html
@@ -28,6 +28,7 @@
cdkDrag
formControlName="details"
[showAddRemoveButton]="false"
+ [datapoints]="config?.datapoints"
[optionToRemove]="true"
[showActiveToggle]="true"
[timelineType]="timelineType"
diff --git a/src/app/datapoints-graph/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html b/src/app/datapoints-graph/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html
index 9f7b2577..3b2410cd 100644
--- a/src/app/datapoints-graph/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html
+++ b/src/app/datapoints-graph/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.html
@@ -112,6 +112,8 @@