push
This commit is contained in:
79
app/templates/admin/maintenance.html
Normal file
79
app/templates/admin/maintenance.html
Normal file
@@ -0,0 +1,79 @@
|
||||
{% extends 'admin/admin_base.html' %}
|
||||
{% block title %}<i class="fa-solid fa-toolbox me-2 text-primary"></i>Narzędzia administracyjne{% endblock %}
|
||||
{% block admin_content %}
|
||||
<div class="d-flex justify-content-between align-items-start flex-wrap gap-3 mb-4">
|
||||
<div>
|
||||
<h4 class="mb-1">Logi i backupy</h4>
|
||||
<div class="text-secondary">Podstrona administracyjna do porządków technicznych, kopii bazy i operacji pomocniczych.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-lg-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body">
|
||||
<div class="small text-secondary mb-2">Baza danych</div>
|
||||
<h5 class="mb-3">Kopia bazy</h5>
|
||||
<div class="small text-secondary mb-1">Silnik</div>
|
||||
<div class="mb-3">{{ backup_meta.engine }}</div>
|
||||
<div class="small text-secondary mb-1">Katalog backupów</div>
|
||||
<div class="small text-break mb-3">{{ backup_meta.backup_dir }}</div>
|
||||
<div class="alert alert-{{ 'success' if backup_meta.sqlite_supported else 'warning' }} py-2 mb-3">
|
||||
{% if backup_meta.sqlite_supported %}
|
||||
Kopia z panelu działa bezpośrednio dla SQLite.
|
||||
{% else %}
|
||||
Kopia z panelu nie wykonuje natywnego dumpa dla tego silnika.
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if backup_meta.sqlite_path %}
|
||||
<div class="small text-secondary mb-1">Plik SQLite</div>
|
||||
<div class="small text-break mb-3">{{ backup_meta.sqlite_path }}</div>
|
||||
{% endif %}
|
||||
<ul class="small text-secondary ps-3 mb-3">
|
||||
{% for note in backup_meta.notes %}
|
||||
<li>{{ note }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<form method="post" action="{{ url_for('admin.database_backup') }}">
|
||||
{{ backup_form.hidden_tag() }}
|
||||
{{ backup_form.submit(class='btn btn-primary w-100') }}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body">
|
||||
<div class="small text-secondary mb-2">Porządki techniczne</div>
|
||||
<h5 class="mb-3">Czyszczenie starych logów</h5>
|
||||
<div class="text-secondary small mb-3">Usuwa rekordy logów i stare rotowane pliki `.log.*` starsze niż wskazana liczba dni.</div>
|
||||
<form method="post" action="{{ url_for('admin.cleanup_logs') }}">
|
||||
{{ cleanup_form.hidden_tag() }}
|
||||
<div class="mb-3">
|
||||
{{ cleanup_form.days.label(class='form-label') }}
|
||||
{{ cleanup_form.days(class='form-control') }}
|
||||
</div>
|
||||
{{ cleanup_form.submit(class='btn btn-outline-danger w-100') }}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body">
|
||||
<div class="small text-secondary mb-2">Szybkie informacje</div>
|
||||
<h5 class="mb-3">Podsumowanie</h5>
|
||||
<div class="d-flex justify-content-between border-bottom py-2 small"><span>Użytkownicy</span><strong>{{ users }}</strong></div>
|
||||
<div class="d-flex justify-content-between border-bottom py-2 small"><span>Firmy</span><strong>{{ companies }}</strong></div>
|
||||
<div class="d-flex justify-content-between border-bottom py-2 small"><span>Logi audytu</span><strong>{{ audits }}</strong></div>
|
||||
<div class="d-flex justify-content-between border-bottom py-2 small"><span>Mock aktywny</span><strong>{{ mock_enabled }}</strong></div>
|
||||
<div class="d-flex justify-content-between py-2 small"><span>Tryb R/O</span><strong>{{ 'ON' if global_ro else 'OFF' }}</strong></div>
|
||||
<hr>
|
||||
<div class="small text-secondary">Przy bazach innych niż SQLite przycisk backupu zapisze plik informacyjny, a właściwą kopię należy wykonać narzędziem serwera bazy.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user