| Server IP : 185.252.147.100 / Your IP : 216.73.216.43 Web Server : nginx/1.27.3 System : Linux mitrofanov.ru 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 User : mitr ( 1000) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/html/kanboard/app/Formatter/ |
Upload File : |
<?php
namespace Kanboard\Formatter;
/**
* Class TaskListSubtaskAssigneeFormatter
*
* @package Kanboard\Formatter
* @author Frederic Guillot
*/
class TaskListSubtaskAssigneeFormatter extends TaskListFormatter
{
protected $userId = 0;
protected $withoutEmptyTasks = false;
/**
* Set assignee
*
* @param integer $userId
* @return $this
*/
public function withUserId($userId)
{
$this->userId = $userId;
return $this;
}
public function withoutEmptyTasks()
{
$this->withoutEmptyTasks = true;
return $this;
}
/**
* Apply formatter
*
* @access public
* @return array
*/
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;
}
}