Files
realestatedatainc/js/selectReport.js
T

253 lines
6.0 KiB
JavaScript
Raw Normal View History

2026-05-29 14:52:16 -04:00
// =============
// Select Report
// =============
2026-07-29 20:12:26 -04:00
$(document).ready(function () {
var $application = $("#APPLICATION_MNEMONIC").val(),
$sessionStorage = JSON.parse(sessionStorage.getItem($application) || "{}");
// -----------
// Find Button
// -----------
$(".btnFind").on("click", function () {
$sessionStorage.action = "Reports.selectReport";
$sessionStorage.pagination = "first";
2026-05-29 14:52:16 -04:00
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
2026-07-29 20:12:26 -04:00
$("#spinner-dialog").modal("show");
formSubmit($sessionStorage);
});
$("#select_report").on("keyup", function (e) {
if (e.key === "Enter") {
$(".btnFind").trigger("click");
}
});
// -----------------
// Clear Find Button
// -----------------
$(".btnClearFind").on("click", function () {
$("#select_report").val("").trigger("change");
$sessionStorage.action = "Reports.selectReport";
$sessionStorage.pagination = "first";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
$("#spinner-dialog").modal("show");
formSubmit($sessionStorage);
});
// --------------------
// Show Per Page Change
// --------------------
$("#reports_per_page").on("change", function () {
$sessionStorage.alerts_per_page = $(this).val();
$sessionStorage.action = "Reports.selectReport";
$sessionStorage.pagination = "first";
2026-05-29 14:52:16 -04:00
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
2026-07-29 20:12:26 -04:00
$("#spinner-dialog").modal("show");
2026-05-29 14:52:16 -04:00
formSubmit($sessionStorage);
2026-07-29 20:12:26 -04:00
});
// ------------------
// Pagination Buttons
// ------------------
$(".btnPagination").on("click", function () {
$sessionStorage.action = "Reports.selectReport";
$sessionStorage.pagination = $(this).data("pagination");
2026-05-29 14:52:16 -04:00
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
2026-07-29 20:12:26 -04:00
$("#spinner-dialog").modal("show");
2026-05-29 14:52:16 -04:00
formSubmit($sessionStorage);
2026-07-29 20:12:26 -04:00
delete $sessionStorage.pagination;
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
});
// -----------
// Done Button
// -----------
$(".btnDone").on("click", function () {
formSubmit({action: ""});
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
});
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
// ---------------------------
// Process the selected Report
// ---------------------------
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
$("#reports-table tbody").on("click touch", "tr", function (e) {
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
e.preventDefault();
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
switch ($(this).data("report-type")) {
case "Report" :
$sessionStorage.action = $(this).data("report-class");
$sessionStorage.printReturn = "Reports.selectReport";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
var target = $(this).data("report-target").trim();
formSubmit($sessionStorage, target);
break;
case "Download" :
$sessionStorage.action = $(this).data("report-class");
$sessionStorage.downloadReturn = "Reports.selectReport";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
break;
case "Email" :
break;
case "Graph" :
$sessionStorage.action = $(this).data("report-class");
$sessionStorage.graphReturn = "Reports.selectReport";
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
formSubmit($sessionStorage);
break;
case "Upload" :
break;
default :
return false;
break;
}
});
// -------------------
// 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));
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
});
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
// ----------------
// Initalize Inputs
// ----------------
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
$.each($sessionStorage, function (name, value) {
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
var $input = $(":input").filter("[name='" + name + "']");
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
if ($input.length > 0) {
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
switch ($input.prop("type")) {
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
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;
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
default :
$input.val(value);
break;
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
}
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
}
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
});
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
// ------------------
// Save preset Inputs
// ------------------
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
$("input[type=radio]:checked").trigger("change");
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
// -----------------
// Per Page Dropdown
// -----------------
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
$("#reports_per_page").on("change", function () {
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
$(".btnFind").trigger("click");
2026-05-29 14:52:16 -04:00
2026-07-29 20:12:26 -04:00
});
2026-05-29 14:52:16 -04:00
});