migrate to gtea from bistbucket
This commit is contained in:
138
public/assets/plugins/validation-setup/validation-setup.js
Normal file
138
public/assets/plugins/validation-setup/validation-setup.js
Normal file
@@ -0,0 +1,138 @@
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Checkbox: Select All
|
||||
*/
|
||||
$(".checkAll").on("click", function () {
|
||||
$("input:checkbox").not(this).prop("checked", this.checked);
|
||||
});
|
||||
|
||||
/**
|
||||
* Toggle Period Duration
|
||||
*/
|
||||
$("#is_period").on("change", function () {
|
||||
if ($(this).val() == 1) {
|
||||
$(".period_duration").removeClass("d-none");
|
||||
} else {
|
||||
$(".period_duration").addClass("d-none");
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Dismiss Notification
|
||||
*/
|
||||
$(".anna-dismiss").on("click", function () {
|
||||
$(".top-header-area").fadeOut();
|
||||
});
|
||||
|
||||
/**
|
||||
* Form Validation Initialization
|
||||
*/
|
||||
$.fn.initFormValidation = function () {
|
||||
let validator = $(this).validate({
|
||||
errorClass: "error",
|
||||
highlight: function (element, errorClass) {
|
||||
let $element = $(element);
|
||||
|
||||
if ($element.hasClass("select2-hidden-accessible")) {
|
||||
$("#select2-" + $element.attr("id") + "-container").parent().addClass(errorClass);
|
||||
} else if ($element.parents().hasClass("image-checkbox")) {
|
||||
Notify("error", null, $element.parent().data("required"));
|
||||
} else {
|
||||
$element.addClass(errorClass);
|
||||
}
|
||||
},
|
||||
unhighlight: function (element, errorClass) {
|
||||
let $element = $(element);
|
||||
|
||||
if ($element.hasClass("select2-hidden-accessible")) {
|
||||
$("#select2-" + $element.attr("id") + "-container").parent().removeClass(errorClass);
|
||||
} else {
|
||||
$element.removeClass(errorClass);
|
||||
}
|
||||
},
|
||||
errorPlacement: function (error, element) {
|
||||
let $element = $(element);
|
||||
|
||||
if ($element.hasClass("select2-hidden-accessible")) {
|
||||
let container = $("#select2-" + $element.attr("id") + "-container").parent();
|
||||
error.insertAfter(container);
|
||||
} else if ($element.parent().hasClass("form-floating")) {
|
||||
error.insertAfter($element.parent().css("color", "text-danger"));
|
||||
} else if ($element.parent().hasClass("input-group")) {
|
||||
error.insertAfter($element.parent());
|
||||
} else {
|
||||
error.insertAfter($element);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
$(this).on("select2:select", function () {
|
||||
if (!$.isEmptyObject(validator.submitted)) {
|
||||
validator.form();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Select2 Initialization
|
||||
*/
|
||||
function initializeSelect2() {
|
||||
if (typeof jQuery !== "undefined" && $.fn.select2 !== undefined) {
|
||||
document
|
||||
.querySelectorAll('[data-control="select2"]')
|
||||
.forEach((element) => {
|
||||
let options = {
|
||||
dir: document.body.getAttribute("direction"),
|
||||
};
|
||||
|
||||
if (element.getAttribute("data-hide-search") === "true") {
|
||||
options.minimumResultsForSearch = Infinity;
|
||||
}
|
||||
|
||||
if (element.hasAttribute("data-placeholder")) {
|
||||
options.placeholder = element.getAttribute("data-placeholder");
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$(element).select2(options);
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on("select2:open", function () {
|
||||
let searchFields = document.querySelectorAll(".select2-container--open .select2-search__field");
|
||||
if (searchFields.length > 0) {
|
||||
searchFields[searchFields.length - 1].focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Session Message on Page Load
|
||||
*/
|
||||
$(document).ready(function () {
|
||||
if (window.sessionStorage.hasPreviousMessage === "true") {
|
||||
Notify(window.sessionStorage?.notifyType ?? "success", null, window.sessionStorage.previousMessage, window.sessionStorage.redirect);
|
||||
window.sessionStorage.hasPreviousMessage = false;
|
||||
window.sessionStorage.notifyType = "success";
|
||||
}
|
||||
|
||||
initializeSelect2();
|
||||
});
|
||||
|
||||
/**
|
||||
* Select All Checkbox Functionality
|
||||
*/
|
||||
if ($("#selectAll").length > 0) {
|
||||
let selectAll = document.querySelector("#selectAll");
|
||||
let checkboxes = document.querySelectorAll('[type="checkbox"]');
|
||||
|
||||
selectAll.addEventListener("change", (event) => {
|
||||
checkboxes.forEach((checkbox) => {
|
||||
checkbox.checked = event.target.checked;
|
||||
});
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user