refactor: rewrite for new models

This commit is contained in:
2024-06-05 21:47:46 +03:00
parent 799d2d8166
commit 83fc7df137
6 changed files with 53 additions and 49 deletions

View File

@ -4,8 +4,8 @@ import {MatIcon} from "@angular/material/icon";
import {DatePipe} from "@angular/common";
import {addDays} from "@progress/kendo-date-math";
import {MatDivider} from "@angular/material/divider";
import {Schedule} from "@page/schedule/schedule.component";
import {DataSpinnerComponent} from "@component/common/data-spinner/data-spinner.component";
import {ScheduleResponse} from "@api/v1/scheduleResponse";
interface TableData {
pairNumber: number;
@ -34,14 +34,14 @@ export class TableComponent implements OnChanges {
protected tableDataSource: MatTableDataSource<TableData> = new MatTableDataSource<TableData>([]);
protected daysOfWeek: string[] = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
protected displayedColumns: string[] = ['pairNumber'];
protected dataSource: Schedule[] = [];
protected dataSource: ScheduleResponse[] = [];
protected isOneGroup: boolean = false;
@Input() currentWeek!: number;
@Input() startWeek!: Date;
@Input() isLoad: boolean = false;
@Input() set data(schedule: Schedule[]) {
@Input() set data(schedule: ScheduleResponse[]) {
this.dataSource = schedule;
this.convertData();
this.isOneGroup = schedule.every((item, _, array) => item.group === array[0].group);
@ -69,9 +69,13 @@ export class TableComponent implements OnChanges {
for (let k: number = 1; k < 7; k++) {
convertedData.data[k.toString()] = this.dataSource.filter(x =>
x.pairNumber === i
&& x.dayOfWeek === k
&& x.isEven === (this.currentWeek % 2 === 0));
x.pairNumber === i &&
x.dayOfWeek === k &&
x.isEven === (this.currentWeek % 2 === 0) &&
(
(x.isExcludedWeeks && (!x.weeks || !x.weeks.includes(this.currentWeek))) ||
(!x.isExcludedWeeks && (!x.weeks || x.weeks.includes(this.currentWeek)))
));
}
tableData.push(convertedData);
@ -81,8 +85,8 @@ export class TableComponent implements OnChanges {
this.isLoad = false;
}
protected checkAvailableData(data: any[]): boolean {
return data && data.length !== 0 && data.every(x => x !== null);
protected checkAvailableData(data: any[] | any): boolean {
return data && data.length !== 0 && (!Array.isArray(data) || data.every(x => x !== null));
}
protected readonly addDays = addDays;