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>
48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?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('/');
|
||
}
|
||
}
|