424 lines
6.8 KiB
HTML
424 lines
6.8 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html lang="de">
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<title>
|
|
Wartung
|
|
</title>
|
|
|
|
<link rel="stylesheet"
|
|
href="{{ url_for('static', filename='style.css') }}">
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="header">
|
|
|
|
|
|
<div class="header-left">
|
|
|
|
<img class="logo-ing"
|
|
src="{{ url_for('static', filename='logo_ing.png') }}">
|
|
|
|
<div>
|
|
|
|
<div class="title">
|
|
ING Finanzen
|
|
</div>
|
|
|
|
<div class="subtitle">
|
|
Wartung und Verwaltung
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<img class="logo-hintergasse"
|
|
src="{{ url_for('static', filename='logo_hintergasse.png') }}">
|
|
|
|
|
|
</div>
|
|
|
|
<div class="navbar">
|
|
|
|
<a href="/">Dashboard</a>
|
|
<a href="/categories">Kategorien</a>
|
|
<a href="/maintenance">Wartung</a>
|
|
<a href="/log">Log</a>
|
|
|
|
</div>
|
|
|
|
{% if message %}
|
|
|
|
<div id="modal-overlay">
|
|
|
|
<div id="modal">
|
|
|
|
<h2 class="success-title">
|
|
✅ Erfolgreich
|
|
</h2>
|
|
|
|
<p class="modal-message">
|
|
{{ message|replace('\n', '<br>')|safe }}
|
|
</p>
|
|
|
|
<button onclick="closeModal()">
|
|
OK
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
<div class="container">
|
|
|
|
|
|
<div class="cards">
|
|
|
|
<div class="card">
|
|
|
|
<h2>
|
|
Kontostand aktualisieren
|
|
</h2>
|
|
|
|
<form
|
|
action="/run/balance"
|
|
method="post">
|
|
|
|
<p>
|
|
balance.py ausführen
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3>
|
|
Automatische Ausführung
|
|
</h3>
|
|
|
|
<div class="weekday-selector">
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 1 in schedules.balance.days %}checked{% endif %}>
|
|
Mo
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 2 in schedules.balance.days %}checked{% endif %}>
|
|
Di
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 3 in schedules.balance.days %}checked{% endif %}>
|
|
Mi
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 4 in schedules.balance.days %}checked{% endif %}>
|
|
Do
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 5 in schedules.balance.days %}checked{% endif %}>
|
|
Fr
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 6 in schedules.balance.days %}checked{% endif %}>
|
|
Sa
|
|
</label>
|
|
|
|
<label>
|
|
<input
|
|
type="checkbox"
|
|
{% if 0 in schedules.balance.days %}checked{% endif %}>
|
|
So
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<label>
|
|
Minute:
|
|
</label>
|
|
|
|
<input
|
|
type="number"
|
|
min="0"
|
|
max="59"
|
|
value="{{ schedules.balance.minute }}">
|
|
|
|
<br><br>
|
|
|
|
<label>
|
|
Intervall:
|
|
</label>
|
|
|
|
<input
|
|
type="number"
|
|
min="1"
|
|
max="24"
|
|
value="{{ schedules.balance.interval }}">
|
|
|
|
Stunden
|
|
|
|
<br><br>
|
|
|
|
<small>
|
|
Aktuell:
|
|
{{ schedules.balance.cron }}
|
|
</small>
|
|
|
|
<br><br>
|
|
|
|
<button type="submit">
|
|
Starten
|
|
</button>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
<div class="card">
|
|
|
|
<h2>
|
|
Transaktionen laden
|
|
</h2>
|
|
|
|
<form
|
|
action="/run/transactions"
|
|
method="post">
|
|
|
|
Jahr:
|
|
|
|
<input
|
|
type="text"
|
|
name="year"
|
|
value="{{ year }}">
|
|
|
|
<br><br>
|
|
|
|
KW:
|
|
|
|
<input
|
|
type="text"
|
|
name="week"
|
|
value="{{ week }}">
|
|
|
|
<br><br>
|
|
|
|
<button type="submit">
|
|
Starten
|
|
</button>
|
|
|
|
</form>
|
|
<h3>Automatische Ausführung</h3>
|
|
|
|
<label>
|
|
Uhrzeit:
|
|
</label>
|
|
|
|
<input
|
|
type="time"
|
|
name="transactions_time"
|
|
value="23:07">
|
|
|
|
<br><br>
|
|
|
|
<input
|
|
type="checkbox"
|
|
checked>
|
|
|
|
Sonntag
|
|
|
|
<br><br>
|
|
|
|
<button type="submit">
|
|
Speichern
|
|
</button>
|
|
</div>
|
|
|
|
<div class="card">
|
|
|
|
<h2>
|
|
Kategorisierung
|
|
</h2>
|
|
|
|
<form
|
|
action="/run/categorize"
|
|
method="post">
|
|
|
|
Jahr:
|
|
|
|
<input
|
|
type="text"
|
|
name="year"
|
|
value="{{ year }}">
|
|
|
|
<br><br>
|
|
|
|
KW:
|
|
|
|
<input
|
|
type="text"
|
|
name="week"
|
|
value="{{ week }}">
|
|
|
|
<br><br>
|
|
|
|
<button type="submit">
|
|
Starten
|
|
</button>
|
|
|
|
</form>
|
|
<h3>Automatische Ausführung</h3>
|
|
|
|
<label>
|
|
Uhrzeit:
|
|
</label>
|
|
|
|
<input
|
|
type="time"
|
|
name="categorize_time"
|
|
value="23:37">
|
|
|
|
<br><br>
|
|
|
|
<input
|
|
type="checkbox"
|
|
checked>
|
|
|
|
Sonntag
|
|
|
|
<br><br>
|
|
|
|
<button type="submit">
|
|
Speichern
|
|
</button>
|
|
</div>
|
|
<div class="card">
|
|
|
|
<h2>
|
|
Wochenupdate
|
|
</h2>
|
|
|
|
<form
|
|
action="/run/weekly_update"
|
|
method="post">
|
|
|
|
<input
|
|
type="hidden"
|
|
name="year"
|
|
value="{{ year }}">
|
|
|
|
<input
|
|
type="hidden"
|
|
name="week"
|
|
value="{{ week }}">
|
|
|
|
<p>
|
|
Lädt Transaktionen und
|
|
kategorisiert automatisch.
|
|
</p>
|
|
|
|
<button type="submit">
|
|
Starten
|
|
</button>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
<div class="card automation-card">
|
|
|
|
<h2>Automatisierung</h2>
|
|
|
|
<table class="category-table automation-table">
|
|
|
|
<tr>
|
|
<th>Script</th>
|
|
<th>Cron</th>
|
|
<th class="action-column">Aktion</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>balance.py</td>
|
|
<td>{{ cron_jobs.balance }}</td>
|
|
<td class="action-column">
|
|
<a href="/maintenance/run/balance">
|
|
<button>Jetzt ausführen</button>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>transactions.py</td>
|
|
<td>{{ cron_jobs.transactions }}</td>
|
|
<td class="action-column">
|
|
<a href="/maintenance/run/transactions">
|
|
<button>Jetzt ausführen</button>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>categorize_transactions.py</td>
|
|
<td>{{ cron_jobs.categorize }}</td>
|
|
<td class="action-column">
|
|
<a href="/maintenance/run/categorize">
|
|
<button>Jetzt ausführen</button>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="footer">
|
|
|
|
|
|
Hintergasse © 2026
|
|
|
|
|
|
</div>
|
|
<script>
|
|
|
|
function closeModal() {
|
|
|
|
document
|
|
.getElementById(
|
|
"modal-overlay"
|
|
)
|
|
.style
|
|
.display = "none";
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|