import { Component, OnInit } from '@angular/core';
import { Sort } from '@angular/material/sort';
import { FormBuilder, FormGroup, AbstractControl } from '@angular/forms';
-import { MatTableDataSource, MatTable } from '@angular/material/table';
+import { MatTableDataSource } from '@angular/material/table';
import { EIJob, EIProducer } from '../interfaces/ei.types';
import { EIJobDataSource } from './ei-job.datasource';
import { EIProducerDataSource } from './ei-producer.datasource';
import { UiService } from '../services/ui/ui.service';
+import { Observable } from 'rxjs/Observable';
@Component({
selector: 'nrcp-ei-coordinator',
darkMode: boolean;
searchString: string;
formGroup: FormGroup;
- jobsDataSource: MatTableDataSource<EIJob>;
- producersDataSource: MatTableDataSource<EIProducer>;
+ jobsDataSource: MatTableDataSource<EIJob> = new MatTableDataSource<EIJob>();
+ producersDataSource: MatTableDataSource<EIProducer>= new MatTableDataSource<EIProducer>();
readonly jobsFormControl: AbstractControl;
readonly producersFormControl: AbstractControl;
ngOnInit() {
this.eiJobsDataSource.loadJobs();
this.eiProducersDataSource.loadProducers();
- this.jobsDataSource = new MatTableDataSource(this.eiJobsDataSource.eiJobs());
- const prods = this.eiProducersDataSource.eiProducers();
- this.producersDataSource = new MatTableDataSource(prods);
+
+ 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;
}
sortJobs(sort: Sort){
- console.log('Jobs new sort: ', sort);
const data = this.jobsDataSource.data
data.sort((a: EIJob, b: EIJob) => {
const isAsc = sort.direction === 'asc';
refreshTables() {
this.eiJobsDataSource.loadJobs();
- this.jobsDataSource.data = this.eiJobsDataSource.eiJobs();
this.eiProducersDataSource.loadProducers();
- this.producersDataSource.data = this.eiProducersDataSource.eiProducers();
+
+ this.eiJobsDataSource.eiJobsSubject().subscribe((data) => {
+ this.jobsDataSource.data = data;
+ });
+ this.eiProducersDataSource.eiProducersSubject().subscribe((data) => {
+ this.producersDataSource.data = data;
+ });
}
}