Status-Badge-Farblogik (ok/warn/err/muted) aus 7 divergenten match-Bloecken in eine Enum-Methode gezogen. Archiviert/Entwurf jetzt konsistent 'muted' (grau) auch auf Detail-/Edit-/Log-Seiten (vorher dort 'hub'-Akzent). Toter statusColor-Block (Flux-Farben, nie referenziert) in customer/show entfernt. flux:badge :color in admin/users bleibt bewusst separat (eigenes Farbvokabular, Einzel-Call-Site). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
38 lines
1 KiB
PHP
38 lines
1 KiB
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
enum PressReleaseStatus: string
|
|
{
|
|
case Draft = 'draft';
|
|
case Review = 'review';
|
|
case Published = 'published';
|
|
case Rejected = 'rejected';
|
|
case Archived = 'archived';
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::Draft => 'Entwurf',
|
|
self::Review => 'In Pruefung',
|
|
self::Published => 'Veroeffentlicht',
|
|
self::Rejected => 'Abgelehnt',
|
|
self::Archived => 'Archiviert',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* CSS-Badge-Modifier für die Status-Darstellung (siehe `.badge`-Klassen im
|
|
* Hub-CSS). Neutrale Zustände (Entwurf/Archiviert) werden bewusst grau
|
|
* abgesetzt (`muted`), aktive Zustände farblich hervorgehoben.
|
|
*/
|
|
public function badgeClass(): string
|
|
{
|
|
return match ($this) {
|
|
self::Published => 'ok',
|
|
self::Review => 'warn',
|
|
self::Rejected => 'err',
|
|
self::Draft, self::Archived => 'muted',
|
|
};
|
|
}
|
|
}
|