import { Component, ViewChild, OnInit, AfterViewInit } from '@angular/core';
import { TimerecordsService } from "../../services/timerecords.service";
import { TimeRecord } from '../../models/time-records.model';
import { pipe } from 'rxjs';
import { catchError, map, startWith, switchMap } from 'rxjs/operators';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import {ThemePalette} from '@angular/material/core';
import {ProgressSpinnerMode} from '@angular/material/progress-spinner';
// import { MatPaginator } from '@angular/material/paginator';
// import { MatSort } from '@angular/material/sort';
// import { MatTableDataSource } from '@angular/material/table';
import { merge, Observable, of as observableOf } from 'rxjs';
import { MatTableDataSource } from '@angular/material/table';
@Component({
selector: 'app-list-time-records',
templateUrl: './list-time-records.component.html',
styleUrls: ['./list-time-records.component.css']
})
export class ListTimeRecordsComponent implements OnInit {
//========< class: Compontent >========
constructor(public timerecordsService: TimerecordsService) { }
//< variables >
displayedColumns: string[] = ['project', 'details', 'dtStart', 'dtEnd'];
//dataSource: TimeRecord;
dataSource = new MatTableDataSource<TimeRecord>();
resultsLength = 0;
isLoadingResults = true;
isHttpError = false;
//</ variables >
color: ThemePalette = 'primary';
mode: ProgressSpinnerMode = 'indeterminate';
//==< events >==
ngOnInit() {
this.load_DataSource();
}
//==</ events >==
//#region
//====< functions >====
load_DataSource() {
//--------< load_DataSource() >--------
this.isLoadingResults = true;
merge()
.pipe(
startWith({}),
switchMap(() => {
this.isLoadingResults = true;
return this.timerecordsService.getData()
}),
catchError(() => {
this.isLoadingResults = true;
this.isHttpError = true;
return observableOf([]);
})
).subscribe(res =>
{this.dataSource.data = res as TimeRecord[]}
)
//--------</ load_DataSource() >--------
}
//====</ functions >====
//#endregion
//========</ class: Compontent >========
}
|