From b6c9f22b75c1b45587bad6d516ceeed08d99ee59 Mon Sep 17 00:00:00 2001 From: Alexander Gabriel Date: Wed, 3 Jun 2026 20:02:55 +0000 Subject: [PATCH] =?UTF-8?q?Label=20und=20Filter=20f=C3=BCr=20Todo-Tabelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/Todos/Tables/TodosTable.php | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/Todos/Tables/TodosTable.php b/app/Filament/Resources/Todos/Tables/TodosTable.php index e646a07..a67c4d1 100644 --- a/app/Filament/Resources/Todos/Tables/TodosTable.php +++ b/app/Filament/Resources/Todos/Tables/TodosTable.php @@ -2,12 +2,16 @@ namespace App\Filament\Resources\Todos\Tables; +use App\Models\Group; +use App\Models\User; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteBulkAction; use Filament\Actions\EditAction; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; +use Filament\Tables\Filters\Filter; use Filament\Tables\Table; +use Illuminate\Database\Eloquent\Builder; class TodosTable { @@ -16,34 +20,57 @@ class TodosTable return $table ->columns([ TextColumn::make('created_at') + ->label('Erstellungsdatum') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('updated_at') + ->label('Bearbeitet') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('name') + ->label('Name') ->searchable(), TextColumn::make('user.name') + ->label('Benutzer') ->searchable(), TextColumn::make('todoable.name') ->label('Zugewiesen') ->searchable(), TextColumn::make('due_date') + ->label('Todo-Datum') ->date() ->sortable(), TextColumn::make('done_date') + ->label('Erledigt am') ->date() ->sortable(), TextColumn::make('follow_up') + ->label('Wiedervorlage') ->date() ->sortable(), IconColumn::make('review') + ->label('Review') ->boolean(), ]) ->filters([ - // + Filter::make('mine')->label('von mir oder für mich') + ->default() + ->query(function (Builder $query) { + $query->where('user_id', filament()->auth()->user()->id) + ->orWhere('todoable_type', User::class)->where('todoable_id', filament()->auth()->user()->id) + ->orwhere('todoable_type', Group::class)->whereIn('todoable_id', User::find(filament()->auth()->user()->id)->groups()->get()->pluck('id')); + return $query; + }), + Filter::make('alleoffenen') + ->default() + ->label('nicht erledigt') + ->query(function (Builder $query) { + $query->where('done_date', null); + return $query; + }), + ]) ->recordActions([ EditAction::make(),