defaultSort('position') ->reorderable('position') ->columns([ ImageColumn::make('avatar') ->label('') ->circular() ->disk(config('media.disk')) ->defaultImageUrl(fn (Member $r) => 'https://ui-avatars.com/api/?name='.urlencode($r->name)), TextColumn::make('name') ->label(__('panel.members.fields.name')) ->weight('medium') ->description(fn (Member $r) => $r->getTranslation('headline', app()->getLocale(), false) ?: null) ->searchable(['name', 'slug', 'github_username']) ->sortable(), TextColumn::make('technologies.name') ->label(__('panel.members.fields.technologies')) ->badge() ->color('gray') ->limitList(3) ->expandableLimitedList() ->toggleable(), TextColumn::make('projects_count') ->label(__('panel.members.fields.projects')) ->counts('projects') ->badge(), IconColumn::make('is_founder') ->label(__('panel.members.fields.is_founder')) ->boolean() ->toggleable(), IconColumn::make('is_public') ->label(__('panel.members.fields.is_public')) ->boolean(), TextColumn::make('left_at') ->label(__('panel.members.fields.left_at')) ->date() ->placeholder('—') ->toggleable(), ]) ->filters([ TernaryFilter::make('is_public') ->label(__('panel.members.fields.is_public')), SelectFilter::make('technologies') ->label(__('panel.members.fields.technologies')) ->relationship('technologies', 'name') ->multiple() ->preload(), Filter::make('current') ->label(__('panel.members.filters.current')) ->default() ->query(fn (Builder $q) => $q->whereNull('left_at')), TrashedFilter::make(), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ForceDeleteBulkAction::make(), RestoreBulkAction::make(), ]), ]); } }