PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.19.4
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.19.4
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / view / javascript / system_report.js
nitropack / view / javascript Last commit date
admin_bar_menu.js 4 months ago elementor_cache_integration.js 5 months ago gravity_forms.js 2 months ago math_captcha.js 1 year ago nitropackUI.js 2 months ago np_notices.js 3 months ago np_safemode.js 1 year ago np_select2.js 2 months ago np_select2.min.js 2 months ago np_settings.js 2 months ago popper.min.js 1 year ago post_clear_cache.js 4 months ago preview_site.js 3 months ago system_report.js 4 months ago widgets_ajax.js 2 months ago
system_report.js
213 lines
1 jQuery(document).ready(function ($) {
2 class SystemReport {
3 constructor() {
4 //report
5 this.downloadReport();
6 //logger
7 this.loggerToggle();
8 this.setLoggerLevel();
9 this.archiveLogs();
10 }
11
12 downloadReport() {
13 $("#gen-report-btn").on("click", function (e) {
14 e.preventDefault();
15 let isReportGenerating = false;
16
17 if (isReportGenerating) return;
18
19 $.ajax({
20 url: ajaxurl,
21 type: "POST",
22 dataType: "text",
23 data: {
24 action: "nitropack_generate_report",
25 nonce: nitroNonce,
26 toggled: {
27 "general-info-status": $("#general-info-status:checked").length,
28 "active-plugins-status": $("#active-plugins-status:checked").length,
29 "conflicting-plugins-status": $("#conflicting-plugins-status:checked").length,
30 "user-config-status": $("#user-config-status:checked").length,
31 "dir-info-status": $("#dir-info-status:checked").length,
32 },
33 },
34 beforeSend: function (xhr, sett) {
35 if ($(".diagnostic-option:checked").length > 0) {
36 $("#diagnostics-loader").show();
37 isReportGenerating = true;
38 return true;
39 } else {
40 alert(np_system_report.report_empty_options);
41 return false;
42 }
43 },
44 success: function (response, status, xhr) {
45 if (response.length > 1) {
46 var filename = "";
47 var disposition = xhr.getResponseHeader("Content-Disposition");
48 if (disposition && disposition.indexOf("attachment") !== -1) {
49 var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
50 var matches = filenameRegex.exec(disposition);
51 if (matches != null && matches[1]) filename = matches[1].replace(/['"]/g, "");
52 }
53
54 var type = xhr.getResponseHeader("Content-Type");
55 var blob = new Blob([response], {
56 type: type,
57 });
58
59 if (typeof window.navigator.msSaveBlob !== "undefined") {
60 // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed."
61 window.navigator.msSaveBlob(blob, filename);
62 } else {
63 var URL = window.URL || window.webkitURL;
64 var downloadUrl = URL.createObjectURL(blob);
65
66 if (filename) {
67 // use HTML5 a[download] attribute to specify filename
68 var a = document.createElement("a");
69 // safari doesn't support this yet
70 if (typeof a.download === "undefined") {
71 window.location.href = downloadUrl;
72 } else {
73 a.href = downloadUrl;
74 a.download = filename;
75 document.body.appendChild(a);
76 a.click();
77 }
78 } else {
79 window.location.href = downloadUrl;
80 }
81
82 setTimeout(function () {
83 URL.revokeObjectURL(downloadUrl);
84 }, 100);
85 }
86 NitropackUI.triggerToast("success", np_system_report.report_success);
87 } else {
88 NitropackUI.triggerToast("error", np_system_report.report_error);
89 }
90 },
91 error: function () {
92 NitropackUI.triggerToast("error", np_system_report.report_error);
93 },
94 complete: function () {
95 $("#diagnostics-loader").hide();
96 isReportGenerating = false;
97 },
98 });
99 });
100 }
101 loggerToggle() {
102 const radio = $("#minimum-log-level-status"),
103 widget = $("#minimum-log-level-widget"),
104 fancy_radios = widget.find(".fancy-radio"),
105 fancy_radios_container = widget.find(".fancy-radio-container");
106 let minimum_log_level;
107
108 radio.on("change", function () {
109 const self = $(this);
110 if (self.is(":checked")) {
111 minimum_log_level = 3;
112 } else {
113 minimum_log_level = null;
114 }
115 $.post(
116 ajaxurl,
117 {
118 action: "nitropack_set_log_level_ajax",
119 minimum_log_level: minimum_log_level,
120 nonce: np_system_report.nitroNonce,
121 },
122 function (response) {
123 var resp = JSON.parse(response);
124 if (resp.type == "success") {
125 if (self.is(":checked")) {
126 $(".logging").removeClass("hidden");
127 fancy_radios_container.removeClass("selected");
128 fancy_radios.removeClass("selected");
129 widget.find('.fancy-radio-container[data-value="' + minimum_log_level + '"').addClass("selected");
130 widget
131 .find('.fancy-radio-container[data-value="' + minimum_log_level + '"')
132 .find(".fancy-radio")
133 .addClass("selected");
134 } else {
135 fancy_radios.removeClass("selected");
136 $(".logging").addClass("hidden");
137 }
138
139 NitropackUI.triggerToast("success", np_system_report.success_msg);
140 } else {
141 NitropackUI.triggerToast("error", np_system_report.success_msg);
142 $(this).prop("checked", false);
143 }
144 },
145 );
146 });
147 }
148 /* Set logger level */
149 setLoggerLevel() {
150 const widget = $("#minimum-log-level-widget"),
151 fancy_radios_container = widget.find(".fancy-radio-container"),
152 fancy_radios = widget.find(".fancy-radio");
153 let initial_minimum_log_level = widget.find(".fancy-radio-container.selected").data("value");
154
155 fancy_radios_container.click(function () {
156 let fancy_radio_container = $(this),
157 fancy_radio = $(this).find(".fancy-radio"),
158 minimum_log_level = fancy_radio_container.data("value");
159 if (minimum_log_level === initial_minimum_log_level) return;
160
161 $.post(
162 ajaxurl,
163 {
164 action: "nitropack_set_log_level_ajax",
165 minimum_log_level: minimum_log_level,
166 nonce: np_system_report.nitroNonce,
167 },
168 function (response) {
169 var resp = JSON.parse(response);
170 if (resp.type == "success") {
171 //container
172 fancy_radios_container.removeClass("selected");
173 fancy_radio_container.addClass("selected");
174 //custom radios
175 fancy_radios.removeClass("selected");
176 fancy_radio.addClass("selected");
177 initial_minimum_log_level = minimum_log_level;
178 NitropackUI.triggerToast("success", np_system_report.success_msg);
179 } else {
180 NitropackUI.triggerToast("error", np_system_report.success_msg);
181 $(this).prop("checked", false);
182 }
183 },
184 );
185 });
186 }
187 /* Zips all logs and downloads them */
188 archiveLogs() {
189 $(".archive-logs").click(function (e) {
190 e.preventDefault();
191 $.post(
192 ajaxurl,
193 {
194 action: "nitropack_archive_logs_ajax",
195 nonce: np_system_report.nitroNonce,
196 },
197 function (response) {
198 var resp = JSON.parse(response);
199 if (resp.type == "success") {
200 window.location.href = resp.url;
201 NitropackUI.triggerToast("success", np_system_report.success_msg);
202 } else {
203 NitropackUI.triggerToast("error", np_system_report.success_msg);
204 }
205 },
206 );
207 });
208 }
209 }
210 const systemReport = new SystemReport();
211 //window.systemReport = systemReport;
212 });
213