Files
votervue/js/subscriptionSummary.js
T
2026-07-03 15:46:56 -04:00

268 lines
7.4 KiB
JavaScript

// ====================
// Subscription Summary
// ====================
$(document).ready(function () {
var $application = $("#APPLICATION_MNEMONIC").val(), $sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}");
var default_tab = "Counties";
var subscription_role = $("#USER_ROLE").val();
// -------------
// Select Picker
// -------------
$(".search-dropdown").selectpicker({noneSelectedText: "",
style: "",
styleBase: "form-select form-select-sm",
iconBase: "bi",
virtualScroll: true,
size: 10,
selectOnTab: true,
containter: "body",
liveSearch: true});
// -----------
// Input Masks
// -----------
$(".date-mask").inputmask({alias: "datetime",
inputFormat: "mm/dd/yyyy",
placeholder: "MM/DD/YYYY",
showMaskOnHover: false});
$(".numeric-mask").inputmask("9{0,9}", {showMaskOnHover: false});
$(".numeric-2-mask").inputmask({alias: "numeric",
showMaskOnHover: false,
placeholder: "0",
groupSeparator: ",",
allowMinus: false,
digitsOptional: false,
digits: 2});
// ------------
// Date Pickers
// ------------
$("#subscription_completed").datepicker({format: "mm-dd-yyyy",
container: "div.subscription_completed",
keyboardNavigation: false,
showOnFocus: false,
autoclose: true,
endDate: "0d",
orientation: "left bottom",
todayBtn: "linked",
todayHighlight: true});
// Disable standard Drag/Drop processing.
$("html").on("dragenter dragover dragleave drop", function (e) {
e.preventDefault();
});
// ---------------------------
// Set and Show the Active Tab
// --------------------------
$sessionStorage.subscriptionSummary_tab = $sessionStorage.subscriptionSummary_tab || default_tab;
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
$("#tab-" + ($sessionStorage.subscriptionSummary_tab || default_tab)).tab("show");
// --------------------
// Capture a Tab Change
// --------------------
$(".nav-tabs a[data-bs-toggle='tab']").on("shown.bs.tab", function (e) {
$sessionStorage.subscriptionSummary_tab = $(e.target).attr("data-tab");
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
});
// ----------------------
// Active Status Dropdown
// ----------------------
$("#subscription_active").on("change", function () {
formPost({action: "Subscriptions.updateActiveStatus", subscription_serial: $sessionStorage.subscription_serial, subscription_active: $(this).val()});
location.reload();
});
// ==============
// Action Buttons
// ==============
// -----------
// Done Button
// -----------
$(".btnDone").on("click", function () {
$sessionStorage.action = $sessionStorage.subscriptionSummary || "";
formSubmit($sessionStorage);
});
// -----------
// Edit Button
// -----------
$(".btnEdit").on("click", function () {
if (subscription_role === "Guest") {
return false;
}
$sessionStorage.action = "Subscriptions.editSubscription";
$sessionStorage.editSubscription = "Subscriptions.subscriptionSummary";
$sessionStorage.deleteSubscription = "Subscriptions.setupSubscriptions";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// =========
// Notes Tab
// =========
// ---------------
// Add Note Button
// ---------------
$(".btnAddNote").on("click", function () {
$sessionStorage.action = "Notes.addNote";
$sessionStorage.note_type = "Subscription";
$sessionStorage.note_reference = $sessionStorage.subscription_serial;
$sessionStorage.addNote = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ---------
// Edit Note
// ---------
$("#notes-table tbody").on("click touch", "tr", function (e) {
e.preventDefault();
if (subscription_role === "Guest") {
return false;
}
$sessionStorage.action = "Notes.editNote";
$sessionStorage.note_serial = $(this).data("note-serial");
$sessionStorage.editNote = "Subscriptions.subscriptionSummary";
$sessionStorage.deleteNote = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ============
// Counties Tab
// ============
// ---------------------------------
// Add County to Subscription Button
// ---------------------------------
$(".btnAddCountyToSubscription").on("click", function () {
$sessionStorage.action = "Subscriptions.addCountyToSubscription";
$sessionStorage.subscription_reference = $sessionStorage.subscription_serial;
$sessionStorage.addCountyToSubscription = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ----------------------------------------
// Edit Subscription to Subscription Button
// ----------------------------------------
$("#subscriptioncounties-table tbody").on("click touch", "tr", function (e) {
e.preventDefault();
if (subscription_role === "Guest") {
return false;
}
$sessionStorage.action = "Subscriptions.editSubscriptionCounty";
$sessionStorage.subscriptioncounty_serial = $(this).data("subscriptioncounty-serial");
$sessionStorage.editSubscriptionCounty = "Subscriptions.subscriptionSummary";
$sessionStorage.deleteSubscriptionCounty = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ============
// Cities Tab
// ============
// ---------------------------------
// Add City to Subscription Button
// ---------------------------------
$(".btnAddCityToSubscription").on("click", function () {
$sessionStorage.action = "Subscriptions.addCityToSubscription";
$sessionStorage.subscription_reference = $sessionStorage.subscription_serial;
$sessionStorage.addCityToSubscription = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ----------------------------------------
// Edit Subscription to Subscription Button
// ----------------------------------------
$("#subscriptioncities-table tbody").on("click touch", "tr", function (e) {
e.preventDefault();
if (subscription_role === "Guest") {
return false;
}
$sessionStorage.action = "Subscriptions.editSubscriptionCity";
$sessionStorage.subscriptioncity_serial = $(this).data("subscriptioncity-serial");
$sessionStorage.editSubscriptionCity = "Subscriptions.subscriptionSummary";
$sessionStorage.deleteSubscriptionCity = "Subscriptions.subscriptionSummary";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
});