mirror of
https://github.com/pi-hole/web.git
synced 2025-12-25 05:05:33 +00:00
- Dynamically fall back to PHP API functions to ensure API does always repond even if FTL is not runnung for some reason - Update PHP API from current devel branch - Increase flexibility in getQueryTypes API call - Hide top ads list if nothing to display - Proper display of activated privacy mode - Remove spinner (would otherwise not be removed for zero results) - Update tables every 10 seconds - Update query types and forward destinations plots every 10 seconds - More verbose output in top lists (total number next to percentage in tooltip) - Implemented "recentBlocked" keyword for API - Ensure compatibility with PHP5 version < 5.4 - Adjust output format of overTimeData10mins to comply with PHP API - Further speedup of Query Log page by showing only the recent 10 minutes by default - Hide temperature if FTL is not running and show FTL status - Add information to Settings page - Adjust error message when loading of query log failed - Move processing of domainname, clientIP, clientname and time interval filters for the Query Log page to FTL for speed enhancement - Generate link if pi.hole comes up in the Top Domains list - Remove resolve DNS names option - this is now enabled by default (daemon will only do it once per day instead of PHP-API which did it on every reloading of the web interface) - Add socket timeout of 10 seconds + modification to Settings page since FTL backend supports API_EXCLUDE_CLIENTS filtering with both IP addresses and host names (also mixed) - Improved Query Log page
141 lines
4.1 KiB
PHP
141 lines
4.1 KiB
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. -->
|
|
<?php
|
|
require "scripts/pi-hole/php/header.php";
|
|
|
|
// Generate CSRF token
|
|
if(empty($_SESSION['token'])) {
|
|
$_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(32));
|
|
}
|
|
$token = $_SESSION['token'];
|
|
|
|
$showing = "";
|
|
|
|
if(isset($setupVars["API_QUERY_LOG_SHOW"]))
|
|
{
|
|
if($setupVars["API_QUERY_LOG_SHOW"] === "all")
|
|
{
|
|
$showing = "(showing all queries";
|
|
}
|
|
elseif($setupVars["API_QUERY_LOG_SHOW"] === "permittedonly")
|
|
{
|
|
$showing = "(showing permitted queries only";
|
|
}
|
|
elseif($setupVars["API_QUERY_LOG_SHOW"] === "blockedonly")
|
|
{
|
|
$showing = "(showing blocked queries only";
|
|
}
|
|
elseif($setupVars["API_QUERY_LOG_SHOW"] === "nothing")
|
|
{
|
|
$showing = "(showing no queries at all";
|
|
}
|
|
}
|
|
|
|
if(isset($_GET["all"]))
|
|
{
|
|
$showing .= " within the Pi-hole log";
|
|
}
|
|
else if(isset($_GET["client"]))
|
|
{
|
|
$showing .= " for client ".htmlentities($_GET["client"]);
|
|
}
|
|
else if(isset($_GET["domain"]))
|
|
{
|
|
$showing .= " for domain ".htmlentities($_GET["domain"]);
|
|
}
|
|
else if(isset($_GET["from"]) && isset($_GET["until"]))
|
|
{
|
|
$showing .= " within limited time interval";
|
|
}
|
|
else
|
|
{
|
|
$showing .= " within recent 10 minutes, <a href=\"?all\">show all</a>";
|
|
}
|
|
|
|
if(isset($setupVars["API_PRIVACY_MODE"]))
|
|
{
|
|
if($setupVars["API_PRIVACY_MODE"])
|
|
{
|
|
// Overwrite string from above
|
|
$showing .= ", privacy mode enabled";
|
|
}
|
|
}
|
|
$showing .= ")";
|
|
?>
|
|
<!-- Send PHP info to JS -->
|
|
<div id="token" hidden><?php echo $token ?></div>
|
|
|
|
|
|
<!--
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<button class="btn btn-info margin-bottom pull-right">Refresh Data</button>
|
|
</div>
|
|
</div>
|
|
-->
|
|
|
|
<!-- Alerts -->
|
|
<div id="alInfo" class="alert alert-info alert-dismissible fade in" role="alert" hidden="true">
|
|
<button type="button" class="close" data-hide="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
Adding <span id="alDomain"></span> to the <span id="alList"></span>...
|
|
</div>
|
|
<div id="alSuccess" class="alert alert-success alert-dismissible fade in" role="alert" hidden="true">
|
|
<button type="button" class="close" data-hide="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
Success!
|
|
</div>
|
|
<div id="alFailure" class="alert alert-danger alert-dismissible fade in" role="alert" hidden="true">
|
|
<button type="button" class="close" data-hide="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
Failure! Something went wrong.<span id="err"></span>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="box" id="recent-queries">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">Recent Queries <?php echo $showing; ?></h3>
|
|
</div>
|
|
<!-- /.box-header -->
|
|
<div class="box-body">
|
|
<div class="table-responsive">
|
|
<table id="all-queries" class="display table table-striped table-bordered" cellspacing="0" width="100%">
|
|
<thead>
|
|
<tr>
|
|
<th>Time</th>
|
|
<th>Type</th>
|
|
<th>Domain</th>
|
|
<th>Client</th>
|
|
<th>Status</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tfoot>
|
|
<tr>
|
|
<th>Time</th>
|
|
<th>Type</th>
|
|
<th>Domain</th>
|
|
<th>Client</th>
|
|
<th>Status</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<!-- /.box-body -->
|
|
</div>
|
|
<!-- /.box -->
|
|
</div>
|
|
</div>
|
|
<!-- /.row -->
|
|
|
|
<?php
|
|
require "scripts/pi-hole/php/footer.php";
|
|
?>
|
|
|
|
<script src="scripts/vendor/moment.min.js"></script>
|
|
<script src="scripts/pi-hole/js/queries.js"></script>
|