components([ // ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->sortable(), TextColumn::make('uid') ->searchable() ->label(__('label.username')) ->formatStateUsing(fn ($state) => username_for_admin($state)) , TextColumn::make('meta_key_text') ->label(__('label.name')) , TextColumn::make('deadline') ->label(__('label.deadline')) , TextColumn::make('created_at') ->label(__('label.created_at')) ->formatStateUsing(fn ($state) => format_datetime($state)) , ]) ->defaultSort('id', 'desc') ->filters([ Filter::make('uid') ->schema([ 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)); }) , SelectFilter::make('meta_key') ->options(UserMeta::listProps()) ->label(__('label.name')) , ]) ->recordActions([ 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)); }), ]) ->toolbarActions([ ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => ListUserMetas::route('/'), 'create' => CreateUserMeta::route('/create'), 'edit' => EditUserMeta::route('/{record}/edit'), ]; } }