UI: Fixed updated Alarm widget in change entity state parameters

This commit is contained in:
Vladyslav_Prykhodko 2020-11-06 15:58:00 +02:00
parent a99a8e458c
commit 39c2e3c39d
3 changed files with 12 additions and 13 deletions

View File

@ -52,6 +52,7 @@ export interface AlarmDataSubscriptionOptions {
export class AlarmDataSubscription {
private alarmDataSubscriptionOptions = this.listener.alarmDataSubscriptionOptions;
private datasourceType: DatasourceType = this.alarmDataSubscriptionOptions.datasourceType;
private history: boolean;
@ -65,8 +66,7 @@ export class AlarmDataSubscription {
private subsTw: SubscriptionTimewindow;
constructor(public alarmDataSubscriptionOptions: AlarmDataSubscriptionOptions,
private listener: AlarmDataListener,
constructor(private listener: AlarmDataListener,
private telemetryService: TelemetryService) {
}

View File

@ -32,6 +32,7 @@ export interface AlarmDataListener {
alarmSource: Datasource;
alarmsLoaded: (pageData: PageData<AlarmData>, allowedEntities: number, totalEntities: number) => void;
alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void;
alarmDataSubscriptionOptions?: AlarmDataSubscriptionOptions;
subscription?: AlarmDataSubscription;
}
@ -47,11 +48,11 @@ export class AlarmDataService {
pageLink: AlarmDataPageLink,
keyFilters: KeyFilter[]) {
const alarmSource = listener.alarmSource;
listener.alarmDataSubscriptionOptions = this.createAlarmSubscriptionOptions(listener, pageLink, keyFilters);
if (alarmSource.type === DatasourceType.entity && (!alarmSource.entityFilter || !pageLink)) {
return;
}
listener.subscription = this.createSubscription(listener,
pageLink, alarmSource.keyFilters, keyFilters);
listener.subscription = new AlarmDataSubscription(listener, this.telemetryService);
return listener.subscription.subscribe();
}
@ -61,10 +62,9 @@ export class AlarmDataService {
}
}
private createSubscription(listener: AlarmDataListener,
pageLink: AlarmDataPageLink,
keyFilters: KeyFilter[],
additionalKeyFilters: KeyFilter[]): AlarmDataSubscription {
private createAlarmSubscriptionOptions(listener: AlarmDataListener,
pageLink: AlarmDataPageLink,
additionalKeyFilters: KeyFilter[]): AlarmDataSubscriptionOptions {
const alarmSource = listener.alarmSource;
const alarmSubscriptionDataKeys: Array<AlarmSubscriptionDataKey> = [];
alarmSource.dataKeys.forEach((dataKey) => {
@ -82,11 +82,10 @@ export class AlarmDataService {
if (alarmDataSubscriptionOptions.datasourceType === DatasourceType.entity) {
alarmDataSubscriptionOptions.entityFilter = alarmSource.entityFilter;
alarmDataSubscriptionOptions.pageLink = pageLink;
alarmDataSubscriptionOptions.keyFilters = keyFilters;
alarmDataSubscriptionOptions.keyFilters = alarmSource.keyFilters;
alarmDataSubscriptionOptions.additionalKeyFilters = additionalKeyFilters;
}
return new AlarmDataSubscription(alarmDataSubscriptionOptions,
listener, this.telemetryService);
return alarmDataSubscriptionOptions;
}
}

View File

@ -960,8 +960,8 @@ export class WidgetSubscription implements IWidgetSubscription {
private updateAlarmDataSubscription() {
if (this.alarmDataListener) {
const pageLink = this.alarmDataListener.subscription.alarmDataSubscriptionOptions.pageLink;
const keyFilters = this.alarmDataListener.subscription.alarmDataSubscriptionOptions.additionalKeyFilters;
const pageLink = this.alarmDataListener.alarmDataSubscriptionOptions.pageLink;
const keyFilters = this.alarmDataListener.alarmDataSubscriptionOptions.additionalKeyFilters;
this.subscribeForAlarms(pageLink, keyFilters);
}
}