|
|
|
@ -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; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|