From a9f7dc10767f4aac87c90934a027b778dd9b5afa Mon Sep 17 00:00:00 2001 From: Mekan1206 Date: Sun, 2 Aug 2026 21:51:50 +0500 Subject: [PATCH] Refactor UnpaidLeaveForm and UnpaidLeaveInfolist to improve layout and organization. Introduce sections in UnpaidLeaveInfolist for better categorization of information, enhance date picker functionality, and improve localization for various fields. --- .../UnpaidLeaves/Schemas/UnpaidLeaveForm.php | 6 +- .../Schemas/UnpaidLeaveInfolist.php | 97 +++++++++++-------- 2 files changed, 63 insertions(+), 40 deletions(-) diff --git a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php index 6150a45..ec129b0 100644 --- a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php +++ b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php @@ -13,8 +13,10 @@ class UnpaidLeaveForm return $schema ->components([ HrForm::employeeSelect(), - 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), HrForm::leaveDaysDisplay(), Textarea::make('reason') ->label(__('hr.fields.reason')) diff --git a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php index e27d545..464b362 100644 --- a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php +++ b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php @@ -1,9 +1,13 @@ components([ - TextEntry::make('employee.id') - ->label(__('hr.fields.employee')), - TextEntry::make('start_date') - ->label(__('hr.fields.start_date')) - ->date(), - TextEntry::make('end_date') - ->label(__('hr.fields.end_date')) - ->date(), - TextEntry::make('days') - ->label(__('hr.fields.days')) - ->numeric(), - TextEntry::make('reason') - ->label(__('hr.fields.reason')) - ->placeholder('-') - ->columnSpanFull(), - TextEntry::make('status') - ->label(__('hr.fields.status')) - ->badge(), - TextEntry::make('approved_by') - ->label(__('hr.fields.approved_by')) - ->numeric() - ->placeholder('-'), - TextEntry::make('approved_at') - ->label(__('hr.fields.approved_at')) - ->dateTime() - ->placeholder('-'), - TextEntry::make('created_at') - ->label(__('hr.fields.created_at')) - ->dateTime() - ->placeholder('-'), - TextEntry::make('updated_at') - ->label(__('hr.fields.updated_at')) - ->dateTime() - ->placeholder('-'), - TextEntry::make('deleted_at') - ->label(__('hr.fields.deleted_at')) - ->dateTime() - ->visible(fn (UnpaidLeave $record): bool => $record->trashed()), + Section::make(__('hr.sections.basic_info')) + ->schema([ + TextEntry::make('employee.full_name') + ->label(__('hr.fields.employee')), + TextEntry::make('status') + ->label(__('hr.fields.status')) + ->badge() + ->color(fn (ApprovalStatus $state): string => $state->color()) + ->formatStateUsing(fn (ApprovalStatus $state): string => $state->label()), + ]) + ->columns(2), + 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('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('—') + ->columnSpanFull(), + TextEntry::make('approved_by') + ->label(__('hr.fields.approved_by')) + ->formatStateUsing(fn ($state, UnpaidLeave $record): string => $record->approver?->name ?? '—'), + ]) + ->columns(2), + Section::make(__('hr.sections.metadata')) + ->schema([ + TextEntry::make('approved_at') + ->label(__('hr.fields.approved_at')) + ->dateTime('d.m.Y H:i') + ->placeholder('—'), + TextEntry::make('created_at') + ->label(__('hr.fields.created_at')) + ->dateTime('d.m.Y H:i') + ->placeholder('—'), + TextEntry::make('updated_at') + ->label(__('hr.fields.updated_at')) + ->dateTime('d.m.Y H:i') + ->placeholder('—'), + TextEntry::make('deleted_at') + ->label(__('hr.fields.deleted_at')) + ->dateTime('d.m.Y H:i') + ->visible(fn (UnpaidLeave $record): bool => $record->trashed()), + ]) + ->columns(2), ]); } }