{"version":3,"file":"sm.portal.vm.studentEnrollment.widget.min.js","names":["jQuery","sm","window","portal","extend","widget","StudentEnrollmentViewModel","this","DataList","ko","observableArray","DataItem","ID","observable","GID","Title","CourseViewModel","StudentCourseScheduleViewModel","EnrolmentText","NoEnrolmentText","vm","custom","setCustomLocalizeKey","LoadModel","container","list","Payload","Courses","callCustomization","removeAll","utility","isNullOrEmpty","coursesAdditionalInfo","i","length","listItem","newEnrollmentModel","courseViewModel","push","Loaded","IsError","ErrorHeader","ErrorMessages","HandleError","header","msgs","getResourceValue","GetModelData","studentID","goalID","url","_baseApiUri","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","data","textStatus","jqXHR","smapi","access","ApiContainerModel","Status","ValidationTitle","ValidationMessages","self","ui","readyPage","error","exception","statusText","responseMsg","responseText","parseJSON","Message","messageToUser","formatString","viewModel","e"],"sources":["assets/js/viewmodels/academic/sm.portal.vm.studentEnrollment.widget.js"],"mappings":"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","ignoreList":[],"sourcesContent":["\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.widget === \"undefined\") {\r\n jQuery.extend(sm.portal, { widget: {} });\r\n }\r\n\r\n // Student Enrollment View Model\r\n // Array Model\r\n function StudentEnrollmentViewModel() {\r\n // Array List\r\n this.DataList = ko.observableArray();\r\n\r\n // List Item\r\n this.DataItem = function () {\r\n this.ID = ko.observable();\r\n this.GID = ko.observable();\r\n this.Title = ko.observable();\r\n this.CourseViewModel = ko.observable(new sm.portal.widget.StudentCourseScheduleViewModel());\r\n }\r\n\r\n this.EnrolmentText = ko.observable('Enrollments');\r\n this.NoEnrolmentText = ko.observable('NoEnrollments');\r\n\r\n sm.portal.vm.custom.setCustomLocalizeKey(this); \r\n\r\n // Loading\r\n this.LoadModel = function (container) {\r\n\r\n var list = container.Payload.Courses;\r\n\r\n sm.portal.vm.custom.callCustomization('GetCampuses');\r\n sm.portal.vm.custom.callCustomization('GetDeliveryModes');\r\n sm.portal.vm.custom.callCustomization('GetEnrollmentModes');\r\n\r\n // Clear existing data\r\n this.DataList.removeAll();\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(list)) {\r\n\r\n var coursesAdditionalInfo = sm.portal.vm.custom.callCustomization('LoadEnrollmentWidget', list);\r\n\r\n // Create DataItems for each result and add to DataList\r\n for (var i = 0; i < list.length; i++) {\r\n\r\n var listItem = list[i];\r\n var newEnrollmentModel = new this.DataItem();\r\n\r\n newEnrollmentModel.ID(listItem.ID);\r\n newEnrollmentModel.GID(listItem.GID);\r\n newEnrollmentModel.Title(listItem.Title);\r\n\r\n if (listItem.Courses != null) {\r\n\r\n var courseViewModel = new sm.portal.widget.StudentCourseScheduleViewModel();\r\n courseViewModel.LoadModel(listItem.Courses, coursesAdditionalInfo);\r\n newEnrollmentModel.CourseViewModel(courseViewModel);\r\n }\r\n\r\n this.DataList.push(newEnrollmentModel);\r\n }\r\n }\r\n this.Loaded(true);\r\n };\r\n this.Loaded = ko.observable(false);\r\n\r\n this.IsError = ko.observable(false);\r\n this.ErrorHeader = ko.observable();\r\n this.ErrorMessages = ko.observableArray();\r\n this.HandleError = function (header, msgs) {\r\n this.IsError(true);\r\n this.ErrorMessages(msgs);\r\n if (sm.portal.utility.isNullOrEmpty(header)) {\r\n this.ErrorHeader(sm.portal.utility.getResourceValue('ThereWasAnError'));\r\n } else {\r\n this.ErrorHeader(header);\r\n }\r\n };\r\n\r\n // Data Retrieval (NOTE: this could be handled via the parent view model, but this is here as a stand-alone)\r\n this.GetModelData = function (studentID, goalID) {\r\n\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=courses&studentid=' + studentID + '&goalid=' + goalID;\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 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 sm.portal.ui.readyPage();\r\n },\r\n error: function (jqXHR, exception) {\r\n\r\n var statusText = jqXHR.statusText;\r\n var responseMsg = sm.portal.utility.getResourceValue('UnknownError');\r\n if (jqXHR != null && jqXHR.responseText != null) {\r\n responseMsg = jQuery.parseJSON(jqXHR.responseText).Message;\r\n }\r\n var messageToUser = sm.portal.utility.formatString(\"{0} - {1}\", statusText, responseMsg);\r\n try {\r\n viewModel.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n } catch (e) { }\r\n }\r\n });\r\n };\r\n\r\n var self = this;\r\n return self;\r\n };\r\n\r\n jQuery.extend(true, sm.portal.widget, {\r\n StudentEnrollmentViewModel: StudentEnrollmentViewModel\r\n });\r\n})(jQuery);"]}