index.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>WDKL NET BRIDGE</title>
  6. </head>
  7. <style>
  8. fieldset{
  9. margin-top: 30px;
  10. border-radius: 15px;
  11. border: 1px solid #ccc;
  12. }
  13. label{
  14. display: inline-block;
  15. width: 100px;
  16. text-align: right;
  17. margin-right: 30px;
  18. }
  19. input{
  20. margin-top: 10px;
  21. }
  22. input[type=submit] {
  23. margin-left: 10%;
  24. width: 200px;
  25. background-color: #4CAF50;
  26. color: white;
  27. padding: 14px 20px;
  28. margin: 8px 0;
  29. border: none;
  30. border-radius: 4px;
  31. cursor: pointer;
  32. }
  33. input[type=submit]:hover {
  34. background-color: #45a049;
  35. }
  36. </style>
  37. <body>
  38. <div>
  39. <h1>WDKL NET BRIDGE</h1>
  40. <p>mac : %s</p>
  41. </div>
  42. <form action="/setting" method="POST" onsubmit="return validate();">
  43. <fieldset>
  44. <legend>DEVICE</legend>
  45. <label>DHCP?</label>
  46. YES<input onclick="ipSetting(false);" type="radio" name="dhcp" value="1" style="margin-right: 1rem;" checked>
  47. NO<input onclick="ipSetting(true);" type="radio" name="dhcp" value="0">
  48. <br>
  49. <div id="ip_panel" style="display: none;">
  50. <label>IP</label>
  51. <input type="text" name="ip" id="ip" value="%s">
  52. <br>
  53. <label>NETMASK</label>
  54. <input type="text" name="netmask" id="netmask" value="%s">
  55. <br>
  56. <label>GATEWAY</label>
  57. <input type="text" name="gateway" id="gateway" value="%s">
  58. <br>
  59. <label>DNS1</label>
  60. <input type="text" name="dns1" id="dns1" value="%s">
  61. <br>
  62. <label>DNS2</label>
  63. <input type="text" name="dns2" id="dns2" value="%s">
  64. </div>
  65. </fieldset>
  66. <fieldset>
  67. <legend>SERVER</legend>
  68. <label>SERVER IP</label>
  69. <input type="text" name="server_ip" id="server_ip" value="%s">
  70. </fieldset>
  71. <fieldset>
  72. <legend>TCP</legend>
  73. <label>TCP PORT</label>
  74. 5086<input type="radio" name="tcp_port" value="5086" style="margin-right: 1rem;" checked>
  75. 5089<input type="radio" name="tcp_port" value="5089">
  76. <br>
  77. </fieldset>
  78. <fieldset>
  79. <legend>LORA</legend>
  80. <label>LORA CMD</label>
  81. STATE<input onclick="loraCmd(1);" type="radio" name="lora_cmd" value="1" style="margin-right: 1rem;" checked>
  82. MODEL<input onclick="loraCmd(0);" type="radio" name="lora_cmd" value="0">
  83. DELETE<input onclick="loraCmd(2);" type="radio" name="lora_cmd" value="2">
  84. <div id="lora_state" style="display: block;">
  85. <label>LORA STATE</label>
  86. WORK<input type="radio" name="lora_state" value="1" style="margin-right: 1rem;" checked>
  87. LEARN<input type="radio" name="lora_state" value="0">
  88. </div>
  89. <div id="lora_learn" style="display: none;">
  90. <label>LORA LEARN</label>
  91. YES<input type="radio" name="lora_learn" value="1" style="margin-right: 1rem;" checked>
  92. NO<input type="radio" name="lora_learn" value="0">
  93. </div>
  94. <div id="lora_delete" style="display: none;">
  95. <label>LORA DEL</label>
  96. ALL<input onclick="loraDelete(0);" type="radio" name="lora_delete" value="0" style="margin-right: 1rem;" checked>
  97. ONE<input onclick="loraDelete(1);" type="radio" name="lora_delete" value="1">
  98. </div>
  99. <div id="lora_delete_mac" style="display: none;">
  100. <label>MAC</label>
  101. <input type="text" name="lora_delete_mac" id="lora_delete_mac" value="">
  102. </div>
  103. </fieldset>
  104. <input type="submit" value="submit">
  105. </form>
  106. <script>
  107. function ipSetting(show){
  108. console.log("xxx" + show);
  109. document.getElementById("ip_panel").style.display = show?"block":"none";
  110. }
  111. function validate() {
  112. console.log(document.getElementById("ip_panel").style.display);
  113. var regexIP = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]).){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
  114. var regexNetmask = /^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;
  115. var ip = document.getElementById("ip").value;
  116. var netmask = document.getElementById("netmask").value;
  117. var gateway = document.getElementById("gateway").value;
  118. var dns1 = document.getElementById("dns1").value;
  119. var dns2 = document.getElementById("dns2").value;
  120. var server_ip = document.getElementById("server_ip").value;
  121. var tcp_port = document.getElementById("tcp_port").value;
  122. var lora_cmd = document.getElementById("lora_cmd").value;
  123. var lora_state = document.getElementById("lora_state").value;
  124. var lora_learn = document.getElementById("lora_learn").value;
  125. if (document.getElementById("ip_panel").style.display == "none"){
  126. if (server_ip == ""){
  127. alert("server ip must input");
  128. document.getElementById("server_ip").focus();
  129. return false;
  130. } else if (!regexIP.test(server_ip)){
  131. alert("server ip wrong input");
  132. document.getElementById("server_ip").focus();
  133. return false;
  134. }
  135. return true;
  136. } else {
  137. if (ip == ""){
  138. alert("ip must input");
  139. document.getElementById("ip").focus();
  140. return false;
  141. } else if (netmask == ""){
  142. alert("netmask must input");
  143. document.getElementById("netmask").focus();
  144. return false;
  145. } else if (gateway == ""){
  146. alert("gateway must input");
  147. document.getElementById("gateway").focus();
  148. return false;
  149. } else if (server_ip == ""){
  150. alert("server_ip must input");
  151. document.getElementById("server_ip").focus();
  152. return false;
  153. }
  154. if (!regexIP.test(ip)){
  155. alert("ip wrong input");
  156. document.getElementById("ip").focus();
  157. return false;
  158. } else if (!regexNetmask.test(netmask)){
  159. alert("netmask wrong input");
  160. document.getElementById("netmask").focus();
  161. return false;
  162. } else if (!regexIP.test(gateway)){
  163. alert("gateway wrong input");
  164. document.getElementById("gateway").focus();
  165. return false;
  166. } else if (!regexIP.test(server_ip)){
  167. alert("server_ip wrong input");
  168. document.getElementById("server_ip").focus();
  169. return false;
  170. } else if (dns1!="" && !regexIP.test(dns1)){
  171. alert("dns1 wrong input");
  172. document.getElementById("dns1").focus();
  173. return false;
  174. } else if (dns2!="" && !regexIP.test(dns2)){
  175. alert("dns2 wrong input");
  176. document.getElementById("dns2").focus();
  177. return false;
  178. }
  179. return true;
  180. }
  181. }
  182. function loraCmd(cmd) {
  183. console.log("lora state or learn: " + cmd);
  184. if (cmd == 1) {
  185. document.getElementById("lora_state").style.display = "block";
  186. document.getElementById("lora_learn").style.display = "none";
  187. document.getElementById("lora_delete").style.display = "none";
  188. }
  189. else if (cmd == 0) {
  190. document.getElementById("lora_learn").style.display = "block";
  191. document.getElementById("lora_state").style.display = "none";
  192. document.getElementById("lora_delete").style.display = "none";
  193. }
  194. else if (cmd == 2) {
  195. document.getElementById("lora_delete").style.display = "block";
  196. document.getElementById("lora_state").style.display = "none";
  197. document.getElementById("lora_learn").style.display = "none";
  198. }
  199. }
  200. function loraDelete(del) {
  201. console.log("lora delete: " + del);
  202. if (del == 0) {
  203. document.getElementById("lora_delete_mac").style.display = "none";
  204. }
  205. else if (del == 1) {
  206. document.getElementById("lora_delete_mac").style.display = "block";
  207. }
  208. }
  209. </script>
  210. </body>
  211. </html>