{"version":3,"file":"sm.portal.vm.studentSchedule.min.js","names":["jQuery","sm","window","portal","extend","vm","StudentScheduleViewModel","this","StudentId","ko","observable","Courses","observableArray","StudentCourseViewModel","Periods","StartDate","EndDate","SelectedPeriod","HasEnrollment","HasRoster","CoursePeriod","CourseStartDate","CourseEndDate","NoScheduleTemplate","ScheduleTemplatePhone","ScheduleTemplateNotPhone","HideFields","CustomDateTemplate","custom","callCustomization","setCustomLocalizeKey","Search","utility","isNullOrEmpty","self","IsValidSearch","toFormat","Date","parse","IsValidDates","blockUI","queryString","formatString","ret","moment","format","url","_baseApiUri","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","data","textStatus","jqXHR","container","smapi","access","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","LoadModel","HandleError","enrollment","StudentCourseEnrollment","length","unblockUI","ui","readyPage","error","exception","status","title","getResourceValue","body","viewModel","GetMyCalendar","location","RosterClick","courseOfferingID","target","matchedCourse","FindCourseById","GotRoster","GetRosterPage","ScheduleClick","GotSchedule","GetSchedulePage","pageIndex","block","message","LoadRoster","unblock","LoadSchedule","course","customato","Roster","removeAll","i","item","widget","StudentProfileViewModel","HeadShotUrl","Headshot","PersonDisplayName","ElectronicAddress","PrimaryEmailAddress","PhoneNumber","PrimaryPhoneNumber","SocialMediaAtos","SocialLinks","s","smvm","SocialMediaLinkViewModel","LinkHref","Href","ElectronicAddressTypeName","Icon","IconClassName","push","RosterPageIndex","recordindex","RosterWorkingPageIndex","RosterRecordCount","recordcount","RosterPageCount","pagecount","show","console","log","Object","keys","values","Schedules","customData","j","sch","StudentCourseScheduleViewModel","schItem","term","FacilityPeriod","Name","RoomScheduleType","RoomScheduleTypeRollupDisplay","Room","RoomRollupDisplay","RoomDetails","DaysAndTimesRollupDisplay","FacultyDetails","FacultyRollupDisplay","ScheduleType","ScheduleTiming","DateRange","DateRangeRollupDisplay","CampusNames","DeliveryMethodNames","Locations","params","TermDisplay","Unscheduled","RosterMovePager","index","match","CourseOfferingID","Loaded","currentStudentId","_currentStudentId","li","ListItemModel","Text","Value","ID","GID","CourseTitle","CourseID","EnrollmentModeName","CreditHours","ClockHours","AcademicPeriod","Course","start_date","getLocalizedDate","end_date","messages","IsError","ErrorMessages","ErrorHeader","GetModelData","studentId"],"sources":["assets/js/viewmodels/academic/sm.portal.vm.studentSchedule.js"],"mappings":"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","ignoreList":[],"sourcesContent":["/// \r\n/// \r\n/// \r\n/// \r\n\r\n(function (jQuery, undefined) {\r\n var sm = window.sm = window.sm || {};\r\n var windowProxy;\r\n var actionQueue = [];\r\n\r\n if (typeof sm.portal === \"undefined\") {\r\n jQuery.extend(sm, { portal: {} });\r\n }\r\n if (typeof sm.portal.vm === \"undefined\") {\r\n jQuery.extend(sm.portal, { vm: {} });\r\n }\r\n\r\n function StudentScheduleViewModel() {\r\n\r\n // Properties\r\n this.StudentId = ko.observable();\r\n this.Courses = ko.observableArray([new sm.portal.vm.StudentCourseViewModel()]);\r\n \r\n this.Periods = ko.observableArray();\r\n this.StartDate = ko.observable();\r\n this.EndDate = ko.observable();\r\n this.SelectedPeriod = ko.observable();\r\n this.HasEnrollment = ko.observable(false);\r\n this.HasRoster = ko.observable(false);\r\n this.CoursePeriod = ko.observable('CoursePeriod');\r\n this.CourseStartDate = ko.observable('StartDate');\r\n this.CourseEndDate = ko.observable('EndDate');\r\n this.NoScheduleTemplate = ko.observable('');\r\n this.ScheduleTemplatePhone = ko.observable('');\r\n this.ScheduleTemplateNotPhone = ko.observable('');\r\n this.HideFields = ko.observable(false);\r\n this.CustomDateTemplate = ko.observable('');\r\n\r\n sm.portal.vm.custom.callCustomization('UpdateScheduleProps', this);\r\n\r\n sm.portal.vm.custom.setCustomLocalizeKey(this); \r\n\r\n // VM Methods\r\n this.Search = function () {\r\n \r\n if (sm.portal.utility.isNullOrEmpty(self.StudentId()) || sm.portal.utility.isNullOrEmpty(self.SelectedPeriod())) {\r\n self.IsValidSearch(false);\r\n return;\r\n }\r\n \r\n var d1 = Date.parse(self.StartDate());\r\n var d2 = Date.parse(self.EndDate());\r\n\r\n var toFormat = \"MM/DD/YYYY\";\r\n\r\n if (d1 > d2) {\r\n self.IsValidDates(false);\r\n return; \r\n }\r\n self.IsValidDates(true);\r\n self.IsValidSearch(true);\r\n jQuery.blockUI();\r\n\r\n var queryString = sm.portal.utility.formatString(\"studentId={0}&periodId={1}\",\r\n self.StudentId(),\r\n self.SelectedPeriod());\r\n\r\n var ret = sm.portal.vm.custom.callCustomization('DateFormated');\r\n\r\n if(sm.portal.utility.isNullOrEmpty(ret)){\r\n if (!sm.portal.utility.isNullOrEmpty(self.StartDate())) {\r\n queryString += \"&startDateTime=\" + moment(self.StartDate()).format(toFormat);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(self.EndDate())) {\r\n queryString += \"&endDateTime=\" + moment(self.EndDate()).format(toFormat);\r\n }\r\n }else{\r\n if (!sm.portal.utility.isNullOrEmpty(self.StartDate())) {\r\n queryString += \"&startDateTime=\" + moment(self.StartDate()).format(toFormat);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(self.EndDate())) {\r\n queryString += \"&endDateTime=\" + moment(self.EndDate()).format(toFormat);\r\n }\r\n }\r\n\r\n \r\n\r\n var url = _baseApiUri + 'api/StudentSchedule/GetCoursesFiltered?' + queryString;\r\n\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n // TODO: Flesh out statuses\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n if (data.Status == 'success') {\r\n self.LoadModel(container);\r\n }\r\n else if (data.Status == 'validationerror') {\r\n\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n } else if (data.Status == 'error') {\r\n\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n\r\n var enrollment = container.Payload.StudentCourseEnrollment;\r\n self.HasEnrollment(enrollment != null && enrollment.length >= 1);\r\n\r\n jQuery.unblockUI();\r\n sm.portal.ui.readyPage();\r\n },\r\n error: function (jqXHR, exception) {\r\n\r\n if (jqXHR.status == 401) {\r\n var title = sm.portal.utility.getResourceValue('UnAuthorized');\r\n var body = sm.portal.utility.getResourceValue('NotAuthorizedToViewPage');\r\n viewModel.HandleError(title, [body]);\r\n } else {\r\n viewModel.HandleError(exception);\r\n }\r\n jQuery.unblockUI();\r\n }\r\n });\r\n\r\n };\r\n\r\n this.GetMyCalendar = function () {\r\n\r\n if (sm.portal.utility.isNullOrEmpty(self.StudentId()) || sm.portal.utility.isNullOrEmpty(self.SelectedPeriod())) {\r\n self.IsValidSearch(false);\r\n return;\r\n }\r\n var d1 = Date.parse(self.StartDate());\r\n var d2 = Date.parse(self.EndDate());\r\n\r\n if (d1 > d2) {\r\n self.IsValidDates(false);\r\n return;\r\n }\r\n self.IsValidDates(true);\r\n self.IsValidSearch(true);\r\n\r\n var queryString = sm.portal.utility.formatString(\"studentId={0}&periodId={1}\",\r\n self.StudentId(),\r\n self.SelectedPeriod());\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(self.StartDate())) {\r\n queryString += \"&startDateTime=\" + self.StartDate();\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(self.EndDate())) {\r\n queryString += \"&endDateTime=\" + self.EndDate();\r\n }\r\n\r\n var url = _baseApiUri + 'api/StudentSchedule/GetCalendarCourses?' + queryString;\r\n\r\n window.location = url;\r\n }\r\n\r\n this.RosterClick = function (courseOfferingID, target) {\r\n\r\n var matchedCourse = self.FindCourseById(courseOfferingID);\r\n if (!sm.portal.utility.isNullOrEmpty(matchedCourse) && !matchedCourse.GotRoster()) {\r\n self.GetRosterPage(courseOfferingID, 0, matchedCourse);\r\n }\r\n\r\n };\r\n\r\n this.ScheduleClick = function (courseOfferingID, target) {\r\n var matchedCourse = self.FindCourseById(courseOfferingID);\r\n if (!sm.portal.utility.isNullOrEmpty(matchedCourse) && !matchedCourse.GotSchedule()) {\r\n self.GetSchedulePage(courseOfferingID, matchedCourse);\r\n }\r\n };\r\n\r\n this.GetRosterPage = function (courseOfferingID, pageIndex, matchedCourse) {\r\n\r\n var pageSize = 10;\r\n jQuery('#itemDetails' + courseOfferingID).block({ message: 'Loading...' });\r\n var url = _baseApiUri + 'api/StudentSchedule/GetStudentRoster?courseId=' + courseOfferingID + '&pageIndex=' + pageIndex + '&pageSize=' + pageSize;\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n if (data.Status == 'success') {\r\n self.LoadRoster(container, matchedCourse)\r\n } else if (data.Status == 'validationerror') {\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n } else if (data.Status == 'error') {\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n\r\n jQuery('#itemDetails' + courseOfferingID).unblock();\r\n sm.portal.ui.readyPage();\r\n },\r\n error: function (jqXHR, exception) {\r\n self.HandleError(exception);\r\n jQuery('#itemDetails' + courseOfferingID).unblock();\r\n }\r\n });\r\n\r\n };\r\n\r\n this.GetSchedulePage = function (courseOfferingID, matchedCourse) {\r\n\r\n var pageSize = 10;\r\n jQuery('#itemDetails' + courseOfferingID).block({ message: 'Loading...' });\r\n var url = _baseApiUri + 'api/StudentSchedule/GetStudentSchedule?courseId=' + courseOfferingID;\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n if (data.Status == 'success') {\r\n self.LoadSchedule(container, matchedCourse);\r\n } else if (data.Status == 'validationerror') {\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n } else if (data.Status == 'error') {\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n\r\n jQuery('#itemDetails' + courseOfferingID).unblock();\r\n sm.portal.ui.readyPage();\r\n },\r\n error: function (jqXHR, exception) {\r\n self.HandleError(exception);\r\n jQuery('#itemDetails' + courseOfferingID).unblock();\r\n }\r\n });\r\n\r\n };\r\n\r\n this.LoadRoster = function (container, course) {\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(container.Payload.customato) && container.Payload.customato.length > 0) {\r\n course.Roster.removeAll();\r\n\r\n for (var i = 0; i < container.Payload.customato.length; i++) {\r\n var item = container.Payload.customato[i];\r\n var vm = new sm.portal.widget.StudentProfileViewModel();\r\n vm.HeadShotUrl(item.Headshot);\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(item.PersonDisplayName)) {\r\n vm.PersonDisplayName(item.PersonDisplayName);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(item.ElectronicAddress)) {\r\n vm.PrimaryEmailAddress(item.ElectronicAddress);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(item.PhoneNumber)) {\r\n vm.PrimaryPhoneNumber(item.PhoneNumber);\r\n }\r\n if (!sm.portal.utility.isNullOrEmpty(item.SocialMediaAtos) && item.SocialMediaAtos.length > 0) {\r\n vm.SocialLinks.removeAll();\r\n for (var s = 0; s < item.SocialMediaAtos.length; s++) {\r\n\r\n var smvm = new sm.portal.vm.SocialMediaLinkViewModel();\r\n smvm.LinkHref(item.SocialMediaAtos[s].Href);\r\n smvm.ElectronicAddressTypeName(item.SocialMediaAtos[s].ElectronicAddressTypeName);\r\n smvm.Icon(item.SocialMediaAtos[s].IconClassName);\r\n vm.SocialLinks.push(smvm);\r\n }\r\n }\r\n course.Roster.push(vm);\r\n }\r\n course.GotRoster(true);\r\n course.RosterPageIndex(container.Payload.recordindex);\r\n course.RosterWorkingPageIndex(container.Payload.recordindex + 1);\r\n course.RosterRecordCount(container.Payload.recordcount);\r\n course.RosterPageCount(container.Payload.pagecount);\r\n }\r\n\r\n };\r\n\r\n jQuery('#rosterTab').show(); \r\n sm.portal.vm.custom.callCustomization('HideRosterTab'); \r\n \r\n this.LoadSchedule = function (container, course) {\r\n console.log('Got to Load Schedule');\r\n if (container && container.Payload && Object.keys(container.Payload).length === 1) {\r\n var item = Object.values(container.Payload)[0];\r\n course.Schedules.removeAll(); \r\n var customData = {\r\n self: self,\r\n course: course\r\n } \r\n sm.portal.vm.custom.callCustomization('GetCourseAndAcademicRecord', customData); \r\n \r\n for (var j = 0; j < item.Schedules.length; j++) {\r\n var sch = new sm.portal.vm.StudentCourseScheduleViewModel();\r\n var data = {\r\n sch : sch,\r\n course: course,\r\n self: self\r\n }\r\n var schItem = item.Schedules[j];\r\n var term = (schItem.FacilityPeriod != null) ? schItem.FacilityPeriod.Name : \"\";\r\n sch.RoomScheduleType(schItem.RoomScheduleTypeRollupDisplay);\r\n sch.Room(schItem.RoomRollupDisplay);\r\n sch.RoomDetails(schItem.DaysAndTimesRollupDisplay);\r\n sch.FacultyDetails(schItem.FacultyRollupDisplay);\r\n sch.ScheduleType(schItem.ScheduleType.Name);\r\n sch.ScheduleTiming(schItem.ScheduleTiming.Name);\r\n sch.StartDate(schItem.StartDate);\r\n sch.EndDate(schItem.EndDate);\r\n sch.DateRange(schItem.DateRangeRollupDisplay); \r\n\r\n sch.CampusNames(schItem.CampusNames);\r\n sch.DeliveryMethodNames(schItem.DeliveryMethodNames);\r\n sch.Locations(schItem.Locations);\r\n\r\n var params = {\r\n sch: sch,\r\n schItem: schItem\r\n }\r\n\r\n sm.portal.vm.custom.callCustomization(\"FormatRollupDate\", params);\r\n \r\n sch.TermDisplay(term);\r\n sch.Unscheduled(schItem.Unscheduled);\r\n sm.portal.vm.custom.callCustomization('SetProperties', data);\r\n\r\n course.Schedules.push(sch);\r\n }\r\n }\r\n course.GotSchedule(true);\r\n\r\n };\r\n\r\n this.RosterMovePager = function (courseOfferingID, index) {\r\n\r\n var matchedCourse = self.FindCourseById(courseOfferingID);\r\n if (!sm.portal.utility.isNullOrEmpty(matchedCourse)) {\r\n\r\n console.log('PAGER Requested Index: ' + index);\r\n console.log('PAGER Current Index: ' + matchedCourse.RosterPageIndex());\r\n console.log('PAGER Record Count: ' + matchedCourse.RosterRecordCount());\r\n console.log('PAGER Page Count: ' + matchedCourse.RosterPageCount());\r\n\r\n self.GetRosterPage(courseOfferingID, index, matchedCourse);\r\n }\r\n };\r\n this.FindCourseById = function (courseOfferingID) {\r\n\r\n var match = null;\r\n for (var i = 0; i < self.Courses().length; i++) {\r\n if (self.Courses()[i].CourseOfferingID() == courseOfferingID) {\r\n match = self.Courses()[i];\r\n break;\r\n }\r\n }\r\n return match;\r\n\r\n };\r\n \r\n // Standard Methods\r\n this.Loaded = ko.observable(false);\r\n this.LoadModel = function (container) {\r\n var data = {\r\n currentStudentId: window._currentStudentId,\r\n self: self\r\n }\r\n sm.portal.vm.custom.callCustomization('GetAdditionalScheduleData', data); \r\n // Set the Periods List - NOT LOADING\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(container.Payload.Periods)) {\r\n self.Periods.removeAll();\r\n for (var i = 0; i < container.Payload.Periods.length; i++) {\r\n var li = new smapi.access.ListItemModel({\r\n Text: container.Payload.Periods[i].Text,\r\n Value: container.Payload.Periods[i].Value,\r\n ID: container.Payload.Periods[i].ID,\r\n GID: container.Payload.Periods[i].GID\r\n });\r\n self.Periods.push(li);\r\n }\r\n }\r\n\r\n // Set the Selected Period - NOT LOADING\r\n if (!sm.portal.utility.isNullOrEmpty(container.Payload.SelectedPeriod)) {\r\n self.SelectedPeriod(container.Payload.SelectedPeriod.Value);\r\n }\r\n\r\n self.Courses.removeAll();\r\n // Set the Course Enrollments List (if exists)\r\n if (!(container.Payload.StudentCourseEnrollment == null)) {\r\n for (var i = 0; i < container.Payload.StudentCourseEnrollment.length; i++) {\r\n var course = new sm.portal.vm.StudentCourseViewModel();\r\n var item = container.Payload.StudentCourseEnrollment[i];\r\n course.CourseTitle(item.CourseTitle);\r\n course.CourseID(item.CourseID);\r\n course.EnrollmentModeName(item.EnrollmentModeName);\r\n course.CreditHours(item.CreditHours);\r\n course.ClockHours(item.ClockHours);\r\n course.CourseOfferingID(item.CourseOfferingID);\r\n //course.AcademicPeriod(item.CourseOffering_ATO.AcademicPeriod.Name);\r\n course.AcademicPeriod(item.Course.AcademicPeriod.Name);\r\n course.CampusNames(item.Course.CampusNames);\r\n course.DeliveryMethodNames(item.Course.DeliveryMethodNames);\r\n course.Locations(item.Course.Locations);\r\n\r\n var start_date = sm.portal.utility.getLocalizedDate(item.Course.CourseStartDate)\r\n var end_date = sm.portal.utility.getLocalizedDate(item.Course.CourseEndDate);\r\n course.StartDate(start_date);\r\n course.EndDate(end_date);\r\n\r\n //course.Schedules.removeAll();\r\n ////for (var j = 0; j < item.CourseOffering_ATO.Schedules.length; j++) {\r\n //for (var j = 0; j < item.Course.Schedules.length; j++) {\r\n // var sch = new sm.portal.vm.StudentCourseScheduleViewModel();\r\n // //var schItem = item.CourseOffering_ATO.Schedules[j];\r\n // var schItem = item.Course.Schedules[j];\r\n // var term = (schItem.FacilityPeriod != null) ? schItem.FacilityPeriod.Name : \"\";\r\n\r\n // sch.RoomScheduleType(schItem.RoomScheduleTypeRollupDisplay);\r\n // sch.Room(schItem.RoomRollupDisplay);\r\n // sch.RoomDetails(schItem.DaysAndTimesRollupDisplay);\r\n // sch.FacultyDetails(schItem.FacultyRollupDisplay);\r\n // sch.ScheduleType(schItem.ScheduleType.Name);\r\n // sch.ScheduleTiming(schItem.ScheduleTiming.Name);\r\n // sch.StartDate(schItem.StartDate);\r\n // sch.EndDate(schItem.EndDate);\r\n // sch.DateRange(schItem.DateRangeRollupDisplay);\r\n // sch.TermDisplay(term);\r\n\r\n // course.Schedules.push(sch);\r\n //}\r\n self.Courses.push(course);\r\n }\r\n }\r\n\r\n\r\n };\r\n this.HandleError = function (title, messages) {\r\n\r\n this.IsError(true);\r\n this.ErrorMessages(messages);\r\n if (sm.portal.utility.isNullOrEmpty(title)) {\r\n self.ErrorHeader(sm.portal.utility.getResourceValue('ThereWasAnError'));\r\n } else {\r\n self.ErrorHeader(title);\r\n }\r\n\r\n };\r\n this.IsValidSearch = ko.observable(true);\r\n this.IsValidDates = ko.observable(true);\r\n this.GetModelData = function (studentId) {\r\n \r\n jQuery.blockUI();\r\n\r\n if (sm.portal.utility.isNullOrEmpty(studentId)) {\r\n studentId = self.StudentId();\r\n }\r\n \r\n\r\n if (sm.portal.utility.isNullOrEmpty(self.StudentId())) {\r\n return;\r\n }\r\n\r\n var queryString = sm.portal.utility.formatString(\"studentId={0}\",\r\n self.StudentId());\r\n\r\n \r\n\r\n var url = _baseApiUri + 'api/StudentSchedule/GetStudentInformation?' + queryString;\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n // TODO: Flesh out statuses\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n if (data.Status == 'success') {\r\n self.LoadModel(container);\r\n }\r\n else if (data.Status == 'validationerror') {\r\n\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n } else if (data.Status == 'error') {\r\n\r\n self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n\r\n //var enrollment = container.Payload.StudentCourseEnrollment;\r\n //self.HasEnrollment(enrollment != null && enrollment.length >= 1);\r\n \r\n jQuery.unblockUI();\r\n sm.portal.ui.readyPage();\r\n },\r\n error: function (jqXHR, exception) {\r\n\r\n if (jqXHR.status == 401) {\r\n var title = sm.portal.utility.getResourceValue('UnAuthorized');\r\n var body = sm.portal.utility.getResourceValue('NotAuthorizedToViewPage');\r\n viewModel.HandleError(title, [body]);\r\n } else {\r\n viewModel.HandleError(exception);\r\n }\r\n jQuery.unblockUI();\r\n }\r\n });\r\n };\r\n\r\n\r\n // Error Handling\r\n this.ErrorHeader = ko.observable();\r\n this.ErrorMessages = ko.observableArray();\r\n this.IsError = ko.observable();\r\n\r\n var self = this;\r\n return self;\r\n }\r\n\r\n jQuery.extend(true, sm.portal.vm, {\r\n StudentScheduleViewModel: StudentScheduleViewModel\r\n });\r\n})(jQuery);"]}