From 912cf378d730b3df8d285ba765711d9c456bdea0 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Fri, 1 Jun 2018 15:58:17 -0700 Subject: Add checkboxes in list view to move tasks to another column at once --- app/Controller/TaskBulkMoveColumnController.php | 44 +++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 app/Controller/TaskBulkMoveColumnController.php (limited to 'app/Controller/TaskBulkMoveColumnController.php') diff --git a/app/Controller/TaskBulkMoveColumnController.php b/app/Controller/TaskBulkMoveColumnController.php new file mode 100644 index 00000000..f3607df6 --- /dev/null +++ b/app/Controller/TaskBulkMoveColumnController.php @@ -0,0 +1,44 @@ +getProject(); + + if (empty($values)) { + $values['task_ids'] = $this->request->getStringParam('task_ids'); + } + + $this->response->html($this->template->render('task_bulk_move_column/show', [ + 'project' => $project, + 'values' => $values, + 'errors' => $errors, + 'columns' => $this->columnModel->getList($project['id']), + 'swimlanes' => $this->swimlaneModel->getList($project['id'], false, true), + ])); + } + + public function save() + { + $project = $this->getProject(); + $values = $this->request->getValues(); + $taskIDs = explode(',', $values['task_ids']); + + foreach ($taskIDs as $taskID) { + $task = $this->taskFinderModel->getById($taskID); + + if (! $this->helper->projectRole->canMoveTask($task['project_id'], $task['column_id'], $values['column_id'])) { + throw new AccessForbiddenException(e('You are not allowed to move this task.')); + } + + $this->taskPositionModel->moveBottom($project['id'], $taskID, $values['swimlane_id'], $values['column_id']); + } + + $this->response->redirect($this->helper->url->to('TaskListController', 'show', ['project_id' => $project['id']]), true); + } +} -- cgit v1.2.3