diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index 2038df330c..a8e6146668 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -6,7 +6,6 @@ */ function getStoryKanbanDemoData() { - return kanbanGroup.story; /* Define kanban columns 定义看板列 */ var columns = [ @@ -124,6 +123,7 @@ function getStoryKanbanDemoData() columns: 定义看板上的所有列, lanes: 定义看板上的所有泳道 defaultCardType: 看板上的卡片默认类型,例如:'story'(需求) */ + return kanbanGroup.story; return {id: 'story', columns: columns, lanes: lanes, defaultCardType: 'story'}; } diff --git a/module/kanban/config.php b/module/kanban/config.php index 8b0192b5de..0cceab6a7b 100644 --- a/module/kanban/config.php +++ b/module/kanban/config.php @@ -23,11 +23,6 @@ $config->kanban->default->task->name = $lang->task->common; $config->kanban->default->task->color = '#4169e1'; $config->kanban->default->task->order = '15'; -$config->kanban->parentColumn = array(); -$config->kanban->parentColumn['story'] = array('develop', 'test'); -$config->kanban->parentColumn['bug'] = array('resolving', 'test'); -$config->kanban->parentColumn['task'] = array('develop'); - $config->kanban->storyColumnStageList = array(); $config->kanban->storyColumnStageList['backlog'] = 'projected'; $config->kanban->storyColumnStageList['ready'] = 'projected'; diff --git a/module/kanban/model.php b/module/kanban/model.php index 78b4731386..b1d2b3bb18 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -35,6 +35,12 @@ class kanbanModel extends model ->andWhere('lane')->in(array_keys($lanes)) ->fetchGroup('lane', 'id'); + $parentTypes = $this->dao->select('id, type')->from(TABLE_KANBANCOLUMN) + ->where('deleted')->eq(0) + ->andWhere('lane')->in(array_keys($lanes)) + ->andWhere('parent')->eq(-1) + ->fetchPairs('id', 'type'); + if($objectType == 'story' or $objectType == 'all') $stories = $this->loadModel('story')->getExecutionStories($executionID); if($objectType == 'bug' or $objectType == 'all') $bugs = $this->loadModel('bug')->getExecutionBugs($executionID); if($objectType == 'task' or $objectType == 'all') $tasks = $this->loadModel('execution')->getKanbanTasks($executionID, "id"); @@ -55,49 +61,44 @@ class kanbanModel extends model foreach($columns[$laneID] as $colID => $col) { - if($col->parent > 0) continue; + $columnData[$col->id]['id'] = $lane->type . '-' . $col->type; + $columnData[$col->id]['type'] = $col->type; + $columnData[$col->id]['name'] = $col->name; + $columnData[$col->id]['color'] = $col->color; + $columnData[$col->id]['limit'] = $col->limit; + $columnData[$col->id]['asParent'] = $col->parent == -1 ? true : false; - $columnData[$col->id]['id'] = $lane->type . '-' . $col->type; - $columnData[$col->id]['type'] = $col->type; - $columnData[$col->id]['name'] = $col->name; - $columnData[$col->id]['color'] = $col->color; - $columnData[$col->id]['limit'] = $col->limit; - $columnData[$col->id]['asParent'] = $col->parent == -1 ? true : false; - - unset($columns[$laneID][$colID]); - } - - foreach($columns[$laneID] as $colID => $col) - { - $columnData[$col->parent]['subs'][$col->id]['id'] = $lane->type . '-' . $col->type; - $columnData[$col->parent]['subs'][$col->id]['type'] = $col->type; - $columnData[$col->parent]['subs'][$col->id]['name'] = $col->name; - $columnData[$col->parent]['subs'][$col->id]['color'] = $col->color; - $columnData[$col->parent]['subs'][$col->id]['limit'] = $col->limit; - $columnData[$col->parent]['subs'][$col->id]['parentType'] = $columnData[$col->parent]['type']; + if($col->parent > 0) + { + $columnData[$col->id]['parentType'] = zget($parentTypes, $col->parent, ''); + } $cardIdList = array_filter(explode(',', $col->cards)); $cardOrder = 1; + $item = array(); foreach($cardIdList as $cardID) { if($lane->type == 'story') $object = zget($stories, $cardID, array()); if($lane->type == 'task') $object = zget($tasks, $cardID, array()); if($lane->type == 'bug') $object = zget($bugs, $cardID, array()); - $laneData['cards'][$col->type][$object->id]['id'] = $object->id; - $laneData['cards'][$col->type][$object->id]['order'] = $cardOrder; - $laneData['cards'][$col->type][$object->id]['pri'] = $object->pri; - $laneData['cards'][$col->type][$object->id]['estimate'] = $lane->type == 'bug' ? '' : $object->estimate; - $laneData['cards'][$col->type][$object->id]['assignedTo'] = $object->assignedTo; - $laneData['cards'][$col->type][$object->id]['deadline'] = $lane->type == 'task' ? $object->deadline : ''; + $item['id'] = $object->id; + $item['order'] = $cardOrder; + $item['pri'] = $object->pri; + $item['estimate'] = $lane->type == 'bug' ? '' : $object->estimate; + $item['assignedTo'] = $object->assignedTo; + $item['deadline'] = $lane->type == 'task' ? $object->deadline : ''; + + $laneData['cards'][$col->type][] = $item; $cardOrder ++; } } - $kanban[$lane->type]['id'] = $lane->type; - $kanban[$lane->type]['columns'] = array_values($columnData); - $kanban[$lane->type]['lanes'] = $laneData; + $kanban[$lane->type]['id'] = $lane->type; + $kanban[$lane->type]['columns'] = array_values($columnData); + $kanban[$lane->type]['lanes'][] = $laneData; + $kanban[$lane->type]['defaultCardType'] = $lane->type; } return $kanban; diff --git a/module/kanban/view/setwip.html.php b/module/kanban/view/setwip.html.php index 5119734cec..512a50c232 100644 --- a/module/kanban/view/setwip.html.php +++ b/module/kanban/view/setwip.html.php @@ -21,7 +21,7 @@