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();
|
||||
UUID id = Uuids.timeBased();
|
||||
result.setId(new AuditLogId(id));
|
||||
result.setCreatedTime(id.timestamp());
|
||||
result.setCreatedTime(Uuids.unixTimestamp(id));
|
||||
result.setTenantId(tenantId);
|
||||
result.setEntityId(entityId);
|
||||
result.setEntityName(entityName);
|
||||
|
||||
@ -136,7 +136,7 @@ export class AlarmDataSubscription {
|
||||
|
||||
this.subscriber.alarmData$.subscribe((alarmDataUpdate) => {
|
||||
if (alarmDataUpdate.data) {
|
||||
this.onPageData(alarmDataUpdate.data);
|
||||
this.onPageData(alarmDataUpdate.data, alarmDataUpdate.allowedEntities, alarmDataUpdate.totalEntities);
|
||||
} else if (alarmDataUpdate.update) {
|
||||
this.onDataUpdate(alarmDataUpdate.update);
|
||||
}
|
||||
@ -151,7 +151,7 @@ export class AlarmDataSubscription {
|
||||
totalElements: 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.resetData();
|
||||
this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink);
|
||||
this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink, allowedEntities, totalEntities);
|
||||
}
|
||||
|
||||
private onDataUpdate(update: Array<AlarmData>) {
|
||||
|
||||
@ -31,7 +31,7 @@ import { deepClone } from '@core/utils';
|
||||
export interface AlarmDataListener {
|
||||
subscriptionTimewindow?: SubscriptionTimewindow;
|
||||
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;
|
||||
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;
|
||||
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) {
|
||||
this.updateTimewindow();
|
||||
}
|
||||
@ -1281,7 +1289,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
||||
}
|
||||
|
||||
private alarmsUpdated(_updated: Array<AlarmData>, alarms: PageData<AlarmData>) {
|
||||
this.alarmsLoaded(alarms);
|
||||
this.alarmsLoaded(alarms, 0, 0);
|
||||
}
|
||||
|
||||
private updateLegend(dataIndex: number, data: DataSet, detectChanges: boolean) {
|
||||
|
||||
@ -336,11 +336,9 @@ export class TelemetryWebsocketService implements TelemetryService {
|
||||
}
|
||||
|
||||
private showWsError(errorCode: number, errorMsg: string) {
|
||||
let message = 'WebSocket Error: ';
|
||||
if (errorMsg) {
|
||||
message += errorMsg;
|
||||
} else {
|
||||
message += `error code - ${errorCode}.`;
|
||||
let message = errorMsg;
|
||||
if (!message) {
|
||||
message += `WebSocket Error: error code - ${errorCode}.`;
|
||||
}
|
||||
this.store.dispatch(new ActionNotificationShow(
|
||||
{
|
||||
|
||||
@ -284,6 +284,8 @@ export interface EntityDataUpdateMsg extends DataUpdateMsg<EntityData> {
|
||||
|
||||
export interface AlarmDataUpdateMsg extends DataUpdateMsg<AlarmData> {
|
||||
dataUpdateType: DataUpdateType.ALARM_DATA;
|
||||
allowedEntities: number;
|
||||
totalEntities: number;
|
||||
}
|
||||
|
||||
export type WebsocketDataMsg = AlarmDataUpdateMsg | EntityDataUpdateMsg | SubscriptionUpdateMsg;
|
||||
@ -372,8 +374,13 @@ export class EntityDataUpdate extends DataUpdate<EntityData> {
|
||||
}
|
||||
|
||||
export class AlarmDataUpdate extends DataUpdate<AlarmData> {
|
||||
allowedEntities: number;
|
||||
totalEntities: number;
|
||||
|
||||
constructor(msg: AlarmDataUpdateMsg) {
|
||||
super(msg);
|
||||
this.allowedEntities = msg.allowedEntities;
|
||||
this.totalEntities = msg.totalEntities;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1806,7 +1806,8 @@
|
||||
"undo": "Undo widget changes",
|
||||
"export": "Export 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": {
|
||||
"header-button": "Widget header button",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user