diff --git a/html/js/thermostat.js b/html/js/thermostat.js
index 2489491..d51013c 100644
--- a/html/js/thermostat.js
+++ b/html/js/thermostat.js
@@ -60,6 +60,120 @@ function fahrenheitToCelsius(degree) {
return (degree - 32) * 5 / 9;
};
+function appendData(data) {
+ // Title of thermostat
+ var titleh = $("
").text(data.alias);
+ var titlediv = $("").addClass("row").append(titleh);
+
+ // Thermostat status
+ var rowdiv = $("");
+ rowdiv.addClass("row");
+
+ // Display temperature
+ if (jsconfig.fahrenheit) {
+ var temp = celsiusToFahrenheit(parseFloat(data.temp)).toFixed(1) + "°F";
+ } else {
+ var temp = parseFloat(data.temp).toFixed(1) + "°C";
+ }
+ var temph = $("").text(temp);
+ var tempdiv = $("").addClass("two columns").append(temph);
+ rowdiv.append(tempdiv);
+
+ // Display status
+ if (data.cooling) {
+ var statustext = "Cooling"
+ } else if (data.heating) {
+ var statustext = "Heating"
+ } else {
+ var statustext = "Idle"
+ }
+ var statusp = $("").html(statustext);
+ var statusdiv = $("").addClass("two columns").append(statusp);
+ rowdiv.append(statusdiv);
+
+ // Display sensor config
+ $.ajax({
+ url: jsconfig.baseurl + "/api/config/sensors/" + data.alias,
+ beforeSend: authHeaders
+ }).then(function(configData){
+ if (jsconfig.fahrenheit) {
+ var degUnit = "°F";
+ var hightemp = celsiusToFahrenheit(parseFloat(configData.hightemp)).toFixed(1);
+ var lowtemp = celsiusToFahrenheit(parseFloat(configData.lowtemp)).toFixed(1);
+ } else {
+ var hightemp = parseFloat(configData.hightemp).toFixed(1);
+ var lowtemp = parseFloat(configData.lowtemp).toFixed(1);
+ }
+
+ rp = '[0-9]+(\.[0-9]+)?'
+
+ var cmIn = $("").attr("id", "cm" + configData.alias).val(configData.coolminutes).attr("size", "2").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
+ var htIn = $("").attr("id", "ht" + configData.alias).val(hightemp).attr("size", "4").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
+ var hmIn = $("").attr("id", "hm" + configData.alias).val(configData.heatminutes).attr("size", "2").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
+ var ltIn = $("").attr("id", "lt" + configData.alias).val(lowtemp).attr("size", "4").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
+
+ var configp = $("")
+ if (!configData.cooldisable) {
+ configp.append("Chills for ").append(cmIn).append(" minutes when > ").append(htIn).append(degUnit);
+ }
+
+ if (!configData.cooldisable && !configData.heatdisable){
+ configp.append($("
"));
+ }
+
+ if (!configData.heatdisable) {
+ configp.append("Heats for ").append(hmIn).append(" minutes when < ").append(ltIn).append(degUnit);
+ }
+
+ var configdiv = $("").addClass("five columns").append(configp);
+ rowdiv.append(configdiv);
+
+ var yesButton = $("").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/",
@@ -67,117 +181,7 @@ function renderThermostats() {
}).then(function(data) {
$("#thermostats").empty();
for (var key in data) {
- // Title of thermostat
- var titleh = $("").text(data[key].alias);
- var titlediv = $("").addClass("row").append(titleh);
-
- // Thermostat status
- var rowdiv = $("");
- rowdiv.addClass("row");
-
- // Display temperature
- if (jsconfig.fahrenheit) {
- var temp = celsiusToFahrenheit(parseFloat(data[key].temp)).toFixed(1) + "°F";
- } else {
- var temp = parseFloat(data[key].temp).toFixed(1) + "°C";
- }
- var temph = $("").text(temp);
- var tempdiv = $("").addClass("two columns").append(temph);
- rowdiv.append(tempdiv);
-
- // Display status
- if (data[key].cooling) {
- var statustext = "Cooling"
- } else if (data[key].heating) {
- var statustext = "Heating"
- } else {
- var statustext = "Idle"
- }
- var statusp = $("").html(statustext);
- var statusdiv = $("").addClass("two columns").append(statusp);
- rowdiv.append(statusdiv);
-
- // Display sensor config
- $.ajax({
- url: jsconfig.baseurl + "/api/config/sensors/" + data[key].alias,
- beforeSend: authHeaders
- }).then(function(configData){
- if (jsconfig.fahrenheit) {
- var degUnit = "°F";
- var hightemp = celsiusToFahrenheit(parseFloat(configData.hightemp)).toFixed(1);
- var lowtemp = celsiusToFahrenheit(parseFloat(configData.lowtemp)).toFixed(1);
- } else {
- var hightemp = parseFloat(configData.hightemp).toFixed(1);
- var lowtemp = parseFloat(configData.lowtemp).toFixed(1);
- }
-
- rp = '[0-9]+(\.[0-9]+)?'
-
- var cmIn = $("").attr("id", "cm" + configData.alias).val(configData.coolminutes).attr("size", "2").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
- var htIn = $("").attr("id", "ht" + configData.alias).val(hightemp).attr("size", "4").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
- var hmIn = $("").attr("id", "hm" + configData.alias).val(configData.heatminutes).attr("size", "2").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
- var ltIn = $("").attr("id", "lt" + configData.alias).val(lowtemp).attr("size", "4").attr("pattern", rp).on('input', function(){window.clearInterval(rtHandle)});
-
- var configp = $("")
- if (!configData.cooldisable) {
- configp.append("Chills for ").append(cmIn).append(" minutes when > ").append(htIn).append(degUnit);
- }
-
- if (!configData.cooldisable && !configData.heatdisable){
- configp.append($("
"));
- }
-
- if (!configData.heatdisable) {
- configp.append("Heats for ").append(hmIn).append(" minutes when < ").append(ltIn).append(degUnit);
- }
-
- var configdiv = $("").addClass("five columns").append(configp);
- rowdiv.append(configdiv);
-
- var yesButton = $("").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);
- });
+ appendData(data[key])
};
});
};
diff --git a/main.go b/main.go
index bbe2392..1b88920 100644
--- a/main.go
+++ b/main.go
@@ -8,7 +8,7 @@ import (
)
// Version is the current code version of tempgopher
-const Version = "0.3.0"
+const Version = "0.3.1-dev"
func main() {
var args struct {