html_confAdd.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /* clang-format off */
  2. static const char html_confadd_script[] PROGMEM = R"=====(
  3. <script>
  4. function g(i) { return document.getElementById(i) };
  5. function sp(i){g(i).type=(g(i).type==='text'?'password':'text');}
  6. var xhttp, reqTime, reqFin;
  7. function setCbx(el, da) {
  8. if(da == '1') {
  9. el.checked = true;
  10. el.style.visibility = 'visible';
  11. }
  12. else {
  13. el.checked = false;
  14. el.style.visibility = 'visible';
  15. }
  16. }
  17. function updCbxVal(el) {
  18. if (el.checked) el.value = '1';
  19. else {
  20. el.checked = true;
  21. el.value = '0';
  22. el.style.visibility = 'hidden';
  23. }
  24. }
  25. function transmit(f) {
  26. if (!xhttp) {
  27. reqTime = 0;
  28. reqFin = false;
  29. xhttp = new XMLHttpRequest();
  30. xhttp.timeout = 1000;
  31. xhttp.overrideMimeType('application/json');
  32. xhttp.open('POST', 'confDataAdd');
  33. xhttp.send(f ? (new FormData(f)) : '');
  34. xhttp.onreadystatechange = function () {
  35. if (xhttp.readyState === XMLHttpRequest.DONE && xhttp.status === 200) {
  36. var data = JSON.parse(xhttp.responseText);
  37. g('PIRTop').value = data.PIRTop;
  38. g('PIROnPld').value = data.PIROnPld;
  39. g('PIROffPld').value = data.PIROffPld;
  40. g('outTempTop').value = data.outTempTop;
  41. g('outHumTop').value = data.outHumTop;
  42. xhttp = null;
  43. reqFin = true;
  44. }
  45. else {
  46. if(!reqFin && reqTime > 10) {
  47. xhttp = null;
  48. reqFin = true;
  49. }
  50. }
  51. }
  52. }
  53. return false;
  54. }
  55. //transmit();
  56. function saveConf() {
  57. g('frmConf').submit();
  58. }
  59. function init() {
  60. transmit();
  61. }
  62. setInterval(function () { ++reqTime; }, 1000);
  63. </script>
  64. )====="; // html_confadd_script
  65. static const char html_confadd_body[] PROGMEM = R"=====(
  66. <b>Configuration - Additional Functions</b>
  67. <div class='config'>
  68. <form id='frmConf' action='setConfAdd' method='POST'>
  69. <br>
  70. <fieldset>
  71. <legend>PIR Sensor</legend>
  72. <p><b>MQTT Publish Topic</b><br><input type='text' name='PIRTop' id='PIRTop'/></p>
  73. <p><b>MQTT ON Payload</b><br><input type='text' name='PIROnPld' id='PIROnPld'/></p>
  74. <p><b>MQTT OFF Payload</b><br><input type='text' name='PIROffPld' id='PIROffPld'/></p>
  75. </fieldset>
  76. <div></div><br>
  77. <fieldset>
  78. <legend>Outside Temp/Hum via MQTT</legend>
  79. <p class='n'>Only used if not empty, can be subscribed to and valid data is sent. </p>
  80. <p><b>O-Temp In-Topic</b><br><input type='text' name='outTempTop' id='outTempTop'/></p>
  81. <p><b>O-Hum In-Topic</b><br><input type='text' name='outHumTop' id='outHumTop'/><br>
  82. </fieldset>
  83. <br>
  84. </form>
  85. <div></div>
  86. <table style='width:100%'>
  87. <td style='width:50%'><button onclick='location="conf";' class='bgrey'>Cancel</button></td>
  88. <td style='width:50%'><button onclick='return saveConf()' class='bred'>Save</button></td>
  89. </tr></table>
  90. </div>
  91. )====="; // html_confadd_body