/** * Performs a bulk operation on a set of tasks. Operation can be either * activating, deactivating or deleting. * * @param int $page Return to this page afterwarsd (optional) */ public function bulk_action($page = 1) { $action = Request::option('action'); $ids = Request::optionArray('ids'); $tasks = CronjobTask::findMany($ids); if ($action === 'activate') { $tasks = array_filter($tasks, function ($item) { return !$item->active; }); foreach ($tasks as $task) { $task->active = 1; $task->store(); } $n = count($tasks); $message = sprintf(ngettext('%u Aufgabe wurde aktiviert.', '%u Aufgaben wurden aktiviert.', $n), $n); PageLayout::postMessage(MessageBox::success($message)); } else if ($action === 'deactivate') { $tasks = array_filter($tasks, function ($item) { return $item->active; }); foreach ($tasks as $task) { $task->active = 0; $task->store(); } $n = count($tasks); $message = sprintf(ngettext('%u Aufgabe wurde deaktiviert.', '%u Aufgaben wurden deaktiviert.', $n), $n); PageLayout::postMessage(MessageBox::success($message)); } else if ($action === 'delete') { foreach ($tasks as $task) { $task->delete(); } $n = count($tasks); $message = sprintf(ngettext('%u Aufgabe wurde gelöscht.', '%u Aufgaben wurden gelöscht.', $n), $n); PageLayout::postMessage(MessageBox::success($message)); } $this->redirect('admin/cronjobs/tasks/index/' . $page); }