// import { Component, Input, Output, EventEmitter, AfterContentInit, OnInit, OnDestroy } from '@angular/core'; // import { Store, select } from '@ngrx/store'; // import { Observable, of, Subscription } from 'rxjs'; // import { catchError, exhaustMap, map, tap, take } from 'rxjs/operators'; // import { ConfirmationService, Message } from 'primeng/primeng'; // import { NoAuthProbe } from '@overflow/commons-typescript/model/noauth'; // import { AuthSelector } from '@overflow/shared/auth/store'; // import { DomainMember } from '@overflow/commons-typescript/model/domain'; // import { NoAuthProbeService } from '../service/noauth-probe.service'; // import { NoAuthProbeSubscriber, NoAuthProbeNotify } from '../subscriber/noauth-probe.subscriber'; // import { InfraHostIP, InfraHost } from '@overflow/commons-typescript'; // @Component({ // selector: 'of-noauth-probe-list', // templateUrl: './noauth-probe-list.component.html', // providers: [ConfirmationService] // }) // export class NoAuthProbeListComponent implements OnInit, OnDestroy { // pending$: Observable; // error$: Observable; // noauthProbes: NoAuthProbe[]; // noauthProbeSubscription: Subscription; // selectedInfraHost: InfraHost; // visibleNICs: boolean; // constructor( // private confirmationService: ConfirmationService, // private store: Store, // private noAuthProbeService: NoAuthProbeService, // private noAuthProbeSubscriber: NoAuthProbeSubscriber, // ) { // this.noauthProbes = []; // this.noauthProbeSubscription = null; // } // ngOnInit() { // this.store.pipe( // tap(() => { // this.pending$ = of(true); // }), // select(AuthSelector.selectDomainMember), // exhaustMap((domainMember: DomainMember) => // this.noAuthProbeService.readAllByDomainID(domainMember.domain.id) // .pipe( // map((noauthProbes: NoAuthProbe[]) => { // this.setNoauthProbes(noauthProbes); // }), // catchError(error => { // this.setError$(error); // return of(); // }) // ) // ), // tap(() => { // this.pending$ = of(false); // }), // take(1), // ).subscribe(); // this.noauthProbeSubscription = this.noAuthProbeSubscriber.observable().pipe( // tap((noAuthProbeNotify: NoAuthProbeNotify) => { // const noauthProbes = []; // this.noauthProbes.forEach(noauthProbe => { // const n = noAuthProbeNotify.params; // if (noauthProbe.id === n.id) { // noauthProbes.push(n); // } else { // noauthProbes.push(noauthProbe); // } // }); // this.setNoauthProbes(noauthProbes); // } // ), // ).subscribe(); // } // ngOnDestroy(): void { // if (null !== this.noauthProbeSubscription) { // this.noauthProbeSubscription.unsubscribe(); // } // } // onAccept(infraHost: InfraHost) { // this.selectedInfraHost = infraHost; // this.visibleNICs = true; // } // onAcceptOrDeny(isAccept: boolean, selected: NoAuthProbe) { // const title = isAccept ? // 'Are you sure to accept this Probe?' : 'Are you sure to deny this Probe'; // const message = isAccept ? // 'Start collecting data as a Probe.' : 'It will be permanently deleted.'; // this.confirmationService.confirm({ // header: title, // message: message, // icon: isAccept ? 'fa-check' : 'fa fa-trash', // accept: () => { // if (isAccept) { // this.noAuthProbeService.acceptNoAuthProbe(selected.id) // .pipe( // tap(() => { // this.pending$ = of(true); // }), // map((noauthProbes: NoAuthProbe[]) => { // this.setNoauthProbes(noauthProbes); // }), // catchError(error => { // this.setError$(error); // return of(); // }), // tap(() => { // this.pending$ = of(false); // }), // take(1), // ).subscribe(); // } else { // this.noAuthProbeService.denyNoauthProbe(selected.id) // .pipe( // tap(() => { // this.pending$ = of(true); // }), // map((noauthProbes: NoAuthProbe[]) => { // this.setNoauthProbes(noauthProbes); // }), // catchError(error => { // this.setError$(error); // return of(); // }), // tap(() => { // this.pending$ = of(false); // }), // take(1), // ).subscribe(); // } // }, // reject: () => { // } // }); // } // private setNoauthProbes(noauthProbes: NoAuthProbe[]): void { // if (null === noauthProbes) { // return; // } // noauthProbes.forEach(noauthProbe => { // noauthProbe.infraHost = JSON.parse(noauthProbe.infraHostMeta); // }); // this.noauthProbes = noauthProbes; // } // private setError$(error: any): void { // this.error$ = of(error); // } // onNICSelected(infraHostIP: InfraHostIP) { // console.log(infraHostIP); // } // }