Commit bdd8b17bf01e94ad190aa442c64dba10c19ecf07
1 parent
c4390e89
UI: Notify about alarm data overflow. Fix Audit log created time
Showing
7 changed files
with
28 additions
and
14 deletions
... | ... | @@ -298,7 +298,7 @@ public class AuditLogServiceImpl implements AuditLogService { |
298 | 298 | AuditLog result = new AuditLog(); |
299 | 299 | UUID id = Uuids.timeBased(); |
300 | 300 | result.setId(new AuditLogId(id)); |
301 | - result.setCreatedTime(id.timestamp()); | |
301 | + result.setCreatedTime(Uuids.unixTimestamp(id)); | |
302 | 302 | result.setTenantId(tenantId); |
303 | 303 | result.setEntityId(entityId); |
304 | 304 | result.setEntityName(entityName); | ... | ... |
... | ... | @@ -136,7 +136,7 @@ export class AlarmDataSubscription { |
136 | 136 | |
137 | 137 | this.subscriber.alarmData$.subscribe((alarmDataUpdate) => { |
138 | 138 | if (alarmDataUpdate.data) { |
139 | - this.onPageData(alarmDataUpdate.data); | |
139 | + this.onPageData(alarmDataUpdate.data, alarmDataUpdate.allowedEntities, alarmDataUpdate.totalEntities); | |
140 | 140 | } else if (alarmDataUpdate.update) { |
141 | 141 | this.onDataUpdate(alarmDataUpdate.update); |
142 | 142 | } |
... | ... | @@ -151,7 +151,7 @@ export class AlarmDataSubscription { |
151 | 151 | totalElements: 1, |
152 | 152 | totalPages: 1 |
153 | 153 | }; |
154 | - this.onPageData(pageData); | |
154 | + this.onPageData(pageData, 1024, 1); | |
155 | 155 | } |
156 | 156 | } |
157 | 157 | |
... | ... | @@ -163,10 +163,10 @@ export class AlarmDataSubscription { |
163 | 163 | } |
164 | 164 | } |
165 | 165 | |
166 | - private onPageData(pageData: PageData<AlarmData>) { | |
166 | + private onPageData(pageData: PageData<AlarmData>, allowedEntities: number, totalEntities: number) { | |
167 | 167 | this.pageData = pageData; |
168 | 168 | this.resetData(); |
169 | - this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink); | |
169 | + this.listener.alarmsLoaded(pageData, this.alarmDataSubscriptionOptions.pageLink, allowedEntities, totalEntities); | |
170 | 170 | } |
171 | 171 | |
172 | 172 | private onDataUpdate(update: Array<AlarmData>) { | ... | ... |
... | ... | @@ -31,7 +31,7 @@ import { deepClone } from '@core/utils'; |
31 | 31 | export interface AlarmDataListener { |
32 | 32 | subscriptionTimewindow?: SubscriptionTimewindow; |
33 | 33 | alarmSource: Datasource; |
34 | - alarmsLoaded: (pageData: PageData<AlarmData>, pageLink: AlarmDataPageLink) => void; | |
34 | + alarmsLoaded: (pageData: PageData<AlarmData>, pageLink: AlarmDataPageLink, allowedEntities: number, totalEntities: number) => void; | |
35 | 35 | alarmsUpdated: (update: Array<AlarmData>, pageData: PageData<AlarmData>) => void; |
36 | 36 | subscription?: AlarmDataSubscription; |
37 | 37 | } | ... | ... |
... | ... | @@ -1272,8 +1272,16 @@ export class WidgetSubscription implements IWidgetSubscription { |
1272 | 1272 | } |
1273 | 1273 | } |
1274 | 1274 | |
1275 | - private alarmsLoaded(alarms: PageData<AlarmData>) { | |
1275 | + private alarmsLoaded(alarms: PageData<AlarmData>, allowedEntities: number, totalEntities: number) { | |
1276 | 1276 | this.alarms = alarms; |
1277 | + if (totalEntities > allowedEntities) { | |
1278 | + const message = this.ctx.translate.instant('widget.alarm-data-overflow', | |
1279 | + { allowedEntities, totalEntities }); | |
1280 | + this.onSubscriptionMessage({ | |
1281 | + severity: 'warn', | |
1282 | + message | |
1283 | + }); | |
1284 | + } | |
1277 | 1285 | if (this.subscriptionTimewindow && this.subscriptionTimewindow.realtimeWindowMs) { |
1278 | 1286 | this.updateTimewindow(); |
1279 | 1287 | } |
... | ... | @@ -1281,7 +1289,7 @@ export class WidgetSubscription implements IWidgetSubscription { |
1281 | 1289 | } |
1282 | 1290 | |
1283 | 1291 | private alarmsUpdated(_updated: Array<AlarmData>, alarms: PageData<AlarmData>) { |
1284 | - this.alarmsLoaded(alarms); | |
1292 | + this.alarmsLoaded(alarms, 0, 0); | |
1285 | 1293 | } |
1286 | 1294 | |
1287 | 1295 | private updateLegend(dataIndex: number, data: DataSet, detectChanges: boolean) { | ... | ... |
... | ... | @@ -336,11 +336,9 @@ export class TelemetryWebsocketService implements TelemetryService { |
336 | 336 | } |
337 | 337 | |
338 | 338 | private showWsError(errorCode: number, errorMsg: string) { |
339 | - let message = 'WebSocket Error: '; | |
340 | - if (errorMsg) { | |
341 | - message += errorMsg; | |
342 | - } else { | |
343 | - message += `error code - ${errorCode}.`; | |
339 | + let message = errorMsg; | |
340 | + if (!message) { | |
341 | + message += `WebSocket Error: error code - ${errorCode}.`; | |
344 | 342 | } |
345 | 343 | this.store.dispatch(new ActionNotificationShow( |
346 | 344 | { | ... | ... |
... | ... | @@ -284,6 +284,8 @@ export interface EntityDataUpdateMsg extends DataUpdateMsg<EntityData> { |
284 | 284 | |
285 | 285 | export interface AlarmDataUpdateMsg extends DataUpdateMsg<AlarmData> { |
286 | 286 | dataUpdateType: DataUpdateType.ALARM_DATA; |
287 | + allowedEntities: number; | |
288 | + totalEntities: number; | |
287 | 289 | } |
288 | 290 | |
289 | 291 | export type WebsocketDataMsg = AlarmDataUpdateMsg | EntityDataUpdateMsg | SubscriptionUpdateMsg; |
... | ... | @@ -372,8 +374,13 @@ export class EntityDataUpdate extends DataUpdate<EntityData> { |
372 | 374 | } |
373 | 375 | |
374 | 376 | export class AlarmDataUpdate extends DataUpdate<AlarmData> { |
377 | + allowedEntities: number; | |
378 | + totalEntities: number; | |
379 | + | |
375 | 380 | constructor(msg: AlarmDataUpdateMsg) { |
376 | 381 | super(msg); |
382 | + this.allowedEntities = msg.allowedEntities; | |
383 | + this.totalEntities = msg.totalEntities; | |
377 | 384 | } |
378 | 385 | } |
379 | 386 | ... | ... |
... | ... | @@ -1806,7 +1806,8 @@ |
1806 | 1806 | "undo": "Undo widget changes", |
1807 | 1807 | "export": "Export widget", |
1808 | 1808 | "no-data": "No data to display on widget", |
1809 | - "data-overflow": "Widget displays {{count}} out of {{total}} entities" | |
1809 | + "data-overflow": "Widget displays {{count}} out of {{total}} entities", | |
1810 | + "alarm-data-overflow": "Widget displays alarms for {{allowedEntities}} (maximum allowed) entities out of {{totalEntities}} entities" | |
1810 | 1811 | }, |
1811 | 1812 | "widget-action": { |
1812 | 1813 | "header-button": "Widget header button", | ... | ... |