feat: add show raw discipline if checked

This commit is contained in:
2024-08-28 01:22:45 +03:00
parent 1fa1e864da
commit 6a3a6a8d47
3 changed files with 60 additions and 12 deletions

View File

@ -31,7 +31,9 @@ interface Dictionary {
})
export class TableComponent implements OnChanges {
private isDisciplineWithWeeks: boolean = false;
protected tableDataSource: MatTableDataSource<TableData> = new MatTableDataSource<TableData>([]);
private backupDisciplines: string[] = [];
protected daysOfWeek: string[] = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
protected displayedColumns: string[] = ['pairNumber'];
protected dataSource: ScheduleResponse[] = [];
@ -41,6 +43,11 @@ export class TableComponent implements OnChanges {
@Input() startWeek!: Date;
@Input() isLoad: boolean = false;
@Input() set disciplineWithWeeks(value: boolean) {
this.isDisciplineWithWeeks = value;
this.convertData();
}
@Input() set data(schedule: ScheduleResponse[]) {
this.dataSource = schedule;
this.convertData();
@ -68,17 +75,35 @@ export class TableComponent implements OnChanges {
};
for (let k: number = 1; k < 7; k++) {
convertedData.data[k.toString()] = this.dataSource.filter(x =>
let filteredData = this.dataSource.filter(x =>
x.pairNumber === i &&
x.dayOfWeek === k &&
x.isEven === (this.currentWeek % 2 === 0) &&
(
x.isExcludedWeeks === undefined ||
x.weeks === undefined ||
x.isEven === (this.currentWeek % 2 === 0)
);
if (!this.isDisciplineWithWeeks)
filteredData = filteredData.filter(x =>
x.isExcludedWeeks == undefined ||
x.weeks == undefined ||
(x.isExcludedWeeks && (!x.weeks.includes(this.currentWeek))) ||
(!x.isExcludedWeeks && (x.weeks.includes(this.currentWeek)))
)
);
);
filteredData.forEach(x => {
if (this.isDisciplineWithWeeks) {
if (x.isExcludedWeeks != undefined && x.weeks != undefined) {
if (this.backupDisciplines[x.disciplineId])
x.discipline = this.backupDisciplines[x.disciplineId];
else
this.backupDisciplines[x.disciplineId] = x.discipline;
x.discipline = `${(x.isExcludedWeeks ? 'кр.' : 'н.')} ${x.weeks.join(', ')} ${x.discipline}`;
}
} else if (this.backupDisciplines[x.disciplineId])
x.discipline = this.backupDisciplines[x.disciplineId];
});
convertedData.data[k.toString()] = filteredData;
}
tableData.push(convertedData);