ownerRecord->id); return $table ->recordTitleAttribute('top_nummer') ->columns([ TextColumn::make('top_nummer') ->searchable(), CheckboxColumn::make('nicht_in_orientierung') ->label('NiO') ->toggleable(), TextInputColumn::make('raumart') ->toggleable() ->width('2rem') ->rules(['required']) ->searchable(), SelectColumn::make('orientierung_id') ->toggleable() ->width('2rem') ->label('Orientierung') ->selectablePlaceholder(true) ->options(Orientierung::pluck('name', 'id')) ->disableOptionWhen(fn (string $value): bool => in_array($value, [2, 11, 24, 33, 36])) ->preloadOptions(), TextInputColumn::make('a')->label($spalten['a'] ?? '')->hidden(isset($spalten['a']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('b')->label($spalten['b'] ?? '')->hidden(isset($spalten['b']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('c')->label($spalten['c'] ?? '')->hidden(isset($spalten['c']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('d')->label($spalten['d'] ?? '')->hidden(isset($spalten['d']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('e')->label($spalten['e'] ?? '')->hidden(isset($spalten['e']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('f')->label($spalten['f'] ?? '')->hidden(isset($spalten['f']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('g')->label($spalten['g'] ?? '')->hidden(isset($spalten['g']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('h')->label($spalten['h'] ?? '')->hidden(isset($spalten['h']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('i')->label($spalten['i'] ?? '')->hidden(isset($spalten['i']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), TextInputColumn::make('j')->label($spalten['j'] ?? '')->hidden(isset($spalten['j']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(), ]) ->filters([ // ]) ->headerActions([ Action::make('merkmale') ->icon('phosphor-pen') ->modalCancelAction(fn (Action $action) => $action->label('Schließen')) ->modalSubmitAction(false) ->modalHeading('Merkmale') // ->slideOver() ->modalWidth(Width::Medium) ->modalContent(view('filament.pages.actions.merkmale')), Action::make('erstellen') ->action(fn (CreateOrientierungZuAbschlaege $createOrientierungZuAbschlaege) => $createOrientierungZuAbschlaege->create($this->ownerRecord)) ->requiresConfirmation() ->modalHeading('Orientierung Zu/Abschläge erstellen') ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.') ->modalSubmitActionLabel('Erstellen') ->label('Erstellen') ->tooltip('Daten werden aus "Orientierung Zu/Abschläge" Tabelle gefiltert.') ->icon('heroicon-o-cog-8-tooth'), ]) ->toolbarActions([ BulkActionGroup::make([ BulkAction::make('raumart') ->color('primary') ->label('Raumart zuweisen') ->schema([ TextInput::make('raumart') ->prefixIcon('phosphor-house-simple'), ]) ->icon('phosphor-house-simple') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { OrientierungZuAbschlaege::where('id', '=', $record->id) ->update( ['raumart' => $data['raumart']] ); } }), BulkAction::make('methode') ->color('primary') ->label('Orientierung zuweisen') ->schema([ Select::make('methode_id') ->label('Orientierung') ->prefixIcon('phosphor-compass') ->options(Orientierung::pluck('name', 'id')) ->disableOptionWhen(fn (string $value): bool => in_array($value, [2, 11, 24, 33, 36])) ->required(), ]) ->icon('phosphor-compass') ->action(function (Collection $records, array $data): void { foreach ($records as $record) { OrientierungZuAbschlaege::where('id', '=', $record->id) ->update( ['orientierung_id' => $data['methode_id']] ); } }), ]), ]); } }