9736563af9639e05d975a008675f273541955fb6
[vid.git] / vid-webpack-master / src / app / shared / components / searchMembersModal / members-table / members-table.component.ts
1 import {Component, Input, OnChanges, Output, SimpleChanges, EventEmitter} from '@angular/core';
2 import {VnfMember} from "../../../models/VnfMember";
3 import {MembersTableService} from "./members-table.service";
4 import * as _ from 'lodash';
5
6 export class CustomTableColumnDefinition {
7   public displayName = '';
8   public key : any = '';
9   public type? = 'text';
10   public filter? = '';
11 }
12
13 @Component({
14   selector: 'app-members-table',
15   templateUrl: './members-table.component.html',
16   styleUrls: ['./members-table.component.scss']
17 })
18
19 export class MembersTableComponent implements OnChanges{
20   filterValue: string = null;
21   allMemberStatusMap = null;
22   membersTableService : MembersTableService;
23   headers: CustomTableColumnDefinition[] = MembersTableService.getHeaders();
24   @Input() data: VnfMember[];
25   @Input() description: string;
26   @Output() selectedMembersAmountChange : EventEmitter<number> = new EventEmitter();
27   constructor(private _membersTableService : MembersTableService){
28     this.membersTableService = this._membersTableService;
29   }
30
31   ngOnChanges(changes: SimpleChanges): void {
32     if(_.isNil(this.data)){
33       this._membersTableService.resetAll();
34     }else {
35       this._membersTableService.allMemberStatusMap = MembersTableService.generateAllMembersStatus(this.data);
36       this._membersTableService.filteredMembers = MembersTableService.sortVnfMembersByName(this.data, "instanceName");
37       this._membersTableService.updateAmountsAndCheckAll();
38     }
39   }
40   
41   search(searchStr: string): void {
42     this.filterValue = searchStr;
43     this._membersTableService.filterMembers(this.filterValue);
44   }
45
46   changeAllCheckboxStatus(status: boolean) : void {
47     this._membersTableService.changeAllCheckboxStatus(status);
48     this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);
49   }
50
51
52   changeCheckboxStatus(vnfInstanceId: string) : void {
53     this._membersTableService.changeCheckboxStatus(vnfInstanceId);
54     this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);
55   }
56
57 }