{"version":3,"file":"sm.portal.vm.termsConditionsParagraph.min.js","names":["jQuery","undefined","sm","window","portal","extend","vm","TermsConditionsParagraphViewModel","termsType","self","this","ParagraphVersionID","ko","validatedObservable","HistoryID","Title","observable","HTMLContent","Accepted","Latest","Required","Revocable","SortOrder","Type","LastChange","AcceptanceChanged","IsLatestVersion","LatestVersionHTML","OriginalHTML","Obsolete","DataLoaded","DataLoading","Touched","DataLoadErrorCount","IsUpdatedVersionAvaliable","computed","CanChange","WasClicked","data","custom","callCustomization","LoadedAccepted","LoadModel","container","LastChangeDate","Initialize","BlockContainer","DataContainer","block","message","utility","getResourceValue","UnBlockContainer","unblock","viewModel","SetFocus","ProcessOnServer","ExtractATO","CheckForLatestVersion","blockUI","url","_baseApiUri","formatString","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","textStatus","jqXHR","smapi","access","ApiContainerModel","Status","Payload","ValidationTitle","ValidationMessages","LatestParagraph","checked","ui","lightBox","on","p","paragraph","value","find","AcceptLatestVersion","removeLightbox","HandleError","unblockUI","error","exception","status","title","body","ModelErrors","validation","group","IsVMValid","length","Completed","isCompleted"],"sources":["assets/js/viewmodels/communication/sm.portal.vm.termsConditionsParagraph.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 // Terms and Conditions Paragraph View Model\r\n // Terms and Conditions Paragarph Processing Information\r\n /**************************************/\r\n function TermsConditionsParagraphViewModel(termsType){\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n /*** PROPERTIES ***/\r\n this.ParagraphVersionID = ko.validatedObservable();\r\n this.HistoryID = ko.validatedObservable();\r\n this.Title = ko.observable();\r\n this.HTMLContent = ko.observable();\r\n\t\tthis.Accepted = ko.validatedObservable();\r\n\t\tthis.Latest = ko.observable();\r\n this.Required = ko.validatedObservable();\r\n this.Revocable = ko.validatedObservable();\r\n this.SortOrder = ko.validatedObservable();\r\n this.Type = ko.observable();\r\n this.LastChange = ko.observable();\r\n this.AcceptanceChanged = ko.observable(false);\r\n this.IsLatestVersion = ko.observable(true);\r\n this.LatestVersionHTML = null;\r\n this.OriginalHTML = \"\";\r\n this.Obsolete = ko.observable();\r\n\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.Touched = ko.observable(false);\r\n this.DataLoadErrorCount = ko.observable(0);\r\n /*** SECTION PROPERTIES ***/\r\n\r\n /*** COMPUTED PROPERTIES ***/\r\n this.IsUpdatedVersionAvaliable = ko.computed(function () {\r\n if (self.Type() == 'TermsConditionsParagraphType.Regular') {\r\n return !self.Accepted() && !self.AcceptanceChanged() && !self.IsLatestVersion();\r\n }\r\n\r\n return false;\r\n },\r\n this);\r\n\r\n this.CanChange = ko.computed(function () {\r\n if (self.Obsolete()) {\r\n return false;\r\n }\r\n \r\n if (!self.IsUpdatedVersionAvaliable()) {\r\n if (!self.Accepted() || self.Revocable() || self.WasClicked()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n this);\r\n\r\n this.WasClicked = ko.computed(function () {\r\n\r\n var data = {\r\n self: self,\r\n termsType: termsType\r\n }\r\n\r\n sm.portal.vm.custom.callCustomization('Beforetermsflag',data);\r\n\r\n if (!self.AcceptanceChanged() && self.Accepted() !== undefined && this.LoadedAccepted !== undefined) {\r\n if (self.Accepted() != this.LoadedAccepted) {\r\n self.AcceptanceChanged(true);\r\n return true;\r\n }\r\n }\r\n\r\n if (self.AcceptanceChanged()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n this);\r\n\r\n /*** COMPUTED PROPERTIES ***/\r\n\r\n /*** LIST DATA PROPERTIES ***/\r\n /*** LIST DATA PROPERTIES ***/\r\n\r\n /*** METHODS ***/\r\n /*** METHODS ***/\r\n\r\n /*** SECTION METHODS ***/\r\n this.LoadModel = function (container){\r\n\r\n this.ParagraphVersionID(container.ParagraphVersionID);\r\n this.HistoryID(container.HistoryID);\r\n this.Title(container.Title);\r\n this.HTMLContent(container.HTMLContent);\r\n\t\t\tthis.Accepted(container.Accepted);\r\n\t\t\tthis.Latest(container.Latest);\r\n this.Required(container.Required);\r\n this.Revocable(container.Revocable);\r\n this.SortOrder(container.SortOrder);\r\n this.Type(container.Type);\r\n this.LastChange(container.LastChangeDate);\r\n this.IsLatestVersion(container.IsLatestVersion);\r\n this.LoadedAccepted = container.Accepted;\r\n this.LatestVersionHTML = null;\r\n this.OriginalHTML = container.HTMLContent;\r\n this.Obsolete(container.Obsolete);\r\n\r\n var data = {\r\n self: self,\r\n termsType: termsType,\r\n container: container\r\n }\r\n \r\n sm.portal.vm.custom.callCustomization('UpdatedLoadModelTermsConditions',data);\r\n };\r\n\r\n this.Initialize = function (){\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\r\n };\r\n this.ExtractATO = function (){\r\n // [EXTEND] New fields added to view model need to be updated here\r\n return null;\r\n };\r\n this.CheckForLatestVersion = function () {\r\n jQuery.blockUI();\r\n\r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studenttermsconditionshistory/CheckForLatestVersion?id={0}', self.HistoryID());\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 container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n\r\n if (data.Status == 'success') {\r\n\r\n if (container.Payload.LatestParagraph != null) {\r\n\r\n self.LatestVersionHTML = container.Payload.LatestParagraph;\r\n var checked = self.Accepted() ? \"checked\" : \"\";\r\n sm.portal.ui.lightBox(\r\n sm.portal.utility.getResourceValue('ThisTermChangedMsg'),\r\n '
' + container.Payload.LatestParagraph + '
',\r\n null,\r\n function () {\r\n jQuery('.confirmBtn').on('click',null, self, function (p) {\r\n\r\n var paragraph = p.data;\r\n\r\n if (paragraph != null) {\r\n \r\n var value = window.jQuery.find(\"#updatedAccept\")[0].checked;\r\n paragraph.AcceptLatestVersion(value);\r\n }\r\n \r\n sm.portal.ui.removeLightbox();\r\n\r\n });\r\n },\r\n null,\r\n '',\r\n 'TermsAndConditons');\r\n }\r\n }\r\n else if (data.Status == 'validationerror') {\r\n\r\n viewModel.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n\r\n } else if (data.Status == 'error') {\r\n\r\n viewModel.HandleError(container.ValidationTitle, container.ValidationMessages);\r\n }\r\n\r\n jQuery.unblockUI();\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 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.AcceptLatestVersion = function (checked){\r\n self.Accepted(checked);\r\n if (checked) {\r\n self.HTMLContent(self.LatestVersionHTML);\r\n }\r\n else {\r\n self.HTMLContent(self.OriginalHTML);\r\n }\r\n \r\n };\r\n /*** SECTION METHODS ***/\r\n /*** VALIDATION METHODS ***/\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\r\n var isCompleted = true;\r\n isCompleted = this.IsVMValid();\r\n\r\n if (this.Type() == 'TermsConditionsParagraphType.Regular' && isCompleted && this.Required() && !this.Accepted()) {\r\n isCompleted = false;\r\n }\r\n\r\n return isCompleted;\r\n\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n\r\n\r\n return self;\r\n };\r\n\r\n jQuery.extend(true, sm.portal.vm, {\r\n TermsConditionsParagraphViewModel: TermsConditionsParagraphViewModel,\r\n });\r\n\r\n})(jQuery);"]}