github.com/in4it/ecs-deploy@v0.0.42-0.20240508120354-ed77ff16df25/webapp/src/app/deployment-list/deployment-list.component.ts (about) 1 import { Component, OnInit } from '@angular/core'; 2 import { ActivatedRoute, Router } from '@angular/router'; 3 import { Observable } from 'rxjs'; 4 5 import { DeploymentList, DeploymentListService } from './deployment-list.service'; 6 7 8 @Component({ 9 selector: 'app-deployment-list', 10 templateUrl: './deployment-list.component.html', 11 styleUrls: ['./deployment-list.component.css'] 12 }) 13 14 export class DeploymentListComponent implements OnInit { 15 services: string[] = []; 16 deployments: string[] = []; 17 filterActive: boolean = false 18 19 constructor( 20 private route: ActivatedRoute, 21 private router: Router, 22 private ds: DeploymentListService 23 ) {} 24 25 ngOnInit(): void { 26 this.route.data 27 .subscribe((data: { dl: DeploymentList }) => { 28 this.deployments = data.dl.deployments; 29 this.services = data.dl.services; 30 }); 31 } 32 33 filter(event: any, serviceName: string) { 34 console.log("Filter: " + serviceName + ": " + event.target.checked) 35 if(event.target.checked) { 36 this.ds.getDeploymentList(serviceName).subscribe((data: DeploymentList ) => { 37 if(data.deployments.length != 0) { 38 if(this.filterActive) { 39 // merge if filter is active 40 this.deployments = [ ...this.deployments, ...data.deployments]; 41 } else { 42 this.deployments = data.deployments 43 } 44 this.deployments.sort(function(a,b) {return (a["Time"] > b["Time"]) ? -1 : ((b["Time"] > a["Time"]) ? 1 : 0);} ); 45 this.filterActive = true 46 } 47 }); 48 } else { 49 var newDeployments = []; 50 for (let deployment of this.deployments) { 51 if(deployment["ServiceName"] != serviceName) { 52 newDeployments.push(deployment) 53 } 54 } 55 if(newDeployments.length != this.deployments.length) { 56 this.deployments = newDeployments 57 } 58 if(newDeployments.length == 0) { 59 this.filterActive = false 60 this.ds.getDeploymentList("").subscribe((data: DeploymentList ) => { 61 if(data.deployments.length != 0) { 62 this.deployments = data.deployments 63 } 64 }); 65 } 66 } 67 } 68 69 }