UI: Improvement alarm details dialog

This commit is contained in:
Vladyslav_Prykhodko 2022-06-21 17:14:03 +03:00
parent a2422dab00
commit d05712d3e2
2 changed files with 32 additions and 13 deletions

View File

@ -35,7 +35,8 @@ import { DatePipe } from '@angular/common';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
export interface AlarmDetailsDialogData { export interface AlarmDetailsDialogData {
alarmId: string; alarmId?: string;
alarm?: AlarmInfo;
allowAcknowledgment: boolean; allowAcknowledgment: boolean;
allowClear: boolean; allowClear: boolean;
displayDetails: boolean; displayDetails: boolean;
@ -48,6 +49,7 @@ export interface AlarmDetailsDialogData {
}) })
export class AlarmDetailsDialogComponent extends DialogComponent<AlarmDetailsDialogComponent, boolean> implements OnInit { export class AlarmDetailsDialogComponent extends DialogComponent<AlarmDetailsDialogComponent, boolean> implements OnInit {
alarmId: string;
alarmFormGroup: FormGroup; alarmFormGroup: FormGroup;
allowAcknowledgment: boolean; allowAcknowledgment: boolean;
@ -93,12 +95,17 @@ export class AlarmDetailsDialogComponent extends DialogComponent<AlarmDetailsDia
} }
); );
if (!this.data.alarm) {
this.alarmId = this.data.alarmId;
this.loadAlarm(); this.loadAlarm();
} else {
this.alarmId = this.data.alarm?.id?.id;
this.loadAlarmSubject.next(this.data.alarm);
}
} }
loadAlarm() { loadAlarm() {
this.alarmService.getAlarmInfo(this.data.alarmId).subscribe( this.alarmService.getAlarmInfo(this.alarmId).subscribe(
alarm => this.loadAlarmSubject.next(alarm) alarm => this.loadAlarmSubject.next(alarm)
); );
} }
@ -140,15 +147,25 @@ export class AlarmDetailsDialogComponent extends DialogComponent<AlarmDetailsDia
} }
acknowledge(): void { acknowledge(): void {
this.alarmService.ackAlarm(this.data.alarmId).subscribe( if (this.alarmId) {
() => { this.alarmUpdated = true; this.loadAlarm(); } this.alarmService.ackAlarm(this.alarmId).subscribe(
() => {
this.alarmUpdated = true;
this.loadAlarm();
}
); );
} }
}
clear(): void { clear(): void {
this.alarmService.clearAlarm(this.data.alarmId).subscribe( if (this.alarmId) {
() => { this.alarmUpdated = true; this.loadAlarm(); } this.alarmService.clearAlarm(this.alarmId).subscribe(
() => {
this.alarmUpdated = true;
this.loadAlarm();
}
); );
} }
}
} }

View File

@ -109,7 +109,7 @@ export class AlarmTableConfig extends EntityTableConfig<AlarmInfo, TimePageLink>
{ {
name: this.translate.instant('alarm.details'), name: this.translate.instant('alarm.details'),
icon: 'more_horiz', icon: 'more_horiz',
isEnabled: (entity) => this.authUser.authority !== Authority.CUSTOMER_USER || entity.customerId.id === this.authUser.customerId, isEnabled: () => true,
onAction: ($event, entity) => this.showAlarmDetails(entity) onAction: ($event, entity) => this.showAlarmDetails(entity)
} }
); );
@ -121,6 +121,7 @@ export class AlarmTableConfig extends EntityTableConfig<AlarmInfo, TimePageLink>
} }
showAlarmDetails(entity: AlarmInfo) { showAlarmDetails(entity: AlarmInfo) {
const isPermissionWrite = this.authUser.authority !== Authority.CUSTOMER_USER || entity.customerId.id === this.authUser.customerId;
this.dialog.open<AlarmDetailsDialogComponent, AlarmDetailsDialogData, boolean> this.dialog.open<AlarmDetailsDialogComponent, AlarmDetailsDialogData, boolean>
(AlarmDetailsDialogComponent, (AlarmDetailsDialogComponent,
{ {
@ -128,8 +129,9 @@ export class AlarmTableConfig extends EntityTableConfig<AlarmInfo, TimePageLink>
panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
data: { data: {
alarmId: entity.id.id, alarmId: entity.id.id,
allowAcknowledgment: true, alarm: entity,
allowClear: true, allowAcknowledgment: isPermissionWrite,
allowClear: isPermissionWrite,
displayDetails: true displayDetails: true
} }
}).afterClosed().subscribe( }).afterClosed().subscribe(