LovnishVerma commited on
Commit
693192d
Β·
verified Β·
1 Parent(s): e5d5be1

Update templates/index.html

Browse files
Files changed (1) hide show
  1. templates/index.html +46 -0
templates/index.html CHANGED
@@ -309,6 +309,10 @@
309
  <span class="status-label">MQTT Connection:</span>
310
  <span id="connectionStatus" class="status-value disconnected">Disconnected</span>
311
  </div>
 
 
 
 
312
  <div class="status-row">
313
  <span class="status-label">Last Message:</span>
314
  <span id="lastMessage" class="status-value">Never</span>
@@ -319,6 +323,7 @@
319
  <button id="toggleBtn" class="toggle-btn">πŸ”„ Toggle Relay</button>
320
  <button id="onBtn" class="on-btn">🟒 Turn ON</button>
321
  <button id="offBtn" class="off-btn">πŸ”΄ Turn OFF</button>
 
322
  </div>
323
 
324
  <div class="log-section">
@@ -359,6 +364,16 @@
359
  connectionStatusEl.textContent = data.connection_status;
360
  connectionStatusEl.className = data.connection_status === 'Connected' ? 'status-value connected' : 'status-value disconnected';
361
 
 
 
 
 
 
 
 
 
 
 
362
  // Update last message time
363
  document.getElementById('lastMessage').textContent = data.last_message_time;
364
 
@@ -416,6 +431,8 @@
416
  button.innerHTML = 'πŸ”΄ Turn OFF';
417
  } else if (button.id === 'clearLogBtn') {
418
  button.innerHTML = 'πŸ—‘οΈ Clear Log';
 
 
419
  }
420
  }
421
  }
@@ -535,6 +552,35 @@
535
  setButtonLoading(this, false);
536
  });
537
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  </script>
539
  </body>
540
  </html>
 
309
  <span class="status-label">MQTT Connection:</span>
310
  <span id="connectionStatus" class="status-value disconnected">Disconnected</span>
311
  </div>
312
+ <div class="status-row" id="errorRow" style="display: none;">
313
+ <span class="status-label">Error:</span>
314
+ <span id="connectionError" class="status-value" style="background: #dc3545; color: white; font-size: 0.9em;"></span>
315
+ </div>
316
  <div class="status-row">
317
  <span class="status-label">Last Message:</span>
318
  <span id="lastMessage" class="status-value">Never</span>
 
323
  <button id="toggleBtn" class="toggle-btn">πŸ”„ Toggle Relay</button>
324
  <button id="onBtn" class="on-btn">🟒 Turn ON</button>
325
  <button id="offBtn" class="off-btn">πŸ”΄ Turn OFF</button>
326
+ <button id="reconnectBtn" class="clear-btn">πŸ”„ Reconnect MQTT</button>
327
  </div>
328
 
329
  <div class="log-section">
 
364
  connectionStatusEl.textContent = data.connection_status;
365
  connectionStatusEl.className = data.connection_status === 'Connected' ? 'status-value connected' : 'status-value disconnected';
366
 
367
+ // Update connection error
368
+ const errorRow = document.getElementById('errorRow');
369
+ const errorEl = document.getElementById('connectionError');
370
+ if (data.connection_error) {
371
+ errorEl.textContent = data.connection_error;
372
+ errorRow.style.display = 'flex';
373
+ } else {
374
+ errorRow.style.display = 'none';
375
+ }
376
+
377
  // Update last message time
378
  document.getElementById('lastMessage').textContent = data.last_message_time;
379
 
 
431
  button.innerHTML = 'πŸ”΄ Turn OFF';
432
  } else if (button.id === 'clearLogBtn') {
433
  button.innerHTML = 'πŸ—‘οΈ Clear Log';
434
+ } else if (button.id === 'reconnectBtn') {
435
+ button.innerHTML = 'πŸ”„ Reconnect MQTT';
436
  }
437
  }
438
  }
 
552
  setButtonLoading(this, false);
553
  });
554
  });
555
+
556
+ document.getElementById('reconnectBtn').addEventListener('click', function() {
557
+ if (isLoading) return;
558
+ isLoading = true;
559
+ setButtonLoading(this, true);
560
+
561
+ fetch('/api/reconnect', {
562
+ method: 'POST',
563
+ headers: {
564
+ 'Content-Type': 'application/json',
565
+ }
566
+ })
567
+ .then(response => response.json())
568
+ .then(data => {
569
+ if (data.success) {
570
+ showNotification('Reconnecting to MQTT...', 'success');
571
+ setTimeout(updateStatus, 2000); // Update status after 2 seconds
572
+ } else {
573
+ showNotification(data.error || 'Failed to reconnect', 'error');
574
+ }
575
+ })
576
+ .catch(error => {
577
+ showNotification('Error: ' + error.message, 'error');
578
+ })
579
+ .finally(() => {
580
+ isLoading = false;
581
+ setButtonLoading(this, false);
582
+ });
583
+ });
584
  </script>
585
  </body>
586
  </html>