Merge pull request 'Fix n.n.: Position der Neu-Knöpfe, Erklärtexte als Tooltip am Reiter' (#111) from fds2610-bot/Finanzmanager:main into main

Reviewed-on: https://codeberg.org/fds2610/Finanzmanager/pulls/111
This commit is contained in:
fds2610 2026-10-01 11:28:38 +02:00
commit 98f903bdc7
12 changed files with 32 additions and 53 deletions

View file

@ -1,5 +1,13 @@
# Änderungen # Änderungen
## Position der „+ Neu“-Knöpfe und Erklärtexte als Tooltip (01.10.2026)
- Buchungsvorlagen, Erinnerungen, Sparziele, Verträge und Regeln: Die Erklärzeile entfällt, der Text steht als Tooltip am aktiven Reiter. Kredite erhalten einen Tooltip am Reiter „Kredite“.
- Adressen: Das Suchfeld steht rechts neben „+ Neu“.
- Regelmäßige Buchungen: „Fälligkeitslauf starten“ steht rechts neben „+ Neu“.
- Budgets: Reihenfolge Zurück zur Planung · Budgetplaner öffnen · + Neu.
- Berichtsgruppen: „Zur Übersicht“ und „+ Neu“ getauscht.
## Buchungsbericht: Gruppen- und Gesamtzeile (01.10.2026) ## Buchungsbericht: Gruppen- und Gesamtzeile (01.10.2026)
- Die Formatierung von Kategoriezeile und Gesamtzeile ist getauscht. Die Gesamtzeile zeigt nur noch „Gesamt“; die Anzahl der Buchungen steht im Tooltip („Anzahl n“). - Die Formatierung von Kategoriezeile und Gesamtzeile ist getauscht. Die Gesamtzeile zeigt nur noch „Gesamt“; die Anzahl der Buchungen steht im Tooltip („Anzahl n“).

View file

@ -1101,6 +1101,7 @@ tr.zugeklappt { display: none; }
} }
.seitenaktionen .fuellung { flex: 1; } .seitenaktionen .fuellung { flex: 1; }
.seitenaktionen .filterleiste { margin-bottom: 0; }
.saldoanzeige { .saldoanzeige {
font-size: .9rem; font-size: .9rem;

View file

@ -19,8 +19,8 @@ include __DIR__ . '/../layout/kopf.php';
</div> </div>
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
<a href="/auswertungen" class="knopf">Zur Übersicht</a> <a href="/auswertungen" class="knopf">Zur Übersicht</a>
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
</div> </div>
<p class="hinweis"> <p class="hinweis">

View file

@ -17,15 +17,9 @@ include __DIR__ . '/../layout/kopf.php';
<div class="tableiste"> <div class="tableiste">
<a href="/banking" class="tab">Bankverbindungen</a> <a href="/banking" class="tab">Bankverbindungen</a>
<a href="/banking/umsaetze" class="tab">Umsätze abgleichen</a> <a href="/banking/umsaetze" class="tab">Umsätze abgleichen</a>
<span class="tab aktiv">Regeln</span> <span class="tab aktiv" title="Eine Regel prüft ein Muster gegen Empfänger und Verwendungszweck und hängt bei einem Treffer Kategorie, Klasse, ein Gegenkonto oder eine Splitbuchung an. Die erste passende Regel gewinnt – sortiert nach Priorität, kleinere Zahl zuerst.">Regeln</span>
</div> </div>
<p class="hinweis">
Eine Regel prüft ein Muster gegen Empfänger und Verwendungszweck und hängt bei einem
Treffer Kategorie, Klasse, ein Gegenkonto oder eine Splitbuchung an. Die erste passende
Regel gewinnt – sortiert nach Priorität, kleinere Zahl zuerst.
</p>
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
<form method="post" action="/banking/regeln/pruefen" class="inline"> <form method="post" action="/banking/regeln/pruefen" class="inline">

View file

@ -10,9 +10,9 @@ include __DIR__ . '/../layout/kopf.php';
?> ?>
<div class="seitenaktionen"> <div class="seitenaktionen">
<a href="/planung" class="knopf">Zurück zur Planung</a>
<a href="/planung/budget" class="knopf primaer">Budgetplaner öffnen</a> <a href="/planung/budget" class="knopf primaer">Budgetplaner öffnen</a>
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
<a href="/planung" class="knopf">Zurück zur Planung</a>
</div> </div>
<p class="hinweis"> <p class="hinweis">

View file

@ -14,14 +14,9 @@ include __DIR__ . '/../layout/kopf.php';
<a href="/vorlagen" class="tab">Buchungsvorlagen</a> <a href="/vorlagen" class="tab">Buchungsvorlagen</a>
<a href="/termine" class="tab">Regelmäßige Buchungen</a> <a href="/termine" class="tab">Regelmäßige Buchungen</a>
<a href="/termine/kalender" class="tab">Finanzkalender</a> <a href="/termine/kalender" class="tab">Finanzkalender</a>
<span class="tab aktiv">Erinnerungen</span> <span class="tab aktiv" title="Für alles, was zu einem Datum ansteht, aber keine Buchung ist – „Versicherung kündigen“, „Steuerbescheid prüfen“. Offene Erinnerungen erscheinen im Finanzkalender.">Erinnerungen</span>
</div> </div>
<p class="hinweis">
Für alles, was zu einem Datum ansteht, aber keine Buchung ist – „Versicherung
kündigen“, „Steuerbescheid prüfen“. Offene Erinnerungen erscheinen im Finanzkalender.
</p>
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
</div> </div>

View file

@ -25,6 +25,12 @@ include __DIR__ . '/../layout/kopf.php';
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
<?php if ($vorschau['automatisch'] > 0): ?>
<form method="post" action="/termine/lauf" class="inline">
<input type="hidden" name="csrf_token" value="<?= View::h($csrfToken) ?>">
<button type="submit" class="knopf primaer">Fälligkeitslauf starten</button>
</form>
<?php endif; ?>
</div> </div>
<?php if ($vorschau['faellig'] > 0): ?> <?php if ($vorschau['faellig'] > 0): ?>
@ -33,12 +39,6 @@ include __DIR__ . '/../layout/kopf.php';
<?= (int)$vorschau['faellig'] ?> Termin(e) fällig, <?= (int)$vorschau['faellig'] ?> Termin(e) fällig,
davon <?= (int)$vorschau['automatisch'] ?> automatisch. davon <?= (int)$vorschau['automatisch'] ?> automatisch.
</span> </span>
<?php if ($vorschau['automatisch'] > 0): ?>
<form method="post" action="/termine/lauf" class="inline">
<input type="hidden" name="csrf_token" value="<?= View::h($csrfToken) ?>">
<button type="submit" class="knopf primaer">Fälligkeitslauf starten</button>
</form>
<?php endif; ?>
</div> </div>
<h3>Jetzt fällig</h3> <h3>Jetzt fällig</h3>

View file

@ -27,9 +27,7 @@ include __DIR__ . '/../layout/kopf.php';
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
</div> <form method="get" action="/vertraege/adressen" class="filterleiste">
<form method="get" action="/vertraege/adressen" class="filterleiste">
<label for="suche">Suchen</label> <label for="suche">Suchen</label>
<input type="search" id="suche" name="suche" value="<?= View::h($suche) ?>" <input type="search" id="suche" name="suche" value="<?= View::h($suche) ?>"
placeholder="Name, Ort oder IBAN"> placeholder="Name, Ort oder IBAN">
@ -37,7 +35,8 @@ include __DIR__ . '/../layout/kopf.php';
<?php if ($suche !== ''): ?> <?php if ($suche !== ''): ?>
<a href="/vertraege/adressen" class="knopf">Alle zeigen</a> <a href="/vertraege/adressen" class="knopf">Alle zeigen</a>
<?php endif; ?> <?php endif; ?>
</form> </form>
</div>
<?php if ($adressen === []): ?> <?php if ($adressen === []): ?>
<p class="platzhalter"> <p class="platzhalter">

View file

@ -17,7 +17,7 @@ include __DIR__ . '/../layout/kopf.php';
?> ?>
<div class="tableiste"> <div class="tableiste">
<span class="tab aktiv">Verträge</span> <span class="tab aktiv" title="Laufende Verträge kosten zusammen <?= View::h(View::betrag($jahressumme)) ?> im Jahr. Der Nutzen dieser Liste liegt in der Kündigungsfrist: Sie zeigt, bis wann gekündigt sein muss, damit sich ein Vertrag nicht stillschweigend verlängert.">Verträge</span>
<a href="/vertraege/adressen" class="tab">Adressen</a> <a href="/vertraege/adressen" class="tab">Adressen</a>
<a href="/vertraege/sparziele" class="tab">Sparziele</a> <a href="/vertraege/sparziele" class="tab">Sparziele</a>
<a href="/vertraege/kredite" class="tab">Kredite</a> <a href="/vertraege/kredite" class="tab">Kredite</a>
@ -42,12 +42,6 @@ include __DIR__ . '/../layout/kopf.php';
</div> </div>
<?php endif; ?> <?php endif; ?>
<p class="hinweis">
Laufende Verträge kosten zusammen <strong><?= View::betrag($jahressumme) ?></strong> im Jahr.
Der Nutzen dieser Liste liegt in der Kündigungsfrist: Sie zeigt, bis wann gekündigt sein
muss, damit sich ein Vertrag nicht stillschweigend verlängert.
</p>
<?php if ($vertraege === []): ?> <?php if ($vertraege === []): ?>
<p class="platzhalter">Noch keine Verträge erfasst.</p> <p class="platzhalter">Noch keine Verträge erfasst.</p>
<?php else: ?> <?php else: ?>

View file

@ -18,7 +18,7 @@ include __DIR__ . '/../layout/kopf.php';
<a href="/vertraege" class="tab">Verträge</a> <a href="/vertraege" class="tab">Verträge</a>
<a href="/vertraege/adressen" class="tab">Adressen</a> <a href="/vertraege/adressen" class="tab">Adressen</a>
<a href="/vertraege/sparziele" class="tab">Sparziele</a> <a href="/vertraege/sparziele" class="tab">Sparziele</a>
<span class="tab aktiv">Kredite</span> <span class="tab aktiv" title="Annuitätendarlehen mit gleichbleibender Rate: Der Zinsanteil sinkt, die Tilgung wächst. Der Tilgungsplan wird aus Betrag, Zins, Rate und Beginn gerechnet, nicht gespeichert.">Kredite</span>
</div> </div>
<div class="seitenaktionen"> <div class="seitenaktionen">

View file

@ -14,16 +14,10 @@ include __DIR__ . '/../layout/kopf.php';
<div class="tableiste"> <div class="tableiste">
<a href="/vertraege" class="tab">Verträge</a> <a href="/vertraege" class="tab">Verträge</a>
<a href="/vertraege/adressen" class="tab">Adressen</a> <a href="/vertraege/adressen" class="tab">Adressen</a>
<span class="tab aktiv">Sparziele</span> <span class="tab aktiv" title="Der erreichte Stand kommt aus dem Kontosaldo, nicht aus einem eigenen Zähler – so kann er nicht von den Buchungen abweichen. Der Startbetrag zieht ab, was zu Beginn schon auf dem Konto lag.">Sparziele</span>
<a href="/vertraege/kredite" class="tab">Kredite</a> <a href="/vertraege/kredite" class="tab">Kredite</a>
</div> </div>
<p class="hinweis">
Der erreichte Stand kommt aus dem Kontosaldo, nicht aus einem eigenen Zähler – so kann
er nicht von den Buchungen abweichen. Der Startbetrag zieht ab, was zu Beginn schon
auf dem Konto lag.
</p>
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
</div> </div>

View file

@ -16,17 +16,11 @@ include __DIR__ . '/../layout/kopf.php';
?> ?>
<div class="tableiste"> <div class="tableiste">
<span class="tab aktiv">Buchungsvorlagen</span> <span class="tab aktiv" title="Eine Vorlage füllt die Buchung vor: Empfänger, Kategorie und Splitzeilen stehen schon, einzutragen bleibt das Datum – und der Betrag, wenn er schwankt. Weicht er ab, werden die Splitzeilen im gleichen Verhältnis mitgezogen.">Buchungsvorlagen</span>
<a href="/termine" class="tab">Regelmäßige Buchungen</a> <a href="/termine" class="tab">Regelmäßige Buchungen</a>
<a href="/termine/kalender" class="tab">Finanzkalender</a> <a href="/termine/kalender" class="tab">Finanzkalender</a>
</div> </div>
<p class="hinweis">
Eine Vorlage füllt die Buchung vor: Empfänger, Kategorie und Splitzeilen stehen schon,
einzutragen bleibt das Datum – und der Betrag, wenn er schwankt. Weicht er ab, werden
die Splitzeilen im gleichen Verhältnis mitgezogen.
</p>
<div class="seitenaktionen"> <div class="seitenaktionen">
<button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button> <button type="button" class="knopf primaer" id="neu-knopf" data-neudialog="neudialog">+ Neu</button>
</div> </div>