This commit is contained in:
salam committed 2026-07-04 18:15:17 +02:00
1 parent eb598ae0ce
commit 16c0aa24fe
14 files changed
+307 -174

No files matched your search

@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Projektes\Tables;
use App\Actions\Cloning\CloneProjekt;
use App\Enums\ProjektStatus;
use App\Models\Auftraggeber;
use App\Models\Gutachter;
@@ -16,9 +17,9 @@ use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\HtmlString;
use Illuminate\Database\Eloquent\Builder;
class ProjektesTable
{
@@ -28,17 +29,17 @@ class ProjektesTable
->columns([
TextColumn::make('id'),
ToggleColumn::make('meine')
->state(fn($record) => ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->count())
->state(fn ($record) => ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->count())
->beforeStateUpdated(function ($record, $state) {
if($state){
if ($state) {
ProjektUser::create(['user_id' => auth()->user()->id, 'projekte_id' => $record->id]);
}else{
} else {
ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->delete();
}
}),
TextColumn::make('interner_name')
->badge()
->tooltip(fn($record): HtmlString => new HtmlString($record->beschreibung))
->tooltip(fn ($record): HtmlString => new HtmlString($record->beschreibung))
->label('Interner Name')
->color(fn ($record): string => match ($record->status) {
'entwurf' => 'primary',
@@ -53,7 +54,6 @@ class ProjektesTable
->label('Offizieller Name'),
TextColumn::make('gutachter.company'),
TextColumn::make('auftraggeber.company'),
// TextColumn::make('ort'),
TextColumn::make('erstellung')->sortable(),
])
->striped()
@@ -63,12 +63,12 @@ class ProjektesTable
->filters([
Filter::make('meine')
->schema([
Toggle::make('meine')->label('Meine Projekte')
Toggle::make('meine')->label('Meine Projekte'),
])->query(function (Builder $query, array $data): Builder {
return $query->when(
$data['meine'],
function (Builder $query, $meine) {
$query->whereHas('projekt_users', function ($query) {
$query->whereHas('projekt_users', function ($query) {
$query->where('projekt_users.user_id', auth()->user()->id);
});
}
@@ -101,7 +101,7 @@ class ProjektesTable
->recordActions([
EditAction::make()->iconButton(),
Action::make('dokument_klonen')
->action(fn(Projekte $record) => $record->duplicate())
->action(fn (Projekte $record) => CloneProjekt::clone($record))
->iconButton()
->icon('phosphor-copy')
->requiresConfirmation(),