UI: Fixed updated Alarm widget in change entity state parameters
This commit is contained in:
parent
a99a8e458c
commit
39c2e3c39d
@ -52,6 +52,7 @@ export interface AlarmDataSubscriptionOptions {
|
|||||||
|
|
||||||
export class AlarmDataSubscription {
|
export class AlarmDataSubscription {
|
||||||
|
|
||||||
|
private alarmDataSubscriptionOptions = this.listener.alarmDataSubscriptionOptions;
|
||||||
private datasourceType: DatasourceType = this.alarmDataSubscriptionOptions.datasourceType;
|
private datasourceType: DatasourceType = this.alarmDataSubscriptionOptions.datasourceType;
|
||||||
|
|
||||||
private history: boolean;
|
private history: boolean;
|
||||||
@ -65,8 +66,7 @@ export class AlarmDataSubscription {
|
|||||||
|
|
||||||
private subsTw: SubscriptionTimewindow;
|
private subsTw: SubscriptionTimewindow;
|
||||||
|
|
||||||
constructor(public alarmDataSubscriptionOptions: AlarmDataSubscriptionOptions,
|
constructor(private listener: AlarmDataListener,
|
||||||
private listener: AlarmDataListener,
|
|
||||||
private telemetryService: TelemetryService) {
|
private telemetryService: TelemetryService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,7 @@ export interface AlarmDataListener {
|
|||||||
alarmSource: Datasource;
|
alarmSource: Datasource;
|
||||||
alarmsLoaded: (pageData: PageData<AlarmData>, allowedEntities: number, totalEntities: number) => void;
|
alarmsLoaded: (pageData: PageData<AlarmData>, allowedEntities: number, totalEntities: number) => void;
|
||||||
alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void;
|
alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void;
|
||||||
|
alarmDataSubscriptionOptions?: AlarmDataSubscriptionOptions;
|
||||||
subscription?: AlarmDataSubscription;
|
subscription?: AlarmDataSubscription;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,11 +48,11 @@ export class AlarmDataService {
|
|||||||
pageLink: AlarmDataPageLink,
|
pageLink: AlarmDataPageLink,
|
||||||
keyFilters: KeyFilter[]) {
|
keyFilters: KeyFilter[]) {
|
||||||
const alarmSource = listener.alarmSource;
|
const alarmSource = listener.alarmSource;
|
||||||
|
listener.alarmDataSubscriptionOptions = this.createAlarmSubscriptionOptions(listener, pageLink, keyFilters);
|
||||||
if (alarmSource.type === DatasourceType.entity && (!alarmSource.entityFilter || !pageLink)) {
|
if (alarmSource.type === DatasourceType.entity && (!alarmSource.entityFilter || !pageLink)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
listener.subscription = this.createSubscription(listener,
|
listener.subscription = new AlarmDataSubscription(listener, this.telemetryService);
|
||||||
pageLink, alarmSource.keyFilters, keyFilters);
|
|
||||||
return listener.subscription.subscribe();
|
return listener.subscription.subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,10 +62,9 @@ export class AlarmDataService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private createSubscription(listener: AlarmDataListener,
|
private createAlarmSubscriptionOptions(listener: AlarmDataListener,
|
||||||
pageLink: AlarmDataPageLink,
|
pageLink: AlarmDataPageLink,
|
||||||
keyFilters: KeyFilter[],
|
additionalKeyFilters: KeyFilter[]): AlarmDataSubscriptionOptions {
|
||||||
additionalKeyFilters: KeyFilter[]): AlarmDataSubscription {
|
|
||||||
const alarmSource = listener.alarmSource;
|
const alarmSource = listener.alarmSource;
|
||||||
const alarmSubscriptionDataKeys: Array<AlarmSubscriptionDataKey> = [];
|
const alarmSubscriptionDataKeys: Array<AlarmSubscriptionDataKey> = [];
|
||||||
alarmSource.dataKeys.forEach((dataKey) => {
|
alarmSource.dataKeys.forEach((dataKey) => {
|
||||||
@ -82,11 +82,10 @@ export class AlarmDataService {
|
|||||||
if (alarmDataSubscriptionOptions.datasourceType === DatasourceType.entity) {
|
if (alarmDataSubscriptionOptions.datasourceType === DatasourceType.entity) {
|
||||||
alarmDataSubscriptionOptions.entityFilter = alarmSource.entityFilter;
|
alarmDataSubscriptionOptions.entityFilter = alarmSource.entityFilter;
|
||||||
alarmDataSubscriptionOptions.pageLink = pageLink;
|
alarmDataSubscriptionOptions.pageLink = pageLink;
|
||||||
alarmDataSubscriptionOptions.keyFilters = keyFilters;
|
alarmDataSubscriptionOptions.keyFilters = alarmSource.keyFilters;
|
||||||
alarmDataSubscriptionOptions.additionalKeyFilters = additionalKeyFilters;
|
alarmDataSubscriptionOptions.additionalKeyFilters = additionalKeyFilters;
|
||||||
}
|
}
|
||||||
return new AlarmDataSubscription(alarmDataSubscriptionOptions,
|
return alarmDataSubscriptionOptions;
|
||||||
listener, this.telemetryService);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -960,8 +960,8 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
|
|
||||||
private updateAlarmDataSubscription() {
|
private updateAlarmDataSubscription() {
|
||||||
if (this.alarmDataListener) {
|
if (this.alarmDataListener) {
|
||||||
const pageLink = this.alarmDataListener.subscription.alarmDataSubscriptionOptions.pageLink;
|
const pageLink = this.alarmDataListener.alarmDataSubscriptionOptions.pageLink;
|
||||||
const keyFilters = this.alarmDataListener.subscription.alarmDataSubscriptionOptions.additionalKeyFilters;
|
const keyFilters = this.alarmDataListener.alarmDataSubscriptionOptions.additionalKeyFilters;
|
||||||
this.subscribeForAlarms(pageLink, keyFilters);
|
this.subscribeForAlarms(pageLink, keyFilters);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user