summaryrefslogtreecommitdiff
path: root/app/Controller/TaskReorderController.php
blob: ae03ac2c1213272af2e5fddb751be3a3756e027a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php

namespace Kanboard\Controller;

use Kanboard\Core\Controller\AccessForbiddenException;

class TaskReorderController extends BaseController
{
    public function reorderColumn()
    {
        $project = $this->getProject();

        if (! $this->helper->user->hasProjectAccess('TaskModificationController', 'update', $project['id'])) {
            throw new AccessForbiddenException();
        }

        $swimlaneID = $this->request->getIntegerParam('swimlane_id');
        $columnID = $this->request->getIntegerParam('column_id');
        $direction = $this->request->getStringParam('direction');
        $sort = $this->request->getStringParam('sort');

        switch ($sort) {
            case 'priority':
                $this->taskReorderModel->reorderByPriority($project['id'], $swimlaneID, $columnID, $direction);
                break;
            case 'assignee-priority':
                $this->taskReorderModel->reorderByAssigneeAndPriority($project['id'], $swimlaneID, $columnID, $direction);
                break;
            case 'assignee':
                $this->taskReorderModel->reorderByAssignee($project['id'], $swimlaneID, $columnID, $direction);
                break;
            case 'due-date':
                $this->taskReorderModel->reorderByDueDate($project['id'], $swimlaneID, $columnID, $direction);
                break;
        }

        $this->response->redirect($this->helper->url->to('BoardViewController', 'show', ['project_id' => $project['id']]));
    }
}