import { Component, OnInit } from '@angular/core'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component'; import { AlertModalComponent } from '../alert-modal/alert-modal.component'; import { DocumentService } from 'src/app/service/document.service'; import { DocumentModel } from 'src/app/model/document.model'; @Component({ selector: 'app-list-doc', templateUrl: './list-doc.component.html', styleUrls: ['./list-doc.component.scss'] }) export class ListDocComponent implements OnInit { page = 1; pageSize = 10; listDoc:DocumentModel[]=[] modelDoc:DocumentModel = new DocumentModel({}); checkEdit:boolean = false search:string = '' constructor(private modalService: NgbModal,private documentService:DocumentService) { } onSelectFile(event:any) { if (event.target.files && event.target.files[0]) { let reader = new FileReader(); reader.readAsDataURL(event.target.files[0]); // read file as data url reader.onload = (event) => { // called once readAsDataURL is completed if(event){ let base64 = event.target!.result as string this.modelDoc.doclObj = base64.split(',')[1]; } } } } async downloadFile(logId:string){ try { const data = await this.documentService.downloadFile(logId).toPromise(); } catch (error) { console.error('Error loading data:', error); } } deleteFile(item:DocumentModel){ const modalRef = this.modalService.open(ConfirmModalComponent, { centered: true, backdrop: 'static', }) modalRef.componentInstance.message = 'คุณต้องการลบข้อมูลหรือไม่' modalRef.result.then(result => { this.documentService.deleteExcel(item).subscribe(result => { if (result) { this.openAlertModal('ลบข้อมูลสำเร็จ') this.getListDoc(); } else { this.openAlertModal('ไม่สามารถลบข้อมูลได้') } }, error => { this.openAlertModal(error.message) }) }, reject => { }) } openAlertModal(message?: string) { const modalRef = this.modalService.open(AlertModalComponent, { centered: true, backdrop: 'static' }) modalRef.componentInstance.message = message ? message : "" modalRef.result.then(result => { this.modalService.dismissAll() }, reason => { this.modalService.dismissAll() }) } onUpdate(){ const modalRef = this.modalService.open(ConfirmModalComponent, { centered: true, backdrop: 'static', }) modalRef.componentInstance.message = 'คุณต้องการอัพเดทข้อมูลหรือไม่' modalRef.result.then(result => { console.log(this.modelDoc); this.documentService.createDoc(this.modelDoc).subscribe(result => { if (result) { this.openAlertModal('อัพเดทข้อมูลสำเร็จ') this.getListDoc(); } else { this.openAlertModal('ไม่สามารถอัพเดทข้อมูลได้') } }, error => { this.openAlertModal(error.message) }) }, reject => { }) } onCreate(){ const modalRef = this.modalService.open(ConfirmModalComponent, { centered: true, backdrop: 'static', }) modalRef.componentInstance.message = 'คุณต้องการบันทึกข้อมูลหรือไม่' modalRef.result.then(result => { this.documentService.createDoc(this.modelDoc).subscribe(result => { if (result) { this.openAlertModal('บันทึกข้อมูลสำเร็จ') this.getListDoc(); } else { this.openAlertModal('ไม่สามารถสร้างเอกสารได้') } }, error => { this.openAlertModal(error.message) }) }, reject => { }) } onSumit() { if(this.checkEdit){ this.onUpdate(); }else{ this.onCreate(); } } async getExcelById(targetModal: NgbModal,id:string){ try { const data = await this.documentService.getDocById(id).toPromise(); this.modelDoc = new DocumentModel(data) if(data){ this.modalService.open(targetModal, { centered: true, backdrop: 'static', size: 'lg' }); } } catch (error) { console.error('Error loading data:', error); } } openModal(targetModal: NgbModal,item?:DocumentModel) { if(item){ this.getExcelById(targetModal,item.logId) this.checkEdit = true }else{ this.modelDoc = new DocumentModel({}); this.checkEdit = false this.modalService.open(targetModal, { centered: true, backdrop: 'static', size: 'lg' }); } } getStatus(status:string){ if(status == '0'){ return 'รออนุมัติ' } else if(status == '1'){ return 'เปิดใช้งาน' } else if(status == '2'){ return 'ไม่อนุมัติ' } } async getListDoc(){ try { const data = await this.documentService.getListDoc().toPromise(); this.listDoc = data } catch (error) { console.error('Error loading data:', error); } } filterListDoc(){ return this.listDoc.filter(x => x.thName.toLowerCase().includes(this.search.toLowerCase())||x.engName.toLowerCase().includes(this.search.toLowerCase())) } ngOnInit() { this.getListDoc(); } closeBtnClick() { this.modalService.dismissAll(); this.ngOnInit(); } }