{"version":3,"file":"sm.portal.vm.languages.min.js","names":["jQuery","undefined","sm","window","portal","extend","vm","LanguagesViewModel","self","this","DataList","ko","observableArray","DataLoaded","observable","DataLoading","DataContainer","Touched","IsRequired","DataLoadErrorCount","EnglishPrimaryLanguage","validatedObservable","Assessments","UpdateTemplateProperties","AddLanguageAssessmentTemplate","ShowLanguageItemSummary","HideSetPrimaryLanguage","LanguageAssessmentText","LanguageSectionInfoText","AddLanguageFormTemplate","LanguagesSummaryInformation","LanguageMainContainer","HideCoreFields","custom","setCustomLocalizeKey","Languages","WorkingItem","LanguageDataItem","OriginalItem","callCustomization","GetLanguageNameById","id","i","length","Value","Text","LoadModel","container","Payload","Config","viewModel","SetSectionsConfigData","data","ListData","smapi","access","loadListItemModels","LanguageOptions","language","newDataItem","LanguageID","Language","Proficiency","IsPrimary","EducationReceived","QualificationsObtained","ID","GID","push","constant","applicationDebugFlag","console","log","GetModelData","blockui","applicationMID","personMID","callback","utility","isNullOrEmpty","allCustomData","customData","blockUI","url","_baseApiUri","formatString","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","textStatus","jqXHR","page","application","modelDataResponseHandler","error","exception","modelErrorHandler","handleErrorWithMessages","EditItem","event","JSON","parse","toJSON","InEditMode","res","hide","show","AddItem","SaveWorkingChanges","workingItem","SetPrimary","SectionRequired","name","IsVMValid","not","CancelWorkingChanges","RemoveItem","remove","item","each","k","setPrimary","BlockContainer","block","message","getResourceValue","UnBlockContainer","unblock","SetFocus","ProcessOnServer","ExtractATO","atoList","Array","ato","toJS","ModelErrors","validation","group","Completed","computed","options","defaults","settings","result","community","LanguagesModel","primary","checkReader","resources","portalResource","getValue","checkMark","min","params","validate_MustBeNumeric_Key","max","number","required","validate_FieldRequired_Key","maxLength","validate_0CharactersOrLess_Key"],"sources":["assets/js/viewmodels/admissions/sm.portal.vm.languages.js"],"mappings":"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","ignoreList":[],"sourcesContent":["/// \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 /**************************************/\r\n // Languages View Model \r\n /**************************************/\r\n function LanguagesViewModel() {\r\n\r\n var self = this;\r\n\r\n /*** PROPERTIES ***/\r\n this.DataList = ko.observableArray();\r\n /*** PROPERTIES ***/\r\n\r\n /*** SECTION PROPERTIES ***/\r\n this.DataLoaded = ko.observable(false);\r\n this.DataLoading = ko.observable(false);\r\n this.DataContainer = ko.observable(\"LanguagesContainer\");\r\n this.Touched = ko.observable(false);\r\n this.IsRequired = ko.observable(false);\r\n this.DataLoadErrorCount = ko.observable(0);\r\n this.EnglishPrimaryLanguage = ko.validatedObservable(undefined);\r\n this.Assessments = ko.observableArray();\r\n\r\n this.UpdateTemplateProperties = {\r\n AddLanguageAssessmentTemplate : ko.observable(''),\r\n ShowLanguageItemSummary : ko.observable(''),\r\n HideSetPrimaryLanguage : ko.observable(false),\r\n LanguageAssessmentText : ko.observable('AddLanguage'),\r\n LanguageSectionInfoText : ko.observable(''),\r\n AddLanguageFormTemplate : ko.observable(''),\r\n LanguagesSummaryInformation : ko.observable(''),\r\n LanguageMainContainer: ko.observable(''),\r\n HideCoreFields: ko.observable(false)\r\n }\r\n sm.portal.vm.custom.setCustomLocalizeKey(self.UpdateTemplateProperties);\r\n\r\n /*** SECTION PROPERTIES ***/\r\n\r\n /*** LIST DATA PROPERTIES ***/\r\n this.Languages = ko.observableArray();\r\n /*** LIST DATA PROPERTIES ***/\r\n\r\n this.WorkingItem = ko.observable(new sm.portal.vm.LanguageDataItem({\r\n Languages: this.Languages\r\n }));\r\n this.OriginalItem = ko.observable(new sm.portal.vm.LanguageDataItem({\r\n Languages: this.Languages\r\n }));\r\n \r\n sm.portal.vm.custom.callCustomization('UpdateLanguageProperties', self);\r\n /*** SECTION METHODS ***/\r\n this.GetLanguageNameById = function (id) {\r\n\r\n for (var i = 0; i < self.Languages().length; i++) {\r\n if (self.Languages()[i].Value() === id) {\r\n return self.Languages()[i].Text();\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n this.LoadModel = function (container) {\r\n // update application section configurations\r\n if (container && container.Payload && container.Payload.Config) {\r\n viewModel.SetSectionsConfigData(\"Languages\", container.Payload.Config);\r\n }\r\n var data = {\r\n container : container,\r\n self: self\r\n }\r\n //var res = sm.portal.vm.custom.callCustomization('SetEnglishLanguageId', self);\r\n\r\n sm.portal.vm.custom.callCustomization('LoadModelForLanguageSection', data,\r\n function(){\r\n if (container.Payload.ListData) {\r\n self.Languages = smapi.access.loadListItemModels(container.Payload.ListData.LanguageOptions, self.Languages);\r\n }\r\n //if (container.Payload.Languages != null || (!sm.portal.utility.isNullOrEmpty(res) && container.Payload.Languages.length > 0)) \r\n if (container.Payload.Languages != null) {\r\n for (var i = 0; i < container.Payload.Languages.length; i++) { \r\n var language = container.Payload.Languages[i];\r\n var newDataItem = new sm.portal.vm.LanguageDataItem({\r\n LanguageID: language.LanguageID,\r\n Language: language.Language,\r\n Proficiency: language.Proficiency,\r\n IsPrimary: language.IsPrimary,\r\n Languages: self.Languages,\r\n EducationReceived: language.EducationReceived,\r\n QualificationsObtained: language.QualificationsObtained,\r\n ID: language.ID,\r\n GID: language.GID\r\n });\r\n \r\n self.DataList.push(newDataItem);\r\n }\r\n }\r\n }\r\n ) \r\n var customData = {\r\n self: self,\r\n container: container\r\n }\r\n self.DataLoading(false);\r\n self.DataLoaded(true);\r\n if (smapi.constant.applicationDebugFlag) { console.log('[LanguagesVM] Data Loaded'); }\r\n };\r\n\r\n this.GetModelData = function (blockui, applicationMID, personMID, callback) {\r\n \r\n if (!this.DataLoaded() && !this.DataLoading()) {\r\n this.DataLoading(true); \r\n if(!sm.portal.utility.isNullOrEmpty(viewModel.allCustomData())) {\r\n var customData = {\r\n self : self,\r\n applicationMID : applicationMID\r\n }\r\n sm.portal.vm.custom.callCustomization('GetModelDataForLanguage', customData);\r\n self.LoadModel(viewModel.allCustomData().Languages);\r\n callback && callback(viewModel.allCustomData().Languages);\r\n return;\r\n }\r\n if (blockui) { jQuery.blockUI(); }\r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studentportal/getapplicationsection?sectionName=languages&attemptmid={0}', applicationMID);\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 var customData = {\r\n self : self,\r\n applicationMID : applicationMID\r\n }\r\n sm.portal.vm.custom.callCustomization('GetModelDataForLanguage', customData);\r\n sm.portal.page.application.modelDataResponseHandler(self, data, applicationMID, personMID);\r\n callback && callback(data);\r\n },\r\n error: function (jqXHR, exception) {\r\n sm.portal.page.application.modelErrorHandler(self, jqXHR);\r\n sm.portal.page.application.handleErrorWithMessages(self, jqXHR, 'fetch');\r\n callback && callback();\r\n }\r\n });\r\n } else {\r\n callback && callback();\r\n }\r\n };\r\n this.EditItem = function (data, event) {\r\n\r\n self.OriginalItem(data);\r\n\r\n self.WorkingItem(new sm.portal.vm.LanguageDataItem(JSON.parse(ko.toJSON(data))));\r\n\r\n self.WorkingItem().InEditMode(true);\r\n var res = sm.portal.vm.custom.callCustomization('EditItemForLanguage', self);\r\n //Close the view and display the data entry\r\n if(sm.portal.utility.isNullOrEmpty(res)){\r\n jQuery('.dataDisplayView').hide();\r\n jQuery('.dataEntryView').show();\r\n }\r\n };\r\n this.AddItem = function (data, event) {\r\n sm.portal.vm.custom.callCustomization('AddItemForLanguage', data);\r\n sm.portal.vm.custom.callCustomization('ResetWorkingItemForLanguage', self); \r\n self.WorkingItem(new sm.portal.vm.LanguageDataItem(JSON.parse(ko.toJSON(data))));\r\n };\r\n\r\n this.SaveWorkingChanges = function (data, event) {\r\n var workingItem = sm.portal.vm.custom.callCustomization('SaveWorkingChangesForLanguage', self);\r\n \r\n if(!workingItem){\r\n if (self.WorkingItem().IsPrimary()) {\r\n self.SetPrimary(self.WorkingItem());\r\n }\r\n \r\n workingItem = new sm.portal.vm.LanguageDataItem({\r\n LanguageID: self.WorkingItem().LanguageID(),\r\n Language: self.WorkingItem().Language(),\r\n Proficiency: self.WorkingItem().Proficiency(),\r\n IsPrimary: self.WorkingItem().IsPrimary(),\r\n InEditMode: self.WorkingItem().InEditMode(),\r\n SectionRequired: self.IsRequired(),\r\n Languages: this.Languages,\r\n EducationReceived: self.WorkingItem().EducationReceived(),\r\n QualificationsObtained: self.WorkingItem().QualificationsObtained(),\r\n ID: self.WorkingItem().ID(),\r\n GID: self.WorkingItem().GID(),\r\n });\r\n \r\n if (workingItem.LanguageID()) {\r\n workingItem.Language(self.GetLanguageNameById(workingItem.LanguageID()).name);\r\n }\r\n \r\n self.WorkingItem(new sm.portal.vm.LanguageDataItem({\r\n Languages: this.Languages\r\n })); \r\n }\r\n \r\n\r\n if (workingItem.IsVMValid()) {\r\n\r\n if (!workingItem.InEditMode()) {\r\n // This is an Add...\r\n self.DataList.push(workingItem);\r\n } else {\r\n // NOTE: Edits automatically bind back to the list (knockout is cool, huh?)\r\n workingItem.InEditMode(false);\r\n self.OriginalItem().LanguageID(workingItem.LanguageID());\r\n self.OriginalItem().Language(workingItem.Language());\r\n self.OriginalItem().Proficiency(workingItem.Proficiency());\r\n self.OriginalItem().IsPrimary(workingItem.IsPrimary());\r\n self.OriginalItem().InEditMode(workingItem.InEditMode());\r\n self.OriginalItem().ID(workingItem.ID());\r\n self.OriginalItem().GID(workingItem.GID());\r\n var customData = {\r\n self: self,\r\n workingItem: workingItem\r\n }\r\n sm.portal.vm.custom.callCustomization('UpdatePropertiesForSaveWorkingChanges', customData);\r\n }\r\n\r\n // hide the data entry view\r\n jQuery('.dataEntryView').hide();\r\n\r\n // show the display view with one item\r\n jQuery('.dataDisplayView').show();\r\n jQuery('.dataDisplayView ul.detailedList li').not('.noneAdded').show();\r\n var res = sm.portal.vm.custom.callCustomization('IsCancelWorkingChangesRequired');\r\n if(res){\r\n this.CancelWorkingChanges();\r\n }\r\n }\r\n };\r\n sm.portal.vm.custom.callCustomization('ValidationsForLanguage', self);\r\n this.RemoveItem = function (data, event) {\r\n var res = sm.portal.vm.custom.callCustomization('RemoveAccessibilityDataItem', self);\r\n if (!sm.portal.utility.isNullOrEmpty(res)) {\r\n return res;\r\n }\r\n self.DataList.remove(function (item) {\r\n return item.LanguageID == data.LanguageID &&\r\n item.Proficiency == data.Proficiency &&\r\n item.IsPrimary == data.IsPrimary &&\r\n item.EducationReceived == data.EducationReceived &&\r\n item.QualificationsObtained == data.QualificationsObtained;\r\n });\r\n };\r\n this.CancelWorkingChanges = function () {\r\n sm.portal.vm.custom.callCustomization('CancelWorkingChangesForLanguages', self,\r\n function(){\r\n self.WorkingItem(new sm.portal.vm.LanguageDataItem({\r\n Languages: this.Languages\r\n }));\r\n }\r\n );\r\n \r\n\r\n //hide the display view\r\n jQuery('.dataEntryView').hide();\r\n // show the entry view\r\n jQuery('.dataDisplayView').show();\r\n }\r\n this.SetPrimary = function (data, event) {\r\n // set all other primary flags to false\r\n jQuery.each(self.DataList(), function (k, language) {\r\n language.setPrimary(false);\r\n });\r\n // set this primary flag to true\r\n data.IsPrimary(true);\r\n }\r\n this.BlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).block({ message: sm.portal.utility.getResourceValue('Loading') });\r\n };\r\n this.UnBlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).unblock();\r\n viewModel.SetFocus();\r\n };\r\n this.ProcessOnServer = function () {\r\n return true;\r\n };\r\n this.ExtractATO = function () {\r\n var atoList = Array();\r\n var data = {\r\n self: self,\r\n atoList: atoList\r\n }\r\n sm.portal.vm.custom.callCustomization('ExtractLanguageATO', data, \r\n function () {\r\n for (var i = 0; i < self.DataList().length; i++) {\r\n var dataListItem = self.DataList()[i];\r\n var ato = dataListItem.ExtractATO();\r\n atoList.push(ko.toJS(ato));\r\n } \r\n }\r\n );\r\n\r\n return atoList;\r\n };\r\n\r\n /*** SECTION METHODS ***/\r\n\r\n /*** VALIDATION METHODS ***/\r\n this.ModelErrors = ko.validation.group(this);\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n this.Completed = ko.computed(function () {\r\n return this.IsVMValid();\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n sm.portal.vm.custom.callCustomization('OverrideLanguageVMValidation', self);\r\n \r\n return self;\r\n };\r\n\r\n function LanguageDataItem(options) {\r\n var defaults = {\r\n LanguageID: 0,\r\n Proficiency: '',\r\n IsPrimary: false,\r\n EducationReceived: '',\r\n QualificationsObtained: '',\r\n InEditMode: false,\r\n ID: -1,\r\n GID: null,\r\n Languages: null\r\n };\r\n\r\n sm.portal.vm.custom.callCustomization('ExtendedPropertiesLanguageDataItem', defaults);\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n self.LanguageID = ko.validatedObservable(settings.LanguageID);\r\n self.Language = ko.validatedObservable(settings.Language);\r\n self.Proficiency = ko.validatedObservable(settings.Proficiency);\r\n self.IsPrimary = ko.validatedObservable(settings.IsPrimary);\r\n self.EducationReceived = ko.validatedObservable(settings.EducationReceived);\r\n self.QualificationsObtained = ko.validatedObservable(settings.QualificationsObtained);\r\n self.GID = ko.validatedObservable(settings.GID);\r\n self.ID = ko.validatedObservable(settings.ID);\r\n self.InEditMode = ko.observable(settings.InEditMode);\r\n var data = {\r\n self : self,\r\n settings : settings\r\n }\r\n sm.portal.vm.custom.callCustomization('AddNewPropertiesForLanguageDataItem', data);\r\n\r\n\r\n if (settings.Languages == undefined || settings.Languages == null) {\r\n self.Languages = ko.observableArray();\r\n } else {\r\n self.Languages = settings.Languages;\r\n }\r\n\r\n self.ExtractATO = function () {\r\n var result = sm.portal.vm.custom.callCustomization('ExtractATOForLanguage', self);\r\n if (sm.portal.utility.isNullOrEmpty(result)) {\r\n result = new smapi.community.LanguagesModel({\r\n LanguageID: self.LanguageID(),\r\n Proficiency: self.Proficiency(),\r\n IsPrimary: self.IsPrimary(),\r\n EducationReceived: self.EducationReceived(),\r\n QualificationsObtained: self.QualificationsObtained,\r\n ID: self.ID(),\r\n GID: self.GID()\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n self.setPrimary = function (primary) {\r\n\r\n self.IsPrimary(primary);\r\n }\r\n\r\n self.checkReader = ko.computed(function () {\r\n\r\n return self.IsPrimary() ? sm.resources.portalResource.getValue('PrimaryLanguageChecked') : sm.resources.portalResource.getValue('PrimaryLanguageNotChecked');\r\n })\r\n\r\n self.checkMark = ko.computed(function () {\r\n\r\n return self.IsPrimary() ? 'checked' : '';\r\n\r\n }, this);\r\n\r\n /*** VALIDATION METHODS ***/\r\n sm.portal.vm.custom.callCustomization('OverrideLanguageValidations', self);\r\n\r\n self.LanguageID.extend({\r\n min: {\r\n params: 1,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n max: {\r\n params: 9223372036854775807,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n number: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n },\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n self.Proficiency.extend({\r\n maxLength: {\r\n params: 30,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '30')\r\n },\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n }\r\n });\r\n self.EducationReceived.extend({\r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n self.QualificationsObtained.extend({\r\n maxLength: {\r\n params: 250,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_0CharactersOrLess_Key), '250')\r\n }\r\n });\r\n\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n // Check if Model is valid \r\n // (will NOT validate attached models, unless we\r\n // init that in ui.js - currently it has performance problems)\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n this.Completed = ko.computed(function () {\r\n var isCompleted = this.IsVMValid();\r\n return isCompleted;\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n\r\n return self;\r\n };\r\n\r\n jQuery.extend(true, sm.portal.vm, {\r\n LanguagesViewModel: LanguagesViewModel,\r\n LanguageDataItem: LanguageDataItem\r\n });\r\n\r\n})(jQuery);"]}