{"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","blockUI","url","_baseApiUri","utility","formatString","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","textStatus","jqXHR","customData","page","application","modelDataResponseHandler","error","exception","modelErrorHandler","EditItem","event","JSON","parse","toJSON","InEditMode","res","isNullOrEmpty","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 if (!this.DataLoaded() && !this.DataLoading()) {\r\n this.DataLoading(true); \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 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);"]}