diff --git a/scripts/pi-hole/js/settings-teleporter.js b/scripts/pi-hole/js/settings-teleporter.js index a1dbacee5..5df3dbc29 100644 --- a/scripts/pi-hole/js/settings-teleporter.js +++ b/scripts/pi-hole/js/settings-teleporter.js @@ -33,6 +33,7 @@ function importZIP() { fetch("/api/teleporter", { method: "POST", body: formData, + headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") }, }) .then(response => response.json()) .then(data => { @@ -70,3 +71,27 @@ function importZIP() { console.error(error); // eslint-disable-line no-console }); } + +// Inspired by https://stackoverflow.com/a/59576416/2087442 +$("#GETTeleporter").on("click", function () { + $.ajax({ + url: "/api/teleporter", + headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content") }, + method: "GET", + xhrFields: { + responseType: "blob", + }, + success: function (data) { + var a = document.createElement("a"); + // eslint-disable-next-line compat/compat + var url = window.URL.createObjectURL(data); + a.href = url; + a.download = "teleporter.zip"; + document.body.append(a); + a.click(); + a.remove(); + // eslint-disable-next-line compat/compat + window.URL.revokeObjectURL(url); + }, + }); +}); diff --git a/settings-teleporter.lp b/settings-teleporter.lp index 761f54cdc..1edf02ee6 100644 --- a/settings-teleporter.lp +++ b/settings-teleporter.lp @@ -23,7 +23,7 @@ mg.include('scripts/pi-hole/lua/settings_header.lp','r')
Warning: This archive contains sensitive information about your Pi-hole installation, e.g. the API token and the 2FA-TOTP secret (if enabled). Please be careful with this file and do not share it with anyone even if they claim to help you.
if not is_secure then ?>Warning: You are currently not using an end-to-end encryption. This means that your API token and 2FA-TOTP secret will be transmitted in plain text. We recommend to use HTTPS when exporting your configuration.
end ?>