| <?php |
|
|
| namespace Kanboard\Formatter; |
|
|
| |
| |
| |
| |
| |
| |
| class TaskListSubtaskAssigneeFormatter extends TaskListFormatter |
| { |
| protected $userId = 0; |
| protected $withoutEmptyTasks = false; |
|
|
| |
| |
| |
| |
| |
| |
| public function withUserId($userId) |
| { |
| $this->userId = $userId; |
| return $this; |
| } |
|
|
| public function withoutEmptyTasks() |
| { |
| $this->withoutEmptyTasks = true; |
| return $this; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function format() |
| { |
| $tasks = parent::format(); |
| $taskIds = array_column($tasks, 'id'); |
| $subtasks = $this->subtaskModel->getAllByTaskIdsAndAssignee($taskIds, $this->userId); |
| $subtasks = array_column_index($subtasks, 'task_id'); |
| array_merge_relation($tasks, $subtasks, 'subtasks', 'id'); |
|
|
| if ($this->withoutEmptyTasks) { |
| $tasks = array_filter($tasks, function (array $task) { |
| return count($task['subtasks']) > 0; |
| }); |
| } |
|
|
| return $tasks; |
| } |
| } |
|
|