25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

222 satır
5.7 KiB

  1. <!DOCTYPE html>
  2. <html lang="it">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Test Reslevis API</title>
  6. <script src="/frontend/app_reslevis/api.js"></script>
  7. </head>
  8. <body>
  9. <h1>Test Reslevis API</h1>
  10. <button id="btnGateways">Carica Gateways</button>
  11. <pre id="output"></pre>
  12. <script>
  13. console.log("getGateways =", typeof window.getGateways);
  14. document.getElementById("btnGateways").addEventListener("click", function () {
  15. console.log("Evento Carica Gateway");
  16. getGateways()
  17. .then(function (data) {
  18. console.log("Risultato getGateways", data);
  19. document.getElementById("output").textContent =
  20. JSON.stringify(data, null, 2);
  21. })
  22. .catch(function (err) {
  23. console.error("Errore getGateways", err);
  24. document.getElementById("output").textContent =
  25. "Errore: " + err.message;
  26. });
  27. });
  28. </script>
  29. <button id="btnAll">Carica tutte le risorse</button>
  30. <script>
  31. document.getElementById("btnAll").addEventListener("click", async function () {
  32. try {
  33. console.log("Gateways", await getGateways());
  34. console.log("Buildings", await getBuildings());
  35. console.log("Plans", await getPlans());
  36. console.log("Zones", await getZones());
  37. console.log("Trackers", await getTrackers());
  38. console.log("Operators", await getOperators());
  39. console.log("Subjects", await getSubjects());
  40. console.log("Alarms", await getAlarms());
  41. console.log("Tracks", await getTracks());
  42. } catch (e) {
  43. console.error("Errore API", e);
  44. }
  45. });
  46. </script>
  47. <br>
  48. <button id="btnPostGateway">POST Gateway</button>
  49. <script>
  50. document.getElementById("btnPostGateway").addEventListener("click", async function () {
  51. try {
  52. const payload = {
  53. id: "test-gw-001",
  54. name: "GW-TEST",
  55. mac: "aa:bb:cc:dd:ee:ff",
  56. model: "MG3",
  57. x: 0,
  58. y: 0,
  59. notes: "gateway di test"
  60. };
  61. console.log("POST payload", payload);
  62. const res = await postGateway(payload);
  63. console.log("POST result", res);
  64. } catch (e) {
  65. console.error("Errore POST", e);
  66. }
  67. });
  68. </script>
  69. <br>
  70. <h2>PUT Gateway (updateGateway)</h2>
  71. <form id="frmPutGateway">
  72. <div>
  73. <label for="gw_id">ID</label><br>
  74. <input id="gw_id" name="gw_id" type="text" required>
  75. </div>
  76. <div>
  77. <label for="gw_name">Nome</label><br>
  78. <input id="gw_name" name="gw_name" type="text" required>
  79. </div>
  80. <div>
  81. <label for="gw_mac">MAC</label><br>
  82. <input id="gw_mac" name="gw_mac" type="text" placeholder="aa:bb:cc:dd:ee:ff">
  83. </div>
  84. <div>
  85. <label for="gw_model">Model</label><br>
  86. <input id="gw_model" name="gw_model" type="text" placeholder="MG3">
  87. </div>
  88. <div>
  89. <label for="gw_x">X</label><br>
  90. <input id="gw_x" name="gw_x" type="number" step="0.01" value="0">
  91. </div>
  92. <div>
  93. <label for="gw_y">Y</label><br>
  94. <input id="gw_y" name="gw_y" type="number" step="0.01" value="0">
  95. </div>
  96. <div>
  97. <label for="gw_notes">Notes</label><br>
  98. <input id="gw_notes" name="gw_notes" type="text">
  99. </div>
  100. <div style="margin-top: 10px;">
  101. <button type="submit" id="btnPutGateway">Aggiorna (PUT)</button>
  102. </div>
  103. </form>
  104. <h2>Output</h2>
  105. <pre id="output"></pre>
  106. <script>
  107. function setOutput(obj) {
  108. document.getElementById("output").textContent =
  109. typeof obj === "string" ? obj : JSON.stringify(obj, null, 2);
  110. }
  111. document.getElementById("frmPutGateway").addEventListener("submit", async function (e) {
  112. e.preventDefault();
  113. try {
  114. const id = document.getElementById("gw_id").value.trim();
  115. const name = document.getElementById("gw_name").value.trim();
  116. const mac = document.getElementById("gw_mac").value.trim();
  117. const model = document.getElementById("gw_model").value.trim();
  118. const x = Number(document.getElementById("gw_x").value);
  119. const y = Number(document.getElementById("gw_y").value);
  120. const notes = document.getElementById("gw_notes").value.trim();
  121. const payload = {
  122. id: id,
  123. name: name,
  124. mac: mac ? mac : null,
  125. model: model ? model : null,
  126. x: isNaN(x) ? 0 : x,
  127. y: isNaN(y) ? 0 : y,
  128. notes: notes
  129. };
  130. console.log("PUT payload", payload);
  131. const res = await updateGateway(payload);
  132. console.log("PUT result", res);
  133. setOutput(res);
  134. } catch (err) {
  135. console.error("Errore PUT", err);
  136. setOutput("Errore PUT: " + err.message);
  137. }
  138. });
  139. </script>
  140. <br>
  141. <hr>
  142. <h2>DELETE Gateway (removeGateway)</h2>
  143. <form id="frmDeleteGateway">
  144. <div>
  145. <label for="gw_delete_id">ID</label><br>
  146. <input id="gw_delete_id" name="gw_delete_id" type="text" required>
  147. </div>
  148. <div style="margin-top: 10px;">
  149. <button type="submit" id="btnDeleteGateway">Rimuovi (DELETE)</button>
  150. </div>
  151. </form>
  152. <script>
  153. document.getElementById("frmDeleteGateway").addEventListener("submit", async function (e) {
  154. e.preventDefault();
  155. try {
  156. const id = document.getElementById("gw_delete_id").value.trim();
  157. if (!id) {
  158. setOutput("Errore DELETE: ID mancante");
  159. return;
  160. }
  161. const confirmMsg = "Confermi la rimozione del gateway con ID: " + id + " ?";
  162. if (!window.confirm(confirmMsg)) {
  163. console.log("DELETE annullata dall'utente");
  164. setOutput("DELETE annullata");
  165. return;
  166. }
  167. console.log("DELETE gateway id", id);
  168. const res = await removeGateway(id);
  169. console.log("DELETE result", res);
  170. setOutput(res);
  171. } catch (err) {
  172. console.error("Errore DELETE", err);
  173. setOutput("Errore DELETE: " + err.message);
  174. }
  175. });
  176. </script>
  177. </body>
  178. </html>