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  }