Finanzmanager/src/Controllers/CockpitController.php
fds2610-bot 896a1e36ae Cockpit: Vermögensentwicklung als gestapeltes Balkendiagramm
Die Kachel war ein Platzhalter und zeigt jetzt die Kontostände der
letzten zwölf Monate je Monatsende – ein Balken pro Monat, ein Farbton
pro Konto. Gezählt wird, was auch in der Kontenübersicht in die Summe
zählt: Konten mit Σ-Kennzeichen.

Der Schalter „nur aktive“ oben rechts blendet stillgelegte Konten aus
und merkt sich seinen Zustand über die Einstellungen. Mehr Konten als
Farbtöne fasst „Übrige Konten (n)“ zusammen – zwei Konten in derselben
Farbe wären in der Legende nicht auseinanderzuhalten.

Eigenes SVG, keine Diagrammbibliothek. Die Farben stehen als Klasse am
Element und folgen damit dem hellen wie dem dunklen Thema.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 13:13:56 +02:00

48 lines
1.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
namespace Finanzmanager\Controllers;
use Finanzmanager\Models\Einstellung;
use Finanzmanager\Models\Konto;
use Finanzmanager\Services\Vermoegensentwicklung;
use Finanzmanager\View;
class CockpitController extends BaseController
{
/**
* Der Schalter „nur aktive“ an der Vermögenskachel. Er merkt sich seinen
* Zustand über die Einstellungen und nicht in der Sitzung: Er soll auch beim
* nächsten Anmelden noch so stehen, wie der Nutzer ihn gelassen hat. Im
* Einstellungsdialog taucht er nicht auf – er gehört an die Kachel.
*/
public const SCHALTER_NUR_AKTIVE = 'cockpit_vermoegen_nur_aktive';
public function index(): void
{
$this->verlangeAnmeldung();
$nurAktive = Einstellung::getBool(self::SCHALTER_NUR_AKTIVE, true);
$this->render('cockpit/index.php', [
'titel' => 'Cockpit',
'uebersicht' => Konto::uebersicht(),
'vermoegen' => Vermoegensentwicklung::reihe($nurAktive),
'nurAktive' => $nurAktive,
]);
}
public function kontenfilter(): void
{
$this->verlangeAnmeldung();
Einstellung::set(
self::SCHALTER_NUR_AKTIVE,
$this->post('nur_aktive') === '1' ? '1' : '0',
'darstellung'
);
View::redirect('/');
}
}