diff --git a/src/api/v1/lessonType.service.ts b/src/api/v1/lessonType.service.ts new file mode 100644 index 0000000..1ff34cb --- /dev/null +++ b/src/api/v1/lessonType.service.ts @@ -0,0 +1,17 @@ +import {Injectable} from "@angular/core"; +import ApiService, {AvailableVersion} from "@api/api.service"; +import {LessonTypeResponse} from "@api/v1/lessonTypeResponse"; + +@Injectable() +export class LessonTypeService extends ApiService { + public readonly basePath = 'LessonType/'; + public readonly version = AvailableVersion.v1; + + public getLessonTypes(page: number | null = null, pageSize: number | null = null) { + let request = this.createRequestBuilder() + .setQueryParams({page: page, pageSize: pageSize}) + .build; + + return this.get(request); + } +} diff --git a/src/components/schedule/tabs/tabs.component.html b/src/components/schedule/tabs/tabs.component.html index ce06774..6784dd2 100644 --- a/src/components/schedule/tabs/tabs.component.html +++ b/src/components/schedule/tabs/tabs.component.html @@ -23,6 +23,7 @@ +
diff --git a/src/components/schedule/tabs/tabs.component.ts b/src/components/schedule/tabs/tabs.component.ts index eb90389..403e663 100644 --- a/src/components/schedule/tabs/tabs.component.ts +++ b/src/components/schedule/tabs/tabs.component.ts @@ -19,6 +19,7 @@ import {HasRoleDirective} from "@/directives/has-role.directive"; import {TabSelectType, TabStorageService} from "@service/tab-storage.service"; import {ScheduleRequest} from "@api/v1/scheduleRequest"; import {CampusService} from "@api/v1/campus.service"; +import {LessonTypeService} from "@api/v1/lessonType.service"; export enum TabsSelect { Group, @@ -51,7 +52,8 @@ export enum TabsSelect { GroupService, ProfessorService, TabStorageService, - CampusService] + CampusService, + LessonTypeService] }) export class TabsComponent implements AfterViewInit { @@ -64,7 +66,8 @@ export class TabsComponent implements AfterViewInit { private groupApi: GroupService, private professorApi: ProfessorService, private tabStorage: TabStorageService, - private campusApi: CampusService) { + private campusApi: CampusService, + private lessonTypeApi: LessonTypeService) { } ngAfterViewInit(): void { @@ -151,6 +154,7 @@ export class TabsComponent implements AfterViewInit { await this.loadLectureHalls(); await this.loadGroups(); await this.loadProfessors(); + await this.loadLessonType(); break; default: await this.chooseTabs(0); @@ -196,6 +200,15 @@ export class TabsComponent implements AfterViewInit { }); } + protected async loadLessonType() { + this.lessonTypeApi.getLessonTypes().subscribe(data => { + this.lessonTypeEx.Data = data.map(x => ({ + id: x.id, + name: x.name + }) as SelectData); + }); + } + @ViewChild('groupTab') groupTab!: IScheduleTab; @ViewChild('professorTab') professorTab!: IScheduleTab; @ViewChild('lectureHallTab') lectureHallTab!: IScheduleTab; @@ -204,6 +217,7 @@ export class TabsComponent implements AfterViewInit { @ViewChild('lecture') lectureHallEx!: OtherComponent; @ViewChild('group') groupEx!: OtherComponent; @ViewChild('professor') professorEx!: OtherComponent; + @ViewChild('lesson_type') lessonTypeEx!: OtherComponent; @ViewChild('tabGroup') tabs!: MatTabGroup; protected readonly AuthRoles = AuthRoles; @@ -213,7 +227,8 @@ export class TabsComponent implements AfterViewInit { groups: this.groupEx.selectedIds, disciplines: this.disciplineEx.selectedIds, professors: this.professorEx.selectedIds, - lectureHalls: this.lectureHallEx.selectedIds + lectureHalls: this.lectureHallEx.selectedIds, + lessonType: this.lessonTypeEx.selectedIds }); this.eventResult.emit( diff --git a/src/shared/requests/v1/scheduleRequest.ts b/src/shared/requests/v1/scheduleRequest.ts index d7808a4..5b71bd5 100644 --- a/src/shared/requests/v1/scheduleRequest.ts +++ b/src/shared/requests/v1/scheduleRequest.ts @@ -4,4 +4,5 @@ export interface ScheduleRequest { disciplines?: Array; professors?: Array; lectureHalls?: Array; + lessonType?: Array; } diff --git a/src/shared/responses/v1/lessonTypeResponse.ts b/src/shared/responses/v1/lessonTypeResponse.ts new file mode 100644 index 0000000..abfa45f --- /dev/null +++ b/src/shared/responses/v1/lessonTypeResponse.ts @@ -0,0 +1,4 @@ +export interface LessonTypeResponse { + id: number; + name: string; +}