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
{
return $schema
->columns(3)
->components([
HrForm::employeeSelect(),
HrForm::leaveDatePicker('start_date', __('hr.fields.start_date')),
HrForm::leaveDatePicker('end_date', __('hr.fields.end_date')),
HrForm::leaveDaysDisplay(),
HrForm::leaveDatePicker('start_date', __('hr.fields.start_date'))
->native(false),
HrForm::leaveDatePicker('end_date', __('hr.fields.end_date'))
->native(false),
TextInput::make('medical_institution')
->label(__('hr.fields.institution'))
->maxLength(255),
->maxLength(255)
->columnSpan(2),
HrForm::leaveDaysDisplay(),
Textarea::make('reason')
->label(__('hr.fields.reason'))
->rows(3)

View File

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

View File

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

View File

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

View File

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