- 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.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.eiJobsDataSource.loadJobs();
+ this.eiProducersDataSource.loadProducers();
+
+ this.eiJobsDataSource.eiJobsSubject().subscribe((data) => {
+ this.jobsDataSource.data = data;
+ });
+ this.eiProducersDataSource.eiProducersSubject().subscribe((data) => {
+ this.producersDataSource.data = data;
+ });
+
+ this.jobsFormControl.valueChanges.subscribe(value => {
+ const filter = {...value, id: value.id.trim().toLowerCase()} as string;
+ this.jobsDataSource.filter = filter;
+ });
+ this.producersFormControl.valueChanges.subscribe(value => {
+ const filter = {...value, ei_producer_id: value.ei_producer_id.trim().toLowerCase()} as string;
+ this.producersDataSource.filter = filter;
+ });
+
+ this.jobsDataSource.filterPredicate = ((data: EIJob, filter) => {
+ return this.isDataIncluding(data.ei_job_identity, filter.id)
+ && this.isDataIncluding(data.target_uri, filter.targetUri)
+ && this.isDataIncluding(data.owner, filter.owner)
+ && this.isDataIncluding(data.ei_type_identity, filter.typeId);
+ }) as (data: EIJob, filter: any) => boolean;
+
+ this.producersDataSource.filterPredicate = ((data, filter) => {
+ return this.isDataIncluding(data.ei_producer_id, filter.ei_producer_id)
+ && this.isDataIncluding(data.ei_producer_types.join(','), filter.ei_producer_types)
+ && this.isDataIncluding(data.status, filter.status);
+ }) as (data: EIProducer, filter: any) => boolean;