Files
huntingclubroster/js/addAlert.js
T

216 lines
6.2 KiB
JavaScript
Raw Normal View History

2026-10-18 17:01:36 +00:00
// =========
// Add Alert
// =========
$(document).ready(function () {
var $application = $("#APPLICATION_MNEMONIC").val(), $sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}");
2026-10-18 17:01:36 +00:00
// ----------------------
// Initialize the Editor.
// ----------------------
HcrRichText.create(document.querySelector('#alert_message'));
2026-10-18 17:01:36 +00:00
// ------------
// Date Pickers
// ------------
$("#alert_starts_date").datepicker({format: "yyyy-mm-dd",
container: "div.starts-date",
keyboardNavigation: false,
autoclose: true,
orientation: "bottom",
todayBtn: "linked",
todayHighlight: true});
$("#alert_expires_date").datepicker({format: "yyyy-mm-dd",
container: "div.expires-date",
keyboardNavigation: false,
autoclose: true,
orientation: "bottom",
todayBtn: "linked",
todayHighlight: true});
$("#alert_starts_time").inputmask({alias: "datetime",
placeholder: "HH:MM",
inputFormat: "HH:MM",
insertMode: false,
showMaskOnHover: false,
hourFormat: 24
});
$("#alert_expires_time").inputmask({alias: "datetime",
placeholder: "HH:MM",
inputFormat: "HH:MM",
insertMode: false,
showMaskOnHover: false,
hourFormat: 24
});
// ---------------------
// Show Calendar Buttons
// ---------------------
$(".btnAlertStartDateCalendar").on("click", async function (e) {
2026-10-18 17:01:36 +00:00
e.preventDefault();
$("#alert_starts_date").focus().datepicker("show");
});
$(".btnAlertExpiresDateCalendar").on("click", async function (e) {
2026-10-18 17:01:36 +00:00
e.preventDefault();
$("#alert_expires_date").focus().datepicker("show");
});
$("#alert_starts_date").on("blur", async function () {
2026-10-18 17:01:36 +00:00
$("#alert_starts_time").focus();
});
$("#alert_expires_date").on("blur", async function () {
2026-10-18 17:01:36 +00:00
$("#alert_expires_time").focus();
});
// -----------
// Save Button
// -----------
$(".btnSave").on("click", async function (e) {
2026-10-18 17:01:36 +00:00
e.preventDefault();
$("#addAlert").submit();
});
// -------------
// Cancel Button
// -------------
$(".btnCancel").on("click", async function () {
2026-10-18 17:01:36 +00:00
$sessionStorage.action = $sessionStorage.addAlert || "";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
// ---------------
// Validate Inputs
// ---------------
$("#addAlert").submit(async function (e) {
e.preventDefault();
2026-10-18 17:01:36 +00:00
var alert_title = $("#alert_title"),
alert_starts_date = $("#alert_starts_date"),
alert_starts_time = $("#alert_starts_time"),
alert_expires_date = $("#alert_expires_date"),
alert_expires_time = $("#alert_expires_time"),
alert_message = $("#alert_message");
clearInputErrors();
alert_title.val(alert_title.val().replace(/\s+/g, " ").trim());
if (isBlank(alert_title)) {
createInputError(alert_title, "Title is required");
return false;
}
if ((!isBlank(alert_starts_date)) && (!await isDate(alert_starts_date))) {
2026-10-18 17:01:36 +00:00
createInputError(alert_starts_date, "Date is invalid");
return false;
}
if (isBlank(alert_starts_time)) {
createInputError(alert_starts_time, "Please enter a Time");
return false;
}
if (!alert_starts_time.inputmask("isComplete")) {
createInputError(alert_starts_time, "Please enter a Time");
return false;
}
if (isBlank(alert_expires_date)) {
createInputError(alert_expires_date, "Please enter a Date");
return false;
}
if ((!isBlank(alert_expires_date)) && (!await isDate(alert_expires_date))) {
2026-10-18 17:01:36 +00:00
createInputError(alert_expires_date, "Date is invalid");
return false;
}
if (isBlank(alert_expires_time)) {
createInputError(alert_expires_time, "Please enter a Time");
return false;
}
if (!alert_expires_time.inputmask("isComplete")) {
createInputError(alert_expires_time, "Please enter a Time");
return false;
}
// if (isBlank(alert_message)) {
// createInputError(alert_message, "Please enter a Message");
// return false;
// }
if (!checkDateTime(alert_starts_date, alert_starts_time, alert_expires_date, alert_expires_time)) {
createInputError(alert_expires_time, "Cannot be prior to Start");
return false;
}
e.preventDefault();
if (!HcrRichText.sync(document.querySelector('#alert_message'))) return;
2026-10-18 17:01:36 +00:00
$.post("./", $(this).serialize())
.done(function () {
$sessionStorage.action = $sessionStorage.addAlert || "";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
});
});
});
// -----------------------------------------------------
// Expires date/time cannot be prior to Start date/time.
// -----------------------------------------------------
function checkDateTime(alert_starts_date, alert_starts_time, alert_expires_date, alert_expires_time) {
var starts_date_parts = alert_starts_date.val().split("-"),
starts_time_parts = alert_starts_time.val().split(":"),
expires_date_parts = alert_expires_date.val().split("-"),
expires_time_parts = alert_expires_time.val().split(":"),
starts_date,
expires_date;
starts_date = new Date(starts_date_parts[0], parseInt(starts_date_parts[1], 10) - 1, starts_date_parts[2]);
expires_date = new Date(expires_date_parts[0], parseInt(expires_date_parts[1], 10) - 1, expires_date_parts[2]);
starts_date.setHours(starts_time_parts[0], starts_time_parts[1], 0, 0);
expires_date.setHours(expires_time_parts[0], expires_time_parts[1], 0, 0);
if (expires_date.getTime() < starts_date.getTime()) {
return false;
} else {
return true;
}
}