heading('Vorhandene Sparkbooth-Verbindungen') ->query( Gallery::query() ->whereNotNull('upload_token_hash') ->orderByDesc('created_at') ) ->columns([ TextColumn::make('name') ->label('Name') ->searchable(), TextColumn::make('slug') ->label('Slug') ->copyable() ->toggleable(), TextColumn::make('images_path') ->label('Upload-Pfad') ->copyable() ->toggleable(), TextColumn::make('created_at') ->label('Angelegt') ->since() ->sortable(), ]) ->actions([ Action::make('show') ->label('Zugangsdaten anzeigen') ->icon('heroicon-o-key') ->color('primary') ->modalHeading('Upload-Zugangsdaten') ->modalSubmitAction(false) ->modalCancelActionLabel('Schließen') ->modalContent(function (Gallery $record) { $plainToken = $record->regenerateUploadToken(); $data = [ 'gallery' => $record->only(['id', 'name', 'slug', 'images_path']), 'upload_token' => $plainToken, 'upload_url' => route('api.sparkbooth.upload'), 'gallery_url' => route('gallery.show', $record), ]; Notification::make() ->title('Upload-Token wurde erneuert.') ->body('Bitte verwende den neuen Token in Sparkbooth.') ->success() ->send(); return view('filament.pages.partials.sparkbooth-token', $data); }), ]) ->emptyStateHeading('Keine Sparkbooth-Verbindungen') ->emptyStateDescription('Lege eine neue Verbindung an oder aktiviere Uploads für eine Galerie.'); } }