columns([ TextColumn::make('name') ->label('Kulcs') ->searchable() ->sortable(), TextColumn::make('label') ->label('Megnevezés') ->searchable(), ToggleColumn::make('enabled') ->label('Bekapcsolva'), TextColumn::make('stages') ->label('Stage-ek') ->badge() ->placeholder('mind'), TextColumn::make('roles') ->label('Szerepkörök') ->badge() ->placeholder('mind'), TextColumn::make('updated_at') ->label('Módosítva') ->dateTime() ->sortable(), ]) ->recordActions([ EditAction::make(), Action::make('userOverride') ->label('Egyéni felülbírálás') ->icon('heroicon-o-user') ->form([ Select::make('user_id') ->label('Felhasználó') ->searchable() ->options(fn () => User::pluck('name', 'id')) ->required(), Radio::make('override') ->label('Állapot') ->options([ 'inherit' => 'Örökölt (alapértelmezett szabály érvényes)', 'on' => 'Bekapcsolva', 'off' => 'Kikapcsolva', ]) ->default('inherit') ->required(), ]) ->action(function (array $data, FeatureFlag $record) { $user = User::findOrFail($data['user_id']); if ($data['override'] === 'inherit') { FeatureFlagOverride::where('feature_flag_id', $record->id) ->where('user_id', $user->id) ->delete(); } else { FeatureFlagOverride::updateOrCreate( ['feature_flag_id' => $record->id, 'user_id' => $user->id], ['active' => $data['override'] === 'on'], ); } // csak ennek az egy usernek a gyorsítótárazott Pennant-feloldását // érvénytelenítjük, a többi felhasználót nem érinti Feature::for($user)->forget($record->name); }), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }