107 lines
3.7 KiB
HTML
107 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<script src="/jquery/jquery.min.js"></script>
|
|
<script src="/socket.io/socket.io.js"></script>
|
|
<style type="text/css" rel="stylesheet">
|
|
#mqtt{ border: 1px solid #444; overflow-x:hidden; overflow-y:auto; background-color:#333; color: #EEE; text-shadow:#000 0 0 2px; height: 400px; padding: 10px; font-size:12px; line-height:20px;}
|
|
.monospace{font-family: Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;}
|
|
.selection::selection , .selection *::selection{background: #EEE;color:#000;border-color:#000; text-shadow:#fff 0 0 2px;}
|
|
.selection::-moz-selection , .selection *::-moz-selection{background: #EEE;color:#000;border-color:#000; text-shadow:#fff 0 0 2px;}
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
th, td {
|
|
border: 1px solid #ddd;
|
|
padding: 8px;
|
|
text-align: center;
|
|
}
|
|
th {
|
|
background-color: #f4f4f4;
|
|
}
|
|
.new-row { background-color: #ff0099; transition: background-color 1.5s; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Live QSOs</h1>
|
|
<table id="messagesTable">
|
|
<thead>
|
|
<tr>
|
|
<th>Wann</th>
|
|
<th>Von</th>
|
|
<th>Von Grid</th>
|
|
<th>Nach</th>
|
|
<th>Nach Grid</th>
|
|
<th>Band</th>
|
|
<th>Mode</th>
|
|
<th>RSTR</th>
|
|
<th>RSTS</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<!-- Rows will be dynamically added here -->
|
|
</tbody>
|
|
</table>
|
|
<script type="text/javascript">
|
|
(function() {
|
|
const tableBody = document.getElementById('messagesTable').querySelector('tbody');
|
|
var lines = 0;
|
|
var buffer = $('#mqtt');
|
|
var socket = io.connect("/"); // http://localhost:8000");
|
|
socket.on('connect', function() {
|
|
console.log('Connected to:', socket.host);
|
|
});
|
|
socket.on('mqtt', function(message) {
|
|
try {
|
|
showit=JSON.stringify(message);
|
|
} catch {};
|
|
const row = document.createElement('tr');
|
|
const timestampCell = document.createElement('td');
|
|
const CellCall = document.createElement('td');
|
|
const CellGrid = document.createElement('td');
|
|
const CellStationCall = document.createElement('td');
|
|
const CellStationGrid = document.createElement('td');
|
|
const CellBand = document.createElement('td');
|
|
const CellMode = document.createElement('td');
|
|
const CellRSTR = document.createElement('td');
|
|
const CellRSTS = document.createElement('td');
|
|
|
|
CellCall.textContent = message.call;
|
|
CellGrid.textContent = message.grid;
|
|
CellStationCall.textContent = message.station_call;
|
|
CellStationGrid.textContent = message.station_grid;
|
|
CellBand.textContent = message.band;
|
|
CellMode.textContent = message.mode;
|
|
CellRSTR.textContent = message.RST_RCVD;
|
|
CellRSTS.textContent = message.RST_SENT;
|
|
timestampCell.textContent = message.qso_time;;
|
|
|
|
row.appendChild(timestampCell);
|
|
row.appendChild(CellStationCall);
|
|
row.appendChild(CellStationGrid);
|
|
row.appendChild(CellCall);
|
|
row.appendChild(CellGrid);
|
|
row.appendChild(CellBand);
|
|
row.appendChild(CellMode);
|
|
row.appendChild(CellRSTR);
|
|
row.appendChild(CellRSTS);
|
|
row.classList.add('new-row');
|
|
tableBody.insertBefore(row, tableBody.firstChild);
|
|
$(row).removeClass('new-row', 1500);
|
|
|
|
});
|
|
|
|
/*
|
|
$( "#i_topic" ).change(function() {
|
|
socket.emit("wishtopic",this.value);
|
|
$('#mqtt').empty();
|
|
});
|
|
*/
|
|
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|