heading('Inhaltsverzeichnis') ->description('Generische Vorlage beim Erstellen neuer Projekte.') ->columns([ TextColumn::make('ordnungszahl') ->label('Index') ->getStateUsing(fn ($record): string => $record->ordnungszahl == '0' ? '' : number_format($record->ordnungszahl, 2)), IconColumn::make('neue_seite') ->tooltip('Start neue Seite') ->color('primary') ->label('Start') ->icon(fn (string $state): string => match ($state) { '1' => 'phosphor-file-plus', default => '' }), TextColumn::make('name') ->color('primary') ->label('Überschrift') ->wrap(), TextColumn::make('inhaltselement.name') ->label('Element') ->wrap(), TextColumn::make('textblock.name') ->wrap(), TextColumn::make('seite') ->alignCenter() ->badge() ->color(fn ($record): string => $record->seitenzahl_anzeige ? 'primary' : 'gray') ->getStateUsing(function ($record) { if ($record->seitenzahl_anzeige) { return $record->seite == '0' ? 'auto' : $record->seite; } }), ]) // ->paginated(false) ->defaultPaginationPageOption(5) ->persistFiltersInSession() ->deferFilters(false) ->filtersFormColumns(3) ->filters([ SelectFilter::make('part') ->selectablePlaceholder(false) ->default('standard') ->label('Gutachten Komponenten') ->options([ 'standard' => 'Gutachten Standard Texte', 'nutzwerte' => 'Nutzwerberechnung', 'paragraph' => 'Auszug Gutachten gem. §6', ]), ]) // ], layout: FiltersLayout::AboveContent) ->defaultSort('sort', direction: 'asc') ->reorderable('sort') ->recordActions([ EditAction::make()->iconButton()->hidden(fn ($record) => (bool) $record->no_edit), DeleteAction::make()->iconButton(), ]); } }