X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fei-coordinator%2Fei-coordinator.component.ts;h=7c4979e25d40cb70e86fbbae12ba6762d5c3e966;hb=cde4ceece9e916ef9387e78982df21b13dc58837;hp=ed970fcdf5210320b5f4b01a0354283455415359;hpb=714fa4fa439de489c7ddec02a46ac8d2543ec7f2;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts b/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts index ed970fc..7c4979e 100644 --- a/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts +++ b/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts @@ -17,17 +17,20 @@ * limitations under the License. * ========================LICENSE_END=================================== */ -import { Component, OnInit, ViewChild } from '@angular/core'; +import { Component, OnInit, ViewChild, Version } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { MatSort } from '@angular/material/sort'; import { animate, state, style, transition, trigger } from '@angular/animations'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { MatTableDataSource } from '@angular/material'; import { EIService } from '../services/ei/ei.service'; import { EIJob, EIProducer } from '../interfaces/ei.jobs'; import { EIProducerDataSource } from './ei-producer.datasource'; import { EIJobDataSource } from './ei-job.datasource'; import { NotificationService } from '../services/ui/notification.service'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { defer, BehaviorSubject, Observable } from 'rxjs'; +import { map, withLatestFrom, startWith, tap } from 'rxjs/operators'; import { UiService } from '../services/ui/ui.service'; class EIJobInfo { @@ -51,34 +54,54 @@ class EIJobInfo { }) export class EICoordinatorComponent implements OnInit { - eiJobsDataSource: EIJobDataSource; eiProducersDataSource: EIProducerDataSource; + producers$: Observable; + filteredProducers$: Observable; @ViewChild(MatSort, { static: true }) sort: MatSort; eiJobInfo = new Map(); darkMode: boolean; + searchString: string; + formGroup: FormGroup; + eiProducersData: MatTableDataSource; + constructor( private eiSvc: EIService, private dialog: MatDialog, private notificationService: NotificationService, - private ui: UiService) { } + private ui: UiService, + private formBuilder: FormBuilder) { + this.formGroup = formBuilder.group({ filter: [""] }); + } ngOnInit() { this.eiJobsDataSource = new EIJobDataSource(this.eiSvc, this.sort, this.notificationService); this.eiProducersDataSource = new EIProducerDataSource(this.eiSvc, this.sort, this.notificationService); this.eiJobsDataSource.loadTable(); - this.eiProducersDataSource.loadTable(); + //this.eiProducersDataSource.loadTable(); + + this.producers$= this.eiProducersDataSource.getProducers(); + this.filteredProducers$ = defer(() => this.formGroup.get("filter") + .valueChanges.pipe( + startWith(""), + withLatestFrom(this.producers$), + map(([val, producers]) => + !val ? producers : producers.filter((x) => + x.ei_producer_id.toLowerCase().includes(val)))) + ); + this.ui.darkModeState.subscribe((isDark) => { this.darkMode = isDark; }); } - toggleListInstances(eiJob: EIJob): void { - const info = this.getEIJobInfo(eiJob); - info.isExpanded.next(!info.isExpanded.getValue()); - } + ngAfterViewInit() { + this.eiJobsDataSource.sort = this.sort; + this.eiProducersDataSource.sort = this.sort; + + } getEIJobInfo(eiJob: EIJob): EIJobInfo { let info: EIJobInfo = this.eiJobInfo.get(eiJob.ei_job_data); @@ -97,14 +120,14 @@ export class EICoordinatorComponent implements OnInit { } getEITypeId(eiJob: EIJob): string { - if (eiJob.ei_type_identity){ + if (eiJob.ei_type_identity) { return eiJob.ei_type_identity; } return '< No type >'; } getTargetUri(eiJob: EIJob): string { - if (eiJob.target_uri){ + if (eiJob.target_uri) { return eiJob.target_uri; } return '< No target URI >'; @@ -119,21 +142,21 @@ export class EICoordinatorComponent implements OnInit { } getEIProducerId(eiProducer: EIProducer): string { - if (eiProducer.ei_producer_id){ + if (eiProducer.ei_producer_id) { return eiProducer.ei_producer_id; } return '< No id>'; } getEIProducerTypes(eiProducer: EIProducer): string[] { - if (eiProducer.ei_producer_types){ + if (eiProducer.ei_producer_types) { return eiProducer.ei_producer_types; } return ['< No types >']; } getEIProducerStatus(eiProducer: EIProducer): string { - if (eiProducer.status){ + if (eiProducer.status) { return eiProducer.status; } return '< No status >';