From 556bfa66b6efa7d23797ac1151b4c414712fb63b Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms Date: Wed, 10 May 2023 08:25:06 +0000 Subject: remove pagination from cronjob administration pages for schedules and tasks, fixes #2625 Closes #2625 Merge request studip/studip!1774 --- app/controllers/admin/cronjobs/schedules.php | 43 +++++++++------------------- app/controllers/admin/cronjobs/tasks.php | 32 +++++++-------------- app/views/admin/cronjobs/schedules/edit.php | 4 +-- app/views/admin/cronjobs/schedules/index.php | 21 +++++--------- app/views/admin/cronjobs/tasks/index.php | 15 +++------- 5 files changed, 36 insertions(+), 79 deletions(-) diff --git a/app/controllers/admin/cronjobs/schedules.php b/app/controllers/admin/cronjobs/schedules.php index 5a1d12a..294d78d 100644 --- a/app/controllers/admin/cronjobs/schedules.php +++ b/app/controllers/admin/cronjobs/schedules.php @@ -61,24 +61,14 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController /** * Displays all available schedules according to the set filters. - * - * @param int $page Which page to display */ - public function index_action($page = 0) + public function index_action() { $filter = $_SESSION['cronjob-filter']; $this->total = CronjobSchedule::countBySql('1'); - $this->pagination = Pagination::create( - CronjobSchedule::countBySql($filter['where']), - $page - ); - - $this->schedules = $this->pagination->loadSORMCollection( - CronjobSchedule::class, - $filter['where'] - ); + $this->schedules = CronjobSchedule::findBySQL($filter['where']); // Filters $this->tasks = CronjobTask::findBySql('1'); @@ -134,9 +124,8 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController * Edits a schedule. * * @param String $id Id of the schedule in question (null to create) - * @param int $page Return to this page after editing (optional) */ - public function edit_action(CronjobSchedule $schedule = null, $page = 0) + public function edit_action(CronjobSchedule $schedule = null) { if (Request::submitted('store')) { $parameters = Request::getArray('parameters'); @@ -173,7 +162,7 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController $schedule->store(); PageLayout::postSuccess(_('Die Änderungen wurden gespeichert.')); - $this->redirect('admin/cronjobs/schedules/index/' . $page); + $this->redirect('admin/cronjobs/schedules/index'); return; } @@ -182,11 +171,10 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController $actions = Sidebar::get()->addWidget(new ActionsWidget()); $actions->addLink( _('Zurück zur Übersicht'), - $this->indexURL($page), + $this->indexURL(), Icon::create('link-intern') ); - $this->page = $page; $this->tasks = CronjobTask::findBySql('1'); } @@ -214,56 +202,51 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController * Activates a schedule. * * @param CronjobSchedule $schedule Schedule to activate - * @param int $page Return to this page after activating (optional) */ - public function activate_action(CronjobSchedule $schedule, $page = 0) + public function activate_action(CronjobSchedule $schedule) { $schedule->activate(); if (!Request::isXhr()) { PageLayout::postSuccess(_('Der Cronjob wurde aktiviert.')); } - $this->redirect("admin/cronjobs/schedules/index/{$page}#job-{$schedule->id}"); + $this->redirect("admin/cronjobs/schedules/index#job-{$schedule->id}"); } /** * Deactivates a schedule. * * @param CronjobSchedule $schedule Schedule to deactivate - * @param int $page Return to this page after deactivating (optional) */ - public function deactivate_action(CronjobSchedule $schedule, $page = 0) + public function deactivate_action(CronjobSchedule $schedule) { $schedule->deactivate(); if (!Request::isXhr()) { PageLayout::postSuccess(_('Der Cronjob wurde deaktiviert.')); } - $this->redirect("admin/cronjobs/schedules/index/{$page}#job-{$schedule->id}"); + $this->redirect("admin/cronjobs/schedules/index#job-{$schedule->id}"); } /** * Cancels/deletes a schedule. * * @param CronjobSchedule $schedule Schedule to cancel - * @param int $page Return to this page after canceling (optional) */ - public function cancel_action(CronjobSchedule $schedule, $page = 0) + public function cancel_action(CronjobSchedule $schedule) { CSRFProtection::verifyUnsafeRequest(); $schedule->delete(); PageLayout::postSuccess(_('Der Cronjob wurde gelöscht.')); - $this->redirect("admin/cronjobs/schedules/index/{$page}"); + $this->redirect('admin/cronjobs/schedules/index'); } /** * Performs a bulk operation on a set of schedules. Operation can be * either activating, deactivating or canceling/deleting. - * - * @param int $page Return to this page afterwarsd (optional) */ - public function bulk_action($page = 0) + public function bulk_action() { $action = Request::option('action'); $ids = Request::optionArray('ids'); @@ -310,6 +293,6 @@ class Admin_Cronjobs_SchedulesController extends AuthenticatedController PageLayout::postSuccess($message); } - $this->redirect("admin/cronjobs/schedules/index/{$page}"); + $this->redirect('admin/cronjobs/schedules/index'); } } diff --git a/app/controllers/admin/cronjobs/tasks.php b/app/controllers/admin/cronjobs/tasks.php index 1e9a5e7..94a4fca 100644 --- a/app/controllers/admin/cronjobs/tasks.php +++ b/app/controllers/admin/cronjobs/tasks.php @@ -47,26 +47,18 @@ class Admin_Cronjobs_TasksController extends AuthenticatedController /** * Displays all available tasks. - * - * @param int $page Which page to display */ - public function index_action($page = 0) + public function index_action() { - $this->pagination = Pagination::create( - CronjobTask::countBySql('1'), - $page - ); - - $this->tasks = $this->pagination->loadSORMCollection(CronjobTask::class); + $this->tasks = CronjobTask::findBySQL('1'); } /** * Activates a tasks. * * @param CronjobTask $task Task to activate - * @param int $page Return to this page after activating (optional) */ - public function activate_action(CronjobTask $task, $page = 0) + public function activate_action(CronjobTask $task) { $task->active = true; $task->store(); @@ -80,16 +72,15 @@ class Admin_Cronjobs_TasksController extends AuthenticatedController $message = sprintf(_('Die Aufgabe und %u Cronjob(s) wurden aktiviert.'), $activated); PageLayout::postSuccess($message); } - $this->redirect("admin/cronjobs/tasks/index/{$page}#task-{$task->id}"); + $this->redirect("admin/cronjobs/tasks/index#task-{$task->id}"); } /** * Deactivates a tasks. * * @param CronjobTask $task Task to deactivate - * @param int $page Return to this page after deactivating (optional) */ - public function deactivate_action(CronjobTask $task, $page = 0) + public function deactivate_action(CronjobTask $task) { $task->active = false; $task->store(); @@ -103,16 +94,15 @@ class Admin_Cronjobs_TasksController extends AuthenticatedController $message = sprintf(_('Die Aufgabe und %u Cronjob(s) wurden deaktiviert.'), $deactivated); PageLayout::postSuccess($message); } - $this->redirect("admin/cronjobs/tasks/index/{$page}#task-{$task->id}"); + $this->redirect("admin/cronjobs/tasks/index#task-{$task->id}"); } /** * Deletes a tasks. * * @param CronjobTask $task Task to delete - * @param int $page Return to this page after deleting (optional) */ - public function delete_action(CronjobTask $task, $page = 0) + public function delete_action(CronjobTask $task) { CSRFProtection::verifyUnsafeRequest(); $deleted = $task->schedules->count(); @@ -121,16 +111,14 @@ class Admin_Cronjobs_TasksController extends AuthenticatedController $message = sprintf(_('Die Aufgabe und %u Cronjob(s) wurden gelöscht.'), $deleted); PageLayout::postSuccess($message); - $this->redirect("admin/cronjobs/tasks/index/{$page}"); + $this->redirect('admin/cronjobs/tasks/index'); } /** * 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 = 0) + public function bulk_action() { $action = Request::option('action'); $ids = Request::optionArray('ids'); @@ -170,7 +158,7 @@ class Admin_Cronjobs_TasksController extends AuthenticatedController PageLayout::postSuccess($message); } - $this->redirect('admin/cronjobs/tasks/index/' . $page); + $this->redirect('admin/cronjobs/tasks/index'); } /** diff --git a/app/views/admin/cronjobs/schedules/edit.php b/app/views/admin/cronjobs/schedules/edit.php index b73aa3a..96be249 100644 --- a/app/views/admin/cronjobs/schedules/edit.php +++ b/app/views/admin/cronjobs/schedules/edit.php @@ -18,7 +18,7 @@ $days_of_week = [ 7 => _('Sonntag'), ]; ?> -
+

@@ -242,6 +242,6 @@ $days_of_week = [
- indexURL($page)) ?> + indexURL()) ?>
diff --git a/app/views/admin/cronjobs/schedules/index.php b/app/views/admin/cronjobs/schedules/index.php index 2db97d1..6160875 100644 --- a/app/views/admin/cronjobs/schedules/index.php +++ b/app/views/admin/cronjobs/schedules/index.php @@ -3,7 +3,6 @@ * @var CronjobTask[] $tasks * @var CronjobSchedule[] $schedules * @var Admin_Cronjobs_SchedulesController $controller - * @var Pagination $pagination * @var int $total * @var array $filter */ @@ -15,8 +14,8 @@ use Studip\Button, Studip\LinkButton;
- getTotal() != $total): ?> - getTotal(), $total) ?> + +