Format JS code

Signed-off-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
XhmikosR
2019-12-16 13:37:34 +02:00
parent 3321fa8067
commit 704c352277
21 changed files with 3536 additions and 3388 deletions

View File

@@ -1,254 +1,261 @@
/* 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. */
* (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. */
$(function () {
$("[data-static]").on("click", function(){
var row = $(this).closest("tr");
var mac = row.find("#MAC").text();
var ip = row.find("#IP").text();
var host = row.find("#HOST").text();
$("input[name=\"AddHostname\"]").val(host);
$("input[name=\"AddIP\"]").val(ip);
$("input[name=\"AddMAC\"]").val(mac);
});
$(function() {
$("[data-static]").on("click", function() {
var row = $(this).closest("tr");
var mac = row.find("#MAC").text();
var ip = row.find("#IP").text();
var host = row.find("#HOST").text();
$('input[name="AddHostname"]').val(host);
$('input[name="AddIP"]').val(ip);
$('input[name="AddMAC"]').val(mac);
});
});
$(".confirm-poweroff").confirm({
text: "Are you sure you want to send a poweroff command to your Pi-Hole?",
title: "Confirmation required",
confirm: function() {
$("#poweroffform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, poweroff",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg" // Bootstrap classes for mid-size modal
text: "Are you sure you want to send a poweroff command to your Pi-Hole?",
title: "Confirmation required",
confirm: function() {
$("#poweroffform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, poweroff",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg" // Bootstrap classes for mid-size modal
});
$(".confirm-reboot").confirm({
text: "Are you sure you want to send a reboot command to your Pi-Hole?",
title: "Confirmation required",
confirm: function() {
$("#rebootform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, reboot",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg" // Bootstrap classes for mid-size modal
text: "Are you sure you want to send a reboot command to your Pi-Hole?",
title: "Confirmation required",
confirm: function() {
$("#rebootform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, reboot",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg" // Bootstrap classes for mid-size modal
});
$(".confirm-restartdns").confirm({
text: "Are you sure you want to send a restart command to your DNS server?",
title: "Confirmation required",
confirm: function() {
$("#restartdnsform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, restart DNS",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
text: "Are you sure you want to send a restart command to your DNS server?",
title: "Confirmation required",
confirm: function() {
$("#restartdnsform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, restart DNS",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
});
$(".confirm-flushlogs").confirm({
text: "Are you sure you want to flush your logs?",
title: "Confirmation required",
confirm: function() {
$("#flushlogsform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, flush logs",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
text: "Are you sure you want to flush your logs?",
title: "Confirmation required",
confirm: function() {
$("#flushlogsform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, flush logs",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
});
$(".confirm-flusharp").confirm({
text: "Are you sure you want to flush your network table?",
title: "Confirmation required",
confirm: function() {
$("#flusharpform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, flush my network table",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
text: "Are you sure you want to flush your network table?",
title: "Confirmation required",
confirm: function() {
$("#flusharpform").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, flush my network table",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
});
$(".confirm-disablelogging-noflush").confirm({
text: "Are you sure you want to disable logging?",
title: "Confirmation required",
confirm: function() {
$("#disablelogsform-noflush").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, disable logs",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
text: "Are you sure you want to disable logging?",
title: "Confirmation required",
confirm: function() {
$("#disablelogsform-noflush").submit();
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, disable logs",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-warning",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
});
$(".api-token").confirm({
text: "Make sure that nobody else can scan this code around you. They will have full access to the API without having to know the password. Note that the generation of the QR code will take some time.",
title: "Confirmation required",
confirm: function() {
window.open("scripts/pi-hole/php/api_token.php");
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, show API token",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
text:
"Make sure that nobody else can scan this code around you. They will have full access to the API without having to know the password. Note that the generation of the QR code will take some time.",
title: "Confirmation required",
confirm: function() {
window.open("scripts/pi-hole/php/api_token.php");
},
cancel: function() {
// nothing to do
},
confirmButton: "Yes, show API token",
cancelButton: "No, go back",
post: true,
confirmButtonClass: "btn-danger",
cancelButtonClass: "btn-success",
dialogClass: "modal-dialog modal-mg"
});
$("#DHCPchk").click(function() {
$("input.DHCPgroup").prop("disabled", !this.checked);
$("#dhcpnotice").prop("hidden", !this.checked).addClass("lookatme");
$("input.DHCPgroup").prop("disabled", !this.checked);
$("#dhcpnotice")
.prop("hidden", !this.checked)
.addClass("lookatme");
});
function loadCacheInfo()
{
$.getJSON("api.php?getCacheInfo", function(data) {
if("FTLnotrunning" in data)
{
return;
}
function loadCacheInfo() {
$.getJSON("api.php?getCacheInfo", function(data) {
if ("FTLnotrunning" in data) {
return;
}
// Fill table with obtained values
$("#cache-size").text(parseInt(data.cacheinfo["cache-size"]));
$("#cache-inserted").text(parseInt(data.cacheinfo["cache-inserted"]));
// Fill table with obtained values
$("#cache-size").text(parseInt(data.cacheinfo["cache-size"]));
$("#cache-inserted").text(parseInt(data.cacheinfo["cache-inserted"]));
// Highlight early cache removals when present
var cachelivefreed = parseInt(data.cacheinfo["cache-live-freed"]);
$("#cache-live-freed").text(cachelivefreed);
if(cachelivefreed > 0)
{
$("#cache-live-freed").parent("tr").addClass("lookatme");
}
else
{
$("#cache-live-freed").parent("tr").removeClass("lookatme");
}
// Highlight early cache removals when present
var cachelivefreed = parseInt(data.cacheinfo["cache-live-freed"]);
$("#cache-live-freed").text(cachelivefreed);
if (cachelivefreed > 0) {
$("#cache-live-freed")
.parent("tr")
.addClass("lookatme");
} else {
$("#cache-live-freed")
.parent("tr")
.removeClass("lookatme");
}
// Update cache info every 10 seconds
setTimeout(loadCacheInfo, 10000);
});
// Update cache info every 10 seconds
setTimeout(loadCacheInfo, 10000);
});
}
var leasetable, staticleasetable;
$(document).ready(function() {
if(document.getElementById("DHCPLeasesTable"))
{
leasetable = $("#DHCPLeasesTable").DataTable({
dom: "<'row'<'col-sm-12'tr>><'row'<'col-sm-6'i><'col-sm-6'f>>",
"columnDefs": [ { "bSortable": false, "orderable": false, targets: -1} ],
"paging": false,
"scrollCollapse": true,
"scrollY": "200px",
"scrollX" : true
});
}
if(document.getElementById("DHCPStaticLeasesTable"))
{
staticleasetable = $("#DHCPStaticLeasesTable").DataTable({
dom: "<'row'<'col-sm-12'tr>><'row'<'col-sm-12'i>>",
"columnDefs": [ { "bSortable": false, "orderable": false, targets: -1} ],
"paging": false,
"scrollCollapse": true,
"scrollY": "200px",
"scrollX" : true
});
}
//call draw() on each table... they don't render properly with scrollX and scrollY set... ¯\_(ツ)_/¯
$("a[data-toggle=\"tab\"]").on("shown.bs.tab", function () {
leasetable.draw();
staticleasetable.draw();
if (document.getElementById("DHCPLeasesTable")) {
leasetable = $("#DHCPLeasesTable").DataTable({
dom: "<'row'<'col-sm-12'tr>><'row'<'col-sm-6'i><'col-sm-6'f>>",
columnDefs: [{ bSortable: false, orderable: false, targets: -1 }],
paging: false,
scrollCollapse: true,
scrollY: "200px",
scrollX: true
});
}
loadCacheInfo();
if (document.getElementById("DHCPStaticLeasesTable")) {
staticleasetable = $("#DHCPStaticLeasesTable").DataTable({
dom: "<'row'<'col-sm-12'tr>><'row'<'col-sm-12'i>>",
columnDefs: [{ bSortable: false, orderable: false, targets: -1 }],
paging: false,
scrollCollapse: true,
scrollY: "200px",
scrollX: true
});
}
} );
//call draw() on each table... they don't render properly with scrollX and scrollY set... ¯\_(ツ)_/¯
$('a[data-toggle="tab"]').on("shown.bs.tab", function() {
leasetable.draw();
staticleasetable.draw();
});
loadCacheInfo();
});
// Handle hiding of alerts
$(function(){
$("[data-hide]").on("click", function(){
$(this).closest("." + $(this).attr("data-hide")).hide();
});
$(function() {
$("[data-hide]").on("click", function() {
$(this)
.closest("." + $(this).attr("data-hide"))
.hide();
});
});
// DHCP leases tooltips
$(document).ready(function(){
$("[data-toggle=\"tooltip\"]").tooltip({"html": true, container : "body"});
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip({ html: true, container: "body" });
});
// Handle list deletion
$("button[id^='adlist-btn-']").on("click", function (e) {
var id = parseInt($(this).context.id.replace(/[^0-9.]/g, ""), 10);
e.preventDefault();
$("button[id^='adlist-btn-']").on("click", function(e) {
var id = parseInt($(this).context.id.replace(/[^0-9.]/g, ""), 10);
e.preventDefault();
var status = $("input[name=\"adlist-del-"+id+"\"]").is(":checked");
var textType = status ? "none" : "line-through";
// Check hidden delete box (or reset)
$("input[name=\"adlist-del-"+id+"\"]").prop("checked", !status);
// Untick and disable check box (or reset)
$("input[name=\"adlist-enable-"+id+"\"]").prop("checked", status).prop("disabled", !status);
// Strike through text (or reset)
$("a[id=\"adlist-text-"+id+"\"]").css("text-decoration", textType);
// Highlight that the button has to be clicked in order to make the change live
$("button[id=\"blockinglistsaveupdate\"]").addClass("btn-danger").css("font-weight", "bold");
var status = $('input[name="adlist-del-' + id + '"]').is(":checked");
var textType = status ? "none" : "line-through";
// Check hidden delete box (or reset)
$('input[name="adlist-del-' + id + '"]').prop("checked", !status);
// Untick and disable check box (or reset)
$('input[name="adlist-enable-' + id + '"]')
.prop("checked", status)
.prop("disabled", !status);
// Strike through text (or reset)
$('a[id="adlist-text-' + id + '"]').css("text-decoration", textType);
// Highlight that the button has to be clicked in order to make the change live
$('button[id="blockinglistsaveupdate"]')
.addClass("btn-danger")
.css("font-weight", "bold");
});
// Change "?tab=" parameter in URL for save and reload
$(".nav-tabs a").on("shown.bs.tab", function (e) {
var tab = e.target.hash.substring(1);
window.history.pushState("", "", "?tab=" + tab);
if(tab === "piholedhcp")
{
window.location.reload();
}
window.scrollTo(0, 0);
$(".nav-tabs a").on("shown.bs.tab", function(e) {
var tab = e.target.hash.substring(1);
window.history.pushState("", "", "?tab=" + tab);
if (tab === "piholedhcp") {
window.location.reload();
}
window.scrollTo(0, 0);
});
// Auto dismissal for info notifications
$(document).ready(function(){
var alInfo = $("#alInfo");
if(alInfo.length)
{
alInfo.delay(3000).fadeOut(2000, function() { alInfo.hide(); });
}
$(document).ready(function() {
var alInfo = $("#alInfo");
if (alInfo.length) {
alInfo.delay(3000).fadeOut(2000, function() {
alInfo.hide();
});
}
});