'inline']; public function __construct() { $this->on(self::ON_SUCCESS, function () { if (! $this->errorOccurred) { Notification::success(tp('Scheduling check..', 'Scheduling checks..', count($this->getObjects()))); } }); } protected function assembleElements() { } protected function assembleSubmitButton() { $this->addElement( 'submitButton', 'btn_submit', [ 'class' => ['link-button', 'spinner'], 'label' => [ new Icon('sync-alt'), t('Check Now') ], 'title' => t('Schedule the next active check to run immediately') ] ); } protected function getCommands(Iterator $objects): Traversable { $granted = new CallbackFilterIterator($objects, function (Model $object): bool { return $this->isGrantedOn('icingadb/command/schedule-check', $object) || ( $object->active_checks_enabled && $this->isGrantedOn('icingadb/command/schedule-check/active-only', $object) ); }); $granted->rewind(); // Forwards the pointer to the first element if ($granted->valid()) { $command = new ScheduleCheckCommand(); $command->setObjects($granted); $command->setCheckTime(time()); $command->setForced(); yield $command; } } }