// ============= // Select Report // ============= $(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"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); $("#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"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); $("#spinner-dialog").modal("show"); formSubmit($sessionStorage); }); // ------------------ // Pagination Buttons // ------------------ $(".btnPagination").on("click", function() { $sessionStorage.action = "Reports.selectReport"; $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)); }); // ----------- // Done Button // ----------- $(".btnDone").on("click", function() { formSubmit({ action : "" }); }); // --------------------------- // Process the selected Report // --------------------------- $("#reports-table tbody").on("click touch", "tr", function(e) { e.preventDefault(); 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)); }); // ---------------- // 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 // ----------------- $("#reports_per_page").on("change", function() { $(".btnFind").trigger("click"); }); });