Refactor SickLeaveForm and SickLeaveInfolist to enhance layout and organization. Introduce new sections in SickLeaveInfolist for better information categorization, update date picker functionality, and improve localization for medical institution labels across multiple languages.

This commit is contained in:
Mekan1206
2026-08-02 21:49:41 +05:00
parent 0b6ef45a40
commit 986ca397c0
5 changed files with 69 additions and 40 deletions

View File

@@ -12,14 +12,21 @@ class SickLeaveForm
public static function configure(Schema $schema): Schema public static function configure(Schema $schema): Schema
{ {
return $schema return $schema
->columns(3)
->components([ ->components([
HrForm::employeeSelect(), HrForm::employeeSelect(),
HrForm::leaveDatePicker('start_date', __('hr.fields.start_date')), HrForm::leaveDatePicker('start_date', __('hr.fields.start_date'))
HrForm::leaveDatePicker('end_date', __('hr.fields.end_date')), ->native(false),
HrForm::leaveDaysDisplay(), HrForm::leaveDatePicker('end_date', __('hr.fields.end_date'))
->native(false),
TextInput::make('medical_institution') TextInput::make('medical_institution')
->label(__('hr.fields.institution')) ->label(__('hr.fields.institution'))
->maxLength(255), ->maxLength(255)
->columnSpan(2),
HrForm::leaveDaysDisplay(),
Textarea::make('reason') Textarea::make('reason')
->label(__('hr.fields.reason')) ->label(__('hr.fields.reason'))
->rows(3) ->rows(3)

View File

@@ -1,9 +1,12 @@
<?php <?php
declare(strict_types=1);
namespace App\Filament\Resources\SickLeaves\Schemas; namespace App\Filament\Resources\SickLeaves\Schemas;
use App\Models\SickLeave; use App\Models\SickLeave;
use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
class SickLeaveInfolist class SickLeaveInfolist
@@ -12,39 +15,55 @@ class SickLeaveInfolist
{ {
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')),
])
->columns(1),
Section::make(__('hr.sections.dates'))
->schema([
TextEntry::make('start_date') TextEntry::make('start_date')
->label(__('hr.fields.start_date')) ->label(__('hr.fields.start_date'))
->date(), ->date('d.m.Y'),
TextEntry::make('end_date') TextEntry::make('end_date')
->label(__('hr.fields.end_date')) ->label(__('hr.fields.end_date'))
->date(), ->date('d.m.Y'),
TextEntry::make('days') TextEntry::make('days')
->label(__('hr.fields.days')) ->label(__('hr.fields.days'))
->numeric(), ->suffix(' '.__('hr.messages.days_suffix')),
])
->columns(2),
Section::make(__('hr.sections.medical_details'))
->schema([
TextEntry::make('medical_institution') TextEntry::make('medical_institution')
->label(__('hr.fields.institution')) ->label(__('hr.fields.institution'))
->placeholder('-'), ->placeholder(''),
TextEntry::make('reason')
->label(__('hr.fields.reason'))
->placeholder('-')
->columnSpanFull(),
TextEntry::make('document_path') TextEntry::make('document_path')
->label(__('hr.fields.medical_document')) ->label(__('hr.fields.medical_document'))
->placeholder('-'), ->formatStateUsing(fn (?string $state): string => filled($state) ? basename($state) : ''),
TextEntry::make('reason')
->label(__('hr.fields.reason'))
->placeholder('—')
->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 (SickLeave $record): bool => $record->trashed()), ->visible(fn (SickLeave $record): bool => $record->trashed()),
])
->columns(2),
]); ]);
} }
} }

View File

@@ -119,7 +119,7 @@ return [
'report_date' => 'Report Date', 'report_date' => 'Report Date',
'start_date' => 'Start Date', 'start_date' => 'Start Date',
'end_date' => 'End Date', 'end_date' => 'End Date',
'institution' => 'Institution', 'institution' => 'Medical Institution',
'code' => 'Code', 'code' => 'Code',
'password' => 'Password', 'password' => 'Password',
'roles' => 'Roles', 'roles' => 'Roles',
@@ -160,6 +160,7 @@ return [
'dates' => 'Dates', 'dates' => 'Dates',
'approval' => 'Approval', 'approval' => 'Approval',
'metadata' => 'Metadata', 'metadata' => 'Metadata',
'medical_details' => 'Medical Details',
], ],
'messages' => [ 'messages' => [

View File

@@ -119,7 +119,7 @@ return [
'report_date' => 'Дата отчёта', 'report_date' => 'Дата отчёта',
'start_date' => 'Дата начала', 'start_date' => 'Дата начала',
'end_date' => 'Дата окончания', 'end_date' => 'Дата окончания',
'institution' => 'Учреждение', 'institution' => 'Медицинское учреждение',
'code' => 'Код', 'code' => 'Код',
'password' => 'Пароль', 'password' => 'Пароль',
'roles' => 'Роли', 'roles' => 'Роли',
@@ -160,6 +160,7 @@ return [
'dates' => 'Даты', 'dates' => 'Даты',
'approval' => 'Утверждение', 'approval' => 'Утверждение',
'metadata' => 'Метаданные', 'metadata' => 'Метаданные',
'medical_details' => 'Медицинские данные',
], ],
'messages' => [ 'messages' => [

View File

@@ -119,7 +119,7 @@ return [
'report_date' => 'Hasabat senesi', 'report_date' => 'Hasabat senesi',
'start_date' => 'Başlanan senesi', 'start_date' => 'Başlanan senesi',
'end_date' => 'Tamamlanan senesi', 'end_date' => 'Tamamlanan senesi',
'institution' => 'Gurama', 'institution' => 'Lukmançylyk gurama',
'code' => 'Kod', 'code' => 'Kod',
'password' => 'Parol', 'password' => 'Parol',
'roles' => 'Rollar', 'roles' => 'Rollar',
@@ -160,6 +160,7 @@ return [
'dates' => 'Seneler', 'dates' => 'Seneler',
'approval' => 'Tassyklama', 'approval' => 'Tassyklama',
'metadata' => 'Maglumat', 'metadata' => 'Maglumat',
'medical_details' => 'Lukmançylyk maglumatlary',
], ],
'messages' => [ 'messages' => [