This commit is contained in:
salam committed 2025-10-24 11:43:24 +02:00
1 parent 2296b708eb
commit f2b6487ec0
20 files changed
+395 -91

No files matched your search

+4 -1
View File
@@ -24,7 +24,8 @@ class RaeumealleImporter extends Importer
{
return [
ImportColumn::make('top_nummer')
->validationAttribute('Geschoss')
->label('Top Nummer')
->validationAttribute('Top Nummer')
->requiredMapping()
->example('EG')
->rules(['required', 'max:255'])
@@ -54,7 +55,9 @@ class RaeumealleImporter extends Importer
return iconv(mb_detect_encoding($state, mb_detect_order(), true), 'UTF-8', $state);
}),
ImportColumn::make('flaeche')
->label('Fläche')
->validationAttribute('Fläche')
->requiredMapping()
->rules(['required'])
->example('52,75')
->castStateUsing(function (string $state): ?float {
@@ -3,6 +3,7 @@
namespace App\Filament\Resources\Methodes\Tables;
use Filament\Actions\EditAction;
use Filament\Support\Enums\FontWeight;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Support\HtmlString;
@@ -12,15 +13,14 @@ class MethodesTable
public static function configure(Table $table): Table
{
return $table
->paginated(false)
->columns([
TextColumn::make('id'),
TextColumn::make('name')
->color('info')
->weight(FontWeight::Bold)
->wrap()
->description(function ($record) {
return new HtmlString($record->description);
})
->html(),
}),
])
->recordActions([
EditAction::make()->iconButton(),
@@ -14,8 +14,10 @@ use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Columns\SelectColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Livewire\Component;
@@ -38,14 +40,14 @@ class ProjektMethodesRelationManager extends RelationManager
->recordTitleAttribute('raumart')
->columns([
SelectColumn::make('methode_id')
->selectablePlaceholder(true)
->label('Methoden')
->optionsRelationship('methode', 'name')
->preloadOptions()
->rules(['required'])
->afterStateUpdated(function (Component $livewire) {
$livewire->dispatch('refreshMethods');
})->validationMessages([
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
'required' => 'Die Eingabe einer Methode ist erforderlich.',
]),
TextColumn::make('raumart')
->searchable(),
@@ -62,10 +64,27 @@ class ProjektMethodesRelationManager extends RelationManager
]),
])
->filters([
SelectFilter::make('methodes')
->label('Methoden')
->relationship('methode', 'name'),
TernaryFilter::make('methode_id')
->label('Methode zugeordnet'),
->label('Methode ist zugeordnet'),
TernaryFilter::make('faktor')
->label('Faktor fehlt')
->queries(
true: fn (Builder $query) => $query->where('faktor', '=', 0),
false: fn (Builder $query) => $query->where('faktor', '>', 0),
),
])
->headerActions([
Action::make('methoden')
->icon('phosphor-question')
->modalCancelAction(fn (Action $action) => $action->label('Schließen'))
->modalSubmitAction(false)
->modalHeading('Hilfe zu Methoden')
->slideOver()
->modalContent(view('filament.pages.actions.methoden')),
Action::make('erstellen')
->action(fn (CreateProjektMethoden $createProjektMethoden) => $createProjektMethoden->create($this->ownerRecord))
->requiresConfirmation()
@@ -19,7 +19,7 @@ class ProjektesTable
TextColumn::make('interner_name')
->tooltip(fn ($record): HtmlString => new HtmlString($record->beschreibung))
->label('Interner Name')
->color('info')
->color('primary')
->wrap()
->searchable(),
TextColumn::make('offizieller_name')
@@ -0,0 +1,30 @@
<?php
namespace App\Filament\Resources\Projektes\Widgets;
use App\Models\Methode;
use Filament\Support\Enums\FontWeight;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Filament\Widgets\TableWidget;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\HtmlString;
class WidgetMethoden extends TableWidget
{
public function table(Table $table): Table
{
return $table
->query(fn (): Builder => Methode::query())
->paginated(false)
->columns([
TextColumn::make('name')
->label('')
->weight(FontWeight::Bold)
->wrap()
->description(function ($record) {
return new HtmlString($record->description);
}),
]);
}
}