// Set the auth header if necessary function authHeaders(xhr) { if (window.localStorage.getItem("authtoken") !== null) { var authToken = window.localStorage.getItem("authtoken"); xhr.setRequestHeader("Authorization", "Basic " + authToken); } } // Redirect if not authorized function redirectIfNotAuthorized() { $.ajax({ url: jsconfig.baseurl + "/api/version", beforeSend: authHeaders, statusCode: { 401: function() { window.location.replace(jsconfig.baseurl + "/app/login.html"); }, 403: function() { window.location.replace(jsconfig.baseurl + "/app/login.html"); } } }); }; // Call the redirect function redirectIfNotAuthorized(); // Display version at bottom of page function renderVersion() { $.ajax({ url: jsconfig.baseurl + "/api/version", beforeSend: authHeaders }).then(function(data) { var versionText = "TempGopher © 2018 Mike Shoup | Version: " + data.version; $("#version").text(versionText); }); }; $(document).ready(renderVersion); function displayLogoutButton() { if (window.localStorage.getItem("authtoken") !== null) { // Display a logout button var logoutButton = $("").addClass("button button-primary").text("✔").css("margin-right", "5px").click(function() { if (jsconfig.fahrenheit) { var newHT = fahrenheitToCelsius(parseFloat(htIn.val())); var newLT = fahrenheitToCelsius(parseFloat(ltIn.val())); } else { var newHT = parseFloat(htIn.val()); var newLT = parseFloat(ltIn.val()); } $.ajax({ type: "POST", url: jsconfig.baseurl + "/api/config/sensors", beforeSend: authHeaders, data: JSON.stringify([{ "id": configData.id, "alias": configData.alias, "hightemp": newHT, "lowtemp": newLT, "heatgpio": configData.heatgpio, "heatinvert": configData.heatInvert, "heatminutes": parseFloat(hmIn.val()), "coolgpio": configData.coolgpio, "coolinvert": configData.coolinvert, "coolminutes": parseFloat(cmIn.val()), "verbose": configData.verbose }]) }) window.setInterval(renderThermostats, 60000); renderThermostats(); }); var noButton = $("").addClass("button").text("✘").click(function() { window.setInterval(renderThermostats, 60000); renderThermostats(); }); if (!configData.heatdisable || !configData.cooldisable) { var buttonDiv = $("
").addClass("three columns").append(yesButton).append(noButton); rowdiv.append(buttonDiv); } // Add things back to the thermostat list $("#thermostats").append(titlediv); $("#thermostats").append(rowdiv); }); } function renderThermostats() { $.ajax({ url: jsconfig.baseurl + "/api/status/", beforeSend: authHeaders }).then(function(data) { $("#thermostats").empty(); for (var key in data) { appendData(data[key]) }; }); }; $(document).ready(renderThermostats); var rtHandle = window.setInterval(renderThermostats, 60000);