feat: add show raw discipline if checked
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user