Uplift to Angular 9
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / ei-coordinator / ei-job.datasource.ts
index 64c948c..bf3c867 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 import { Injectable } from '@angular/core';
-import { MatTableDataSource } from '@angular/material';
 
 import { BehaviorSubject } from 'rxjs/BehaviorSubject';
 
@@ -30,9 +29,13 @@ import { EIService } from '../services/ei/ei.service';
     providedIn: 'root'
 })
 
-export class EIJobDataSource extends MatTableDataSource<EIJob> {
+export class EIJobDataSource {
 
-    eiJobsSubject = new BehaviorSubject<EIJob[]>([]);
+    private jobs: Array<EIJob> = [];
+
+    public eiJobs(): EIJob[] {
+        return this.jobs;
+    }
 
     private loadingSubject = new BehaviorSubject<boolean>(false);
 
@@ -42,39 +45,25 @@ export class EIJobDataSource extends MatTableDataSource<EIJob> {
 
     constructor(
         private eiSvc: EIService) {
-        super();
     }
 
-    getJobs() {
+    loadJobs() {
         this.loadingSubject.next(true);
+        this.jobs = [];
         this.eiSvc.getProducerIds()
             .subscribe((producerIds: string[]) => {
                 producerIds.forEach(id => {
                     this.getJobsForProducer(id);
                 });
             });
+        this.rowCount = this.jobs.length;
     }
 
     private getJobsForProducer(id: string) {
         console.log('Getting jobs for producer ID: ', id);
-        this.eiSvc.getJobsForProducer(id).subscribe(jobs => {
-            this.addJobsToSubject(jobs);
-            this.rowCount = this.eiJobsSubject.getValue().length;
+        this.eiSvc.getJobsForProducer(id)
+        .subscribe(producerJobs => {
+            this.jobs = this.jobs.concat(producerJobs);
         });
     }
-
-    private addJobsToSubject(jobs: EIJob[]) {
-        const currentValue = this.eiJobsSubject.value;
-        const updatedValue = [...currentValue, ...jobs];
-        this.eiJobsSubject.next(updatedValue);
-    }
-
-    connect(): BehaviorSubject<EIJob[]> {
-        return this.eiJobsSubject;
-    }
-
-    disconnect(): void {
-        this.eiJobsSubject.complete();
-        this.loadingSubject.complete();
-    }
 }