110 lines
5.1 KiB
HTML
110 lines
5.1 KiB
HTML
{% extends "base_admin.html" %}
|
|||
|
|
|
||
|
|
{% block title %}StFV Backup - Backup bearbeiten{% endblock %}
|
||
|
|
|
||
|
|
{% block content %}
|
||
|
|
<h2>Backup bearbeiten</h2>
|
||
|
|
<p>Hier kannst du Name, Ziel, Verschlüsselung und Zeitplan anpassen.</p>
|
||
|
|
|
||
|
|
<form method="post" action="{{ url_for('backup_edit', backup_id=backup.id) }}">
|
||
|
|
<div class="card">
|
||
|
|
<label for="name">Name</label>
|
||
|
|
<input id="name" name="name" type="text" value="{{ backup.name }}" required>
|
||
|
|
|
||
|
|
<label for="target_pattern">Zielordner / Zieldatei</label>
|
||
|
|
<input id="target_pattern" name="target_pattern" type="text" value="{{ backup.target_pattern }}" required>
|
||
|
|
|
||
|
|
<label for="compression_method">Kompression</label>
|
||
|
|
<select id="compression_method" name="compression_method" required>
|
||
|
|
{% for method in compression_methods %}
|
||
|
|
<option value="{{ method }}" {% if method == backup.compression_method %}selected{% endif %}>{{ method }}</option>
|
||
|
|
{% endfor %}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<label for="encryption_mode">Verschlüsselung</label>
|
||
|
|
<select id="encryption_mode" name="encryption_mode" required>
|
||
|
|
{% for mode in encryption_modes %}
|
||
|
|
<option value="{{ mode }}" {% if mode == backup.encryption_mode %}selected{% endif %}>{{ mode }}</option>
|
||
|
|
{% endfor %}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<div id="password_box">
|
||
|
|
<label for="archive_password">Neues Passwort (optional)</label>
|
||
|
|
<input id="archive_password" name="archive_password" type="password" placeholder="Leer lassen = bestehendes Passwort behalten">
|
||
|
|
|
||
|
|
<label for="archive_password_confirm">Passwort bestätigen</label>
|
||
|
|
<input id="archive_password_confirm" name="archive_password_confirm" type="password">
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="card">
|
||
|
|
<h3>Zeitplan</h3>
|
||
|
|
<label for="schedule_mode">Ausführung</label>
|
||
|
|
<select id="schedule_mode" name="schedule_mode" required>
|
||
|
|
{% for mode in schedule_modes %}
|
||
|
|
<option value="{{ mode }}" {% if mode == backup.schedule_mode %}selected{% endif %}>{{ mode }}</option>
|
||
|
|
{% endfor %}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<div id="schedule_time_box">
|
||
|
|
<label for="schedule_time">Uhrzeit</label>
|
||
|
|
<input id="schedule_time" name="schedule_time" type="time" value="{{ backup.schedule_time or '02:00' }}">
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div id="schedule_weekday_box" style="display:none;">
|
||
|
|
<label for="schedule_weekday">Wochentag</label>
|
||
|
|
<select id="schedule_weekday" name="schedule_weekday">
|
||
|
|
<option value="1" {% if backup.schedule_weekday == '1' %}selected{% endif %}>Montag</option>
|
||
|
|
<option value="2" {% if backup.schedule_weekday == '2' %}selected{% endif %}>Dienstag</option>
|
||
|
|
<option value="3" {% if backup.schedule_weekday == '3' %}selected{% endif %}>Mittwoch</option>
|
||
|
|
<option value="4" {% if backup.schedule_weekday == '4' %}selected{% endif %}>Donnerstag</option>
|
||
|
|
<option value="5" {% if backup.schedule_weekday == '5' %}selected{% endif %}>Freitag</option>
|
||
|
|
<option value="6" {% if backup.schedule_weekday == '6' %}selected{% endif %}>Samstag</option>
|
||
|
|
<option value="0" {% if backup.schedule_weekday == '0' %}selected{% endif %}>Sonntag</option>
|
||
|
|
</select>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div id="schedule_dom_box" style="display:none;">
|
||
|
|
<label for="schedule_day_of_month">Tag im Monat</label>
|
||
|
|
<input id="schedule_day_of_month" name="schedule_day_of_month" type="number" min="1" max="31" value="{{ backup.schedule_day_of_month or '1' }}">
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div id="schedule_interval_box" style="display:none;">
|
||
|
|
<label for="schedule_interval">Intervall (X)</label>
|
||
|
|
<input id="schedule_interval" name="schedule_interval" type="number" min="1" value="{{ backup.schedule_interval or 1 }}">
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div id="schedule_cron_box" style="display:none;">
|
||
|
|
<label for="schedule_cron">CRON Ausdruck</label>
|
||
|
|
<input id="schedule_cron" name="schedule_cron" type="text" value="{{ backup.schedule_cron or '' }}">
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="step-actions">
|
||
|
|
<a class="btn btn-secondary" href="{{ url_for('dashboard') }}" style="text-decoration:none;">Abbrechen</a>
|
||
|
|
<button class="btn" type="submit">Speichern</button>
|
||
|
|
</div>
|
||
|
|
</form>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
function syncEncryptionFields() {
|
||
|
|
const mode = document.getElementById('encryption_mode').value;
|
||
|
|
const box = document.getElementById('password_box');
|
||
|
|
box.style.display = mode === 'password-aes256' ? 'block' : 'none';
|
||
|
|
}
|
||
|
|
|
||
|
|
function syncScheduleFields() {
|
||
|
|
const mode = document.getElementById('schedule_mode').value;
|
||
|
|
document.getElementById('schedule_weekday_box').style.display = mode === 'weekly' || mode === 'every_n_weeks' ? 'block' : 'none';
|
||
|
|
document.getElementById('schedule_dom_box').style.display = mode === 'monthly' || mode === 'yearly' ? 'block' : 'none';
|
||
|
|
document.getElementById('schedule_interval_box').style.display = mode === 'every_n_days' || mode === 'every_n_weeks' ? 'block' : 'none';
|
||
|
|
document.getElementById('schedule_cron_box').style.display = mode === 'custom' ? 'block' : 'none';
|
||
|
|
}
|
||
|
|
|
||
|
|
document.getElementById('encryption_mode').addEventListener('change', syncEncryptionFields);
|
||
|
|
document.getElementById('schedule_mode').addEventListener('change', syncScheduleFields);
|
||
|
|
syncEncryptionFields();
|
||
|
|
syncScheduleFields();
|
||
|
|
</script>
|
||
|
|
{% endblock %}
|