blob: 1d42b8694c310bf8751df5558661cccac121c17f [file] [log] [blame]
/********************************************************************************
* Copyright (c) 2020 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
import { DistributionGroupSandbox } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group.sandbox';
import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { BaseList } from '@grid-failure-information-app/shared/components/base-components/base.list';
import { DISTRIBUTION_GROUP_MEMBER_COLDEF } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group-members/distribution-group-members-col-def';
import { SetFilterComponent } from '@grid-failure-information-app/shared/filters/ag-grid/set-filter/set-filter.component';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-distribution-group-members',
templateUrl: './distribution-group-members.component.html',
styleUrls: ['./distribution-group-members.component.scss'],
})
export class DistributionGroupMembersComponent extends BaseList implements OnInit {
@ViewChild('searchInput', { static: true }) searchInput: ElementRef;
public columnDefinition: any = DISTRIBUTION_GROUP_MEMBER_COLDEF;
public frameworkComponents: { setFilterComponent: any };
private _subscription: Subscription;
constructor(public sandbox: DistributionGroupSandbox) {
super();
this.frameworkComponents = { setFilterComponent: SetFilterComponent };
}
ngOnInit() {
this.gridOptions.context = {
...this.gridOptions.context,
icons: { delete: true },
};
this._subscription = this.gridOptions.context.eventSubject.subscribe(event => {
if (event.type === 'delete') {
this.sandbox.deleteDistributionGroupMember(event.data.distributionGroupUuid, event.data.id);
}
});
}
public clearSearchInput() {
this.searchInput.nativeElement.value = '';
}
public isContactSelected(): boolean {
return this.searchInput.nativeElement.value && this.searchInput.nativeElement.value.trim().length > 0;
}
ngOnDestroy(): void {
this._subscription.unsubscribe();
}
}