git add templates/! REFACOR INTERFEJSU git add templates/

This commit is contained in:
Mateusz Gruszczyński
2025-02-28 13:12:29 +01:00
parent 4e965195f5
commit d0f1d25063
16 changed files with 1335 additions and 771 deletions

View File

@ -1,89 +1,159 @@
{% extends "base.html" %}
{% block title %}Ustawienia - RouterOS Update{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-md-8">
<h2 class="mb-4">Ustawienia powiadomień i systemu</h2>
<!-- Główny formularz ustawień -->
<form method="POST">
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Pushover</legend>
<div class="form-check mb-2">
<input type="checkbox" class="form-check-input" name="pushover_enabled" id="pushover_enabled" {% if settings.pushover_enabled %}checked{% endif %}>
<label class="form-check-label" for="pushover_enabled">Włącz powiadomienia Pushover</label>
</div>
<div class="mb-3">
<label for="pushover_user_key" class="form-label">Pushover User Key</label>
<input type="text" class="form-control" name="pushover_user_key" id="pushover_user_key" value="{{ settings.pushover_user_key or '' }}">
</div>
<div class="mb-3">
<label for="pushover_token" class="form-label">Pushover Token</label>
<input type="text" class="form-control" name="pushover_token" id="pushover_token" value="{{ settings.pushover_token or '' }}">
</div>
</fieldset>
<fieldset class="border p-3 mb-3">
<legend class="w-auto">SMTP (E-mail)</legend>
<div class="form-check mb-2">
<input type="checkbox" class="form-check-input" name="email_notifications_enabled" id="email_notifications_enabled" {% if settings.email_notifications_enabled %}checked{% endif %}>
<label class="form-check-label" for="email_notifications_enabled">Włącz powiadomienia e-mail</label>
</div>
<div class="mb-3">
<label for="smtp_server" class="form-label">SMTP Server</label>
<input type="text" class="form-control" name="smtp_server" id="smtp_server" value="{{ settings.smtp_server or '' }}">
</div>
<div class="mb-3">
<label for="smtp_port" class="form-label">SMTP Port</label>
<input type="number" class="form-control" name="smtp_port" id="smtp_port" value="{{ settings.smtp_port or '' }}">
</div>
<div class="mb-3">
<label for="smtp_username" class="form-label">SMTP Username</label>
<input type="text" class="form-control" name="smtp_username" id="smtp_username" value="{{ settings.smtp_username or '' }}">
</div>
<div class="mb-3">
<label for="smtp_password" class="form-label">SMTP Password</label>
<input type="password" class="form-control" name="smtp_password" id="smtp_password" value="{{ settings.smtp_password or '' }}">
</div>
</fieldset>
<fieldset class="border p-3 mb-3">
<legend class="w-auto">E-mail odbiorcy powiadomień</legend>
<div class="mb-3">
<label for="recipient_email" class="form-label">Adres e-mail do otrzymywania powiadomień</label>
<input type="email" class="form-control" name="recipient_email" id="recipient_email" value="{{ settings.recipient_email or '' }}">
</div>
</fieldset>
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Interwał sprawdzania</legend>
<div class="mb-3">
<label for="check_interval" class="form-label">Interwał (sekundy) <code>21600 = 6 godzin</code></label>
<input type="number" class="form-control" name="check_interval" id="check_interval" value="{{ settings.check_interval or 21600 }}">
</div>
<div class="mb-3">
<label for="time_input" class="form-label">Czas (HH:MM:SS)</label>
<input type="text" class="form-control" id="time_input" placeholder="np. 01:30:00">
<button type="button" class="btn btn-secondary mt-2" onclick="convertTime()">Konwertuj na sekundy</button>
</div>
</fieldset>
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Retencja logów</legend>
<div class="mb-3">
<label for="log_retention_days" class="form-label">Przechowywać logi przez (dni)</label>
<input type="number" class="form-control" name="log_retention_days" id="log_retention_days" value="{{ settings.log_retention_days or 30 }}">
</div>
</fieldset>
<button type="submit" class="btn btn-primary">Zapisz ustawienia</button>
</form>
<!-- Przyciski testowe w osobnym bloku, ułożone w jednej linii po prawej stronie -->
<div class="mt-4">
{% block extra_head %}
<style>
/* Karta w trybie ciemnym */
body.dark-mode .card {
background-color: #1e1e1e;
color: #ccc;
border-color: #444;
}
/* Nagłówek karty w trybie ciemnym */
body.dark-mode .card .card-header.bg-light {
background-color: #333 !important;
border-bottom: 1px solid #444;
}
</style>
{% endblock %}
{% block content %}
<div class="container">
<!-- Karta z głównym formularzem ustawień -->
<div class="card border-0 shadow mb-4">
<div class="card-header bg-light">
<h4 class="mb-0">Ustawienia powiadomień i systemu</h4>
</div>
<div class="card-body">
<form method="POST">
<!-- Sekcja Pushover -->
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Pushover</legend>
<div class="form-check mb-2">
<input type="checkbox" class="form-check-input" name="pushover_enabled" id="pushover_enabled"
{% if settings.pushover_enabled %}checked{% endif %}>
<label class="form-check-label" for="pushover_enabled">
Włącz powiadomienia Pushover
</label>
</div>
<div class="mb-3">
<label for="pushover_user_key" class="form-label">Pushover User Key</label>
<input type="text" class="form-control" name="pushover_user_key" id="pushover_user_key"
value="{{ settings.pushover_user_key or '' }}"
placeholder="np. ujHGkDYop837...">
</div>
<div class="mb-3">
<label for="pushover_token" class="form-label">Pushover Token</label>
<input type="text" class="form-control" name="pushover_token" id="pushover_token"
value="{{ settings.pushover_token or '' }}"
placeholder="np. a9WsK09mnj3R8aGj...">
</div>
</fieldset>
<!-- Sekcja SMTP (E-mail) -->
<fieldset class="border p-3 mb-3">
<legend class="w-auto">SMTP (E-mail)</legend>
<div class="form-check mb-2">
<input type="checkbox" class="form-check-input" name="email_notifications_enabled"
id="email_notifications_enabled"
{% if settings.email_notifications_enabled %}checked{% endif %}>
<label class="form-check-label" for="email_notifications_enabled">
Włącz powiadomienia e-mail
</label>
</div>
<div class="mb-3">
<label for="smtp_server" class="form-label">SMTP Server</label>
<input type="text" class="form-control" name="smtp_server" id="smtp_server"
value="{{ settings.smtp_server or '' }}"
placeholder="np. smtp.gmail.com">
</div>
<div class="mb-3">
<label for="smtp_port" class="form-label">SMTP Port</label>
<input type="number" class="form-control" name="smtp_port" id="smtp_port"
value="{{ settings.smtp_port or '' }}"
placeholder="np. 587">
</div>
<div class="mb-3">
<label for="smtp_username" class="form-label">SMTP Username</label>
<input type="text" class="form-control" name="smtp_username" id="smtp_username"
value="{{ settings.smtp_username or '' }}">
</div>
<div class="mb-3">
<label for="smtp_password" class="form-label">SMTP Password</label>
<input type="password" class="form-control" name="smtp_password" id="smtp_password"
value="{{ settings.smtp_password or '' }}">
</div>
</fieldset>
<!-- Sekcja E-mail odbiorcy -->
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Odbiorca powiadomień</legend>
<div class="mb-3">
<label for="recipient_email" class="form-label">Adres e-mail do otrzymywania powiadomień</label>
<input type="email" class="form-control" name="recipient_email" id="recipient_email"
value="{{ settings.recipient_email or '' }}"
placeholder="np. admin@example.com">
</div>
</fieldset>
<!-- Sekcja interwału -->
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Interwał sprawdzania</legend>
<div class="mb-3">
<label for="check_interval" class="form-label">
Interwał (sekundy)
<code>21600 = 6 godzin</code>
</label>
<input type="number" class="form-control" name="check_interval" id="check_interval"
value="{{ settings.check_interval or 21600 }}">
<small class="text-muted">Co ile sekund system będzie sprawdzał aktualizacje.</small>
</div>
<div class="mb-3">
<label for="time_input" class="form-label">Czas (HH:MM:SS)</label>
<input type="text" class="form-control" id="time_input" placeholder="np. 01:30:00">
<button type="button" class="btn btn-secondary mt-2" onclick="convertTime()">
Konwertuj na sekundy
</button>
<small class="text-muted d-block mt-1">
Wpisz czas w formacie Godziny:Minuty:Sekundy, a następnie kliknij „Konwertuj”.
</small>
</div>
</fieldset>
<!-- Sekcja retencji logów -->
<fieldset class="border p-3 mb-3">
<legend class="w-auto">Retencja logów</legend>
<div class="mb-3">
<label for="log_retention_days" class="form-label">
Przechowywać logi przez (dni)
</label>
<input type="number" class="form-control" name="log_retention_days" id="log_retention_days"
value="{{ settings.log_retention_days or 30 }}">
<small class="text-muted">Starsze logi będą automatycznie usuwane po tym czasie.</small>
</div>
</fieldset>
<!-- Przycisk zapisywania -->
<button type="submit" class="btn btn-primary">Zapisz ustawienia</button>
</form>
</div>
</div>
<!-- Karta z przyciskami testowymi -->
<div class="card border-0 shadow">
<div class="card-header bg-light">
<h5 class="mb-0">Test powiadomień</h5>
</div>
<div class="card-body">
<p class="text-muted">Skorzystaj z przycisków, aby wysłać testowe powiadomienie Pushover / E-mail.</p>
<div class="d-flex justify-content-end">
<form method="POST" action="{{ url_for('test_pushover') }}" class="d-inline me-2">
<form method="POST" action="{{ url_for('test_pushover') }}" class="me-2">
<button type="submit" class="btn btn-secondary">Test Pushover</button>
</form>
<form method="POST" action="{{ url_for('test_email') }}" class="d-inline">
<form method="POST" action="{{ url_for('test_email') }}">
<button type="submit" class="btn btn-secondary">Test E-mail</button>
</form>
</div>