diff options
| author | Frédéric Guillot <fred@kanboard.net> | 2018-06-01 15:58:17 -0700 | 
|---|---|---|
| committer | Frédéric Guillot <fred@kanboard.net> | 2018-06-01 15:58:17 -0700 | 
| commit | 912cf378d730b3df8d285ba765711d9c456bdea0 (patch) | |
| tree | cc26710f2e1e4e9eb958b873a2fb537cf3a389cb /app/Controller/TaskBulkMoveColumnController.php | |
| parent | cd6da138973f6bfe7c71846ff6cc1d6fb97c4813 (diff) | |
Add checkboxes in list view to move tasks to another column at once
Diffstat (limited to 'app/Controller/TaskBulkMoveColumnController.php')
| -rw-r--r-- | app/Controller/TaskBulkMoveColumnController.php | 44 | 
1 files changed, 44 insertions, 0 deletions
| 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 @@ +<?php + +namespace Kanboard\Controller; + +use Kanboard\Core\Controller\AccessForbiddenException; + +class TaskBulkMoveColumnController extends BaseController +{ +    public function show(array $values = [], array $errors = []) +    { +        $project = $this->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); +    } +} | 
