Tabulka
ButtonColumn
Plnohodnotné interaktivní tlačítko s akcemi, potvrzením, loading stavy a více variantami.
Na této stránce
Plnohodnotné interaktivní tlačítko s akcemi, potvrzením, loading stavy a více variantami.
use NyonCode\WireTable\Columns\ButtonColumn;
Tlačítko s odkazem
ButtonColumn::make('view') ->buttonLabel('View') ->buttonIcon('eye') ->buttonColor('primary') ->actionUrl(fn ($record) => route('users.show', $record), openInNewTab: true)
Akční tlačítko (Livewire)
ButtonColumn::make('approve') ->buttonLabel('Approve') ->buttonIcon('check') ->buttonColor('success') ->action(fn ($record) => $record->approve())
Volání Livewire metody
ButtonColumn::make('download') ->buttonLabel('Download') ->buttonIcon('download') ->livewireAction('downloadPdf') // volá $this->downloadPdf($recordKey)
S potvrzením
ButtonColumn::make('delete') ->buttonLabel('Delete') ->buttonIcon('trash') ->buttonColor('danger') ->requiresConfirmation( title: 'Delete this record?', description: 'This action cannot be undone.', confirmText: 'Yes, delete', cancelText: 'Cancel', ) ->action(fn ($record) => $record->delete())
Varianty tlačítek
// Solid (výchozí)ButtonColumn::make('save')->buttonColor('primary') // OutlinedButtonColumn::make('cancel')->buttonColor('gray')->outlined() // Link stylButtonColumn::make('details')->link() // Danger zkratkaButtonColumn::make('remove')->danger() // Success zkratkaButtonColumn::make('confirm')->success()
Jen ikona
ButtonColumn::make('edit') ->buttonIcon('pencil') ->iconOnly() // bez popisku, jen ikona ->tooltip('Edit record')
Velikosti
ButtonColumn::make('action') ->buttonSize('xs') // xs, sm, md, lg
Podmíněný stav
ButtonColumn::make('publish') ->buttonLabel(fn ($r) => $r->is_published ? 'Unpublish' : 'Publish') ->buttonColor(fn ($r) => $r->is_published ? 'gray' : 'success') ->buttonIcon(fn ($r) => $r->is_published ? 'x' : 'check') ->visibleWhen(fn ($r) => $r->status !== 'draft') ->disabled(fn ($r) => $r->is_locked, 'Record is locked')
Loading stav
ButtonColumn::make('process') ->buttonLabel('Process') ->loading(true, 'Processing...') // zobrazit spinner + text během vykonání
API ButtonColumn
->buttonLabel(string|Closure $label)->buttonIcon(string|Closure $icon, ?string $position = 'before') // 'before' | 'after'->buttonColor(string|Closure $color) // 'primary', 'danger', 'success', 'gray', …->buttonSize(string|Closure $size) // 'xs', 'sm', 'md', 'lg'->buttonVariant(string|Closure $variant) // 'solid', 'outlined', 'link'->iconOnly(bool $iconOnly = true)->outlined() // zkratka pro variant('outlined')->link() // zkratka pro variant('link')->danger() // zkratka pro color('danger')->success() // zkratka pro color('success')->action(Closure $fn) // inline akční callback->livewireAction(string $method) // volat Livewire metodu->actionUrl(Closure $url, bool $openInNewTab = false) // vykreslit odkaz místo toho->requiresConfirmation( bool|Closure $requires = true, string|Closure|null $title = null, string|Closure|null $description = null, string|Closure|null $confirmText = null, string|Closure|null $cancelText = null,)->disabled(bool|Closure $disabled = true, string|Closure|null $tooltip = null)->visibleWhen(Closure $fn)->enabledWhen(Closure $fn)->loading(bool|Closure $show = true, string|Closure|null $text = null)->extraButtonAttributes(array|Closure $attrs)