{% extends "base.html" %} {% block css %} table { width: 80%; border-collapse: collapse; margin-top: 1em; margin-left: auto; margin-right: auto; } th, td { padding: 10px; border: 1px solid #333; text-align: left; } th { background-color: #1f1f1f; color: white; cursor: pointer; } tr:nth-child(even) { background-color: #181818; } tr:nth-child(odd) { background-color: #222; } .search-container { display: flex; gap: 10px; margin-bottom: 10px; width: 80%; margin-left: auto; margin-right: auto; } .search, .filter-role, .filter-channel, .filter-hw_model, .export-btn { padding: 8px; border: 1px solid #333; border-radius: 4px; } .filter-role, .filter-channel, .filter-hw_model { cursor: pointer; } .export-btn { background: #28a745; color: white; border: none; cursor: pointer; } .export-btn:hover { background: #218838; } .count-container { margin-bottom: 10px; font-weight: bold; color: white; width: 80%; margin-left: auto; margin-right: auto; } {% endblock %} {% block body %}
| Long Name | Short Name | HW Model | Firmware | Role | Last Latitude | Last Longitude | Channel | Last Update |
|---|---|---|---|---|---|---|---|---|
| {{ node.long_name }} | {{ node.short_name }} | {{ node.hw_model if node.hw_model else "N/A" }} | {{ node.firmware }} | {{ node.role if node.role else "N/A" }} | {{ "{:.7f}".format(node.last_lat / 10**7) if node.last_lat else "N/A" }} | {{ "{:.7f}".format(node.last_long / 10**7) if node.last_long else "N/A" }} | {{ node.channel if node.channel else "N/A" }} | {{ node.last_update.strftime('%-I:%M:%S %p - %m-%d-%Y') if node.last_update else "N/A" }} |
No nodes found.
{% endif %}