meta.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. function displayMeta(data) {
  2. Object.keys(data).forEach(function (v) {
  3. el = $("#" + v);
  4. if (el != null) {
  5. if (el.nodeName === "DIV"){
  6. var toouthigh=true;
  7. var tooutlow=true;
  8. var toin=true;
  9. el.innerHTML = "BLANK";
  10. if (data[v]==-2){
  11. tooutlow=false;
  12. el.innerHTML = "OUT LOW";
  13. }
  14. if (data[v]==-1){
  15. toouthigh=false;
  16. el.innerHTML = "OUT HIGH";
  17. }
  18. if (data[v]==0){
  19. el.innerHTML = "not configured";
  20. }
  21. if (data[v]>0){
  22. toin=false;
  23. el.innerHTML = "IN "+data[v];
  24. }
  25. if(toin){
  26. el.innerHTML+=" | <input type='button' value='TO INPUT' onclick='setMeta(\""+v.substr(-2)+"\",\"1\")'/>";
  27. }
  28. if(tooutlow){
  29. el.innerHTML+=" | <input type='button' value='TO OUTPUT LOW' onclick='setMeta(\""+v.substr(-2)+"\",\"-2\")'/>";
  30. }
  31. if(toouthigh){
  32. el.innerHTML+=" | <input type='button' value='TO OUTPUT HIGH' onclick='setMeta(\""+v.substr(-2)+"\",\"-1\")'/>";
  33. }
  34. }}});
  35. }
  36. function toggle(el){
  37. if(!$('#'+el).hasAttribute("hidden")){
  38. $("#"+el).setAttribute("hidden", "");}
  39. else{$("#meta-form").removeAttribute("hidden");}
  40. }
  41. function fetchMeta() {
  42. console.log("fetchMeta !");
  43. ajaxJson("GET", "/meta/gpio", displayMeta, function () {
  44. window.setTimeout(fetchMeta, 1000);
  45. });
  46. }
  47. function changeMetaStatus(e) {
  48. e.preventDefault();
  49. var v = document.querySelector('input[name="meta-status-topic"]').value;
  50. ajaxSpin("POST", "/meta?meta-status-topic=" + v, function () {
  51. showNotification("meta status settings updated");
  52. }, function (s, st) {
  53. showWarning("Error: " + st);
  54. window.setTimeout(fetchMeta, 100);
  55. });
  56. }
  57. function setMeta(name, v) {
  58. ajaxSpin("POST", "/meta/gpio?num=" + name+"&v=" + v, function () {
  59. var n = name.replace("-enable", "");
  60. showNotification(n + " is now " + (v ? "enabled" : "disabled"));
  61. window.setTimeout(fetchMeta, 100);
  62. }, function () {
  63. showWarning("Enable/disable failed");
  64. window.setTimeout(fetchMeta, 100);
  65. });
  66. }