diff --git a/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php b/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php
index 9bf6d0a..d2a58ea 100644
--- a/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php
+++ b/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php
@@ -3,8 +3,6 @@
namespace App\Filament\Resources\Auftraggebers;
use App\Filament\Clusters\Verwaltung\VerwaltungCluster;
-use App\Filament\Resources\Auftraggebers\Pages\CreateAuftraggeber;
-use App\Filament\Resources\Auftraggebers\Pages\EditAuftraggeber;
use App\Filament\Resources\Auftraggebers\Pages\ListAuftraggebers;
use App\Filament\Resources\Auftraggebers\Schemas\AuftraggeberForm;
use App\Filament\Resources\Auftraggebers\Tables\AuftraggebersTable;
@@ -43,19 +41,10 @@ class AuftraggeberResource extends Resource
return AuftraggebersTable::configure($table);
}
- public static function getRelations(): array
- {
- return [
- //
- ];
- }
-
public static function getPages(): array
{
return [
'index' => ListAuftraggebers::route('/'),
- 'create' => CreateAuftraggeber::route('/create'),
- 'edit' => EditAuftraggeber::route('/{record}/edit'),
];
}
diff --git a/app/Filament/Resources/Auftraggebers/Schemas/AuftraggeberForm.php b/app/Filament/Resources/Auftraggebers/Schemas/AuftraggeberForm.php
index e58457d..3378809 100644
--- a/app/Filament/Resources/Auftraggebers/Schemas/AuftraggeberForm.php
+++ b/app/Filament/Resources/Auftraggebers/Schemas/AuftraggeberForm.php
@@ -2,7 +2,16 @@
namespace App\Filament\Resources\Auftraggebers\Schemas;
+use Filament\Forms\Components\CheckboxList;
+use Filament\Forms\Components\FileUpload;
+use Filament\Forms\Components\Select;
+use Filament\Forms\Components\Textarea;
+use Filament\Forms\Components\TextInput;
+use Filament\Schemas\Components\Tabs;
+use Filament\Schemas\Components\Tabs\Tab;
use Filament\Schemas\Schema;
+use Filament\Support\Icons\Heroicon;
+use Ysfkaya\FilamentPhoneInput\Forms\PhoneInput;
class AuftraggeberForm
{
@@ -10,7 +19,80 @@ class AuftraggeberForm
{
return $schema
->components([
- //
+ Tabs::make('Tabs')
+ ->tabs([
+ Tab::make('Firmenname')
+ ->icon('lucide-stamp')
+ ->inlineLabel()
+ ->schema([
+ TextInput::make('company')
+ ->label('Firma')
+ ->required(),
+ Textarea::make('address')
+ ->label('Adresse')
+ ->required(),
+ TextInput::make('country')
+ ->label('Land')
+ ->default('Österreich')
+ ->required(),
+ ]),
+ Tab::make('Kontaktperson')
+ ->icon('lucide-contact')
+ ->inlineLabel()
+ ->schema([
+ TextInput::make('title')
+ ->label('Title')
+ ->required(),
+ Select::make('gender')
+ ->label('Geschlecht')
+ ->options([
+ 'Herr' => 'Herr',
+ 'Frau' => 'Frau',
+ 'Non-binary' => 'Non-binary',
+ ])
+ ->required(),
+ TextInput::make('name')
+ ->label('Name')
+ ->required(),
+ TextInput::make('email')
+ ->label('E-Mail')
+ ->required()
+ ->prefixIcon(Heroicon::Envelope),
+ PhoneInput::make('phone')
+ ->label('Telefon')
+ ->defaultCountry('AT'),
+ ]),
+ Tab::make('Logo')
+ ->icon('phosphor-squares-four')
+ ->inlineLabel()
+ ->schema([
+ FileUpload::make('logo')
+ ->image()
+ ->imageEditor()
+ ->imageEditorAspectRatios([
+ null,
+ '16:9',
+ '4:3',
+ '1:1',
+ ])
+ ->directory('auftraggeber-logo')
+ ->label('Gutachter Logo'),
+ ]),
+ Tab::make('Anzeige Im Gutachten')
+ ->icon('phosphor-eye')
+ ->inlineLabel()
+ ->schema([
+ CheckboxList::make('kopf')
+ ->Label('Bitte auswählen')
+ ->options([
+ 'logo' => '
',
+ 'firma' => '',
+ 'name' => '',
+ ])
+ ->allowHtml()
+ ->columnSpanFull(),
+ ]),
+ ])->columnSpanFull(),
]);
}
}
diff --git a/app/Filament/Resources/Auftraggebers/Tables/AuftraggebersTable.php b/app/Filament/Resources/Auftraggebers/Tables/AuftraggebersTable.php
index 9fb48b9..7792d3a 100644
--- a/app/Filament/Resources/Auftraggebers/Tables/AuftraggebersTable.php
+++ b/app/Filament/Resources/Auftraggebers/Tables/AuftraggebersTable.php
@@ -3,6 +3,7 @@
namespace App\Filament\Resources\Auftraggebers\Tables;
use Filament\Actions\EditAction;
+use Filament\Tables\Columns\ImageColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
@@ -12,11 +13,12 @@ class AuftraggebersTable
{
return $table
->columns([
- TextColumn::make('name'),
- TextColumn::make('email')->copyable()->label('E-Mail'),
- ])
- ->filters([
- //
+ ImageColumn::make('logo'),
+ TextColumn::make('company')->label('Firma')->searchable(),
+ TextColumn::make('gender')->label('Geschlecht'),
+ TextColumn::make('title')->label('Title'),
+ TextColumn::make('name')->searchable(),
+ TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
])
->recordActions([
EditAction::make()->iconButton()->color('gray'),
diff --git a/app/Filament/Resources/Gutachters/GutachterResource.php b/app/Filament/Resources/Gutachters/GutachterResource.php
index 9caffe4..af1eed7 100644
--- a/app/Filament/Resources/Gutachters/GutachterResource.php
+++ b/app/Filament/Resources/Gutachters/GutachterResource.php
@@ -41,13 +41,6 @@ class GutachterResource extends Resource
return GutachtersTable::configure($table);
}
- public static function getRelations(): array
- {
- return [
- //
- ];
- }
-
public static function getPages(): array
{
return [
diff --git a/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php b/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php
index e5e63ce..a7f5ab1 100644
--- a/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php
+++ b/app/Filament/Resources/Gutachters/Schemas/GutachterForm.php
@@ -66,7 +66,17 @@ class GutachterForm
->icon('phosphor-squares-four')
->inlineLabel()
->schema([
- FileUpload::make('logo')->label('Gutachter Logo'),
+ FileUpload::make('logo')
+ ->image()
+ ->imageEditor()
+ ->imageEditorAspectRatios([
+ null,
+ '16:9',
+ '4:3',
+ '1:1',
+ ])
+ ->directory('gutachter-logo')
+ ->label('Gutachter Logo'),
]),
Tab::make('Anzeige Im Gutachten')
->icon('phosphor-eye')
diff --git a/app/Filament/Resources/Gutachters/Tables/GutachtersTable.php b/app/Filament/Resources/Gutachters/Tables/GutachtersTable.php
index 0d5c1df..cd0f41a 100644
--- a/app/Filament/Resources/Gutachters/Tables/GutachtersTable.php
+++ b/app/Filament/Resources/Gutachters/Tables/GutachtersTable.php
@@ -14,11 +14,11 @@ class GutachtersTable
return $table
->columns([
ImageColumn::make('logo'),
- TextColumn::make('company')->label('Firma'),
+ TextColumn::make('company')->label('Firma')->searchable(),
TextColumn::make('gender')->label('Geschlecht'),
TextColumn::make('title')->label('Title'),
- TextColumn::make('name'),
- TextColumn::make('email')->copyable()->label('E-Mail'),
+ TextColumn::make('name')->searchable(),
+ TextColumn::make('email')->copyable()->label('E-Mail')->searchable(),
])
->recordActions([
EditAction::make()->iconButton()->color('gray'),
diff --git a/app/Filament/Resources/Users/Tables/UsersTable.php b/app/Filament/Resources/Users/Tables/UsersTable.php
index f7d5538..a793862 100644
--- a/app/Filament/Resources/Users/Tables/UsersTable.php
+++ b/app/Filament/Resources/Users/Tables/UsersTable.php
@@ -17,9 +17,10 @@ class UsersTable
->columns([
TextColumn::make('gender')->label('Geschlecht'),
TextColumn::make('name'),
- TextColumn::make('konto.company')->badge(),
+ TextColumn::make('konto.company')->badge()->searchable(),
TextColumn::make('email')->copyable()->label('E-Mail'),
IconColumn::make('agb_akzeptiert')
+ ->searchable()
->label('AGB')
->boolean()
->trueIcon(Heroicon::OutlinedCheckBadge)
diff --git a/app/Models/Auftraggeber.php b/app/Models/Auftraggeber.php
index 41759af..44f2522 100644
--- a/app/Models/Auftraggeber.php
+++ b/app/Models/Auftraggeber.php
@@ -23,8 +23,19 @@ class Auftraggeber extends Model
'email',
'phone',
'use_logo',
+ 'kopf',
];
+ /**
+ * @return array
+ */
+ protected function casts(): array
+ {
+ return [
+ 'kopf' => 'array',
+ ];
+ }
+
protected static function newFactory(): Factory
{
return AuftraggeberFactory::new();
diff --git a/app/Models/Gutachter.php b/app/Models/Gutachter.php
index baa577e..870fc91 100644
--- a/app/Models/Gutachter.php
+++ b/app/Models/Gutachter.php
@@ -27,6 +27,16 @@ class Gutachter extends Model
'kopf',
];
+ /**
+ * @return array
+ */
+ protected function casts(): array
+ {
+ return [
+ 'kopf' => 'array',
+ ];
+ }
+
protected static function booted(): void
{
static::addGlobalScope(new KontoScope);
diff --git a/database/migrations/2025_09_05_131323_create_gutachter_tables.php b/database/migrations/2025_09_05_131323_create_gutachter_tables.php
index c7ac358..dce3508 100644
--- a/database/migrations/2025_09_05_131323_create_gutachter_tables.php
+++ b/database/migrations/2025_09_05_131323_create_gutachter_tables.php
@@ -29,16 +29,6 @@ return new class extends Migration
});
}
- /**
- * @return array
- */
- protected function casts(): array
- {
- return [
- 'kopf' => 'array',
- ];
- }
-
/**
* Reverse the migrations.
*/
diff --git a/database/migrations/2025_10_05_062328_create_auftraggeber_table.php b/database/migrations/2025_10_05_062328_create_auftraggeber_table.php
index 0c35d89..eced87b 100644
--- a/database/migrations/2025_10_05_062328_create_auftraggeber_table.php
+++ b/database/migrations/2025_10_05_062328_create_auftraggeber_table.php
@@ -24,6 +24,7 @@ return new class extends Migration
$table->string('email')->email()->nullable();
$table->string('phone')->tel()->nullable();
$table->boolean('use_logo')->default(false);
+ $table->string('kopf')->nullable();
$table->timestamps();
});
}