More codacy fixes (#256)

* single quotes to double

* Avoid variables with short names like $a. Configured minimum length is 3.

* list_type > listType https://www.codacy.com/app/Pi-hole/AdminLTE/file/4753758893/issues/source?bid=3919163&fileBranchId=3919163#l30

* define `refresh` before it is used

* single to double quotes

* EsLint expects `{}` after `if`

* singlequotes to doublequotes

* https://www.codacy.com/app/Pi-hole/AdminLTE/file/4753758894/issues/source?bid=3919163&fileBranchId=3919163#l49

* Copy filterArray Function from api.php

* missed a single-quote

* single>double

* `===`, `==`

* single to double

* Usages come AFTER declarations

* missing semi

* function delcaration order change

* more codacy complaints
This commit is contained in:
Adam Warner
2016-12-16 13:52:51 +00:00
committed by GitHub
parent ff5fbfa4bd
commit ee41a78bdd
6 changed files with 185 additions and 170 deletions

14
api.php
View File

@@ -80,16 +80,16 @@
$data = array_merge($data, getGravityDomains($gravity));
}
function filterArray(&$a) {
$sanArray = array();
foreach ($a as $k=>$v) {
if (is_array($v)) {
$sanArray[htmlspecialchars($k)] = filterArray($v);
function filterArray(&$inArray) {
$outArray = array();
foreach ($inArray as $key=>$value) {
if (is_array($value)) {
$outArray[htmlspecialchars($key)] = filterArray($value);
} else {
$sanArray[htmlspecialchars($k)] = htmlspecialchars($v);
$outArray[htmlspecialchars($key)] = htmlspecialchars($value);
}
}
return $sanArray;
return $outArray;
}
$data = filterArray($data);

View File

@@ -79,14 +79,14 @@ function versionCompare(left, right) {
$.getJSON("https://api.github.com/repos/pi-hole/pi-hole/releases/latest", function(json) {
if(versionCompare(piholeVersion, json.tag_name.slice(1)) < 0) {
// Alert user
$("#piholeVersion").html($("#piholeVersion").text() + '<a class="alert-link" href="https://github.com/pi-hole/pi-hole/releases">(Update available!)</a>');
$("#piholeVersion").html($("#piholeVersion").text() + "<a class=\"alert-link\" href=\"https://github.com/pi-hole/pi-hole/releases\">(Update available!)</a>");
$("#alPiholeUpdate").show();
}
});
$.getJSON("https://api.github.com/repos/pi-hole/AdminLTE/releases/latest", function(json) {
if(versionCompare(webVersion, json.tag_name.slice(1)) < 0) {
// Alert user
$("#webVersion").html($("#webVersion").text() + '<a class="alert-link" href="https://github.com/pi-hole/adminLTE/releases">(Update available!)</a>');
$("#webVersion").html($("#webVersion").text() + "<a class=\"alert-link\" href=\"https://github.com/pi-hole/adminLTE/releases\">(Update available!)</a>");
$("#alWebUpdate").show();
}
});

View File

@@ -42,7 +42,7 @@ function updateSummaryData(runOnce) {
var textData = idx === 3 ? data[header] + "%" : data[header];
$("h3#" + header).text(textData);
});
$("h3.statistic.glow").removeClass("glow")
$("h3.statistic.glow").removeClass("glow");
}, 500);
updateSessionTimer();
@@ -76,7 +76,7 @@ function updateQueriesOverTime() {
timeLineChart.data.datasets[1].data.push(data.ads_over_time[1][hour]);
}
}
$('#queries-over-time .overlay').remove();
$("#queries-over-time .overlay").remove();
timeLineChart.update();
}).done(function() {
// Reload graph after 10 minutes
@@ -109,7 +109,7 @@ function updateQueryTypes() {
var dd = {data: v, backgroundColor: c};
// and push it at once
queryTypeChart.data.datasets.push(dd);
$('#query-types .overlay').remove();
$("#query-types .overlay").remove();
queryTypeChart.update();
queryTypeChart.chart.config.options.cutoutPercentage=30;
queryTypeChart.update();
@@ -131,20 +131,24 @@ function escapeHtml(text) {
function updateTopClientsChart() {
$.getJSON("api.php?summaryRaw&getQuerySources", function(data) {
var clienttable = $('#client-frequency').find('tbody:last');
var clienttable = $("#client-frequency").find("tbody:last");
var domain, percentage;
for (domain in data.top_sources) {
// Sanitize domain
domain = escapeHtml(domain);
var url = "<a href=\"queries.php?client="+domain+"\">"+domain+"</a>";
percentage = data.top_sources[domain] / data.dns_queries_today * 100;
clienttable.append("<tr> <td>" + url +
"</td> <td>" + data.top_sources[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-blue\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
if ({}.hasOwnProperty.call(data.top_sources, domain)){
// Sanitize domain
domain = escapeHtml(domain);
var url = "<a href=\"queries.php?client="+domain+"\">"+domain+"</a>";
percentage = data.top_sources[domain] / data.dns_queries_today * 100;
clienttable.append("<tr> <td>" + url +
"</td> <td>" + data.top_sources[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-blue\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
}
}
$('#client-frequency .overlay').remove();
$("#client-frequency .overlay").remove();
});
}
@@ -164,7 +168,7 @@ function updateForwardDestinations() {
var dd = {data: v, backgroundColor: c};
// and push it at once
forwardDestinationChart.data.datasets.push(dd);
$('#forward-destinations .overlay').remove();
$("#forward-destinations .overlay").remove();
forwardDestinationChart.update();
forwardDestinationChart.chart.config.options.cutoutPercentage=30;
forwardDestinationChart.update();
@@ -173,34 +177,39 @@ function updateForwardDestinations() {
function updateTopLists() {
$.getJSON("api.php?summaryRaw&topItems", function(data) {
var domaintable = $('#domain-frequency').find('tbody:last');
var adtable = $('#ad-frequency').find('tbody:last');
var domaintable = $("#domain-frequency").find("tbody:last");
var adtable = $("#ad-frequency").find("tbody:last");
var url, domain, percentage;
for (domain in data.top_queries) {
// Sanitize domain
domain = escapeHtml(domain);
if(domain !== "pi.hole")
{
url = "<a href=\"queries.php?domain="+domain+"\">"+domain+"</a>";
if ({}.hasOwnProperty.call(data.top_queries,domain)){
// Sanitize domain
domain = escapeHtml(domain);
if(domain !== "pi.hole")
{
url = "<a href=\"queries.php?domain="+domain+"\">"+domain+"</a>";
}
else
{
url = domain;
}
percentage = data.top_queries[domain] / data.dns_queries_today * 100;
domaintable.append("<tr> <td>" + url +
"</td> <td>" + data.top_queries[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-green\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
}
else
{
url = domain;
}
percentage = data.top_queries[domain] / data.dns_queries_today * 100;
domaintable.append("<tr> <td>" + url +
"</td> <td>" + data.top_queries[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-green\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
}
for (domain in data.top_ads) {
// Sanitize domain
domain = escapeHtml(domain);
url = "<a href=\"queries.php?domain="+domain+"\">"+domain+"</a>";
percentage = data.top_ads[domain] / data.ads_blocked_today * 100;
adtable.append("<tr> <td>" + url +
"</td> <td>" + data.top_ads[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-yellow\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
if ({}.hasOwnProperty.call(data.top_ads,domain)){
// Sanitize domain
domain = escapeHtml(domain);
url = "<a href=\"queries.php?domain="+domain+"\">"+domain+"</a>";
percentage = data.top_ads[domain] / data.ads_blocked_today * 100;
adtable.append("<tr> <td>" + url +
"</td> <td>" + data.top_ads[domain] + "</td> <td> <div class=\"progress progress-sm\" title=\""+percentage.toFixed(1)+"%\"> <div class=\"progress-bar progress-bar-yellow\" style=\"width: " +
percentage + "%\"></div> </div> </td> </tr> ");
}
}
$("#domain-frequency .overlay").remove();

View File

@@ -1,35 +1,29 @@
// IE likes to cache too much :P
$.ajaxSetup({cache: false});
// Handle enter button for adding domains
$(document).keypress(function(e) {
if(e.which === 13 && $("#domain").is(":focus")) {
// Enter was pressed, and the input has focus
add();
}
});
// Handle buttons
$("#btnAdd").on("click", function() {
add();
});
$("#btnRefresh").on("click", function() {
refresh(true);
});
// Handle hiding of alerts
$(function(){
$("[data-hide]").on("click", function(){
$(this).closest("." + $(this).attr("data-hide")).hide();
});
});
// Get PHP info
var token = $("#token").html();
var list_type = $("#list-type").html();
var fullName = list_type === "white" ? "Whitelist" : "Blacklist";
var listType = $("#list-type").html();
var fullName = listType === "white" ? "Whitelist" : "Blacklist";
window.onload = refresh(false);
function sub(index, entry) {
var domain = $("#"+index);
domain.hide("highlight");
$.ajax({
url: "php/sub.php",
method: "post",
data: {"domain":entry, "list":listType, "token":token},
success: function(response) {
if(response.length !== 0){
return;
}
domain.remove();
},
error: function(jqXHR, exception) {
alert("Failed to remove the domain!");
}
});
}
function refresh(fade) {
var list = $("#list");
@@ -39,25 +33,25 @@ function refresh(fade) {
$.ajax({
url: "php/get.php",
method: "get",
data: {"list":list_type},
data: {"list":listType},
success: function(response) {
list.html("");
var data = JSON.parse(response);
if(data.length === 0) {
list.html('<div class="alert alert-info" role="alert">Your ' + fullName + ' is empty!</div>');
list.html("<div class=\"alert alert-info\" role=\"alert\">Your " + fullName + " is empty!</div>");
}
else {
data.forEach(function (entry, index) {
list.append(
'<li id="' + index + '" class="list-group-item clearfix">' + entry +
'<button class="btn btn-danger btn-xs pull-right" type="button">' +
'<span class="glyphicon glyphicon-trash"></span></button></li>'
"<li id=\"" + index + "\" class=\"list-group-item clearfix\">" + entry +
"<button class=\"btn btn-danger btn-xs pull-right\" type=\"button\">" +
"<span class=\"glyphicon glyphicon-trash\"></span></button></li>"
);
// Handle button
$("#list #"+index+"").on("click", "button", function() {
sub(index, entry)
sub(index, entry);
});
});
}
@@ -69,10 +63,13 @@ function refresh(fade) {
});
}
window.onload = refresh(false);
function add() {
var domain = $("#domain");
if(domain.val().length === 0)
if(domain.val().length === 0){
return;
}
var alInfo = $("#alInfo");
var alSuccess = $("#alSuccess");
@@ -83,7 +80,7 @@ function add() {
$.ajax({
url: "php/add.php",
method: "post",
data: {"domain":domain.val(), "list":list_type, "token":token},
data: {"domain":domain.val(), "list":listType, "token":token},
success: function(response) {
if (response.indexOf("not a valid argument") >= 0 ||
response.indexOf("is not a valid domain") >= 0) {
@@ -118,20 +115,27 @@ function add() {
});
}
function sub(index, entry) {
var domain = $("#"+index);
domain.hide("highlight");
$.ajax({
url: "php/sub.php",
method: "post",
data: {"domain":entry, "list":list_type, "token":token},
success: function(response) {
if(response.length !== 0)
return;
domain.remove();
},
error: function(jqXHR, exception) {
alert("Failed to remove the domain!");
}
// Handle enter button for adding domains
$(document).keypress(function(e) {
if(e.which === 13 && $("#domain").is(":focus")) {
// Enter was pressed, and the input has focus
add();
}
});
// Handle buttons
$("#btnAdd").on("click", function() {
add();
});
$("#btnRefresh").on("click", function() {
refresh(true);
});
// Handle hiding of alerts
$(function(){
$("[data-hide]").on("click", function(){
$(this).closest("." + $(this).attr("data-hide")).hide();
});
}
});

View File

@@ -9,16 +9,77 @@ function escapeRegex(text) {
return text.replace(/[().]/g, function(m) { return map[m]; });
}
function refreshData() {
tableApi.ajax.url("api.php?getAllQueries").load();
// updateSessionTimer();
}
function add(domain,list) {
var token = $("#token").html();
var alInfo = $("#alInfo");
var alList = $("#alList");
var alDomain = $("#alDomain");
alDomain.html(domain);
var alSuccess = $("#alSuccess");
var alFailure = $("#alFailure");
if(list === "white")
{
alList.html("Whitelist");
}
else
{
alList.html("Blacklist");
}
alInfo.show();
alSuccess.hide();
alFailure.hide();
$.ajax({
url: "php/add.php",
method: "post",
data: {"domain":domain, "list":list, "token":token},
success: function(response) {
if (response.indexOf("not a valid argument") >= 0 || response.indexOf("is not a valid domain") >= 0)
{
alFailure.show();
alFailure.delay(1000).fadeOut(2000, function() { alFailure.hide(); });
}
else
{
alSuccess.show();
alSuccess.delay(1000).fadeOut(2000, function() { alSuccess.hide(); });
}
alInfo.delay(1000).fadeOut(2000, function() {
alInfo.hide();
alList.html("");
alDomain.html("");
});
},
error: function(jqXHR, exception) {
alFailure.show();
alFailure.delay(1000).fadeOut(2000, function() {
alFailure.hide();
});
alInfo.delay(1000).fadeOut(2000, function() {
alInfo.hide();
alList.html("");
alDomain.html("");
});
}
});
}
$(document).ready(function() {
tableApi = $('#all-queries').DataTable( {
tableApi = $("#all-queries").DataTable( {
"rowCallback": function( row, data, index ){
if (data[4] == "Pi-holed") {
$(row).css('color','red');
$('td:eq(5)', row).html( '<button style="color:green;"><i class="fa fa-pencil-square-o"></i> Whitelist</button>' );
if (data[4] === "Pi-holed") {
$(row).css("color","red");
$("td:eq(5)", row).html( "<button style=\"color:green;\"><i class=\"fa fa-pencil-square-o\"></i> Whitelist</button>" );
}
else{
$(row).css('color','green');
$('td:eq(5)', row).html( '<button style="color:red;"><i class="fa fa-ban"></i> Blacklist</button>' );
$(row).css("color","green");
$("td:eq(5)", row).html( "<button style=\"color:red;\"><i class=\"fa fa-ban\"></i> Blacklist</button>" );
}
},
@@ -41,12 +102,12 @@ $(document).ready(function() {
"columnDefs": [ {
"targets": -1,
"data": null,
"defaultContent": ''
"defaultContent": ""
} ]
});
$('#all-queries tbody').on( 'click', 'button', function () {
var data = tableApi.row( $(this).parents('tr') ).data();
if (data[4] == "Pi-holed")
$("#all-queries tbody").on( "click", "button", function () {
var data = tableApi.row( $(this).parents("tr") ).data();
if (data[4] === "Pi-holed")
{
add(data[2],"white");
}
@@ -74,63 +135,4 @@ $(document).ready(function() {
}
} );
function refreshData() {
tableApi.ajax.url("api.php?getAllQueries").load();
// updateSessionTimer();
}
function add(domain,list) {
var token = $("#token").html();
var alInfo = $("#alInfo");
var alList = $("#alList");
var alDomain = $("#alDomain");
alDomain.html(domain);
var alSuccess = $("#alSuccess");
var alFailure = $("#alFailure");
if(list == "white")
{
alList.html("Whitelist");
}
else
{
alList.html("Blacklist");
}
alInfo.show();
alSuccess.hide();
alFailure.hide();
$.ajax({
url: "php/add.php",
method: "post",
data: {"domain":domain, "list":list, "token":token},
success: function(response) {
if (response.indexOf("not a valid argument") >= 0 || response.indexOf("is not a valid domain") >= 0)
{
alFailure.show();
alFailure.delay(1000).fadeOut(2000, function() { alFailure.hide(); });
}
else
{
alSuccess.show();
alSuccess.delay(1000).fadeOut(2000, function() { alSuccess.hide(); });
}
alInfo.delay(1000).fadeOut(2000, function() {
alInfo.hide();
alList.html("");
alDomain.html("");
});
},
error: function(jqXHR, exception) {
alFailure.show();
alFailure.delay(1000).fadeOut(2000, function() {
alFailure.hide();
});
alInfo.delay(1000).fadeOut(2000, function() {
alInfo.hide();
alList.html("");
alDomain.html("");
});
}
});
}

View File

@@ -16,16 +16,16 @@ for($i = sizeof($list)-1; $i >= 0; $i--) {
unset($list[$i]);
}
function filterArray(&$a) {
$sanArray = array();
foreach ($a as $k=>$v) {
if (is_array($v)) {
$sanArray[htmlspecialchars($k)] = filterArray($v);
function filterArray(&$inArray) {
$outArray = array();
foreach ($inArray as $key=>$value) {
if (is_array($value)) {
$outArray[htmlspecialchars($key)] = filterArray($value);
} else {
$sanArray[htmlspecialchars($k)] = htmlspecialchars($v);
$outArray[htmlspecialchars($key)] = htmlspecialchars($value);
}
}
return $sanArray;
return $outArray;
}
// Protect against XSS attacks