Refactor Bonus, DisciplinaryReport, Gift, and Explanation schemas to enhance layout and organization. Introduce sections for better categorization of information, improve date picker functionality, and update localization for various fields across multiple languages.
This commit is contained in:
@@ -20,7 +20,8 @@ class BonusForm
|
|||||||
DatePicker::make('bonus_date')
|
DatePicker::make('bonus_date')
|
||||||
->label(__('hr.fields.bonus_date'))
|
->label(__('hr.fields.bonus_date'))
|
||||||
->required()
|
->required()
|
||||||
->default(now()),
|
->default(now())
|
||||||
|
->native(false),
|
||||||
Select::make('bonus_type')
|
Select::make('bonus_type')
|
||||||
->label(__('hr.fields.bonus_type'))
|
->label(__('hr.fields.bonus_type'))
|
||||||
->options(BonusType::class)
|
->options(BonusType::class)
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Filament\Resources\Bonuses\Schemas;
|
namespace App\Filament\Resources\Bonuses\Schemas;
|
||||||
|
|
||||||
|
use App\Enums\BonusType;
|
||||||
use App\Models\Bonus;
|
use App\Models\Bonus;
|
||||||
use Filament\Infolists\Components\TextEntry;
|
use Filament\Infolists\Components\TextEntry;
|
||||||
|
use Filament\Schemas\Components\Section;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
|
|
||||||
class BonusInfolist
|
class BonusInfolist
|
||||||
@@ -12,33 +16,47 @@ class BonusInfolist
|
|||||||
{
|
{
|
||||||
return $schema
|
return $schema
|
||||||
->components([
|
->components([
|
||||||
TextEntry::make('employee.id')
|
Section::make(__('hr.sections.basic_info'))
|
||||||
|
->schema([
|
||||||
|
TextEntry::make('employee.full_name')
|
||||||
->label(__('hr.fields.employee')),
|
->label(__('hr.fields.employee')),
|
||||||
TextEntry::make('bonus_date')
|
TextEntry::make('bonus_date')
|
||||||
->label(__('hr.fields.bonus_date'))
|
->label(__('hr.fields.bonus_date'))
|
||||||
->date(),
|
->date('d.m.Y'),
|
||||||
TextEntry::make('bonus_type')
|
TextEntry::make('bonus_type')
|
||||||
->label(__('hr.fields.bonus_type'))
|
->label(__('hr.fields.bonus_type'))
|
||||||
->badge(),
|
->badge()
|
||||||
|
->color(fn (BonusType $state): string => $state->color())
|
||||||
|
->formatStateUsing(fn (BonusType $state): string => $state->label()),
|
||||||
|
])
|
||||||
|
->columns(3),
|
||||||
|
Section::make(__('hr.sections.bonus_details'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('amount')
|
TextEntry::make('amount')
|
||||||
->label(__('hr.fields.amount'))
|
->label(__('hr.fields.amount'))
|
||||||
->numeric(),
|
->money('TMT'),
|
||||||
TextEntry::make('reason')
|
TextEntry::make('reason')
|
||||||
->label(__('hr.fields.reason'))
|
->label(__('hr.fields.reason'))
|
||||||
->placeholder('-')
|
->placeholder('—')
|
||||||
->columnSpanFull(),
|
->columnSpanFull(),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
|
Section::make(__('hr.sections.metadata'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('created_at')
|
TextEntry::make('created_at')
|
||||||
->label(__('hr.fields.created_at'))
|
->label(__('hr.fields.created_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('updated_at')
|
TextEntry::make('updated_at')
|
||||||
->label(__('hr.fields.updated_at'))
|
->label(__('hr.fields.updated_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('deleted_at')
|
TextEntry::make('deleted_at')
|
||||||
->label(__('hr.fields.deleted_at'))
|
->label(__('hr.fields.deleted_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->visible(fn (Bonus $record): bool => $record->trashed()),
|
->visible(fn (Bonus $record): bool => $record->trashed()),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ class DisciplinaryReportForm
|
|||||||
DatePicker::make('report_date')
|
DatePicker::make('report_date')
|
||||||
->label(__('hr.fields.report_date'))
|
->label(__('hr.fields.report_date'))
|
||||||
->required()
|
->required()
|
||||||
|
->native(false)
|
||||||
->default(now()),
|
->default(now()),
|
||||||
|
|
||||||
TextInput::make('title')
|
TextInput::make('title')
|
||||||
->label(__('hr.fields.title'))
|
->label(__('hr.fields.title'))
|
||||||
->required()
|
->required()
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Filament\Resources\DisciplinaryReports\Schemas;
|
namespace App\Filament\Resources\DisciplinaryReports\Schemas;
|
||||||
|
|
||||||
|
use App\Enums\DisciplinarySeverity;
|
||||||
use App\Models\DisciplinaryReport;
|
use App\Models\DisciplinaryReport;
|
||||||
use Filament\Infolists\Components\TextEntry;
|
use Filament\Infolists\Components\TextEntry;
|
||||||
|
use Filament\Schemas\Components\Section;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
|
use Filament\Infolists\Components\ImageEntry;
|
||||||
|
|
||||||
class DisciplinaryReportInfolist
|
class DisciplinaryReportInfolist
|
||||||
{
|
{
|
||||||
@@ -12,38 +17,61 @@ class DisciplinaryReportInfolist
|
|||||||
{
|
{
|
||||||
return $schema
|
return $schema
|
||||||
->components([
|
->components([
|
||||||
TextEntry::make('employee.id')
|
Section::make(__('hr.sections.basic_info'))
|
||||||
|
->schema([
|
||||||
|
TextEntry::make('employee.full_name')
|
||||||
->label(__('hr.fields.employee')),
|
->label(__('hr.fields.employee')),
|
||||||
TextEntry::make('report_date')
|
TextEntry::make('report_date')
|
||||||
->label(__('hr.fields.report_date'))
|
->label(__('hr.fields.report_date'))
|
||||||
->date(),
|
->date('d.m.Y'),
|
||||||
TextEntry::make('title')
|
|
||||||
->label(__('hr.fields.title')),
|
|
||||||
TextEntry::make('description')
|
|
||||||
->label(__('hr.fields.description'))
|
|
||||||
->columnSpanFull(),
|
|
||||||
TextEntry::make('severity')
|
TextEntry::make('severity')
|
||||||
->label(__('hr.fields.severity'))
|
->label(__('hr.fields.severity'))
|
||||||
->badge(),
|
->badge()
|
||||||
TextEntry::make('attachment_path')
|
->color(fn (DisciplinarySeverity $state): string => $state->color())
|
||||||
->label(__('hr.fields.attachment'))
|
->formatStateUsing(fn (DisciplinarySeverity $state): string => $state->label()),
|
||||||
->placeholder('-'),
|
])
|
||||||
TextEntry::make('created_by')
|
->columns(3),
|
||||||
->label(__('hr.fields.created_by'))
|
Section::make(__('hr.sections.metadata'))
|
||||||
->numeric()
|
->schema([
|
||||||
->placeholder('-'),
|
|
||||||
TextEntry::make('created_at')
|
TextEntry::make('created_at')
|
||||||
->label(__('hr.fields.created_at'))
|
->label(__('hr.fields.created_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('updated_at')
|
TextEntry::make('updated_at')
|
||||||
->label(__('hr.fields.updated_at'))
|
->label(__('hr.fields.updated_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('deleted_at')
|
TextEntry::make('deleted_at')
|
||||||
->label(__('hr.fields.deleted_at'))
|
->label(__('hr.fields.deleted_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->visible(fn (DisciplinaryReport $record): bool => $record->trashed()),
|
->visible(fn(DisciplinaryReport $record): bool => $record->trashed()),
|
||||||
|
|
||||||
|
TextEntry::make('created_by')
|
||||||
|
->label(__('hr.fields.created_by'))
|
||||||
|
->formatStateUsing(fn($state, DisciplinaryReport $record): string => $record->creator?->name ?? '—'),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
|
Section::make(__('hr.sections.report_details'))
|
||||||
|
->schema([
|
||||||
|
TextEntry::make('title')
|
||||||
|
->label(__('hr.fields.title'))
|
||||||
|
->weight('bold')
|
||||||
|
->size('lg')
|
||||||
|
->hiddenLabel(),
|
||||||
|
|
||||||
|
TextEntry::make('description')
|
||||||
|
->label(__('hr.fields.description'))
|
||||||
|
->placeholder('—')
|
||||||
|
->columnSpanFull()
|
||||||
|
->hiddenLabel(),
|
||||||
|
|
||||||
|
ImageEntry::make('attachment_path')
|
||||||
|
->square()
|
||||||
|
->size(80)
|
||||||
|
->label(__('hr.fields.attachment'))
|
||||||
|
->visible(fn(?string $state): bool => filled($state)),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Filament\Resources\Explanations\Schemas;
|
namespace App\Filament\Resources\Explanations\Schemas;
|
||||||
|
|
||||||
use App\Models\Explanation;
|
use App\Models\Explanation;
|
||||||
use Filament\Infolists\Components\TextEntry;
|
use Filament\Infolists\Components\TextEntry;
|
||||||
|
use Filament\Schemas\Components\Section;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
|
|
||||||
class ExplanationInfolist
|
class ExplanationInfolist
|
||||||
@@ -12,31 +15,46 @@ class ExplanationInfolist
|
|||||||
{
|
{
|
||||||
return $schema
|
return $schema
|
||||||
->components([
|
->components([
|
||||||
TextEntry::make('employee.id')
|
Section::make(__('hr.sections.basic_info'))
|
||||||
|
->schema([
|
||||||
|
TextEntry::make('employee.full_name')
|
||||||
->label(__('hr.fields.employee')),
|
->label(__('hr.fields.employee')),
|
||||||
TextEntry::make('explanation_date')
|
TextEntry::make('explanation_date')
|
||||||
->label(__('hr.fields.explanation_date'))
|
->label(__('hr.fields.explanation_date'))
|
||||||
->date(),
|
->date('d.m.Y'),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
|
Section::make(__('hr.sections.explanation_details'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('reason')
|
TextEntry::make('reason')
|
||||||
->label(__('hr.fields.reason')),
|
->label(__('hr.fields.reason'))
|
||||||
|
->placeholder('—')
|
||||||
|
->columnSpanFull(),
|
||||||
TextEntry::make('description')
|
TextEntry::make('description')
|
||||||
->label(__('hr.fields.description'))
|
->label(__('hr.fields.description'))
|
||||||
|
->placeholder('—')
|
||||||
->columnSpanFull(),
|
->columnSpanFull(),
|
||||||
TextEntry::make('attachment_path')
|
TextEntry::make('attachment_path')
|
||||||
->label(__('hr.fields.attachment'))
|
->label(__('hr.fields.attachment'))
|
||||||
->placeholder('-'),
|
->formatStateUsing(fn (?string $state): string => filled($state) ? basename($state) : '—'),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
|
Section::make(__('hr.sections.metadata'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('created_at')
|
TextEntry::make('created_at')
|
||||||
->label(__('hr.fields.created_at'))
|
->label(__('hr.fields.created_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('updated_at')
|
TextEntry::make('updated_at')
|
||||||
->label(__('hr.fields.updated_at'))
|
->label(__('hr.fields.updated_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('deleted_at')
|
TextEntry::make('deleted_at')
|
||||||
->label(__('hr.fields.deleted_at'))
|
->label(__('hr.fields.deleted_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->visible(fn (Explanation $record): bool => $record->trashed()),
|
->visible(fn (Explanation $record): bool => $record->trashed()),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ class GiftForm
|
|||||||
DatePicker::make('gift_date')
|
DatePicker::make('gift_date')
|
||||||
->label(__('hr.fields.gift_date'))
|
->label(__('hr.fields.gift_date'))
|
||||||
->required()
|
->required()
|
||||||
->default(now()),
|
->default(now())
|
||||||
|
->native(false),
|
||||||
TextInput::make('gift_name')
|
TextInput::make('gift_name')
|
||||||
->label(__('hr.fields.gift_name'))
|
->label(__('hr.fields.gift_name'))
|
||||||
->required()
|
->required()
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Filament\Resources\Gifts\Schemas;
|
namespace App\Filament\Resources\Gifts\Schemas;
|
||||||
|
|
||||||
use App\Models\Gift;
|
use App\Models\Gift;
|
||||||
use Filament\Infolists\Components\TextEntry;
|
use Filament\Infolists\Components\TextEntry;
|
||||||
|
use Filament\Schemas\Components\Section;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
|
|
||||||
class GiftInfolist
|
class GiftInfolist
|
||||||
@@ -12,32 +15,44 @@ class GiftInfolist
|
|||||||
{
|
{
|
||||||
return $schema
|
return $schema
|
||||||
->components([
|
->components([
|
||||||
TextEntry::make('employee.id')
|
Section::make(__('hr.sections.basic_info'))
|
||||||
|
->schema([
|
||||||
|
TextEntry::make('employee.full_name')
|
||||||
->label(__('hr.fields.employee')),
|
->label(__('hr.fields.employee')),
|
||||||
TextEntry::make('gift_date')
|
TextEntry::make('gift_date')
|
||||||
->label(__('hr.fields.gift_date'))
|
->label(__('hr.fields.gift_date'))
|
||||||
->date(),
|
->date('d.m.Y'),
|
||||||
TextEntry::make('gift_name')
|
TextEntry::make('gift_name')
|
||||||
->label(__('hr.fields.gift_name')),
|
->label(__('hr.fields.gift_name')),
|
||||||
|
])
|
||||||
|
->columns(3),
|
||||||
|
Section::make(__('hr.sections.gift_details'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('value')
|
TextEntry::make('value')
|
||||||
->label(__('hr.fields.value'))
|
->label(__('hr.fields.value'))
|
||||||
->numeric(),
|
->money('TMT'),
|
||||||
TextEntry::make('reason')
|
TextEntry::make('reason')
|
||||||
->label(__('hr.fields.reason'))
|
->label(__('hr.fields.reason'))
|
||||||
->placeholder('-')
|
->placeholder('—')
|
||||||
->columnSpanFull(),
|
->columnSpanFull(),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
|
Section::make(__('hr.sections.metadata'))
|
||||||
|
->schema([
|
||||||
TextEntry::make('created_at')
|
TextEntry::make('created_at')
|
||||||
->label(__('hr.fields.created_at'))
|
->label(__('hr.fields.created_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('updated_at')
|
TextEntry::make('updated_at')
|
||||||
->label(__('hr.fields.updated_at'))
|
->label(__('hr.fields.updated_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->placeholder('-'),
|
->placeholder('—'),
|
||||||
TextEntry::make('deleted_at')
|
TextEntry::make('deleted_at')
|
||||||
->label(__('hr.fields.deleted_at'))
|
->label(__('hr.fields.deleted_at'))
|
||||||
->dateTime()
|
->dateTime('d.m.Y H:i')
|
||||||
->visible(fn (Gift $record): bool => $record->trashed()),
|
->visible(fn (Gift $record): bool => $record->trashed()),
|
||||||
|
])
|
||||||
|
->columns(2),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ return [
|
|||||||
'approval' => 'Approval',
|
'approval' => 'Approval',
|
||||||
'metadata' => 'Metadata',
|
'metadata' => 'Metadata',
|
||||||
'medical_details' => 'Medical Details',
|
'medical_details' => 'Medical Details',
|
||||||
|
'report_details' => 'Report Details',
|
||||||
|
'explanation_details' => 'Explanation Details',
|
||||||
|
'bonus_details' => 'Bonus Details',
|
||||||
|
'gift_details' => 'Gift Details',
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ return [
|
|||||||
'approval' => 'Утверждение',
|
'approval' => 'Утверждение',
|
||||||
'metadata' => 'Метаданные',
|
'metadata' => 'Метаданные',
|
||||||
'medical_details' => 'Медицинские данные',
|
'medical_details' => 'Медицинские данные',
|
||||||
|
'report_details' => 'Детали отчёта',
|
||||||
|
'explanation_details' => 'Детали объяснительной',
|
||||||
|
'bonus_details' => 'Детали премии',
|
||||||
|
'gift_details' => 'Детали подарка',
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ return [
|
|||||||
'approval' => 'Tassyklama',
|
'approval' => 'Tassyklama',
|
||||||
'metadata' => 'Maglumat',
|
'metadata' => 'Maglumat',
|
||||||
'medical_details' => 'Lukmançylyk maglumatlary',
|
'medical_details' => 'Lukmançylyk maglumatlary',
|
||||||
|
'report_details' => 'Hasabat jikme-jiklikleri',
|
||||||
|
'explanation_details' => 'Düşündiriş jikme-jiklikleri',
|
||||||
|
'bonus_details' => 'Baýrak jikme-jiklikleri',
|
||||||
|
'gift_details' => 'Sowgat jikme-jiklikleri',
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
|||||||
Reference in New Issue
Block a user