/* 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. */ /* global utils:false */ var table; var groups = []; var token = $("#token").text(); function get_groups() { $.post( "scripts/pi-hole/php/groups.php", { action: "get_groups", token: token }, function (data) { groups = data.data; initTable(); }, "json" ); } $(document).ready(function () { $("#btnAdd").on("click", addAdlist); get_groups(); // Disable autocorrect in the search box var input = document.querySelector("input[type=search]"); input.setAttribute("autocomplete", "off"); input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); input.setAttribute("spellcheck", false); }); function initTable() { table = $("#adlistsTable").DataTable({ ajax: { url: "scripts/pi-hole/php/groups.php", data: { action: "get_adlists", token: token }, type: "POST" }, order: [[0, "asc"]], columns: [ { data: "id", visible: false }, { data: "address" }, { data: "enabled", searchable: false }, { data: "comment" }, { data: "groups", searchable: false }, { data: null, width: "80px", orderable: false } ], drawCallback: function () { $('button[id^="deleteAdlist_"]').on("click", deleteAdlist); }, rowCallback: function (row, data) { $(row).attr("data-id", data.id); var tooltip = "Added: " + utils.datetime(data.date_added) + "\nLast modified: " + utils.datetime(data.date_modified) + "\nDatabase ID: " + data.id; $("td:eq(0)", row).html( '' + data.address + "" ); var disabled = data.enabled === 0; $("td:eq(1)", row).html( '" ); var statusEl = $("#status_" + data.id, row); statusEl.bootstrapToggle({ on: "Enabled", off: "Disabled", size: "small", onstyle: "success", width: "80px" }); statusEl.on("change", editAdlist); $("td:eq(2)", row).html(''); var commentEl = $("#comment_" + data.id, row); commentEl.val(data.comment); commentEl.on("change", editAdlist); $("td:eq(3)", row).empty(); $("td:eq(3)", row).append( '
' + '
' ); var selectEl = $("#multiselect_" + data.id, row); // Add all known groups for (var i = 0; i < groups.length; i++) { var extra = ""; if (!groups[i].enabled) { extra = " (disabled)"; } selectEl.append( $("