255 lines
7.3 KiB
JavaScript
255 lines
7.3 KiB
JavaScript
|
|
|
||
|
|
// ==========
|
||
|
|
// Edit Alert
|
||
|
|
// ==========
|
||
|
|
|
||
|
|
$(document).ready(function () {
|
||
|
|
|
||
|
|
var $application = $("#APPLICATION_MNEMONIC").val(), $sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}"), $CKEditor;
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Initialize the Editor.
|
||
|
|
// ----------------------
|
||
|
|
|
||
|
|
ClassicEditor
|
||
|
|
.create(document.querySelector('#alert_message'), {
|
||
|
|
toolbar: {
|
||
|
|
items: [
|
||
|
|
'heading',
|
||
|
|
'|',
|
||
|
|
'bold',
|
||
|
|
'italic',
|
||
|
|
'underline',
|
||
|
|
'link',
|
||
|
|
'bulletedList',
|
||
|
|
'numberedList',
|
||
|
|
'|',
|
||
|
|
'fontColor',
|
||
|
|
'fontSize',
|
||
|
|
'fontFamily',
|
||
|
|
'|',
|
||
|
|
'indent',
|
||
|
|
'outdent',
|
||
|
|
'alignment',
|
||
|
|
'|',
|
||
|
|
'horizontalLine',
|
||
|
|
'insertTable',
|
||
|
|
'|',
|
||
|
|
'undo',
|
||
|
|
'redo',
|
||
|
|
'|'
|
||
|
|
]},
|
||
|
|
link: {
|
||
|
|
addTargetToExternalLinks: true,
|
||
|
|
defaultProtocol: "http://"
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.then(editor => {
|
||
|
|
$CKEditor = editor;
|
||
|
|
})
|
||
|
|
.catch(error => {
|
||
|
|
console.error('CK-Editor error...');
|
||
|
|
console.error(error);
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
// ------------
|
||
|
|
// 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", function (e) {
|
||
|
|
e.preventDefault();
|
||
|
|
$("#alert_starts_date").focus().datepicker("show");
|
||
|
|
});
|
||
|
|
|
||
|
|
$(".btnAlertExpiresDateCalendar").on("click", function (e) {
|
||
|
|
e.preventDefault();
|
||
|
|
$("#alert_expires_date").focus().datepicker("show");
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
$("#alert_starts_date").on("blur", function () {
|
||
|
|
$("#alert_starts_time").focus();
|
||
|
|
});
|
||
|
|
|
||
|
|
$("#alert_expires_date").on("blur", function () {
|
||
|
|
$("#alert_expires_time").focus();
|
||
|
|
});
|
||
|
|
|
||
|
|
// -----------
|
||
|
|
// Save Button
|
||
|
|
// -----------
|
||
|
|
|
||
|
|
$(".btnSave").on("click", function (e) {
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
$("#editAlert").submit();
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// -------------
|
||
|
|
// Cancel Button
|
||
|
|
// -------------
|
||
|
|
|
||
|
|
$(".btnCancel").on("click", function () {
|
||
|
|
|
||
|
|
$sessionStorage.action = $sessionStorage.editAlert || "";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ---------------
|
||
|
|
// Validate Inputs
|
||
|
|
// ---------------
|
||
|
|
|
||
|
|
$("#editAlert").submit(function (e) {
|
||
|
|
|
||
|
|
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)) && (!isDate(alert_starts_date))) {
|
||
|
|
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)) && (!isDate(alert_expires_date))) {
|
||
|
|
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();
|
||
|
|
|
||
|
|
$CKEditor.updateSourceElement();
|
||
|
|
|
||
|
|
$.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;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|