mirror of
https://github.com/pi-hole/web.git
synced 2024-12-06 19:36:21 +01:00
Merge pull request #2259 from pi-hole/tweak/debug
Add the new "integrity check" option to debug log page
This commit is contained in:
@@ -1,20 +1,37 @@
|
||||
<?php /*
|
||||
<?php
|
||||
/*
|
||||
* Pi-hole: A black hole for Internet advertisements
|
||||
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
||||
* Network-wide ad blocking via your own hardware.
|
||||
*
|
||||
* This file is copyright under the latest version of the EUPL.
|
||||
* Please see LICENSE file for your rights under this license. */
|
||||
require "scripts/pi-hole/php/header.php";
|
||||
* Please see LICENSE file for your rights under this license.
|
||||
*/
|
||||
|
||||
require "scripts/pi-hole/php/header.php";
|
||||
?>
|
||||
<!-- Title -->
|
||||
<div class="page-header">
|
||||
<h1>Generate debug log</h1>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" id="upload">
|
||||
<label for="upload">Upload debug log and provide token (shown at the end of the report) once finished</label>
|
||||
<div class="box">
|
||||
<div class="box-header with-border"><h1 class="box-title">Options:</h1></div>
|
||||
<div class="box-body">
|
||||
<div>
|
||||
<input type="checkbox" id="dbcheck">
|
||||
<label for="dbcheck"><strong>Execute database integrity check.</strong>
|
||||
<br class="hidden-md hidden-lg"><span class="text-red">This can add several minutes to debug log time.</span>
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" id="upload">
|
||||
<label for="upload"><strong>Upload debug log and provide Debug Token.</strong>
|
||||
<br class="hidden-md hidden-lg"><span>The URL token will be shown at the end of the report, once finished.</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<p>Once you click this button a debug log will be generated and can automatically be uploaded if we detect a working internet connection.</p>
|
||||
<button type="button" id="debugBtn" class="btn btn-lg btn-primary btn-block">Generate debug log</button>
|
||||
<pre id="output" style="width: 100%; height: 100%;" hidden></pre>
|
||||
|
||||
@@ -8,18 +8,25 @@
|
||||
function eventsource() {
|
||||
var ta = $("#output");
|
||||
var upload = $("#upload");
|
||||
var dbcheck = $("#dbcheck");
|
||||
var checked = "";
|
||||
var token = encodeURIComponent($("#token").text());
|
||||
|
||||
if (upload.prop("checked")) {
|
||||
checked = "upload";
|
||||
// add upload option
|
||||
checked += "&upload";
|
||||
}
|
||||
|
||||
if (dbcheck.prop("checked")) {
|
||||
// add db integrity check option
|
||||
checked += "&dbcheck";
|
||||
}
|
||||
|
||||
// IE does not support EventSource - load whole content at once
|
||||
if (typeof EventSource !== "function") {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "scripts/pi-hole/php/debug.php?IE&token=" + token + "&" + checked,
|
||||
url: "scripts/pi-hole/php/debug.php?IE&token=" + token + checked,
|
||||
async: false,
|
||||
}).done(function (data) {
|
||||
ta.show();
|
||||
@@ -29,7 +36,7 @@ function eventsource() {
|
||||
return;
|
||||
}
|
||||
|
||||
var source = new EventSource("scripts/pi-hole/php/debug.php?&token=" + token + "&" + checked);
|
||||
var source = new EventSource("scripts/pi-hole/php/debug.php?&token=" + token + checked);
|
||||
|
||||
// Reset and show field
|
||||
ta.empty();
|
||||
@@ -60,6 +67,7 @@ function eventsource() {
|
||||
$("#debugBtn").on("click", function () {
|
||||
$("#debugBtn").prop("disabled", true);
|
||||
$("#upload").prop("disabled", true);
|
||||
$("#dbcheck").prop("disabled", true);
|
||||
$("#output").addClass("loading");
|
||||
eventsource();
|
||||
});
|
||||
|
||||
@@ -49,12 +49,21 @@ function echoEvent($datatext) {
|
||||
}
|
||||
}
|
||||
|
||||
// Execute "pihole" using Web option
|
||||
$command = "export TERM=dumb && sudo pihole -d -w";
|
||||
|
||||
// Add auto-upload option
|
||||
if (isset($_GET["upload"])) {
|
||||
$proc = popen("export TERM=dumb && sudo pihole -d -a -w", "r");
|
||||
} else {
|
||||
$proc = popen("export TERM=dumb && sudo pihole -d -w", "r");
|
||||
$command .= " -a";
|
||||
}
|
||||
|
||||
// Execute database integrity_check
|
||||
if (isset($_GET["dbcheck"])) {
|
||||
$command .= " -c";
|
||||
}
|
||||
|
||||
$proc = popen($command, "r");
|
||||
|
||||
while (!feof($proc)) {
|
||||
echoEvent(fread($proc, 4096));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user