{% extends "base.html" %} {% block title %}Logi - Aplikacja Updatera{% endblock %} {% block extra_head %} <!-- Dołącz styl CSS biblioteki Vanilla‑DataTables --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vanilla-datatables@latest/dist/vanilla-dataTables.min.css"> {% endblock %} {% block content %} <h2>Logi</h2> <!-- Formularz kasowania logów starszych niż podana liczba dni --> <div class="mt-4"> <h4>Usuń logi starsze niż podana liczba dni</h4> <form method="POST" action="{{ url_for('clean_logs') }}"> <div class="mb-3"> <label for="days" class="form-label">Liczba dni</label> <input type="number" class="form-control" name="days" id="days" placeholder="Podaj liczbę dni"> </div> <button type="submit" class="btn btn-danger">Usuń logi</button> </form> </div> <hr> <table class="table table-striped" id="logsTable"> <thead class="table-dark"> <tr> <th>Data i czas</th> <th>Urządzenie</th> <th>Wiadomość</th> </tr> </thead> <tbody> {% for log in logs %} <tr> <td>{{ log.timestamp.strftime('%Y-%m-%d %H:%M:%S') }}</td> <td> {% if log.device_id %} <a href="{{ url_for('device_detail', device_id=log.device.id) }}"> {{ log.device.name if log.device.name else "Urządzenie #" ~ log.device.id }} </a> {% else %} Ogólne {% endif %} </td> <td><pre style="white-space: pre-wrap;">{{ log.message }}</pre></td> </tr> {% endfor %} </tbody> </table> {% endblock %} {% block extra_scripts %} <!-- Dołącz skrypt biblioteki Vanilla‑DataTables --> <script src="https://cdn.jsdelivr.net/npm/vanilla-datatables@latest/dist/vanilla-dataTables.min.js"></script> <script> // Inicjalizacja Vanilla‑DataTables dla tabeli logów const dataTable = new DataTable("#logsTable", { searchable: true, sortable: true, perPage: 10, labels: { placeholder: "Szukaj...", // placeholder dla pola wyszukiwania perPage: "{select} wpisów na stronę", // etykieta przy wyborze liczby wierszy noRows: "Brak logów.", // komunikat, gdy tabela jest pusta info: "Wyświetlono {start} - {end} z {rows} logów" // tekst z informacją o paginacji } }); </script> {% endblock %}