diff --git a/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.html b/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.html index 39dd1cb..03b681a 100644 --- a/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.html +++ b/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.html @@ -1,6 +1,7 @@
-
+
+
Generated TimeTables List {{noOfTimeTableMainEntities||""}}
@@ -20,8 +21,8 @@ {{timeTableMainEntity.year}} {{timeTableMainEntity.timeTableName}} - @@ -29,6 +30,205 @@
+
+ +
+
+
+ +
+ +
+
+
+

Select Type of TimeTable: Class/Tutor TimeTable.

+ + +
+ +
+
+
+
+
+
+
+
+
+ Tutor Name : {{tutorPersonalTimeTableEntity.tutorDoc.firstName + ' '+tutorPersonalTimeTableEntity.tutorDoc.surName}} +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DayNamePeriod1Period2Period3Period4Period5Period6Period7Period8Period9Period10
+ {{programmeDay.dayName}} + +
{{programmeDay.periodList[0].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[0].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[1].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[1].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[2].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[2].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[3].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[3].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[4].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[4].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[5].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[5].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[6].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[6].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[7].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[7].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[8].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[8].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[9].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[9].tutorFullName||'No tutor'}}
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ Programme Code : {{programmeGroupPersonalTimeTableEntity.programmeCode}} +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DayNamePeriod1Period2Period3Period4Period5Period6Period7Period8Period9Period10
+ {{programmeDay.dayName}} + +
{{programmeDay.periodList[0].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[0].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[1].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[1].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[2].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[2].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[3].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[3].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[4].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[4].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[5].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[5].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[6].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[6].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[7].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[7].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[8].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[8].tutorFullName||'No tutor'}}
+
+
{{programmeDay.periodList[9].subjectFullName||'No subject'}}
+
{{programmeDay.periodList[9].tutorFullName||'No tutor'}}
+
+
+
+
+
+
+
+ +
+
diff --git a/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.ts b/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.ts index 724c1fe..74d73c8 100644 --- a/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.ts +++ b/src/app/components/main-content/time-table-mgmt/time-table-mgmt.component.ts @@ -2,6 +2,8 @@ import {Component, OnInit} from '@angular/core'; import {TimeTableGenerationService} from "../../../services/time-table-generation.service"; import {TimeTableMainEntity} from "../../../models/time-table-main-entity"; import {TimeTableMainEntityArrayResponsePayload} from "../../../models/time-table-main-entity-array-response-payload"; +import {ProgrammeGroupPersonalTimeTableEntity} from "../../../models/programme-group-personal-time-table-entity"; +import {TutorPersonalTimeTableEntity} from "../../../models/tutor-personal-time-table-entity"; declare var swal: any; @Component({ @@ -15,11 +17,22 @@ export class TimeTableMgmtComponent implements OnInit { timeTableMainEntitiesList: Array; noOfTimeTableMainEntities: number; + isSingleTimeTableViewVisible : boolean = false; + isTutorsTimeTablesVisible : boolean = false; + isProgrammeGroupTimeTablesVisible : boolean = false; + + timeTableTypeItems: Array = []; + + successfullyGeneratedTimeTableMainEntity: TimeTableMainEntity; + programmeGroupPersonalTimeTableDocsList: Array; + tutorPersonalTimeTableDocsList: Array; + constructor(private timeTableGenerationService: TimeTableGenerationService) { } ngOnInit() { + this.getAllGeneratedTimeTables(); } getAllGeneratedTimeTables(): void { @@ -27,6 +40,7 @@ export class TimeTableMgmtComponent implements OnInit { (response: TimeTableMainEntityArrayResponsePayload) => { if ((response.status === 0) && (response.responseObject.length > 0)) { this.timeTableMainEntitiesList = response.responseObject; + console.log("timetableMainEntitiesList ==>",JSON.stringify(this.timeTableMainEntitiesList)); this.noOfTimeTableMainEntities = response.responseObject.length; } else if ((response.status === 0) && (response.responseObject.length === 0)) { swal("Error", "No timetables generated currently.", "error"); @@ -40,4 +54,87 @@ export class TimeTableMgmtComponent implements OnInit { ); } + activateSingleTimeTableView(timeTableMainEntity : TimeTableMainEntity):void{ + this.successfullyGeneratedTimeTableMainEntity = timeTableMainEntity; + this.isSingleTimeTableViewVisible = true; + this.timeTableTypeItems = this.getTimeTableTypesItems(); + } + + activateAllTimeTablesView():void{ + this.isSingleTimeTableViewVisible = false; + } + + public selectedTimeTableType(value: any): void { + console.log('Selected value is: ', value); + console.log('value id=', value.id); + let valueToSwitch: number = value.id; + + switch (valueToSwitch) { + case this.TIMETABLE_TYPE_PROGRAMMEGROUP : + //DO IMPLEMENTATION TO SHOW ALL TIMETABLE FOR ALL PROGRAMMEGROUPS RETURNED FROM SERVICE + this.getProgrammeGroupsTimeTables(this.successfullyGeneratedTimeTableMainEntity.programmeGroupPersonalTimeTableDocs); + break; + case this.TIMETABLE_TYPE_TUTOR : + //DO IMPLEMENTATION TO SHOW ALL TIMETABLE FOR ALL TUTORS RETURNED FROM SERVICE. + this.getTutorsTimeTables(this.successfullyGeneratedTimeTableMainEntity.tutorPersonalTimeTableDocs); + break; + default : + //DEFAULT IMPLEMENTAION + this.getTutorsTimeTables(this.successfullyGeneratedTimeTableMainEntity.tutorPersonalTimeTableDocs); + break; + + } + } + + /** + * ID of programmeGroup Type of timetable used in ng-select library + * @type {number} + */ + TIMETABLE_TYPE_PROGRAMMEGROUP: number = 1; + TIMETABLE_TYPE_TUTOR: number = 2; + + /** + * ng-select library takes data in the form of {id,text} objects. + * + * @returns {Array} + */ + public getTimeTableTypesItems(): Array { + let timeTableTypes: Array = [{ + id: this.TIMETABLE_TYPE_PROGRAMMEGROUP, + text: 'Classes/ProgrammeGroups TimeTable' + }, { + id: this.TIMETABLE_TYPE_TUTOR, + text: 'Tutors TimeTable' + }]; + + console.info('TimeTable Type Objects to be populated in dropdown: ', timeTableTypes); + return timeTableTypes; + } + + /** + * programmeGroups timetables list + * @param programmeGroupPersonalTimeTableDocs {@link TimeTableMainEntity.programmeGroupPersonalTimeTableDocs} + */ + getProgrammeGroupsTimeTables(programmeGroupPersonalTimeTableDocs: Array) { + this.programmeGroupPersonalTimeTableDocsList = programmeGroupPersonalTimeTableDocs; + //show programmeGroups timetables and hide tutors timetable. + this.isProgrammeGroupTimeTablesVisible = true;//show programmeGroup timetable + this.isTutorsTimeTablesVisible = false;//hide tutors timetable + } + + getTutorsTimeTables(tutorPersonalTimeTableDocs: Array) { + this.tutorPersonalTimeTableDocsList = tutorPersonalTimeTableDocs; + //show tutors timetables and hide programeGroups timetables. + this.isTutorsTimeTablesVisible = true; + this.isProgrammeGroupTimeTablesVisible = false; + } + + refreshTimeTableTypeData(value: any): void { + //this.value = value; + console.log('Data1 =', value); + } + + public typedChar(value: any): void { + console.log('New search input1: ', value); + } } diff --git a/src/app/components/main-content/time-table/time-table.component.ts b/src/app/components/main-content/time-table/time-table.component.ts index e526a77..6b4e11b 100644 --- a/src/app/components/main-content/time-table/time-table.component.ts +++ b/src/app/components/main-content/time-table/time-table.component.ts @@ -58,14 +58,14 @@ export class TimeTableComponent implements OnInit { console.log("TimeTable Generation Request ==>", timeTableGenerationRequest); - this.timeTableGenerationService.generateTimeTable(timeTableGenerationRequest).subscribe( (response: TimeTableMainEntityResponsePayload) => { this.accessingService = false; console.info("response status = " + response.status); if (response.status === 0) { this.isGenerateButtonWandVisible = false;//once the response status is 0,we can hide the generate button. - response.responseObject = this.successfullyGeneratedTimeTableMainEntity; + this.successfullyGeneratedTimeTableMainEntity = response.responseObject; + this.timeTableTypeItems = this.getTimeTableTypesItems(); this.isTutorsTimeTablesVisible = true; this.modalGenerateTimeTableDialog.dismiss(); swal("Success", "Timetable generated successfuly", "success");