view-list-course.component.ts 3.51 KB
Newer Older
1 2 3 4 5
import { Component, OnInit } from '@angular/core';
import { AlertModalComponent } from '../alert-modal/alert-modal.component';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { CourseService } from 'src/app/service/course.service';
import { CourseModel } from 'src/app/model/course.model';
6
import { CourseContentModel } from 'src/app/model/course-content.model';
7 8
import { ActivatedRoute } from '@angular/router';
import { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';
Nakarin Luankla committed
9
import { OpenImageComponent } from '../open-image/open-image.component';
10 11
declare var require: any
const FileSaver = require('file-saver');
12 13 14 15 16 17 18 19
@Component({
  selector: 'app-view-list-course',
  templateUrl: './view-list-course.component.html',
  styleUrls: ['./view-list-course.component.scss']
})
export class ViewListCourseComponent implements OnInit {
  page = 1;
  pageSize = 10;
20
  listCourse:CourseContentModel[]=[]
21
  search:string = ''
22 23 24 25 26
  checkType:string = '0'
  constructor(private modalService: NgbModal,private courseService:CourseService,private activatedRoute: ActivatedRoute) {
    this.activatedRoute.paramMap.subscribe(result => {
      this.checkType = result.get("type")!;
   });
27
  }
Nakarin Luankla committed
28 29 30 31 32 33 34 35 36 37 38
  openEmployeeModal(image:string) {
    const modalRef = this.modalService.open(OpenImageComponent, {
      centered: true,
      windowClass: 'my-dialog-img-preview'
    })
    modalRef.componentInstance.linkImage = image
    modalRef.result.then(result => {
    }, reason => {
      this.modalService.dismissAll()
    })
  }
39 40 41 42 43 44 45 46
  async downloadFile(logId:string){
    try {
      const data = await this.courseService.downloadFileContent(logId).toPromise();
      if(data){
        FileSaver.saveAs(new Blob([data]), "file_download.json");
      }
    } catch (error) {
      console.error('Error loading data:', error);
47 48 49 50 51 52 53
    }
  }
  filterListCourse(){
    return this.listCourse.filter(x => x.thName.toLowerCase().includes(this.search.toLowerCase())||x.engName.toLowerCase().includes(this.search.toLowerCase()))
  }
  async getListCourse(){
    try {
54 55 56
      const data = await this.courseService.getListCourseContent().toPromise();
      this.listCourse = data.map(x => new CourseContentModel(x))
      console.log("🚀 ~ ViewListCourseComponent ~ getListCourse ~ this.listCourse :", this.listCourse )
57 58 59 60
    } catch (error) {
      console.error('Error loading data:', error);
    }
  }
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
  deleteFile(item:CourseContentModel){
    const modalRef = this.modalService.open(ConfirmModalComponent, {
      centered: true,
      backdrop: 'static',
    })
    modalRef.componentInstance.message = 'คุณต้องการลบข้อมูลหรือไม่'
    modalRef.result.then(result => {
      this.courseService.deleteCourseContent(item).subscribe(result => {
        if (result) {
          this.openAlertModal('ลบข้อมูลสำเร็จ')
          this.getListCourse();
        } else {
      this.openAlertModal('ไม่สามารถลบข้อมูลได้')
        }
      }, error => {
        this.openAlertModal(error.message)
      })
    }, reject => { })
  }
80 81 82
  ngOnInit() {
    this.getListCourse();
  }
83 84 85
  openLink(url:string){
    window.open(url, "_blank");
  }
86 87 88 89 90 91 92 93 94 95 96 97 98
  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()
    })
  }
}