diff --git a/src/components/admin/term-start-date/term-start-date.component.html b/src/components/admin/term-start-date/term-start-date.component.html new file mode 100644 index 0000000..41970f8 --- /dev/null +++ b/src/components/admin/term-start-date/term-start-date.component.html @@ -0,0 +1,12 @@ + + + Дата начала семестра + + + + + diff --git a/src/components/admin/term-start-date/term-start-date.component.ts b/src/components/admin/term-start-date/term-start-date.component.ts new file mode 100644 index 0000000..b96e0b5 --- /dev/null +++ b/src/components/admin/term-start-date/term-start-date.component.ts @@ -0,0 +1,61 @@ +import {Component} from '@angular/core'; +import {MatFormFieldModule} from "@angular/material/form-field"; +import {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from "@angular/material/datepicker"; +import {FormsModule} from "@angular/forms"; +import {ConfigurationCardComponent} from "@component/admin/configuration-card/configuration-card.component"; +import {MatInput} from "@angular/material/input"; +import {addDays} from "@progress/kendo-date-math"; +import {ScheduleService} from "@api/v1/configuration/schedule.service"; +import {DateOnly} from "@model/dateOnly"; +import {MatDialog} from "@angular/material/dialog"; +import { + ConfirmDeleteScheduleDialogComponent +} from "@component/admin/confirm-delete-schedule-dialog/confirm-delete-schedule-dialog.component"; +import {Observable, switchMap} from "rxjs"; + +@Component({ + selector: 'app-term-start-date', + imports: [ + MatFormFieldModule, + MatDatepickerToggle, + FormsModule, + MatDatepickerInput, + MatDatepicker, + ConfigurationCardComponent, + MatInput + ], + templateUrl: './term-start-date.component.html', + providers: [ScheduleService] +}) +export class TermStartDateComponent { + protected startDate: Date = new Date(); + protected startDateBefore: Date = new Date(); + + constructor(private api: ScheduleService, private dialog: MatDialog) { + this.api.getStartTerm().subscribe(data => { + this.startDate = data.date; + this.startDateBefore = this.startDate; + console.log(this.startDate == this.startDateBefore); + }); + } + + protected saveFunction() { + return () => { + const dialogRef = this.dialog.open(ConfirmDeleteScheduleDialogComponent, { + data: {startDate: this.startDate} + }); + + return dialogRef.afterClosed().pipe(switchMap(result => { + return this.api.postStartTerm(new DateOnly(this.startDate), result); + })); + }; + } + + protected onSave(data: Observable): void { + data.subscribe(_ => { + this.startDateBefore = this.startDate; + }); + } + + protected ValidMinDate = addDays(new Date(), -180); +}