import { Component, OnInit, ViewChild } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { LANG } from '../../translate.component'; import { NotificationService } from '../../notification.service'; import { HeaderService } from '../../../service/header.service'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; import { MatPaginator } from '@angular/material/paginator'; import { MatSidenav } from '@angular/material/sidenav'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { AppService } from '../../../service/app.service'; declare function $j(selector: any): any; @Component({ templateUrl: "diffusionModels-administration.component.html", providers: [NotificationService, AppService] }) export class DiffusionModelsAdministrationComponent implements OnInit { @ViewChild('snav', { static: true }) public sidenavLeft : MatSidenav; @ViewChild('snav2', { static: true }) public sidenavRight : MatSidenav; dialogRef : MatDialogRef<any>; lang : any = LANG; loading : boolean = false; config : any = {}; listTemplates : any[] = []; listTemplatesForAssign : any[] = []; displayedColumns = ['title', 'description', 'object_type', 'actions']; dataSource = new MatTableDataSource(this.listTemplates); @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; @ViewChild(MatSort, { static: false }) sort: MatSort; applyFilter(filterValue: string) { filterValue = filterValue.trim(); filterValue = filterValue.toLowerCase(); this.dataSource.filter = filterValue; } constructor( public http: HttpClient, private notify: NotificationService, public dialog: MatDialog, private headerService: HeaderService, public appService: AppService ) { $j("link[href='merged_css.php']").remove(); } ngOnInit(): void { this.headerService.setHeader(this.lang.administration + ' ' + this.lang.diffusionModels); window['MainHeaderComponent'].setSnav(this.sidenavLeft); window['MainHeaderComponent'].setSnavRight(null); this.loading = true; this.http.get("../../rest/listTemplates") .subscribe((data: any) => { data['listTemplates'].forEach((template: any) => { if ((template.type.indexOf('visaCircuit') != -1 || template.type.indexOf('opinionCircuit') != -1) && template.entityId == null) { this.listTemplates.push(template); } }); this.loading = false; setTimeout(() => { this.dataSource = new MatTableDataSource(this.listTemplates); this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; }, 0); }, () => { location.href = "index.php"; }); } delete(listTemplate: any) { let r = confirm(this.lang.confirmAction + ' ' + this.lang.delete + ' « ' + listTemplate.title + ' »'); if (r) { this.http.delete("../../rest/listTemplates/" + listTemplate['id']) .subscribe(() => { setTimeout(() => { var i = 0; this.listTemplates.forEach((template: any) => { if (template.id == listTemplate['id']) { this.listTemplates.splice(i, 1); } i++; }); this.dataSource = new MatTableDataSource(this.listTemplates); this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; }, 0); this.notify.success(this.lang.diffusionModelDeleted); }, (err) => { this.notify.error(err.error.errors); }); } } }