Merge pull request #455 from pi-hole/tweak/noFTL

Tweaks for when FTL is not running
This commit is contained in:
DL6ER
2017-03-24 21:04:37 +01:00
committed by GitHub
3 changed files with 112 additions and 41 deletions
+10 -3
View File
@@ -62,13 +62,20 @@ elseif (isset($_GET['disable']) && $auth)
}
// Other API functions
if(testFTL() && !isset($_GET["PHP"]))
if(!testFTL() && !isset($_GET["PHP"]))
{
require("api_FTL.php");
$data = array_merge($data, array("FTLnotrunning" => true));
}
else
{
require("api_PHP.php");
if(!isset($_GET["PHP"]))
{
require("api_FTL.php");
}
else
{
require("api_PHP.php");
}
}
if(isset($_GET["jsonForceObject"]))
+101 -37
View File
@@ -29,39 +29,15 @@ function objectToArray(p){
// Functions to update data in page
function updateSummaryData(runOnce) {
var setTimer = function(timeInSeconds) {
if (!runOnce) {
setTimeout(updateSummaryData, timeInSeconds * 1000);
}
};
$.getJSON("api.php?summary", function LoadSummaryData(data) {
["ads_blocked_today", "dns_queries_today", "ads_percentage_today"].forEach(function(today) {
var todayElement = $("h3#" + today);
todayElement.text() !== data[today] && todayElement.addClass("glow");
});
window.setTimeout(function() {
["ads_blocked_today", "dns_queries_today", "domains_being_blocked", "ads_percentage_today"].forEach(function(header, idx) {
var textData = idx === 3 ? data[header] + "%" : data[header];
$("h3#" + header).text(textData);
});
$("h3.statistic.glow").removeClass("glow");
}, 500);
updateSessionTimer();
}).done(function() {
setTimer(10);
}).fail(function() {
setTimer(300);
});
}
var failures = 0;
function updateQueriesOverTime() {
$.getJSON("api.php?overTimeData10mins", function(data) {
if("FTLnotrunning" in data)
{
return;
}
// convert received objects to arrays
data.domains_over_time = objectToArray(data.domains_over_time);
data.ads_over_time = objectToArray(data.ads_over_time);
@@ -93,7 +69,7 @@ function updateQueriesOverTime() {
timeLineChart.data.datasets[1].data.push(data.ads_over_time[1][hour]);
}
}
$("#queries-over-time .overlay").remove();
$("#queries-over-time .overlay").hide();
timeLineChart.update();
}).done(function() {
// Reload graph after 10 minutes
@@ -112,6 +88,12 @@ function updateQueriesOverTime() {
function updateForwardedOverTime() {
$.getJSON("api.php?overTimeDataForwards&getForwardDestinationNames", function(data) {
if("FTLnotrunning" in data)
{
return;
}
// convert received objects to arrays
data.over_time = objectToArray(data.over_time);
var timestamps = data.over_time[0];
@@ -177,7 +159,7 @@ function updateForwardedOverTime() {
var d = new Date(1000*parseInt(timestamps[j]));
forwardDestinationChart.data.labels.push(d);
}
$("#forward-destinations .overlay").remove();
$("#forward-destinations .overlay").hide();
forwardDestinationChart.update();
}).done(function() {
// Reload graph after 10 minutes
@@ -196,6 +178,12 @@ function updateForwardedOverTime() {
function updateQueryTypes() {
$.getJSON("api.php?getQueryTypes", function(data) {
if("FTLnotrunning" in data)
{
return;
}
var colors = [];
// Get colors from AdminLTE
$.each($.AdminLTE.options.colors, function(key, value) { colors.push(value); });
@@ -219,7 +207,7 @@ function updateQueryTypes() {
// and push it at once
queryTypeChart.data.datasets[0] = dd;
queryTypeChart.data.labels = k;
$("#query-types .overlay").remove();
$("#query-types .overlay").hide();
queryTypeChart.update();
queryTypeChart.chart.config.options.cutoutPercentage=50;
queryTypeChart.update();
@@ -245,6 +233,12 @@ function escapeHtml(text) {
function updateTopClientsChart() {
$.getJSON("api.php?summaryRaw&getQuerySources", function(data) {
if("FTLnotrunning" in data)
{
return;
}
// Clear tables before filling them with data
$("#client-frequency td").parent().remove();
var clienttable = $("#client-frequency").find("tbody:last");
@@ -275,14 +269,20 @@ function updateTopClientsChart() {
}
$("#client-frequency .overlay").remove();
// Update top clients list data every 10 seconds
$("#client-frequency .overlay").hide();
// Update top clients list data every ten seconds
setTimeout(updateTopClientsChart, 10000);
});
}
function updateTopLists() {
$.getJSON("api.php?summaryRaw&topItems", function(data) {
if("FTLnotrunning" in data)
{
return;
}
// Clear tables before filling them with data
$("#domain-frequency td").parent().remove();
$("#ad-frequency td").parent().remove();
@@ -325,13 +325,77 @@ function updateTopLists() {
$("#ad-frequency").parent().remove();
}
$("#domain-frequency .overlay").remove();
$("#ad-frequency .overlay").remove();
$("#domain-frequency .overlay").hide();
$("#ad-frequency .overlay").hide();
// Update top lists data every 10 seconds
setTimeout(updateTopLists, 10000);
});
}
var FTLoffline = false;
function updateSummaryData(runOnce) {
var setTimer = function(timeInSeconds) {
if (!runOnce) {
setTimeout(updateSummaryData, timeInSeconds * 1000);
}
};
$.getJSON("api.php?summary", function LoadSummaryData(data) {
updateSessionTimer();
if("FTLnotrunning" in data)
{
data["ads_blocked_today"] = "Lost";
data["dns_queries_today"] = "connection";
data["ads_percentage_today"] = "to";
data["domains_being_blocked"] = "API";
// Adjust text
$("#temperature").html("<i class=\"fa fa-circle\" style=\"color:#FF0000\"></i> FTL offline");
// Show spinner
$("#queries-over-time .overlay").show();
$("#forward-destinations .overlay").show();
$("#query-types .overlay").show();
$("#client-frequency .overlay").show();
$("#domain-frequency .overlay").show();
$("#ad-frequency .overlay").show();
FTLoffline = true;
}
else
{
if(FTLoffline)
{
// FTL was previously offline
FTLoffline = false;
$("#temperature").text(" ");
updateQueriesOverTime();
updateForwardedOverTime();
updateQueryTypes();
updateTopClientsChart();
updateTopLists();
}
}
["ads_blocked_today", "dns_queries_today", "ads_percentage_today"].forEach(function(today) {
var todayElement = $("h3#" + today);
todayElement.text() !== data[today] && todayElement.addClass("glow");
});
window.setTimeout(function() {
["ads_blocked_today", "dns_queries_today", "domains_being_blocked", "ads_percentage_today"].forEach(function(header, idx) {
var textData = (idx === 3 && data[header] !== "to") ? data[header] + "%" : data[header];
$("h3#" + header).text(textData);
});
$("h3.statistic.glow").removeClass("glow");
}, 500);
}).done(function() {
setTimer(1);
}).fail(function() {
setTimer(300);
});
}
$(document).ready(function() {
var isMobile = {
+1 -1
View File
@@ -323,7 +323,7 @@
}
else
{
echo '<a><i class="fa fa-circle" style="color:#FF0000"></i> FTL offline</a>';
echo '<a id=\"temperature\"><i class="fa fa-circle" style="color:#FF0000"></i> FTL offline</a>';
}
?>
<br/>