Newer
Older
import {
Component,
Input,
Output,
EventEmitter,
ViewChild,
OnInit,
} from '@angular/core';
import { AuditMetadata } from '../models/audit-metadata';
import { MatPaginator } from '@angular/material/paginator';
import { MatTableDataSource } from '@angular/material/table';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
@Component({
selector: 'cse-dars-metadata-table',
templateUrl: './metadata-table.component.html',
styleUrls: ['./metadata-table.component.scss'],
})
export class DarsMetadataTableComponent implements OnInit {
@Input() public metadata: Observable<AuditMetadata[]>;
@Input() public title: string;
@Input() public tagline: string;
@Input() public button: string;
@Output() public openAudit = new EventEmitter<AuditMetadata>();
@Output() buttonClick = new EventEmitter();
@ViewChild(MatPaginator) paginator: MatPaginator;
public dataSource: MatTableDataSource<AuditMetadata>;
public displayedColumns = [
'view',
'school',
'program',
'honors',
'plan',
'status',
'download',
];

Scott Berg
committed
public static sortMetadata(metadata: AuditMetadata[]): AuditMetadata[] {

Scott Berg
committed
return metadata.sort((a, b) => {
const aDate = new Date(a.darsAuditRunDate);
const bDate = new Date(b.darsAuditRunDate);

Scott Berg
committed
return 1;
}

Scott Berg
committed
return -1;
}
return 0;
});
}
public ngOnInit() {
this.metadata.pipe(
tap(metadata => {
const sorted = DarsMetadataTableComponent.sortMetadata(metadata);
this.dataSource = new MatTableDataSource<AuditMetadata>(sorted);
this.dataSource.paginator = this.paginator;
}),
);
}