195 lines
6.0 KiB
TypeScript
195 lines
6.0 KiB
TypeScript
import { Component, OnInit } from '@angular/core';
|
|
import { MatDialog } from '@angular/material/dialog';
|
|
import { Router } from '@angular/router';
|
|
import { MaintenanceService } from '@app/core/services/maintenance/maintenance.service';
|
|
import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/services/notification/ui-notification-service';
|
|
import { BaseComponent } from '@common/base/base.component';
|
|
import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog/confirmation-dialog.component';
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
import { takeUntil } from 'rxjs/operators';
|
|
|
|
@Component({
|
|
selector: 'app-maintenance-tasks',
|
|
templateUrl: './maintenance-tasks.component.html',
|
|
styleUrls: ['./maintenance-tasks.component.scss']
|
|
})
|
|
export class MaintenanceTasksComponent extends BaseComponent implements OnInit {
|
|
|
|
constructor(
|
|
protected dialog: MatDialog,
|
|
protected language: TranslateService,
|
|
private maintenanceService: MaintenanceService,
|
|
private uiNotificationService: UiNotificationService,
|
|
private translate: TranslateService,
|
|
private router: Router,
|
|
) {
|
|
super();
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
}
|
|
|
|
//TODO: refactor
|
|
// migrateSemantics(ev: Event) {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = true;
|
|
// this.maintenanceTasksService.migrateSemantics().pipe(takeUntil(this._destroyed)).subscribe(
|
|
// response => {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = false;
|
|
// this.onCallbackSuccess();
|
|
// },
|
|
// error => {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = false;
|
|
// this.onCallbackError(error);
|
|
// }
|
|
// );
|
|
// }
|
|
|
|
// addRdaInSemantics(ev: Event) {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = true;
|
|
// this.maintenanceTasksService.addRdaInSemantics().pipe(takeUntil(this._destroyed)).subscribe(
|
|
// response => {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = false;
|
|
// this.onCallbackSuccess();
|
|
// },
|
|
// error => {
|
|
// (ev.srcElement as HTMLButtonElement).disabled = false;
|
|
// this.onCallbackError(error);
|
|
// }
|
|
// );
|
|
// }
|
|
|
|
generateIndex(ev: Event) {
|
|
this.dialog.open(ConfirmationDialogComponent, {
|
|
data: {
|
|
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
|
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
|
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
|
},
|
|
maxWidth: '30em'
|
|
})
|
|
.afterClosed()
|
|
.subscribe(confirm => {
|
|
if (confirm) {
|
|
this.doGenerateIndex(ev);
|
|
}
|
|
});
|
|
}
|
|
|
|
private doGenerateIndex(ev: Event) {
|
|
(ev.target as HTMLButtonElement).disabled = true;
|
|
this.maintenanceService.generateElasticIndex().pipe(takeUntil(this._destroyed)).subscribe(
|
|
_ => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackSuccess();
|
|
},
|
|
error => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackError(error);
|
|
}
|
|
);
|
|
}
|
|
|
|
clearIndex(ev: Event) {
|
|
this.dialog.open(ConfirmationDialogComponent, {
|
|
data: {
|
|
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
|
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
|
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
|
},
|
|
maxWidth: '30em'
|
|
})
|
|
.afterClosed()
|
|
.subscribe(confirm => {
|
|
if (confirm) {
|
|
this.doClearIndex(ev);
|
|
}
|
|
});
|
|
}
|
|
|
|
private doClearIndex(ev: Event) {
|
|
(ev.target as HTMLButtonElement).disabled = true;
|
|
this.maintenanceService.clearElasticIndex().pipe(takeUntil(this._destroyed)).subscribe(
|
|
_ => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackSuccess();
|
|
},
|
|
error => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackError(error);
|
|
}
|
|
);
|
|
}
|
|
|
|
sendUserTouchEvents(ev: Event) {
|
|
this.dialog.open(ConfirmationDialogComponent, {
|
|
data: {
|
|
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
|
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
|
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
|
},
|
|
maxWidth: '30em'
|
|
})
|
|
.afterClosed()
|
|
.subscribe(confirm => {
|
|
if (confirm) {
|
|
this.doSendUserTouchEvents(ev);
|
|
}
|
|
});
|
|
}
|
|
|
|
private doSendUserTouchEvents(ev: Event) {
|
|
(ev.target as HTMLButtonElement).disabled = true;
|
|
this.maintenanceService.sendUserTouchEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
|
_ => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackSuccess();
|
|
},
|
|
error => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackError(error);
|
|
}
|
|
);
|
|
}
|
|
|
|
sendTenantTouchEvents(ev: Event) {
|
|
this.dialog.open(ConfirmationDialogComponent, {
|
|
data: {
|
|
message: this.language.instant('MAINTENANCE-TASKS.CONFIRMATION.MESSAGE'),
|
|
confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
|
|
cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL')
|
|
},
|
|
maxWidth: '30em'
|
|
})
|
|
.afterClosed()
|
|
.subscribe(confirm => {
|
|
if (confirm) {
|
|
this.doSendTenantTouchEvents(ev);
|
|
}
|
|
});
|
|
}
|
|
|
|
private doSendTenantTouchEvents(ev: Event) {
|
|
(ev.target as HTMLButtonElement).disabled = true;
|
|
this.maintenanceService.sendTenantTouchEvents().pipe(takeUntil(this._destroyed)).subscribe(
|
|
_ => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackSuccess();
|
|
},
|
|
error => {
|
|
(ev.target as HTMLButtonElement).disabled = false;
|
|
this.onCallbackError(error);
|
|
}
|
|
);
|
|
}
|
|
|
|
onCallbackSuccess(): void {
|
|
this.uiNotificationService.snackBarNotification(this.translate.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success);
|
|
this.router.navigate(['/reload']).then(() => this.router.navigate(['/maintenance-tasks']));
|
|
}
|
|
|
|
onCallbackError(error: any) {
|
|
this.uiNotificationService.snackBarNotification(error, SnackBarNotificationLevel.Error);
|
|
}
|
|
|
|
}
|