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';
6 export class CustomTableColumnDefinition {
7 public displayName = '';
14 selector: 'app-members-table',
15 templateUrl: './members-table.component.html',
16 styleUrls: ['./members-table.component.scss']
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;
31 ngOnChanges(changes: SimpleChanges): void {
32 if(_.isNil(this.data)){
33 this._membersTableService.resetAll();
35 this._membersTableService.allMemberStatusMap = MembersTableService.generateAllMembersStatus(this.data);
36 this._membersTableService.filteredMembers = MembersTableService.sortVnfMembersByName(this.data, "instanceName");
37 this._membersTableService.updateAmountsAndCheckAll();
41 search(searchStr: string): void {
42 this.filterValue = searchStr;
43 this._membersTableService.filterMembers(this.filterValue);
46 changeAllCheckboxStatus(status: boolean) : void {
47 this._membersTableService.changeAllCheckboxStatus(status);
48 this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);
52 changeCheckboxStatus(vnfInstanceId: string) : void {
53 this._membersTableService.changeCheckboxStatus(vnfInstanceId);
54 this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);