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=bd3f946e1a486adb18fed05d53c68810d7a238e8;hb=27a30792480f7397800e28a6f01678a561d71d2d;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..bd3f946 100644 --- a/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts +++ b/webapp-frontend/src/app/ei-coordinator/ei-coordinator.component.ts @@ -18,16 +18,17 @@ * ========================LICENSE_END=================================== */ import { Component, OnInit, ViewChild } 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 { defer, BehaviorSubject, Observable } from 'rxjs'; +import { map, withLatestFrom, startWith } from 'rxjs/operators'; + +import { EIJob, EIProducer } from '../interfaces/ei.types'; import { EIJobDataSource } from './ei-job.datasource'; -import { NotificationService } from '../services/ui/notification.service'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { EIProducerDataSource } from './ei-producer.datasource'; import { UiService } from '../services/ui/ui.service'; class EIJobInfo { @@ -51,35 +52,42 @@ 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 eiJobsDataSource: EIJobDataSource, + private eiProducersDataSource: EIProducerDataSource, + 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.eiJobsDataSource.getJobs(); + + 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()); - } - getEIJobInfo(eiJob: EIJob): EIJobInfo { let info: EIJobInfo = this.eiJobInfo.get(eiJob.ei_job_data); if (!info) { @@ -97,14 +105,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,28 +127,28 @@ 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 >'; } refreshTables() { - this.eiJobsDataSource.loadTable(); + this.eiJobsDataSource.getJobs(); this.eiProducersDataSource.loadTable(); } }