die tenant admin oauth authentifizierung wurde implementiert und funktioniert jetzt. Zudem wurde das marketing frontend dashboard implementiert.

This commit is contained in:
Codex Agent
2025-11-04 16:14:17 +01:00
parent 92e64c361a
commit fe380689fb
63 changed files with 4239 additions and 1142 deletions

View File

@@ -8,8 +8,8 @@ use App\Models\PurchaseHistory;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\ExportBulkAction;
use Filament\Actions\ViewAction;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables;
@@ -94,7 +94,7 @@ class PurchaseHistoryResource extends Resource
->label(__('admin.purchase_history.fields.platform'))
->badge()
->formatStateUsing(function ($state): string {
$key = 'admin.purchase_history.platforms.' . (string) $state;
$key = 'admin.purchase_history.platforms.'.(string) $state;
$translated = __($key);
return $translated === $key ? Str::headline((string) $state) : $translated;
@@ -148,7 +148,7 @@ class PurchaseHistoryResource extends Resource
->searchable(),
])
->actions([
Tables\Actions\ViewAction::make(),
ViewAction::make(),
])
->bulkActions([
BulkActionGroup::make([

View File

@@ -13,7 +13,7 @@ class CreditAlertsWidget extends StatsOverviewWidget
protected int|string|array $columnSpan = 'full';
protected function getCards(): array
protected function getStats(): array
{
$lowBalanceCount = Tenant::query()
->where('is_active', true)
@@ -58,4 +58,3 @@ class CreditAlertsWidget extends StatsOverviewWidget
];
}
}

View File

@@ -5,13 +5,13 @@ namespace App\Filament\Widgets;
use App\Models\MediaStorageTarget;
use App\Services\Storage\StorageHealthService;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Card;
use Filament\Widgets\StatsOverviewWidget\Stat;
class StorageCapacityWidget extends StatsOverviewWidget
{
protected static ?int $sort = 1;
protected function getCards(): array
protected function getStats(): array
{
$health = app(StorageHealthService::class);
@@ -20,7 +20,7 @@ class StorageCapacityWidget extends StatsOverviewWidget
$stats = $health->getCapacity($target);
if ($stats['status'] !== 'ok') {
return Card::make($target->name, 'Kapazität unbekannt')
return Stat::make($target->name, 'Kapazität unbekannt')
->description(match ($stats['status']) {
'unavailable' => 'Monitoring nicht verfügbar',
'unknown' => 'Monitor-Pfad nicht gesetzt',
@@ -46,7 +46,7 @@ class StorageCapacityWidget extends StatsOverviewWidget
$color = 'warning';
}
return Card::make($target->name, "$used / $total")
return Stat::make($target->name, "$used / $total")
->description("Frei: $free · Auslastung: $percent")
->color($color)
->extraAttributes([