Refactor VacationForm and VacationInfolist to enhance date picker functionality and improve localization. Introduce new sections in VacationInfolist for better organization of information, and add missing labels in multiple languages for improved user experience.
This commit is contained in:
@@ -21,10 +21,13 @@ class VacationForm
|
||||
->options(VacationType::class)
|
||||
->required()
|
||||
->native(false),
|
||||
HrForm::leaveDatePicker('start_date', __('hr.fields.start_date')),
|
||||
HrForm::leaveDatePicker('end_date', __('hr.fields.end_date')),
|
||||
HrForm::leaveDatePicker('start_date', __('hr.fields.start_date'))
|
||||
->native(false),
|
||||
HrForm::leaveDatePicker('end_date', __('hr.fields.end_date'))
|
||||
->native(false),
|
||||
DatePicker::make('return_date')
|
||||
->label(__('hr.fields.return_date')),
|
||||
->label(__('hr.fields.return_date'))
|
||||
->native(false),
|
||||
HrForm::leaveDaysDisplay(),
|
||||
Textarea::make('reason')
|
||||
->label(__('hr.fields.reason'))
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Filament\Resources\Vacations\Schemas;
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Enums\VacationType;
|
||||
use App\Models\Vacation;
|
||||
use Filament\Infolists\Components\ImageEntry;
|
||||
use Filament\Infolists\Components\TextEntry;
|
||||
use Filament\Schemas\Components\Section;
|
||||
use Filament\Schemas\Schema;
|
||||
|
||||
class VacationInfolist
|
||||
@@ -12,54 +18,73 @@ class VacationInfolist
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
TextEntry::make('employee.id')
|
||||
Section::make(__('hr.sections.basic_info'))
|
||||
->schema([
|
||||
TextEntry::make('employee.full_name')
|
||||
->label(__('hr.fields.employee')),
|
||||
TextEntry::make('type')
|
||||
->label(__('hr.fields.type'))
|
||||
->badge(),
|
||||
TextEntry::make('start_date')
|
||||
->label(__('hr.fields.start_date'))
|
||||
->date(),
|
||||
TextEntry::make('end_date')
|
||||
->label(__('hr.fields.end_date'))
|
||||
->date(),
|
||||
TextEntry::make('return_date')
|
||||
->label(__('hr.fields.return_date'))
|
||||
->date()
|
||||
->placeholder('-'),
|
||||
TextEntry::make('days')
|
||||
->label(__('hr.fields.days'))
|
||||
->numeric(),
|
||||
->badge()
|
||||
->color(fn (VacationType $state): string => $state->color())
|
||||
->formatStateUsing(fn (VacationType $state): string => $state->label()),
|
||||
TextEntry::make('status')
|
||||
->label(__('hr.fields.status'))
|
||||
->badge(),
|
||||
->badge()
|
||||
->color(fn (ApprovalStatus $state): string => $state->color())
|
||||
->formatStateUsing(fn (ApprovalStatus $state): string => $state->label()),
|
||||
])
|
||||
->columns(3),
|
||||
Section::make(__('hr.sections.dates'))
|
||||
->schema([
|
||||
TextEntry::make('start_date')
|
||||
->label(__('hr.fields.start_date'))
|
||||
->date('d.m.Y'),
|
||||
TextEntry::make('end_date')
|
||||
->label(__('hr.fields.end_date'))
|
||||
->date('d.m.Y'),
|
||||
TextEntry::make('return_date')
|
||||
->label(__('hr.fields.return_date'))
|
||||
->date('d.m.Y')
|
||||
->placeholder('—'),
|
||||
TextEntry::make('days')
|
||||
->label(__('hr.fields.days'))
|
||||
->suffix(' '.__('hr.messages.days_suffix')),
|
||||
])
|
||||
->columns(2),
|
||||
Section::make(__('hr.sections.approval'))
|
||||
->schema([
|
||||
TextEntry::make('reason')
|
||||
->label(__('hr.fields.reason'))
|
||||
->placeholder('-')
|
||||
->placeholder('—')
|
||||
->columnSpanFull(),
|
||||
TextEntry::make('attachment_path')
|
||||
->label(__('hr.fields.attachment'))
|
||||
->placeholder('-'),
|
||||
->formatStateUsing(fn (?string $state): string => filled($state) ? basename($state) : '—'),
|
||||
TextEntry::make('approved_by')
|
||||
->label(__('hr.fields.approved_by'))
|
||||
->numeric()
|
||||
->placeholder('-'),
|
||||
->formatStateUsing(fn ($state, Vacation $record): string => $record->approver?->name ?? '—'),
|
||||
])
|
||||
->columns(2),
|
||||
Section::make(__('hr.sections.metadata'))
|
||||
->schema([
|
||||
TextEntry::make('approved_at')
|
||||
->label(__('hr.fields.approved_at'))
|
||||
->dateTime()
|
||||
->placeholder('-'),
|
||||
->dateTime('d.m.Y H:i')
|
||||
->placeholder('—'),
|
||||
TextEntry::make('created_at')
|
||||
->label(__('hr.fields.created_at'))
|
||||
->dateTime()
|
||||
->placeholder('-'),
|
||||
->dateTime('d.m.Y H:i')
|
||||
->placeholder('—'),
|
||||
TextEntry::make('updated_at')
|
||||
->label(__('hr.fields.updated_at'))
|
||||
->dateTime()
|
||||
->placeholder('-'),
|
||||
->dateTime('d.m.Y H:i')
|
||||
->placeholder('—'),
|
||||
TextEntry::make('deleted_at')
|
||||
->label(__('hr.fields.deleted_at'))
|
||||
->dateTime()
|
||||
->dateTime('d.m.Y H:i')
|
||||
->visible(fn (Vacation $record): bool => $record->trashed()),
|
||||
])
|
||||
->columns(2),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,6 +156,10 @@ return [
|
||||
'upcoming_approved_leave' => 'Upcoming Approved Leave',
|
||||
'other_leave_types' => 'Other Leave Types',
|
||||
'activity_details' => 'Activity Details',
|
||||
'basic_info' => 'Basic Information',
|
||||
'dates' => 'Dates',
|
||||
'approval' => 'Approval',
|
||||
'metadata' => 'Metadata',
|
||||
],
|
||||
|
||||
'messages' => [
|
||||
|
||||
@@ -156,6 +156,10 @@ return [
|
||||
'upcoming_approved_leave' => 'Предстоящий одобренный отпуск',
|
||||
'other_leave_types' => 'Другие типы отпусков',
|
||||
'activity_details' => 'Детали активности',
|
||||
'basic_info' => 'Основная информация',
|
||||
'dates' => 'Даты',
|
||||
'approval' => 'Утверждение',
|
||||
'metadata' => 'Метаданные',
|
||||
],
|
||||
|
||||
'messages' => [
|
||||
|
||||
@@ -156,6 +156,10 @@ return [
|
||||
'upcoming_approved_leave' => 'Ýakynlaşýan tassyklanan dynç alyş',
|
||||
'other_leave_types' => 'Beýleki rugsat görnüşleri',
|
||||
'activity_details' => 'Işjeňlik jikme-jiklikleri',
|
||||
'basic_info' => 'Esasy maglumat',
|
||||
'dates' => 'Seneler',
|
||||
'approval' => 'Tassyklama',
|
||||
'metadata' => 'Maglumat',
|
||||
],
|
||||
|
||||
'messages' => [
|
||||
|
||||
Reference in New Issue
Block a user