Files
2026-02-23 19:55:25 -05:00

127 lines
3.5 KiB
JavaScript

// ===============
// Setup Dropdowns
// ===============
$(document).ready(function() {
var $application = $("#APPLICATION_MNEMONIC").val(),
$sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}");
// --------------------------------
// Open previously opened Accordion
// --------------------------------
if ((typeof $sessionStorage.reveal !== "undefined") && ($sessionStorage.reveal !== "")) {
var reveal = $sessionStorage.reveal.split("|");
reveal.forEach((element) => {
$("#" + element).collapse("show");
});
}
// -------------------
// Save open Accordion
// -------------------
$("#dropdown-accordion").on("shown.bs.collapse hidden.bs.collapse", function(e) {
const open = new Array();
$(".collapse.show").each(function() {
open.push($(this).attr("id"));
});
$sessionStorage.reveal = open.join("|");
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
});
// ----------
// Add Button
// ----------
$(".btnAdd").on("click", function() {
$sessionStorage.action = "Dropdowns.addDropdown";
$sessionStorage.dropdowntype_serial = $(this).data("dropdowntype-serial");
$sessionStorage.addDropdown = "Dropdowns.setupDropdowns";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// -----------
// Done Button
// -----------
$(".btnDone").on("click", function() {
formSubmit({ action : "" });
});
// ----
// Edit
// ----
$(".dropdown-table tbody td:not('.dropdown_default, .dropdown_active')").on("click touch", function(e) {
e.preventDefault();
$sessionStorage.action = "Dropdowns.editDropdown";
$sessionStorage.dropdown_serial = $(this).closest("tr").data("dropdown-serial");
$sessionStorage.editDropdown = "Dropdowns.setupDropdowns";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ----------------------------
// Process the Default Checkbox
// ----------------------------
$(".dropdown_default").on("click", function(e) {
// Get the clicked Checkbox's current value.
var $this = $(e.target),
checked = ($this.closest("tr").find("input[name='dropdown_default']").prop("checked"));
// Uncheck all Checkboxes.
$this.closest("tbody").find("input[name='dropdown_default']").each(function() {
$(this).prop("checked", false);
});
// Toggle the selected Checkbox.
$this.closest("tr").find("input[name='dropdown_default']").prop("checked", !checked);
// Update the Dropdowns Table with the chosen Default.
var dropdown_serial = $(e.target).closest("tr").data("dropdown-serial"),
dropdown_dropdowntype = $(e.target).closest("tr").data("dropdown-dropdowntype"),
dropdown_checked = !checked;
formPost({action : "Dropdowns.updateDropdownDefault", dropdown_serial : dropdown_serial, dropdown_dropdowntype : dropdown_dropdowntype, dropdown_checked: dropdown_checked});
});
// ---------------------------
// Process the Active Checkbox
// ---------------------------
$("input[name='dropdown_active']").on("change", function(e) {
formPost({ action : "Dropdowns.updateDropdownActive", dropdown_serial : $(this).data("dropdown-serial"), dropdown_checked: $(this).prop("checked") });
});
});