Browse Source

UI: Added translations for system alarms comments

pull/14336/head
Maksym Tsymbarov 7 months ago
parent
commit
322f6ecff3
  1. 2
      application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java
  2. 19
      ui-ngx/src/app/modules/home/components/alarm/alarm-comment.component.ts
  3. 13
      ui-ngx/src/app/shared/models/alarm.models.ts
  4. 11
      ui-ngx/src/assets/locale/locale.constant-en_US.json

2
application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmService.java

@ -233,7 +233,7 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
private void addSystemAlarmComment(Alarm alarm, User user, AlarmCommentSubType subType, Map<String, String> params) {
ObjectNode commentNode = JacksonUtil.newObjectNode();
commentNode.put("text", String.format(subType.getText(), params.values()))
commentNode.put("text", String.format(subType.getText(), params.values().toArray()))
.put("subtype", subType.name());
params.forEach(commentNode::put);
AlarmComment alarmComment = AlarmComment.builder()

19
ui-ngx/src/app/modules/home/components/alarm/alarm-comment.component.ts

@ -27,7 +27,13 @@ import { Direction, SortOrder } from '@shared/models/page/sort-order';
import { MAX_SAFE_PAGE_SIZE, PageLink } from '@shared/models/page/page-link';
import { DateAgoPipe } from '@shared/pipe/date-ago.pipe';
import { map } from 'rxjs/operators';
import { AlarmComment, AlarmCommentType, getUserDisplayName } from '@shared/models/alarm.models';
import {
AlarmComment,
AlarmCommentInfo,
AlarmCommentType,
AlarmMessage,
getUserDisplayName
} from '@shared/models/alarm.models';
import { UtilsService } from '@core/services/utils.service';
import { EntityType } from '@shared/models/entity-type.models';
import { DatePipe } from '@angular/common';
@ -121,7 +127,7 @@ export class AlarmCommentComponent implements OnInit {
const displayDataElement = {} as AlarmCommentsDisplayData;
displayDataElement.createdTime = this.datePipe.transform(alarmComment.createdTime, 'yyyy-MM-dd HH:mm:ss');
displayDataElement.createdDateAgo = this.dateAgoPipe.transform(alarmComment.createdTime);
displayDataElement.commentText = alarmComment.comment.text;
displayDataElement.commentText = this.parseSystemComment(alarmComment);
displayDataElement.isSystemComment = alarmComment.type === AlarmCommentType.SYSTEM;
if (alarmComment.type === AlarmCommentType.OTHER) {
displayDataElement.commentId = alarmComment.id.id;
@ -144,6 +150,15 @@ export class AlarmCommentComponent implements OnInit {
);
}
private parseSystemComment(alarm: AlarmCommentInfo): string {
const subTypeKey = alarm.comment?.subtype;
if (subTypeKey && AlarmMessage[subTypeKey]) {
const translationKey = AlarmMessage[subTypeKey];
return this.translate.instant(translationKey, alarm.comment);
}
return alarm.comment.text;
}
changeSortDirection() {
const currentDirection = this.alarmCommentSortOrder.direction;
this.alarmCommentSortOrder.direction = currentDirection === Direction.DESC ? Direction.ASC : Direction.DESC;

13
ui-ngx/src/app/shared/models/alarm.models.ts

@ -120,12 +120,25 @@ export enum AlarmCommentType {
OTHER = 'OTHER'
}
export enum AlarmMessage {
ACKED_BY_USER = "alarm.system-comments.acked-by-user",
CLEARED_BY_USER = "alarm.system-comments.cleared-by-user",
ASSIGNED_TO_USER = "alarm.system-comments.assigned-to-user",
UNASSIGNED_BY_USER = "alarm.system-comments.unassigned-to-user",
UNASSIGNED_FROM_DELETED_USER = "alarm.system-comments.unassigned-from-deleted-user",
COMMENT_DELETED = "alarm.system-comments.comment-deleted",
SEVERITY_CHANGED = "alarm.system-comments.severity-changed",
}
export interface AlarmComment extends BaseData<AlarmCommentId> {
alarmId: AlarmId;
userId?: UserId;
type: AlarmCommentType;
comment: {
text: string;
subtype?: keyof typeof AlarmMessage;
userName?: string;
assigneeName?: string;
edited?: boolean;
editedOn?: number;
};

11
ui-ngx/src/assets/locale/locale.constant-en_US.json

@ -657,7 +657,16 @@
"alarm-type": "Alarm type",
"enter-alarm-type": "Enter alarm type",
"no-alarm-types-matching": "No alarm types matching '{{entitySubtype}}' were found.",
"alarm-type-list-empty": "No alarm types selected."
"alarm-type-list-empty": "No alarm types selected.",
"system-comments": {
"acked-by-user": "Alarm was acknowledged by user {{userName}}",
"cleared-by-user": "Alarm was cleared by user {{userName}}",
"assigned-to-user": "Alarm was assigned by user {{userName}} to user {{assigneeName}}",
"unassigned-to-user": "Alarm was unassigned by user {{userName}}",
"unassigned-from-deleted-user": "Alarm was unassigned because user {{userName}} was deleted",
"comment-deleted": "User {{userName}} deleted his comment",
"severity-changed": "Alarm severity changed from {{userName}} to {{assigneeName}}"
}
},
"alarm-activity": {
"add": "Add a comment...",

Loading…
Cancel
Save