UI: Notify about alarm data overflow. Fix Audit log created time
This commit is contained in:
parent
c4390e896a
commit
bdd8b17bf0
@ -298,7 +298,7 @@ public class AuditLogServiceImpl implements AuditLogService {
|
|||||||
AuditLog result = new AuditLog();
|
AuditLog result = new AuditLog();
|
||||||
UUID id = Uuids.timeBased();
|
UUID id = Uuids.timeBased();
|
||||||
result.setId(new AuditLogId(id));
|
result.setId(new AuditLogId(id));
|
||||||
result.setCreatedTime(id.timestamp());
|
result.setCreatedTime(Uuids.unixTimestamp(id));
|
||||||
result.setTenantId(tenantId);
|
result.setTenantId(tenantId);
|
||||||
result.setEntityId(entityId);
|
result.setEntityId(entityId);
|
||||||
result.setEntityName(entityName);
|
result.setEntityName(entityName);
|
||||||
|
|||||||
@ -136,7 +136,7 @@ export class AlarmDataSubscription {
|
|||||||
|
|
||||||
this.subscriber.alarmData$.subscribe((alarmDataUpdate) => {
|
this.subscriber.alarmData$.subscribe((alarmDataUpdate) => {
|
||||||
if (alarmDataUpdate.data) {
|
if (alarmDataUpdate.data) {
|
||||||
this.onPageData(alarmDataUpdate.data);
|
this.onPageData(alarmDataUpdate.data, alarmDataUpdate.allowedEntities, alarmDataUpdate.totalEntities);
|
||||||
} else if (alarmDataUpdate.update) {
|
} else if (alarmDataUpdate.update) {
|
||||||
this.onDataUpdate(alarmDataUpdate.update);
|
this.onDataUpdate(alarmDataUpdate.update);
|
||||||
}
|
}
|
||||||
@ -151,7 +151,7 @@ export class AlarmDataSubscription {
|
|||||||
totalElements: 1,
|
totalElements: 1,
|
||||||
totalPages: 1
|
totalPages: 1
|
||||||
};
|
};
|
||||||
this.onPageData(pageData);
|
this.onPageData(pageData, 1024, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,10 +163,10 @@ export class AlarmDataSubscription {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private onPageData(pageData: PageData<AlarmData>) {
|
private onPageData(pageData: PageData<AlarmData>, allowedEntities: number, totalEntities: number) {
|
||||||
this.pageData = pageData;
|
this.pageData = pageData;
|
||||||
this.resetData();
|
this.resetData();
|
||||||
this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink);
|
this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink, allowedEntities, totalEntities);
|
||||||
}
|
}
|
||||||
|
|
||||||
private onDataUpdate(update: Array<AlarmData>) {
|
private onDataUpdate(update: Array<AlarmData>) {
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import { deepClone } from '@core/utils';
|
|||||||
export interface AlarmDataListener {
|
export interface AlarmDataListener {
|
||||||
subscriptionTimewindow?: SubscriptionTimewindow;
|
subscriptionTimewindow?: SubscriptionTimewindow;
|
||||||
alarmSource: Datasource;
|
alarmSource: Datasource;
|
||||||
alarmsLoaded: (pageData: PageData<AlarmData>, pageLink: AlarmDataPageLink) => void;
|
alarmsLoaded: (pageData: PageData<AlarmData>, pageLink: AlarmDataPageLink, allowedEntities: number, totalEntities: number) => void;
|
||||||
alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void;
|
alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void;
|
||||||
subscription?: AlarmDataSubscription;
|
subscription?: AlarmDataSubscription;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1272,8 +1272,16 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private alarmsLoaded(alarms: PageData<AlarmData>) {
|
private alarmsLoaded(alarms: PageData<AlarmData>, allowedEntities: number, totalEntities: number) {
|
||||||
this.alarms = alarms;
|
this.alarms = alarms;
|
||||||
|
if (totalEntities > allowedEntities) {
|
||||||
|
const message = this.ctx.translate.instant('widget.alarm-data-overflow',
|
||||||
|
{ allowedEntities, totalEntities });
|
||||||
|
this.onSubscriptionMessage({
|
||||||
|
severity: 'warn',
|
||||||
|
message
|
||||||
|
});
|
||||||
|
}
|
||||||
if (this.subscriptionTimewindow && this.subscriptionTimewindow.realtimeWindowMs) {
|
if (this.subscriptionTimewindow && this.subscriptionTimewindow.realtimeWindowMs) {
|
||||||
this.updateTimewindow();
|
this.updateTimewindow();
|
||||||
}
|
}
|
||||||
@ -1281,7 +1289,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private alarmsUpdated(_updated: Array<AlarmData>, alarms: PageData<AlarmData>) {
|
private alarmsUpdated(_updated: Array<AlarmData>, alarms: PageData<AlarmData>) {
|
||||||
this.alarmsLoaded(alarms);
|
this.alarmsLoaded(alarms, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateLegend(dataIndex: number, data: DataSet, detectChanges: boolean) {
|
private updateLegend(dataIndex: number, data: DataSet, detectChanges: boolean) {
|
||||||
|
|||||||
@ -336,11 +336,9 @@ export class TelemetryWebsocketService implements TelemetryService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private showWsError(errorCode: number, errorMsg: string) {
|
private showWsError(errorCode: number, errorMsg: string) {
|
||||||
let message = 'WebSocket Error: ';
|
let message = errorMsg;
|
||||||
if (errorMsg) {
|
if (!message) {
|
||||||
message += errorMsg;
|
message += `WebSocket Error: error code - ${errorCode}.`;
|
||||||
} else {
|
|
||||||
message += `error code - ${errorCode}.`;
|
|
||||||
}
|
}
|
||||||
this.store.dispatch(new ActionNotificationShow(
|
this.store.dispatch(new ActionNotificationShow(
|
||||||
{
|
{
|
||||||
|
|||||||
@ -284,6 +284,8 @@ export interface EntityDataUpdateMsg extends DataUpdateMsg<EntityData> {
|
|||||||
|
|
||||||
export interface AlarmDataUpdateMsg extends DataUpdateMsg<AlarmData> {
|
export interface AlarmDataUpdateMsg extends DataUpdateMsg<AlarmData> {
|
||||||
dataUpdateType: DataUpdateType.ALARM_DATA;
|
dataUpdateType: DataUpdateType.ALARM_DATA;
|
||||||
|
allowedEntities: number;
|
||||||
|
totalEntities: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type WebsocketDataMsg = AlarmDataUpdateMsg | EntityDataUpdateMsg | SubscriptionUpdateMsg;
|
export type WebsocketDataMsg = AlarmDataUpdateMsg | EntityDataUpdateMsg | SubscriptionUpdateMsg;
|
||||||
@ -372,8 +374,13 @@ export class EntityDataUpdate extends DataUpdate<EntityData> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class AlarmDataUpdate extends DataUpdate<AlarmData> {
|
export class AlarmDataUpdate extends DataUpdate<AlarmData> {
|
||||||
|
allowedEntities: number;
|
||||||
|
totalEntities: number;
|
||||||
|
|
||||||
constructor(msg: AlarmDataUpdateMsg) {
|
constructor(msg: AlarmDataUpdateMsg) {
|
||||||
super(msg);
|
super(msg);
|
||||||
|
this.allowedEntities = msg.allowedEntities;
|
||||||
|
this.totalEntities = msg.totalEntities;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1806,7 +1806,8 @@
|
|||||||
"undo": "Undo widget changes",
|
"undo": "Undo widget changes",
|
||||||
"export": "Export widget",
|
"export": "Export widget",
|
||||||
"no-data": "No data to display on widget",
|
"no-data": "No data to display on widget",
|
||||||
"data-overflow": "Widget displays {{count}} out of {{total}} entities"
|
"data-overflow": "Widget displays {{count}} out of {{total}} entities",
|
||||||
|
"alarm-data-overflow": "Widget displays alarms for {{allowedEntities}} (maximum allowed) entities out of {{totalEntities}} entities"
|
||||||
},
|
},
|
||||||
"widget-action": {
|
"widget-action": {
|
||||||
"header-button": "Widget header button",
|
"header-button": "Widget header button",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user