56 {
57 $componentOptions = array_unique(array_map(
function (
ilCronJobEntity $entity) :
string {
59 return $this->lng->txt('cmps_plugin') . '/' . $entity->getComponent();
60 }
61
63 }, $this->items->toArray()));
64 asort($componentOptions);
65
66 $title = $this->uiFactory->input()->field()->text($this->lng->txt('title'));
67 $components = $this->uiFactory->input()->field()->select(
68 $this->lng->txt('cron_component'),
69 array_combine($componentOptions, $componentOptions)
70 );
71 $schedule = $this->uiFactory->input()->field()->select(
72 $this->lng->txt('cron_schedule'),
73 [
82 ]
83 );
84 $status = $this->uiFactory->input()->field()->select(
85 $this->lng->txt('cron_status'),
86 [
87 self::FILTER_STATUS_ACTIVE => $this->lng->txt('cron_status_active'),
88 self::FILTER_STATUS_INACTIVE => $this->lng->txt('cron_status_inactive'),
89 ]
90 );
91 $result = $this->uiFactory->input()->field()->select(
92 $this->lng->txt('cron_result'),
93 [
95 'cron_result_status_invalid_configuration'
96 ),
98 'cron_result_status_no_action'
99 ),
101 'cron_result_status_ok'
102 ),
104 'cron_result_status_crashed'
105 ),
107 'cron_result_status_reset'
108 ),
110 'cron_result_status_fail'
111 ),
112 ]
113 );
114
115 $fields = [
116 self::FILTER_PROPERTY_NAME_TITLE => $title,
117 self::FILTER_PROPERTY_NAME_COMPONENT => $components,
118 self::FILTER_PROPERTY_NAME_SCHEDULE => $schedule,
119 self::FILTER_PROPERTY_NAME_STATUS => $status,
120 self::FILTER_PROPERTY_NAME_RESULT =>
$result,
121 ];
122
123 $filter = $this->uiService->filter()->standard(
124 'cron_job_adm_table',
125 $action,
126 $fields,
127 array_fill(0, count($fields), true),
128 true,
129 true
130 );
131
132 return $filter;
133 }
const STATUS_INVALID_CONFIGURATION
const SCHEDULE_TYPE_IN_DAYS
const SCHEDULE_TYPE_IN_HOURS
const SCHEDULE_TYPE_IN_MINUTES
const SCHEDULE_TYPE_WEEKLY
const SCHEDULE_TYPE_YEARLY
const SCHEDULE_TYPE_DAILY
const SCHEDULE_TYPE_QUARTERLY
const SCHEDULE_TYPE_MONTHLY