diff --git a/module/task/config.php b/module/task/config.php index b21af79708..bde80f683b 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -48,7 +48,7 @@ $config->task->custom->batchCreateFields = 'module,story,assignedTo,estimate,des $config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left'; $config->task->datatable = new stdclass(); -$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions'); +$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'lane', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions'); global $lang; $config->task->datatable->fieldList['id']['title'] = 'idAB'; @@ -129,6 +129,11 @@ $config->task->datatable->fieldList['assignedTo']['fixed'] = 'no'; $config->task->datatable->fieldList['assignedTo']['width'] = '100'; $config->task->datatable->fieldList['assignedTo']['required'] = 'no'; +$config->task->datatable->fieldList['lane']['title'] = 'lane'; +$config->task->datatable->fieldList['lane']['fixed'] = 'no'; +$config->task->datatable->fieldList['lane']['width'] = '90'; +$config->task->datatable->fieldList['lane']['required'] = 'no'; + $config->task->datatable->fieldList['assignedDate']['title'] = 'assignedDate'; $config->task->datatable->fieldList['assignedDate']['fixed'] = 'no'; $config->task->datatable->fieldList['assignedDate']['width'] = '110'; diff --git a/module/task/model.php b/module/task/model.php index edf8bd0f8d..4abeb523f7 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2118,6 +2118,26 @@ class taskModel extends model if($task->parent > 0) $parents[$task->parent] = $task->parent; } $parents = $this->dao->select('*')->from(TABLE_TASK)->where('id')->in($parents)->fetchAll('id'); + + $lanes = array(); + $cardsWhere = ''; + foreach($tasks as $task) + { + if(empty($cardsWhere)) + { + $cardsWhere = "cards like '%,{$task->id},%'"; + } + else + { + $cardsWhere .= " or cards like '%,{$task->id},%'"; + } + } + $lanes = $this->dao->select('t1.lane,t2.name,t1.cards') + ->from(TABLE_KANBANCELL)->alias('t1') + ->leftJoin(TABLE_KANBANLANE)->alias('t2')->on('t1.lane = t2.id') + ->where('t1.kanban')->eq($executionID) + ->andWhere("($cardsWhere)") + ->fetchAll('cards'); foreach($tasks as $task) { @@ -2134,6 +2154,15 @@ class taskModel extends model $task->parentName = $parent->name; } } + + $task->lane = ''; + if(!empty($lanes)) + { + foreach($lanes as $lane) + { + if(strpos($lane->cards, $task->id) !== false) $task->lane = $lane->name; + } + } } return $this->processTasks($tasks); @@ -3101,6 +3130,7 @@ class taskModel extends model if($id == 'deadline') $class .= ' text-center'; if($id == 'deadline' and isset($task->delay)) $class .= ' delayed'; if($id == 'assignedTo') $class .= ' has-btn text-left'; + if($id == 'lane') $class .= ' text-left'; if(strpos('progress', $id) !== false) $class .= ' text-right'; $title = ''; @@ -3182,6 +3212,9 @@ class taskModel extends model case 'assignedTo': $this->printAssignedHtml($task, $users); break; + case 'lane': + echo trim($task->lane); + break; case 'assignedDate': echo substr($task->assignedDate, 5, 11); break;