import { Component, Injector, OnInit, ViewChild } from '@angular/core'; import { Router } from '@angular/router'; import { AppComponentBase } from '@shared/common/app-component-base'; import { DataRetentionLogDto, DataRetentionsServiceProxy, GetDataRetentionLogForViewDto, LogStatus } from '@shared/service-proxies/service-proxies'; import { FileDownloadService } from '@shared/utils/file-download.service'; import { ModalDirective } from 'ngx-bootstrap'; import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'; import { Paginator } from 'primeng/components/paginator/paginator'; import { Table } from 'primeng/components/table/table'; @Component({ selector: 'viewDataRetentionLogModal', templateUrl: './view-dataretention-log-modal.component.html' }) export class ViewDataretentionLogModalComponent extends AppComponentBase implements OnInit { @ViewChild('createOrEditModal', { static: true }) modal: ModalDirective; @ViewChild('dataTable', { static: true }) dataTable: Table; @ViewChild('paginator', { static: true }) paginator: Paginator; dataRetentionLogInput: DataRetentionLogDto; log = LogStatus; export: boolean = false; constructor(injector: Injector, private _dataRetentionsServiceProxy: DataRetentionsServiceProxy, private router: Router, private _fileDownloadService: FileDownloadService) { super(injector); this.dataRetentionLogInput = new DataRetentionLogDto(); } ngOnInit() { } show(input: DataRetentionLogDto) { this.dataRetentionLogInput = input; this.dataTable this.modal.show(); } getLogs(event?: LazyLoadEvent){ if (this.primengTableHelper.shouldResetPaging(event)) { this.paginator.changePage(0); return; } this.spinnerService.show(); this._dataRetentionsServiceProxy.getRetentionLogs( undefined, this.dataRetentionLogInput.id, this.primengTableHelper.getSorting(this.dataTable), this.primengTableHelper.getSkipCount(this.paginator, event), this.primengTableHelper.getMaxResultCount(this.paginator, event) ).subscribe(result => { this.export = result.totalCount > 0 ? true : false; this.primengTableHelper.totalRecordsCount = result.totalCount; this.primengTableHelper.records = result.items; this.spinnerService.hide(); }); } exportLogToFile(): void { this.spinnerService.show(); this._dataRetentionsServiceProxy.getRetentionLogsToExcel( undefined, this.dataRetentionLogInput.id ) .subscribe(result => { if(result!=undefined){ if(result.fileUrl!=undefined){ this.router.navigate([]).then(result1 => { window.open(result.fileUrl, '_blank'); }); this.spinnerService.hide(); }else{ this.spinnerService.hide(); } }else{ this.message.warn('', "No data to export"); this.spinnerService.hide(); } }); } close(): void { this.modal.hide(); } }