379 lines
10 KiB
JavaScript
379 lines
10 KiB
JavaScript
|
|
|
||
|
|
// ======================
|
||
|
|
// Manage Support Tickets
|
||
|
|
// ======================
|
||
|
|
|
||
|
|
$(document).ready(function () {
|
||
|
|
|
||
|
|
var $application = $("#APPLICATION_MNEMONIC").val(), $sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}");
|
||
|
|
|
||
|
|
// --------------------
|
||
|
|
// Initialize Dropdowns
|
||
|
|
// --------------------
|
||
|
|
|
||
|
|
$("#supporttickets_per_page").val($sessionStorage.supporttickets_per_page || "20");
|
||
|
|
|
||
|
|
// -----------
|
||
|
|
// Find Button
|
||
|
|
// -----------
|
||
|
|
|
||
|
|
$(".btnFind").on("click", function () {
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.pagination = "first";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
$("#find_supportticket").on("keyup", function (e) {
|
||
|
|
if (e.key === "Enter") {
|
||
|
|
$(".btnFind").trigger("click");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
// -----------------
|
||
|
|
// Clear Find Button
|
||
|
|
// -----------------
|
||
|
|
|
||
|
|
$(".btnClearFind").on("click", function () {
|
||
|
|
|
||
|
|
$("#find_supportticket").val("").trigger("change");
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.pagination = "first";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ---------------
|
||
|
|
// Per Page Change
|
||
|
|
// ---------------
|
||
|
|
|
||
|
|
$("#supporttickets_per_page").on("change", function () {
|
||
|
|
|
||
|
|
$sessionStorage.supporttickets_per_page = $(this).val();
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.pagination = "first";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ------------------
|
||
|
|
// Pagination Buttons
|
||
|
|
// ------------------
|
||
|
|
|
||
|
|
$(".btnPagination").on("click", function () {
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.pagination = $(this).data("pagination");
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
delete $sessionStorage.pagination;
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ----------
|
||
|
|
// Add Button
|
||
|
|
// ----------
|
||
|
|
|
||
|
|
$(".btnAdd").on("click", function () {
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.addSupportTicket";
|
||
|
|
$sessionStorage.addRDI = "SupportTickets.viewSupportTickets";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// -----------
|
||
|
|
// Done Button
|
||
|
|
// -----------
|
||
|
|
|
||
|
|
$(".btnDone").on("click", function () {
|
||
|
|
|
||
|
|
formSubmit({action: ""});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// --------------
|
||
|
|
// Refresh Button
|
||
|
|
// --------------
|
||
|
|
|
||
|
|
$(".btnRefresh").on("click", function () {
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.pagination = "first";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Support Ticket Summary
|
||
|
|
// ----------------------
|
||
|
|
|
||
|
|
$("#supporttickets-table tbody td:not('.selection-checkboxes')").on("click touch", function (e) {
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
$sessionStorage.action = "SupportTickets.viewSupportTicketSummary";
|
||
|
|
$sessionStorage.supportticket_serial = $(e.target).closest("tr").data("supportticket-serial");
|
||
|
|
$sessionStorage.supportTicketSummary = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.editSupportTicket = "SupportTickets.viewSupportTickets";
|
||
|
|
$sessionStorage.deleteSupportTicket = "SupportTickets.viewSupportTickets";
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// -------------------
|
||
|
|
// Column Heading Sort
|
||
|
|
// -------------------
|
||
|
|
|
||
|
|
if (($sessionStorage.supporttickets_order_by || "") !== "") {
|
||
|
|
|
||
|
|
$("th[data-order-by = '" + ($sessionStorage.supporttickets_order_by || "") + "']").append('<i class="' + ($sessionStorage.supporttickets_order_icon || "") + ' text-danger ms-1 me-0"/>');
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
$("th.sortable").on("click", function (e) {
|
||
|
|
|
||
|
|
if ($(e.target).data("order-by") !== ($sessionStorage.supporttickets_order_by || "")) { // New Column
|
||
|
|
|
||
|
|
$sessionStorage.supporttickets_order_by = $(e.target).data("order-by");
|
||
|
|
$sessionStorage.supporttickets_order_direction = "asc";
|
||
|
|
$sessionStorage.supporttickets_order_icon = "bi bi-arrow-up";
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
switch ($sessionStorage.supporttickets_order_direction) {
|
||
|
|
|
||
|
|
case "" :
|
||
|
|
|
||
|
|
$sessionStorage.supporttickets_order_by = $(e.target).data("order-by");
|
||
|
|
$sessionStorage.supporttickets_order_direction = "asc";
|
||
|
|
$sessionStorage.supporttickets_order_icon = "bi bi-arrow-up";
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "asc" :
|
||
|
|
|
||
|
|
$sessionStorage.supporttickets_order_by = $(e.target).data("order-by");
|
||
|
|
$sessionStorage.supporttickets_order_direction = "desc";
|
||
|
|
$sessionStorage.supporttickets_order_icon = "bi bi-arrow-down";
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "desc" :
|
||
|
|
|
||
|
|
$sessionStorage.supporttickets_order_by = "";
|
||
|
|
$sessionStorage.supporttickets_order_direction = "";
|
||
|
|
$sessionStorage.supporttickets_order_icon = "";
|
||
|
|
break;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
$("#spinner-dialog").modal("show");
|
||
|
|
|
||
|
|
formSubmit($sessionStorage);
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// -----------------
|
||
|
|
// Select All Button
|
||
|
|
// -----------------
|
||
|
|
|
||
|
|
$(".btnSelectAll").on("click", function (e) {
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
$(".selection-checkbox:input:checkbox").prop("checked", true);
|
||
|
|
|
||
|
|
$(".btnDeselectAll, .btnPrintSelected").removeClass("d-none");
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// -------------------
|
||
|
|
// Deselect All Button
|
||
|
|
// -------------------
|
||
|
|
|
||
|
|
$(".btnDeselectAll").on("click", function (e) {
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
$(".selection-checkbox:input:checkbox").prop("checked", false);
|
||
|
|
|
||
|
|
$(".btnDeselectAll, .btnPrintSelected").addClass("d-none");
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ------------------------
|
||
|
|
// Toggle a Select Checkbox
|
||
|
|
// ------------------------
|
||
|
|
|
||
|
|
$(".supportticket-row").on("click touch", function (e) {
|
||
|
|
|
||
|
|
if (!($(e.target).hasClass("selection-area"))) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
;
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
var $this = $(e.target), checked = ($this.closest("tr").find("input[name='selected[]']").prop("checked"));
|
||
|
|
|
||
|
|
// Toggle the selected Checkbox.
|
||
|
|
|
||
|
|
$this.closest("tr").find("input[name='selected[]']").prop("checked", !checked);
|
||
|
|
|
||
|
|
if ($("input[name='selected[]']:checked").length === 0) {
|
||
|
|
$(".btnDeselectAll, .btnPrintSelected").addClass("d-none");
|
||
|
|
} else {
|
||
|
|
$(".btnDeselectAll, .btnPrintSelected").removeClass("d-none");
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ---------------------------------
|
||
|
|
// Print Selected Work Orders Button
|
||
|
|
// ---------------------------------
|
||
|
|
|
||
|
|
$(".btnPrintSelected").on("click", function (e) {
|
||
|
|
|
||
|
|
e.preventDefault();
|
||
|
|
|
||
|
|
window.open("", "PrintTab");
|
||
|
|
|
||
|
|
var selected = $("input[name='selected[]']:checked").map(function () {
|
||
|
|
return $(this).val();
|
||
|
|
}).get();
|
||
|
|
|
||
|
|
$("input[name = 'action']", "#PrintRDIForm").val("print");
|
||
|
|
$("input[name = 'selected_supporttickets']", "#PrintRDIForm").val(selected);
|
||
|
|
$("#PrintRDIForm").submit();
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// -------------------
|
||
|
|
// Save Changed Inputs
|
||
|
|
// -------------------
|
||
|
|
|
||
|
|
$(".autosave").on("change", function (e) {
|
||
|
|
|
||
|
|
switch (e.target.type) {
|
||
|
|
|
||
|
|
case "text" :
|
||
|
|
$sessionStorage[e.target.name] = $(this).val();
|
||
|
|
break;
|
||
|
|
case "radio" :
|
||
|
|
$sessionStorage[e.target.name] = $(this).val();
|
||
|
|
break;
|
||
|
|
case "checkbox" :
|
||
|
|
$sessionStorage[e.target.name] = $(this).prop("checked");
|
||
|
|
break;
|
||
|
|
case "select-one" :
|
||
|
|
$sessionStorage[e.target.name] = $(this).val();
|
||
|
|
break;
|
||
|
|
case "hidden" :
|
||
|
|
$sessionStorage[e.target.name] = $(this).val();
|
||
|
|
break;
|
||
|
|
|
||
|
|
default :
|
||
|
|
$sessionStorage[e.target.name] = $(this).val();
|
||
|
|
break;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ----------------
|
||
|
|
// Initalize Inputs
|
||
|
|
// ----------------
|
||
|
|
|
||
|
|
$.each($sessionStorage, function (name, value) {
|
||
|
|
|
||
|
|
var $input = $(":input").filter("[name='" + name + "']");
|
||
|
|
|
||
|
|
if ($input.length > 0) {
|
||
|
|
|
||
|
|
switch ($input.prop("type")) {
|
||
|
|
|
||
|
|
case "text" :
|
||
|
|
$input.val(value);
|
||
|
|
break;
|
||
|
|
case "radio" :
|
||
|
|
$input.filter("[value=" + value + "]").prop("checked", true);
|
||
|
|
break;
|
||
|
|
case "checkbox" :
|
||
|
|
$input.prop("checked", value);
|
||
|
|
break;
|
||
|
|
case "select-one" :
|
||
|
|
$input.val(value);
|
||
|
|
break;
|
||
|
|
case "hidden" :
|
||
|
|
$input.val(value);
|
||
|
|
break;
|
||
|
|
|
||
|
|
default :
|
||
|
|
$input.val(value);
|
||
|
|
break;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// ------------------
|
||
|
|
// Save preset Inputs
|
||
|
|
// ------------------
|
||
|
|
|
||
|
|
$("input[type=radio]:checked").trigger("change");
|
||
|
|
|
||
|
|
// -----------------
|
||
|
|
// Per Page Dropdown
|
||
|
|
// -----------------
|
||
|
|
|
||
|
|
$("#supporttickets_per_page").on("change", function () {
|
||
|
|
|
||
|
|
$(".btnFind").trigger("click");
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|