heading('Inhaltsverzeichnis') ->description('Vorlagen zum Erstellen der Inhaltsangabe mit Textblöcken 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(), TextInputColumn::make('seite') ->extraInputAttributes(['onClick' => 'this.select()']) ->alignCenter() ->tooltip('Bei 0 wird keine Seitenzahl ausgegeben.') ->getStateUsing(fn ($record): string => $record->seite == 0 ? '' : $record->seite), ]) // ->paginated(false) ->persistFiltersInSession() ->deferFilters(false) ->filtersFormColumns(1) ->defaultPaginationPageOption(50) ->filters([ Filter::make('filters') ->schema([ RadioCards::make('part') ->columns(3) ->iconAfter() ->default('standard') ->indicatorBefore() ->hiddenIcon() ->hiddenLabel() ->options([ 'standard' => 'Gutachten Standard', 'nutzwerte' => 'Nutzwertberechnung', 'paragraph' => 'Auszug Gutachten', ]) ->idleIndicator('phosphor-circle') ->selectedIndicator('phosphor-circle-fill') ->descriptions([ 'standard' => 'Inhaltsangabe, Texte', 'nutzwerte' => 'Tabellen', 'paragraph' => 'Gemäß Paragraph §6', ]), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when( $data['part'], fn (Builder $query, $part): Builder => $query->where('part', $part), ); }), // SelectFilter::make('part') // ->selectablePlaceholder(false) // ->default('standard') // ->label('Gutachten Komponenten') // ->options([ // 'standard' => 'Gutachten Standard Texte', // 'nutzwerte' => 'Nutzwertberechnung', // '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(), ]); } }