added changes in schedule component

This commit is contained in:
F4ilji
2025-06-14 19:33:32 +05:00
parent b1d5f4ed3d
commit c906314111
2 changed files with 24 additions and 10 deletions
+17 -9
View File
@@ -16,6 +16,7 @@ use Filament\Forms\Form;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Tables; use Filament\Tables;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Grouping\Group;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
use Illuminate\Support\Str; use Illuminate\Support\Str;
@@ -89,6 +90,7 @@ class ScheduleResource extends Resource
->itemLabel(fn (array $state): ?string => $state['title'] ?? 'Новый файл') ->itemLabel(fn (array $state): ?string => $state['title'] ?? 'Новый файл')
->collapsible() ->collapsible()
->cloneable() ->cloneable()
->maxItems(1)
->defaultItems(1), ->defaultItems(1),
]), ]),
]); ]);
@@ -97,16 +99,21 @@ class ScheduleResource extends Resource
public static function table(Table $table): Table public static function table(Table $table): Table
{ {
return $table return $table
->columns([ ->defaultGroup(
TextColumn::make('educationalGroup.title') Group::make('educationalGroup.title')
->label('Учебная группа') ->titlePrefixedWithLabel(false)
->sortable() ->collapsible()
->searchable(), ->getTitleFromRecordUsing(function ($record): string {
$groupTitle = $record->educationalGroup->title;
TextColumn::make('file_count') return 'Группа: ' . $groupTitle;
->label('Файлов')
->getStateUsing(fn ($record) => count($record->file ?? [])) })
->badge(), )
->columns([
TextColumn::make('title')
->label('Название')
->getStateUsing(fn ($record) => $record->file[0]['title']),
TextColumn::make('educationalGroup.education_form_id') TextColumn::make('educationalGroup.education_form_id')
->formatStateUsing(fn ($state) => FormEducation::tryFrom($state)->getLabel()) ->formatStateUsing(fn ($state) => FormEducation::tryFrom($state)->getLabel())
@@ -165,6 +172,7 @@ class ScheduleResource extends Resource
'index' => Pages\ListSchedules::route('/'), 'index' => Pages\ListSchedules::route('/'),
'create' => Pages\CreateSchedule::route('/create'), 'create' => Pages\CreateSchedule::route('/create'),
'edit' => Pages\EditSchedule::route('/{record}/edit'), 'edit' => Pages\EditSchedule::route('/{record}/edit'),
'upload' => Pages\ScheduleResource\Pages\UploadSchedules::route('/upload'), // Добавьте эту строку
]; ];
} }
} }
@@ -5,6 +5,7 @@ namespace App\Filament\Resources\ScheduleResource\Pages;
use App\Filament\Resources\ScheduleResource; use App\Filament\Resources\ScheduleResource;
use Filament\Actions; use Filament\Actions;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
use Filament\Support\Colors\Color;
class ListSchedules extends ListRecords class ListSchedules extends ListRecords
{ {
@@ -14,6 +15,11 @@ class ListSchedules extends ListRecords
{ {
return [ return [
Actions\CreateAction::make(), Actions\CreateAction::make(),
Actions\Action::make('uploadSchedules') // Дайте уникальное имя для вашего действия
->label('Быстрая загрузка расписания') // Текст, который будет отображаться на кнопке
->url(ScheduleResource::getUrl('upload')) // Используйте getUrl для получения маршрута
->color(Color::Indigo)
->icon('heroicon-o-arrow-up-tray'), // Опционально: добавьте иконку
]; ];
} }
} }