schema([ // ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('id')->sortable(), Tables\Columns\TextColumn::make('uid') ->searchable() ->label(__('label.username')) ->formatStateUsing(fn ($state) => username_for_admin($state)) , Tables\Columns\TextColumn::make('meta_key_text') ->label(__('label.name')) , Tables\Columns\TextColumn::make('deadline') ->label(__('label.deadline')) , Tables\Columns\TextColumn::make('created_at') ->label(__('label.created_at')) ->formatStateUsing(fn ($state) => format_datetime($state)) , ]) ->defaultSort('id', 'desc') ->filters([ Tables\Filters\Filter::make('uid') ->form([ Forms\Components\TextInput::make('uid') ->label(__('label.username')) ->placeholder('UID') , ])->query(function (Builder $query, array $data) { return $query->when($data['uid'], fn (Builder $query, $value) => $query->where("uid", $value)); }) , Tables\Filters\SelectFilter::make('meta_key') ->options(UserMeta::listProps()) ->label(__('label.name')) , ]) ->actions([ Tables\Actions\DeleteAction::make()->using(function (NexusModel $record) { $record->delete(); clear_user_cache($record->uid); do_log(sprintf("user: %d meta: %s was del by %s", $record->uid, $record->meta_key, Auth::user()->username)); }), ]) ->bulkActions([ ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListUserMetas::route('/'), 'create' => Pages\CreateUserMeta::route('/create'), 'edit' => Pages\EditUserMeta::route('/{record}/edit'), ]; } }