44
55use Cachet \Actions \Update \CreateUpdate ;
66use Cachet \Data \Requests \ScheduleUpdate \CreateScheduleUpdateRequestData ;
7+ use Cachet \Enums \ComponentStatusEnum ;
78use Cachet \Enums \ScheduleStatusEnum ;
89use Cachet \Filament \Resources \Schedules \Pages \CreateSchedule ;
910use Cachet \Filament \Resources \Schedules \Pages \EditSchedule ;
1011use Cachet \Filament \Resources \Schedules \Pages \ListSchedules ;
12+ use Cachet \Filament \Resources \Schedules \RelationManagers \ComponentsRelationManager ;
1113use Cachet \Filament \Resources \Updates \RelationManagers \UpdatesRelationManager ;
1214use Cachet \Models \Schedule ;
1315use Filament \Actions \Action ;
1416use Filament \Actions \BulkActionGroup ;
1517use Filament \Actions \DeleteBulkAction ;
1618use Filament \Actions \EditAction ;
1719use Filament \Forms \Components \DateTimePicker ;
20+ use Filament \Forms \Components \Hidden ;
1821use Filament \Forms \Components \MarkdownEditor ;
22+ use Filament \Forms \Components \Repeater ;
23+ use Filament \Forms \Components \Select ;
1924use Filament \Forms \Components \TextInput ;
2025use Filament \Notifications \Notification ;
2126use Filament \Resources \Resource ;
@@ -41,6 +46,23 @@ public static function form(Schema $schema): Schema
4146 MarkdownEditor::make ('message ' )
4247 ->label (__ ('cachet::schedule.form.message_label ' ))
4348 ->columnSpanFull (),
49+ Repeater::make ('scheduleComponents ' )
50+ ->visibleOn ('create ' )
51+ ->relationship ()
52+ ->defaultItems (0 )
53+ ->addActionLabel (__ ('Add Component ' ))
54+ ->schema ([
55+ Select::make ('component_id ' )
56+ ->preload ()
57+ ->required ()
58+ ->relationship ('component ' , 'name ' )
59+ ->disableOptionsWhenSelectedInSiblingRepeaterItems ()
60+ ->label (__ ('Component ' )),
61+ Hidden::make ('component_status ' )
62+ ->default (ComponentStatusEnum::operational->value ),
63+ ])
64+ ->label (__ ('Affected Components ' ))
65+ ->columnSpanFull (),
4466 ])->columnSpan (3 ),
4567 Section::make ()->schema ([
4668 DateTimePicker::make ('scheduled_at ' )
@@ -146,6 +168,7 @@ public static function getPages(): array
146168 public static function getRelations (): array
147169 {
148170 return [
171+ ComponentsRelationManager::class,
149172 UpdatesRelationManager::class,
150173 ];
151174 }
0 commit comments