(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.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 = $(" | |