{"version":3,"file":"sm.portal.vm.student360.min.js","names":["jQuery","sm","window","portal","extend","vm","Student360ViewModel","self","this","TemplatesLoaded","ko","observable","showAcademicRecord","ShowBilling","ShowCommunications","ShowEnrolments","ShowFinantialAid","ShowMessages","ShowProfile","custom","setCustomLocalizeKey","callCustomization","LoadProfileModel","container","newProfileModel","widget","StudentProfileViewModel","LoadModel","Profile","LoadMessagesModel","newMessagesModel","common","MessagesViewModel","Messages","LoadBillingSummaryModel","newBillingSummaryModel","StudentBillingSummaryViewModel","BillingSummary","LoadCoursesModel","newEnrollmentModel","StudentEnrollmentViewModel","Courses","LoadAcademicRecordModel","newAcademicRecordModel","StudentAcademicRecordViewModel","AcademicRecords","LoadFinancialAidModel","newFinAidSummaryModel","FinancialAidSummaryViewModel","FinancialAidSummary","LoadCommunicationModel","newInbox","InboxViewModel","Communications","CurrentUserRole","TemplateName","requestedTemplate","utility","formatString","HandleError","title","messages","IsError","ErrorMessages","isNullOrEmpty","viewModel","ErrorHeader","getResourceValue","LoadInitialData","LoadAcademicRecordSection","LoadProfileSection","LoadMessagesSection","LoadBillingSection","LoadCoursesSection","LoadFinancialAidSection","LoadCommunicationSection","GetAllSectionData","AcademicRecordSectionLoaded","ProfileSectionLoaded","MessagesSectionLoaded","BillingSectionLoaded","FinancialAidSectionLoaded","CommunicationSectionLoaded","CoursesSectionLoaded","url","_baseApiUri","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","data","textStatus","jqXHR","smapi","access","ApiContainerModel","Status","CompositePayload","ValidationTitle","ValidationMessages","newData","constructAllData","Payload","academicrecordSection","messagesSection","profileSection","billingSection","coursesSection","financialaidSection","communicationSection","find","each","contents","length","attr","ui","readyPage","error","exception","status","body","IsAuthorized","statusText","responseMsg","responseText","parseJSON","Message","messageToUser","obj","key","value","Object","entries","e","observableArray","DataList","DataSubItem","Goal","Program","IsPrimary","DataItem","ID","GID","Title","ViewOnPortal","Goals","dataItemSelf","subscribe","newValue","setSessionCookie","list","removeAll","newEl","firstEl","existingCookieValue","getCookie","hadCookieAlready","i","listItem","record","j","listSubItem","subRecord","push","Loaded","MarkAsViewRecord","el","id","header","msgs","GetModelData","studentID","goalID"],"sources":["assets/js/viewmodels/academic/sm.portal.vm.student360.js"],"mappings":"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","ignoreList":[],"sourcesContent":["(function (jQuery, undefined){\r\n var sm = window.sm = window.sm || {};\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 // PRIMARY CONTAINER - Student 360 Profile View Model\r\n function Student360ViewModel(){\r\n var self = this;\r\n \r\n // Model Loading Methods\r\n this.TemplatesLoaded = ko.observable();\r\n\r\n this.showAcademicRecord = ko.observable(true);\r\n this.ShowBilling = ko.observable(true);\r\n this.ShowCommunications = ko.observable(true);\r\n this.ShowEnrolments = ko.observable(true);\r\n this.ShowFinantialAid = ko.observable(true);\r\n this.ShowMessages = ko.observable(true);\r\n this.ShowProfile = ko.observable(true);\r\n \r\n sm.portal.vm.custom.setCustomLocalizeKey(self);\r\n \r\n sm.portal.vm.custom.callCustomization('UpdatePropsforStudent360', self);\r\n \r\n this.LoadProfileModel = function (container){\r\n var newProfileModel = new sm.portal.widget.StudentProfileViewModel();\r\n newProfileModel.LoadModel(container);\r\n this.Profile(newProfileModel);\r\n };\r\n\r\n this.LoadMessagesModel = function (container){\r\n var newMessagesModel = new sm.portal.common.widget.MessagesViewModel();\r\n newMessagesModel.LoadModel(container);\r\n this.Messages(newMessagesModel);\r\n };\r\n\r\n this.LoadBillingSummaryModel = function (container){\r\n var newBillingSummaryModel = new sm.portal.widget.StudentBillingSummaryViewModel();\r\n newBillingSummaryModel.LoadModel(container);\r\n this.BillingSummary(newBillingSummaryModel);\r\n };\r\n\r\n this.LoadCoursesModel = function (container){\r\n var newEnrollmentModel = new sm.portal.widget.StudentEnrollmentViewModel();\r\n newEnrollmentModel.LoadModel(container);\r\n this.Courses(newEnrollmentModel);\r\n };\r\n\r\n this.LoadAcademicRecordModel = function (container) {\r\n var newAcademicRecordModel = new sm.portal.widget.StudentAcademicRecordViewModel();\r\n newAcademicRecordModel.LoadModel(container);\r\n this.AcademicRecords(newAcademicRecordModel);\r\n };\r\n\r\n this.LoadFinancialAidModel = function (container){\r\n var newFinAidSummaryModel = new sm.portal.widget.FinancialAidSummaryViewModel();\r\n newFinAidSummaryModel.LoadModel(container);\r\n this.FinancialAidSummary(newFinAidSummaryModel);\r\n };\r\n\r\n this.LoadCommunicationModel = function (container){\r\n var newInbox = new sm.portal.widget.InboxViewModel();\r\n newInbox.LoadModel(container);\r\n this.Communications(newInbox);\r\n };\r\n\r\n // Role Properties (TODO: Flesh this out in the process, trying to bring role-based templates into the Portal architecture.\r\n this.CurrentUserRole = ko.observable(\"Default\");\r\n this.TemplateName = function (requestedTemplate){\r\n return sm.portal.utility.formatString(requestedTemplate, this.CurrentUserRole());\r\n };\r\n\r\n // Standard Methods\r\n this.HandleError = function (title, messages){\r\n this.IsError(true);\r\n this.ErrorMessages(messages);\r\n if (sm.portal.utility.isNullOrEmpty(title)) {\r\n viewModel.ErrorHeader(sm.portal.utility.getResourceValue('ThereWasAnError'));\r\n }\r\n else {\r\n viewModel.ErrorHeader(title);\r\n }\r\n };\r\n this.LoadInitialData = function (){\r\n if(sm.portal.utility.isNullOrEmpty(sm.portal.vm.custom.callCustomization(\"AllDataFlag\"))){\r\n this.LoadAcademicRecordSection(); // Do this first, \"marked\" SAR should load the rest\r\n \r\n this.LoadProfileSection();\r\n this.LoadMessagesSection();\r\n this.LoadBillingSection();\r\n this.LoadCoursesSection();\r\n this.LoadFinancialAidSection();\r\n this.LoadCommunicationSection();\r\n \r\n // TODO: Academic Record VM Initialization\r\n } else {\r\n this.GetAllSectionData();\r\n }\r\n\r\n };\r\n\r\n // Loading Methods\r\n this.AcademicRecordSectionLoaded = ko.observable();\r\n\r\n this.ProfileSectionLoaded = ko.observable();\r\n this.MessagesSectionLoaded = ko.observable();\r\n this.BillingSectionLoaded = ko.observable();\r\n this.FinancialAidSectionLoaded = ko.observable();\r\n this.CommunicationSectionLoaded = ko.observable();\r\n this.CoursesSectionLoaded = ko.observable();\r\n\r\n this.GetAllSectionData = function(){\r\n var url = _baseApiUri + '/api/student360/GetProfileAllSections/?studentid=&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,\r\n data.CompositePayload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n var newData = self.constructAllData(container.Payload);\r\n self.LoadAcademicRecordModel(newData.academicrecordSection);\r\n self.AcademicRecordSectionLoaded(true);\r\n\r\n self.LoadMessagesModel(newData.messagesSection);\r\n self.MessagesSectionLoaded(true);\r\n\r\n self.LoadProfileModel(newData.profileSection);\r\n self.ProfileSectionLoaded(true);\r\n \r\n self.LoadBillingSummaryModel(newData.billingSection);\r\n self.BillingSectionLoaded(true);\r\n\r\n self.LoadCoursesModel(newData.coursesSection);\r\n self.CoursesSectionLoaded(true);\r\n\r\n self.LoadFinancialAidModel(newData.financialaidSection);\r\n self.FinancialAidSectionLoaded(true);\r\n\r\n self.LoadCommunicationModel(newData.communicationSection);\r\n self.CommunicationSectionLoaded(true); \r\n jQuery('#sm360Communications').find('iframe').each(function () {\r\n if (!jQuery(this).contents().find('a,area,input,select,textarea,button').length > 0) {\r\n jQuery(this).attr('tabindex', '-1');\r\n }\r\n })\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Profile().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Profile().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n sm.portal.ui.readyPage();\r\n },\r\n error : function (jqXHR, exception){\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\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\r\n self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n }\r\n this.constructAllData = function (container) {\r\n var obj = {};\r\n for (const [key, value] of Object.entries(container)) {\r\n obj[key] = {};\r\n obj[key].Payload = value;\r\n }\r\n return obj;\r\n }\r\n\r\n // Loaded Flags\r\n this.LoadProfileSection = function (){\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=profile&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadProfileModel(container);\r\n self.ProfileSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Profile().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Profile().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n sm.portal.ui.readyPage();\r\n },\r\n error : function (jqXHR, exception){\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\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\r\n self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n\r\n this.LoadMessagesSection = function (){\r\n\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=messages&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n self.LoadMessagesModel(container);\r\n self.MessagesSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n self.IsError(true);\r\n self.Messages().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n self.IsError(true);\r\n self.Messages().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\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 self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n\r\n this.LoadBillingSection = function (){\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=billing&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadBillingSummaryModel(container);\r\n self.BillingSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.BillingSummary().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.BillingSummary().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\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 self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n this.LoadCoursesSection = function (){\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=courses&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadCoursesModel(container);\r\n self.CoursesSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n self.IsError(true);\r\n self.Courses().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n self.IsError(true);\r\n self.Courses().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\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 self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n this.LoadFinancialAidSection = function (){\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=financialaid&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadFinancialAidModel(container);\r\n self.FinancialAidSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.FinancialAidSummary().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.FinancialAidSummary().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\r\n var statusText = jqXHR.statusText;\r\n var responseMsg = sm.portal.utility.getResourceValue('UnknownError');\r\n\r\n if (jqXHR != null && !sm.portal.utility.isNullOrEmpty(jqXHR.responseText)) {\r\n responseMsg = jQuery.parseJSON(jqXHR.responseText).Message;\r\n }\r\n var messageToUser = sm.portal.utility.formatString(\"{0} - {1}\", statusText, responseMsg);\r\n self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n this.LoadCommunicationSection = function (){\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=communication&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadCommunicationModel(container);\r\n self.CommunicationSectionLoaded(true); \r\n jQuery('#sm360Communications').find('iframe').each(function () {\r\n if (!jQuery(this).contents().find('a,area,input,select,textarea,button').length > 0) {\r\n jQuery(this).attr('tabindex', '-1');\r\n }\r\n })\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Communications().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n //self.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n self.IsError(true);\r\n self.Communications().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\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 self.HandleError(title, [body]);\r\n self.IsAuthorized(false);\r\n }\r\n else {\r\n\r\n var statusText = jqXHR.statusText;\r\n var responseMsg = sm.portal.utility.getResourceValue('UnknownError');\r\n\r\n if (jqXHR != null && !sm.portal.utility.isNullOrEmpty(jqXHR.responseText)) {\r\n responseMsg = jQuery.parseJSON(jqXHR.responseText).Message;\r\n }\r\n var messageToUser = sm.portal.utility.formatString(\"{0} - {1}\", statusText, responseMsg);\r\n self.HandleError(sm.portal.utility.getResourceValue('ErrorAccessingPage'), [messageToUser]);\r\n }\r\n }\r\n });\r\n };\r\n\r\n // TODO: Academic Record VM Initialization\r\n this.LoadAcademicRecordSection = function () {\r\n var url = _baseApiUri + 'api/student360/getprofilesection/?sec=academicrecord&studentid=';\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,\r\n data.Payload,\r\n data.ValidationTitle,\r\n data.ValidationMessages);\r\n\r\n if (data.Status === 'success') {\r\n\r\n self.LoadAcademicRecordModel(container);\r\n self.AcademicRecordSectionLoaded(true);\r\n\r\n }\r\n else if (data.Status === 'validationerror') {\r\n\r\n self.IsError(true);\r\n self.AcademicRecords().HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n }\r\n else if (data.Status === 'error') {\r\n\r\n self.IsError(true);\r\n self.AcademicRecords().HandleError(container.ValidationTitle, container.ValidationMessages);\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 // Error Handling\r\n this.ErrorHeader = ko.observable();\r\n this.ErrorMessages = ko.observableArray();\r\n this.IsError = ko.observable(false);\r\n this.IsAuthorized = ko.observable(true);\r\n\r\n // START Profile Section Data\r\n this.Profile = ko.observable(new sm.portal.widget.StudentProfileViewModel());\r\n // END Profile Section Data\r\n\r\n // START Messages & Alerts Section Data\r\n this.Messages = ko.observable(new sm.portal.common.widget.MessagesViewModel());\r\n // END Messages & Alerts Section Data\r\n\r\n // START BillingSummary Section Data\r\n this.BillingSummary = ko.observable(new sm.portal.widget.StudentBillingSummaryViewModel());\r\n // END BillingSummary Section Data\r\n\r\n // START Courses Section Data\r\n this.Courses = ko.observable(new sm.portal.widget.StudentEnrollmentViewModel());\r\n // END Courses Section Data\r\n\r\n // START Financial Aid Section Data\r\n this.FinancialAidSummary = ko.observable(new sm.portal.widget.FinancialAidSummaryViewModel());\r\n // END Financial Aid Section Data\r\n\r\n // START Communication Section Data\r\n this.Communications = ko.observable(new sm.portal.widget.InboxViewModel());\r\n // END Communication Section Data\r\n\r\n // START Courses Section Data\r\n this.AcademicRecords = ko.observable(new sm.portal.widget.StudentAcademicRecordViewModel());\r\n // END Courses Section Data\r\n \r\n return self;\r\n }\r\n\r\n jQuery.extend(true,\r\n sm.portal.vm,\r\n {\r\n Student360ViewModel : Student360ViewModel\r\n });\r\n\r\n\r\n // Student Academic Record Widget View Model\r\n // Added here to avoid additional shortcodes in the page content\r\n // Array Model\r\n function StudentAcademicRecordViewModel() {\r\n\r\n // Array List\r\n this.DataList = ko.observableArray();\r\n\r\n // List Item and List Detail Items\r\n this.DataSubItem = function () {\r\n this.Goal = ko.observable();\r\n this.Program = ko.observable();\r\n this.IsPrimary = ko.observable(false);\r\n };\r\n\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.ViewOnPortal = ko.observable();\r\n this.Goals = ko.observableArray(); \r\n var dataItemSelf = this;\r\n this.ViewOnPortal.subscribe(function (newValue) {\r\n // The subscribe ensures the cookie gets set/updated regardless of what changes the value\r\n if (newValue == true) {\r\n sm.portal.ui.setSessionCookie(\"_ViewOnPortal\", dataItemSelf.GID());\r\n }\r\n });\r\n };\r\n\r\n \r\n\r\n // Loading\r\n this.LoadModel = function (container) {\r\n\r\n var list = container.Payload.AcademicRecords;\r\n\r\n // Clear existing data\r\n this.DataList.removeAll();\r\n\r\n \r\n if (!sm.portal.utility.isNullOrEmpty(list)) {\r\n\r\n // Retrieve existing cookie value in case it's already been set\r\n var existingCookieValue = sm.portal.ui.getCookie(\"_ViewOnPortal\");\r\n var hadCookieAlready = !sm.portal.utility.isNullOrEmpty(existingCookieValue);\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 record = new this.DataItem();\r\n\r\n record.ID(listItem.ID);\r\n record.GID(listItem.GID);\r\n record.Title(listItem.Title);\r\n\r\n for (var j = 0; j < listItem.Goals.length; j++) {\r\n var listSubItem = listItem.Goals[j];\r\n var subRecord = new this.DataSubItem();\r\n subRecord.Goal(listSubItem.Goal);\r\n subRecord.Program(listSubItem.Program);\r\n subRecord.IsPrimary(listSubItem.IsPrimary);\r\n\r\n record.Goals.push(subRecord);\r\n }\r\n this.DataList.push(record);\r\n }\r\n\r\n var newEl;\r\n var firstEl;\r\n for (var j = 0; j < this.DataList().length; j++) {\r\n this.DataList()[j].ViewOnPortal(false);\r\n if (hadCookieAlready && this.DataList()[j].GID() == existingCookieValue) {\r\n newEl = this.DataList()[j];\r\n }\r\n if (j == 0) {\r\n firstEl = this.DataList()[j];\r\n }\r\n }\r\n\r\n if (hadCookieAlready && newEl) {\r\n newEl.ViewOnPortal(true);\r\n } else if (firstEl) {\r\n firstEl.ViewOnPortal(true);\r\n }\r\n }\r\n this.Loaded(true);\r\n };\r\n this.Loaded = ko.observable(false);\r\n\r\n // Mark As View trigger\r\n this.MarkAsViewRecord = function (el) {\r\n var id = el.ID();\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(id)) {\r\n for (var i = 0; i < self.DataList().length; i++) {\r\n self.DataList()[i].ViewOnPortal(false);\r\n }\r\n el.ViewOnPortal(true);\r\n }\r\n };\r\n\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=academicrecord&studentid=' + studentID;\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 if (typeof sm.portal.widget === \"undefined\") {\r\n jQuery.extend(sm.portal, { widget: {} });\r\n }\r\n\r\n jQuery.extend(true, sm.portal.widget, {\r\n StudentAcademicRecordViewModel: StudentAcademicRecordViewModel\r\n });\r\n})(jQuery);"]}