From f945e45ad452d2e39683d8beeed6159799079cf6 Mon Sep 17 00:00:00 2001 From: Tomas Dittmann Date: Mon, 27 Feb 2023 01:13:56 +0100 Subject: [PATCH] Add dropdown menu on the board to reorder tasks by ID --- app/Controller/TaskReorderController.php | 3 +++ app/Model/TaskReorderModel.php | 16 ++++++++++++++++ app/Template/board/table_column.php | 7 ++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/Controller/TaskReorderController.php b/app/Controller/TaskReorderController.php index ae03ac2c1..9bc52a7e7 100644 --- a/app/Controller/TaskReorderController.php +++ b/app/Controller/TaskReorderController.php @@ -20,6 +20,9 @@ class TaskReorderController extends BaseController $sort = $this->request->getStringParam('sort'); switch ($sort) { + case 'id': + $this->taskReorderModel->reorderByTaskId($project['id'], $swimlaneID, $columnID, $direction); + break; case 'priority': $this->taskReorderModel->reorderByPriority($project['id'], $swimlaneID, $columnID, $direction); break; diff --git a/app/Model/TaskReorderModel.php b/app/Model/TaskReorderModel.php index c7fc6f6d1..d9230c412 100644 --- a/app/Model/TaskReorderModel.php +++ b/app/Model/TaskReorderModel.php @@ -6,6 +6,22 @@ use Kanboard\Core\Base; class TaskReorderModel extends Base { + public function reorderByTaskId($projectID, $swimlaneID, $columnID, $direction) + { + $this->db->startTransaction(); + + $taskIDs = $this->db->table(TaskModel::TABLE) + ->eq('project_id', $projectID) + ->eq('swimlane_id', $swimlaneID) + ->eq('column_id', $columnID) + ->orderBy('id', $direction) + ->findAllByColumn('id'); + + $this->reorderTasks($taskIDs); + + $this->db->closeTransaction(); + } + public function reorderByPriority($projectID, $swimlaneID, $columnID, $direction) { $this->db->startTransaction(); diff --git a/app/Template/board/table_column.php b/app/Template/board/table_column.php index 08ebcbfb8..e9abdacdf 100644 --- a/app/Template/board/table_column.php +++ b/app/Template/board/table_column.php @@ -48,11 +48,16 @@ - 0 && $this->user->hasProjectAccess('TaskModificationController', 'update', $column['project_id'])): ?>