diff --git a/ui-ngx/src/app/core/api/alarm-data-subscription.ts b/ui-ngx/src/app/core/api/alarm-data-subscription.ts index 4d3524324e..35a43c3f0f 100644 --- a/ui-ngx/src/app/core/api/alarm-data-subscription.ts +++ b/ui-ngx/src/app/core/api/alarm-data-subscription.ts @@ -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) { } diff --git a/ui-ngx/src/app/core/api/alarm-data.service.ts b/ui-ngx/src/app/core/api/alarm-data.service.ts index 23488c99c5..3454036db7 100644 --- a/ui-ngx/src/app/core/api/alarm-data.service.ts +++ b/ui-ngx/src/app/core/api/alarm-data.service.ts @@ -32,6 +32,7 @@ export interface AlarmDataListener { alarmSource: Datasource; alarmsLoaded: (pageData: PageData, allowedEntities: number, totalEntities: number) => void; alarmsUpdated: (update: Array, pageData: PageData) => 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 = []; 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; } } diff --git a/ui-ngx/src/app/core/api/widget-subscription.ts b/ui-ngx/src/app/core/api/widget-subscription.ts index f7017652d8..070538ddc5 100644 --- a/ui-ngx/src/app/core/api/widget-subscription.ts +++ b/ui-ngx/src/app/core/api/widget-subscription.ts @@ -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); } }