This commit is contained in:
salam committed 2025-09-23 12:02:39 +02:00
1 parent 8ee2fc4b00
commit 326d827543
18 files changed
+178 -50

No files matched your search

@@ -0,0 +1,15 @@
<?php
namespace App\Filament\Clusters\Administration;
use BackedEnum;
use Filament\Clusters\Cluster;
use Filament\Pages\Enums\SubNavigationPosition;
use Filament\Support\Icons\Heroicon;
class AdministrationCluster extends Cluster
{
protected static string|BackedEnum|null $navigationIcon = Heroicon::AdjustmentsHorizontal;
protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Start;
}
@@ -0,0 +1,15 @@
<?php
namespace App\Filament\Clusters\Verwaltung;
use BackedEnum;
use Filament\Clusters\Cluster;
use Filament\Pages\Enums\SubNavigationPosition;
use Filament\Support\Icons\Heroicon;
class VerwaltungCluster extends Cluster
{
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedSquares2x2;
protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Start;
}
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Gutachters;
use App\Filament\Clusters\Verwaltung\VerwaltungCluster;
use App\Filament\Resources\Gutachters\Pages\CreateGutachter;
use App\Filament\Resources\Gutachters\Pages\EditGutachter;
use App\Filament\Resources\Gutachters\Pages\ListGutachters;
@@ -19,7 +20,11 @@ class GutachterResource extends Resource
{
protected static ?string $model = Gutachter::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-drafting-compass';
protected static ?int $navigationSort = 2;
protected static ?string $cluster = VerwaltungCluster::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-square-user';
protected static ?string $recordTitleAttribute = 'name';
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\KontoOptions;
use App\Filament\Clusters\Administration\AdministrationCluster;
use App\Filament\Resources\KontoOptions\Pages\CreateKontoOption;
use App\Filament\Resources\KontoOptions\Pages\EditKontoOption;
use App\Filament\Resources\KontoOptions\Pages\ListKontoOptions;
@@ -12,15 +13,14 @@ use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use UnitEnum;
class KontoOptionResource extends Resource
{
protected static ?string $model = KontoOption::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-key-square';
protected static ?string $cluster = AdministrationCluster::class;
protected static string|UnitEnum|null $navigationGroup = 'Administration';
protected static string|BackedEnum|null $navigationIcon = 'lucide-key-square';
protected static ?string $navigationLabel = 'Konto Optionen';
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Kontos;
use App\Filament\Clusters\Verwaltung\VerwaltungCluster;
use App\Filament\Resources\Kontos\Pages\ListKontos;
use App\Filament\Resources\Kontos\Schemas\KontoForm;
use App\Filament\Resources\Kontos\Tables\KontosTable;
@@ -16,8 +17,12 @@ class KontoResource extends Resource
{
protected static ?string $model = Konto::class;
protected static ?int $navigationSort = 1;
protected static string|BackedEnum|null $navigationIcon = 'lucide-circle-user-round';
protected static ?string $cluster = VerwaltungCluster::class;
protected static ?string $navigationLabel = 'Konto';
protected static ?string $modelLabel = 'Konto';
@@ -2,11 +2,17 @@
namespace App\Filament\Resources\Kontos\Tables;
use Filament\Actions\Action;
use Filament\Actions\EditAction;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\TextInput;
use Filament\Support\Enums\FontWeight;
use Filament\Support\Enums\TextSize;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Support\Facades\Mail;
use Ysfkaya\FilamentPhoneInput\PhoneInputNumberType;
use Ysfkaya\FilamentPhoneInput\Tables\PhoneColumn;
@@ -17,31 +23,66 @@ class KontosTable
return $table
->columns([
// TextColumn::make('id'),
TextColumn::make('konto_gender')->label('Geschlecht'),
// TextColumn::make('konto_gender')->label('Geschlecht'),
// TextColumn::make('konto_title')->label('Title'),
// TextColumn::make('konto_first_name')->label('Vorname'),
TextColumn::make('konto_option.name')
->badge()
->label('Plan & Zahlung')
->description(fn ($record): string => $record->konto_option->payment_plan->name),
TextColumn::make('konto_company')->label('Firma'),
IconColumn::make('konto_agb_akzeptiert')
->label('AGB')
->boolean()
->trueIcon(Heroicon::OutlinedCheckBadge)
->falseIcon(Heroicon::OutlinedXMark),
// IconColumn::make('konto_agb_akzeptiert')
// ->label('AGB')
// ->boolean()
// ->trueIcon(Heroicon::OutlinedCheckBadge)
// ->falseIcon(Heroicon::OutlinedXMark),
// PhoneColumn::make('konto_phone')
// ->label('Telefon')
// ->displayFormat(PhoneInputNumberType::INTERNATIONAL),
// TextColumn::make('konto_email')
// ->copyable()
// ->copyMessage('E-Mail wurde kopiert')
// ->copyMessageDuration(1500)
// ->label('E-mail'),
TextColumn::make('konto_company')->label('Firma')
->description(fn ($record): string => $record->konto_address.', '.$record->konto_location),
TextColumn::make('konto_option.name')
->icon(Heroicon::CurrencyEuro)
// ->iconColor('success')
// ->badge()
->label('Plan')
->description(fn ($record): string => $record->konto_option->payment_plan->name),
TextColumn::make('konto_gutachten_abgeschlossen')
->size(TextSize::Large)
->weight(FontWeight::Bold)
->label('Abgeschlossen')
->color('primary')
->description('Gutachten')
->alignCenter(),
TextColumn::make('konto_gutachten_zahl')
->size(TextSize::Large)
->weight(FontWeight::Bold)
->label('Freigeschalted')
->color('success')
->description('Gutachten')
->alignCenter(),
PhoneColumn::make('konto_phone')
->label('Telefon')
->displayFormat(PhoneInputNumberType::INTERNATIONAL),
TextColumn::make('konto_email')
->copyable()
->copyMessage('E-Mail wurde kopiert')
->copyMessageDuration(1500)
->label('E-mail'),
])
->recordActions([
EditAction::make(),
Action::make('Laden')
->icon('heroicon-m-bolt')
->color('warning')
->schema([
TextInput::make('subject')->required(),
RichEditor::make('body')->required(),
])
->action(function (array $data) {
Mail::to($this->client)
->send(new GenericEmail(
subject: $data['subject'],
body: $data['body'],
));
}),
]);
}
}
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Permissions;
use App\Filament\Clusters\Administration\AdministrationCluster;
use App\Filament\Resources\Permissions\Pages\CreatePermission;
use App\Filament\Resources\Permissions\Pages\EditPermission;
use App\Filament\Resources\Permissions\Pages\ListPermissions;
@@ -12,15 +13,14 @@ use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use UnitEnum;
class PermissionResource extends Resource
{
protected static ?string $model = Permission::class;
protected static string|BackedEnum|null $navigationIcon = 'lucide-toggle-right';
protected static ?string $cluster = AdministrationCluster::class;
protected static string|UnitEnum|null $navigationGroup = 'Administration';
protected static string|BackedEnum|null $navigationIcon = 'lucide-toggle-right';
protected static ?string $recordTitleAttribute = 'name';
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Users;
use App\Filament\Clusters\Verwaltung\VerwaltungCluster;
use App\Filament\Resources\Users\Pages\CreateUser;
use App\Filament\Resources\Users\Pages\EditUser;
use App\Filament\Resources\Users\Pages\ListUsers;
@@ -14,18 +15,19 @@ use Filament\Schemas\Schema;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use UnitEnum;
class UserResource extends Resource
{
protected static ?string $model = User::class;
protected static ?int $navigationSort = 3;
protected static ?string $cluster = VerwaltungCluster::class;
// protected static bool $shouldSkipAuthorization = true;
protected static string|BackedEnum|null $navigationIcon = 'lucide-user';
// protected static string|UnitEnum|null $navigationGroup = 'Gutachten';
protected static ?string $recordTitleAttribute = 'name';
protected static ?string $navigationLabel = 'Benutzer';
+3
View File
@@ -27,6 +27,9 @@ class Konto extends Model
'konto_uid_number',
'konto_agb_akzeptiert',
'konto_option_id',
'konto_gutachten_zahl',
'konto_gutachten_zeit',
'konto_gutachten_abgeschlossen',
];
public function konto_option(): HasOne
@@ -67,6 +67,7 @@ class AdminPanelProvider extends PanelProvider
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->discoverClusters(in: app_path('Filament/Clusters'), for: 'App\\Filament\\Clusters')
->viteTheme('resources/css/filament/admin/theme.css')
->pages([
Dashboard::class,