zuabschl wip

This commit is contained in:
salam committed 2025-10-08 12:05:35 +02:00
1 parent 79c0b14bb5
commit 1728384c4e
12 files changed
+12411 -104

No files matched your search

@@ -12,11 +12,13 @@ use Filament\Actions\BulkActionGroup;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Support\Enums\FontWeight;
use Filament\Support\Enums\Width;
use Filament\Tables\Columns\CheckboxColumn;
use Filament\Tables\Columns\SelectColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Collection;
@@ -38,12 +40,23 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
$spalten = Merkmale::map($this->ownerRecord->id);
return $table
// ->striped()
->recordTitleAttribute('top_nummer')
->columns([
TextColumn::make('top_nummer')
->searchable(),
->alignCenter()
->label('Top Nummer')
->searchable()
->extraHeaderAttributes([
'style' => 'position: sticky; left: 0; z-index: 1;',
'class' => 'bg-gray-50 dark:bg-gray-900',
])
->extraCellAttributes([
'style' => 'position: sticky; left: 0; z-index: 1;',
'class' => 'bg-gray-50 dark:bg-gray-900',
]),
CheckboxColumn::make('nicht_in_orientierung')
->label('NiO')
->label('Nicht in Orientierung')
->toggleable(),
TextInputColumn::make('raumart')
->toggleable()
@@ -68,9 +81,23 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
TextInputColumn::make('h')->label($spalten['h'] ?? '')->hidden(isset($spalten['h']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('i')->label($spalten['i'] ?? '')->hidden(isset($spalten['i']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextInputColumn::make('j')->label($spalten['j'] ?? '')->hidden(isset($spalten['j']) ? false : true)->toggleable()->rules(['numeric'])->alignCenter(),
TextColumn::make('nutzwert')
->extraHeaderAttributes([
'style' => 'position: sticky; right: 0; z-index: 1;',
'class' => 'bg-gray-50 dark:bg-gray-900',
])
->extraCellAttributes([
'style' => 'position: sticky; right: 0; z-index: 1;',
'class' => 'bg-gray-50 dark:bg-gray-900',
])
->alignCenter()
->default(fn ($record): ?int => round($record->a + $record->b + $record->c + $record->d + $record->e + $record->f + $record->g + $record->h + $record->i + $record->j))
->weight(FontWeight::ExtraBold),
])
->filters([
//
TernaryFilter::make('nicht_in_orientierung')
->default(0)
->label('Objekte "Nicht in Orientierung" anzeigen'),
])
->headerActions([
Action::make('merkmale')
@@ -78,8 +105,8 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
->modalCancelAction(fn (Action $action) => $action->label('Schließen'))
->modalSubmitAction(false)
->modalHeading('Merkmale')
// ->slideOver()
->modalWidth(Width::Medium)
->slideOver()
// ->modalWidth(Width::Medium)
->modalContent(view('filament.pages.actions.merkmale')),
Action::make('erstellen')
->action(fn (CreateOrientierungZuAbschlaege $createOrientierungZuAbschlaege) => $createOrientierungZuAbschlaege->create($this->ownerRecord))
@@ -129,6 +156,54 @@ class OrientierungZuAbschlaegesRelationManager extends RelationManager
);
}
}),
BulkAction::make('a')
->label($spalten['a'] ?? '')
->hidden(isset($spalten['a']) ? false : true)
->schema([
TextInput::make('a')
->prefixIcon('phosphor-gear'),
])
->icon('phosphor-gear')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
OrientierungZuAbschlaege::where('id', '=', $record->id)
->update(
['a' => $data['a']]
);
}
}),
BulkAction::make('b')
->label($spalten['b'] ?? '')
->hidden(isset($spalten['b']) ? false : true)
->schema([
TextInput::make('b')
->prefixIcon('phosphor-gear'),
])
->icon('phosphor-gear')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
OrientierungZuAbschlaege::where('id', '=', $record->id)
->update(
['b' => $data['b']]
);
}
}),
BulkAction::make('c')
->label($spalten['c'] ?? '')
->hidden(isset($spalten['c']) ? false : true)
->schema([
TextInput::make('c')
->prefixIcon('phosphor-gear'),
])
->icon('phosphor-gear')
->action(function (Collection $records, array $data): void {
foreach ($records as $record) {
OrientierungZuAbschlaege::where('id', '=', $record->id)
->update(
['c' => $data['c']]
);
}
}),
]),
]);
}