(function(f5common, $){ f5common.safeAjax = function(ajaxOptions) { var deferredAjax = $.Deferred(); shell.getTokenDeferred().done(function (token) { // add headers for AJAX if (!ajaxOptions.headers) { $.extend(ajaxOptions, { headers: { "__RequestVerificationToken": token } }); } else { ajaxOptions.headers["__RequestVerificationToken"] = token; } $.ajax(ajaxOptions) .done(function(data, textStatus, jqXHR) { validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve); }).fail(deferredAjax.reject); //AJAX }).fail(function () { deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args }); return deferredAjax.promise(); } f5common.addInstructionsBeforeField = function (fieldName, html, id) { if (id == null) id = fieldName + "Instructions"; var row = $("#" + fieldName).closest("tr"); var insertHtml = $("").append($("", { class: "clearfix cell form-control-cell" }).append(html)); row.before(insertHtml); } f5common.addInstructionsAfterField = function (fieldName, html, id) { if (id == null) id = fieldName + "Instructions"; var row = $("#" + fieldName).closest("tr"); var insertHtml = $("").append($("", { class: "clearfix cell form-control-cell" }).append(html)); row.after(insertHtml); } f5common.addInstructionsAfterLabel = function (fieldName, html) { var div = $("
", { style:"clear:both"}).append(html); $("#" + fieldName + "_Label,#" + fieldName + "_label").after(div); } f5common.addSectionInstructions = function (sectionname, instructions) { var tableSelector = "table[data-name='" + sectionname + "']"; var table = $(tableSelector); var instrRow = $("").append($("", { class: "clearfix cell form-control-cell" }).append($("

", { class: "section-instructions", text: instructions }))); table.prepend(instrRow); } f5common.addSectionInstructionsHtml = function (sectionname, html) { var tableSelector = "table[data-name='" + sectionname + "']"; var table = $(tableSelector); var instrRow = $("").append($("", { class: "clearfix cell form-control-cell" }).append(html)); table.prepend(instrRow); } f5common.addRequiredFieldValidator = function (fieldName, fieldLabel) { if (typeof (Page_Validators) == 'undefined') return; $("#" + fieldName).closest("td").find(".info").addClass("required"); var validatorId = fieldName + "RequiredFieldValidator"; var newValidator = createValidator(validatorId, fieldName, fieldLabel + " is a required field.", fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var value = $("#" + fieldName).val(); if (value == null || value == "") { return false; } else { return true; } }; Page_Validators.push(newValidator); } f5common.removeRequiredFieldValidator = function (fieldName) { var validatorId = fieldName + "RequiredFieldValidator"; $("#" + fieldName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } f5common.addFutureDateValidator = function (fieldName, errorMessage) { if (typeof (Page_Validators) == 'undefined') return; $("#" + fieldName).next().data("DateTimePicker").minDate(moment()); var validatorId = fieldName + "FutureDateValidator"; var newValidator = createValidator(validatorId, fieldName, errorMessage, fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var returnValue = true; //set default value as true //get dates var today = new Date(); var compareDate = $("#" + fieldName).val(); if (compareDate == "") return true; //we can handle required date validation elsewhere. var compareDateValue = new Date(compareDate); if (today > compareDateValue) { returnValue = false; } return returnValue; }; Page_Validators.push(newValidator); } f5common.removeFutureDateValidator = function (fieldName) { var validatorId = fieldName + "FutureDateValidator"; removeValidator(validatorId); } f5common.addPastDateValidator = function (fieldName, errorMessage) { if (typeof (Page_Validators) == 'undefined') return; $("#" + fieldName).next().data("DateTimePicker").maxDate(moment()); var validatorId = fieldName + "PastDateValidator"; var newValidator = createValidator(validatorId, fieldName, errorMessage, fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var returnValue = true; //set default value as true //get dates var today = new Date(); var compareDate = $("#" + fieldName).val(); if (compareDate == "") return true; //we can handle required date validation elsewhere. var compareDateValue = new Date(compareDate); if (today < compareDateValue) { returnValue = false; } return returnValue; }; Page_Validators.push(newValidator); } f5common.removePastDateValidator = function (fieldName) { var validatorId = fieldName + "PastDateValidator"; removeValidator(validatorId); } f5common.addCustomValidator = function (fieldName, errorMessage, scrollToId, focusId, callback, required) { if (typeof (Page_Validators) == 'undefined') return; if(required){ $("#" + fieldName).closest("td").find(".info").addClass("required"); } var validatorId = fieldName + "CustomValidator"; var newValidator = createValidator(validatorId, fieldName, errorMessage, scrollToId, focusId); newValidator.evaluationfunction = callback; Page_Validators.push(newValidator); } f5common.removeCustomValidator = function (fieldName) { var validatorId = fieldName + "CustomValidator"; $("#" + fieldName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } f5common.addSubGridValidator = function (subGridName, minRecords, errorMessage) { if (typeof (Page_Validators) == 'undefined') return; $("#" + subGridName).closest("td").find(".info").addClass("required"); var validatorId = subGridName + "SubGridValidator"; var newValidator = createValidator(validatorId, subGridName, errorMessage, subGridName, subGridName); newValidator.evaluationfunction = function () { var noOfRecords = $("#" + subGridName + " table tbody tr").length; if (noOfRecords < minRecords) { return false; } else { return true; } }; Page_Validators.push(newValidator); } f5common.removeSubGridValidator = function (subGridName) { var validatorId = subGridName + "SubGridValidator"; $("#" + subGridName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } f5common.addCheckBoxValidator = function (fieldName, fieldLabel) { if (typeof (Page_Validators) == 'undefined') return; $("#" + fieldName).closest("td").find(".info").addClass("required"); var validatorId = fieldName + "CheckBoxValidator"; var newValidator = createValidator(validatorId, fieldName, "Check: " + fieldLabel, fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var isChecked = $("#" + fieldName).is(":checked"); if (isChecked == true) { return true; } else { return false; } }; Page_Validators.push(newValidator); } f5common.removeCheckBoxValidator = function (fieldName) { var validatorId = fieldName + "CheckBoxValidator"; $("#" + fieldName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } f5common.addRadioValidator = function (fieldName, fieldLabel) { if (typeof (Page_Validators) == 'undefined') return; $("#" + fieldName).closest("td").find(".info").addClass("required"); var validatorId = fieldName + "RadioValidator"; var newValidator = createValidator(validatorId, fieldName, "Check: " + fieldLabel, fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var isChosen = $("input[name$='" + fieldName + "']:checked").length > 0; if (isChosen == true) { return true; } else { return false; } }; // Add the new validator to the page validators array: Page_Validators.push(newValidator); } f5common.removeRadioValidator = function (fieldName) { var validatorId = fieldName + "RadioValidator"; $("#" + fieldName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } //used to prevent start date being set before end date f5common.addDateRangeValidator = function (startDateControl, endDateControl, errorMessage) { if (typeof (Page_Validators) == 'undefined') return; var validatorId = fieldName + "DateRangeValidator"; var newValidator = createValidator(validatorId, endDateControl, errorMessage, endDateControl + '_label', endDateControl); newValidator.evaluationfunction = function () { var returnValue = true; //set default value as true //get dates var endDate = $("#" + endDateControl).val(); var startDate = $("#" + startDateControl).val(); if (endDate == "" || startDate == "") return true; //we can handle required date validation elsewhere. var endDateValue = new Date(endDate); var startDateValue = new Date(startDate); if (startDateValue > endDateValue) { returnValue = false; } return returnValue; }; // Add the validator to the page validators array: Page_Validators.push(newValidator); } f5common.removeDateRangeValidatorr = function (fieldName) { var validatorId = fieldName + "DateRangeValidator"; removeValidator(validatorId); } f5common.addPhoneValidator = function (fieldName, fieldLabel, required) { if (typeof (Page_Validators) == 'undefined') return; if(required){ $("#" + fieldName).closest("td").find(".info").addClass("required"); } var validatorId = fieldName + "PhoneValidator"; var newValidator = createValidator(validatorId, fieldName, fieldLabel + " is an invalid phone number.", fieldName + '_label', fieldName); newValidator.evaluationfunction = function () { var value = $("#" + fieldName).val(); if (value == null || value == "") { if(required){ return false; } else { return true; } } else { if (value.length < 7) { return false; } else { return true; } } }; Page_Validators.push(newValidator); } f5common.removePhoneValidator = function (fieldName) { var validatorId = fieldName + "PhoneValidator"; $("#" + fieldName).closest("td").find(".info").removeClass("required"); removeValidator(validatorId); } function createValidator(validatorId, fieldName, errorMessage, scrollToId, focusId){ var newValidator = document.createElement('span'); newValidator.style.display = "none"; newValidator.id = validatorId; newValidator.controltovalidate = fieldName; newValidator.errormessage = "" + errorMessage + ""; newValidator.validationGroup = ""; newValidator.initialvalue = ""; return newValidator; } function removeValidator(validatorId) { if (typeof (Page_Validators) == 'undefined') return; for (i = 0; i < Page_Validators.length; i++) { if (Page_Validators[i].id == validatorId) { // Remove the current fields validator from Page_Validators array Page_Validators.splice(i, 1); } } } f5common.showSections = function (sectionList) { var count = sectionList.length; for (i_ss = 0; i_ss < count; i_ss++) { var fieldString = "fieldset[aria-label='" + sectionList[i_ss] + "']"; $(fieldString).show(); } } f5common.hideSections = function (sectionList) { var count = sectionList.length; for (i_hs = 0; i_hs < count; i_hs++) { var fieldString = "fieldset[aria-label='" + sectionList[i_hs] + "']"; $(fieldString).hide(); } } f5common.removeValidators = function (validatorList) { var count = validatorList.length; for (i_rv = 0; i_rv < count; i_rv++) { f5common.removeValidator(validatorList[i_rv]); } } f5common.clearTextFields = function (fieldList) { var count = fieldList.length; for (i_ctf = 0; i_ctf < count; i_ctf++) { $("#" + fieldList[i_ctf]).val(""); } } f5common.hideFields = function (fieldList) { var count = fieldList.length; for (i_hf = 0; i_hf < count; i_hf++) { $("#" + fieldList[i_hf]).closest("tr").hide(); } } f5common.showFields = function (fieldList) { var count = fieldList.length; for (i_sf = 0; i_sf < count; i_sf++) { $("#" + fieldList[i_sf]).closest("tr").show(); } } f5common.disableLookups = function (fieldList) { var count = fieldList.length; for (i_dl = 0; i_dl < count; i_dl++) { f5common.disableLookupFields([$("#" + fieldList[i_dl])]); } } f5common.enableLookups = function (fieldList) { var count = fieldList.length; for (i_el = 0; i_el < count; i_el++) { $("#" + fieldList[i_el]).parent().find('.input-group-btn').show(); } } f5common.enableDateTimeFields = function (fieldList) { var count = fieldList.length; for (i_edtf = 0; i_edtf < count; i_edtf++) { $("#" + fieldList[i_edtf]).next().data("DateTimePicker").enable(); } } f5common.disableDateTimeFields = function (fieldList) { var count = fieldList.length; for (i_ddtf = 0; i_ddtf < count; i_ddtf++) { $("#" + fieldList[i_ddtf]).next().data("DateTimePicker").disable(); } } f5common.enableFields = function (fieldList) { var count = fieldList.length; for (ecf = 0; ecf < count; ecf++) { $("#" + fieldList[ecf]).enable(true) } } f5common.disableFields = function (fieldList) { var count = fieldList.length; for (i_dcf = 0; i_dcf < count; i_dcf++) { $("#" + fieldList[i_dcf]).enable(false); } } f5common.disableLookupFields = function (fieldList) { var count = fieldList.length; for (dlf = 0; dlf < count; dlf++) { $("#" + fieldList[dlf]).parent().removeClass("input-group").find('.input-group-btn').hide(); } $(".text-muted").css("color", "transparent"); } f5common.enableLookupFields = function (fieldList) { var count = fieldList.length; for (elf = 0; elf < count; elf++) { $("#" + fieldList[elf]).parent().addClass("input-group").find('.input-group-btn').show() } } f5common.disableRadioButtonFields = function (fieldList) { var count = fieldList.length; for (drbf = 0; drbf < count; drbf++) { $('#' + fieldList[drbf] + ' input:radio:not(:checked)').attr('disabled', true); } } f5common.enableRadioButtonFields = function (fieldList) { var count = fieldList.length; for (erbf = 0; erbf < count; erbf++) { $('#' + fieldList[erbf] + ' input:radio:not(:checked)').attr('disabled', false); } } f5common.disablePicklistFields = function (fieldList) { var count = fieldList.length; for (dplf = 0; dplf < count; dplf++) { $("#" + fieldList[dplf]).attr('disabled', true); } } f5common.enablePicklistFields = function (fieldList) { var count = fieldList.length; for (eplf = 0; eplf < count; eplf++) { $("#" + fieldList[eplf]).attr('disabled', false); } } f5common.getUrlParameter = function getUrlParameter(sParam) { var urlParams = new URLSearchParams(window.location.search); return urlParams.get(sParam); } f5common.addModalForm = function (modalId, modalTitle) { var modalSection = $("

", { id: modalId, "aria-hidden": "true", "aria-label": " Modal Form", class: "modal fade modal-form modal-form-details", "data-backdrop": "static", role: "dialog", tabindex: "-1", style: "display: none;" }); $("body").prepend(modalSection); var modalDialog = $("
", { class: "modal-lg modal-dialog" }); modalSection.append(modalDialog); var modalContent = $("
", { class: "modal-content" }); modalDialog.append(modalContent); var modalHeader = $("
", { class: "modal-header" }); modalContent.append(modalHeader); var closeButton = $("