* [refac bug #58215] Adjust for get stories for track by page.
This commit is contained in:
@@ -826,9 +826,22 @@ class product extends control
|
||||
if(empty($storyType)) $storyType = key($storyTypeList);
|
||||
|
||||
/* Load pager. */
|
||||
$this->app->loadClass('pager', true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
$stories = $this->productZen->getStories($projectID, $productID, $branch, 0, (int)$param, ($browseType == 'bysearch' ? $storyType : 'all'), $browseType, $trackOrder, $pager);
|
||||
if($browseType == 'bysearch' || $this->app->rawModule == 'projectstory')
|
||||
{
|
||||
$stories = $this->productZen->getStories($projectID, $productID, $branch, 0, (int)$param, ($browseType == 'bysearch' ? $storyType : 'all'), $browseType, $trackOrder);
|
||||
}
|
||||
else
|
||||
{
|
||||
$queryStoryType = 'all';
|
||||
if($storyType == 'requirement') $queryStoryType = 'requirement,story';
|
||||
if($storyType == 'story') $queryStoryType = 'story';
|
||||
if($browseType == 'bysearch') $queryStoryType = $storyType;
|
||||
|
||||
$this->app->loadClass('pager', true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
$stories = $this->productZen->getStoriesByStoryType($productID, $branch, $queryStoryType, $trackOrder, $pager);
|
||||
$this->view->pager = $pager;
|
||||
}
|
||||
$tracks = $this->loadModel('story')->getTracksByStories($stories, $storyType);
|
||||
|
||||
$customFields = $this->productZen->getCustomFieldsForTrack($storyType);
|
||||
@@ -861,7 +874,6 @@ class product extends control
|
||||
$this->view->title = $this->lang->story->track;
|
||||
$this->view->tracks = $tracks;
|
||||
$this->view->storyIdList = array_keys($stories);
|
||||
$this->view->pager = $pager;
|
||||
$this->view->productID = $productID;
|
||||
$this->view->branch = $branch;
|
||||
$this->view->projectID = $projectID;
|
||||
|
||||
@@ -28,8 +28,8 @@ foreach($lang->story->trackOrderByList as $orderByType => $orderByName)
|
||||
$item['text'] = $orderByName;
|
||||
$item['selected'] = strpos($orderBy, $orderByType) === 0;
|
||||
$item['items'] = array();
|
||||
$item['items'][] = array('text' => $lang->story->trackSortList['asc'], 'selected' => $orderBy == "{$orderByType}_asc", 'url' => createLink($app->rawModule, 'track', sprintf($paramTemplate, $storyType, "{$orderByType}_asc") . "&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"));
|
||||
$item['items'][] = array('text' => $lang->story->trackSortList['desc'], 'selected' => $orderBy == "{$orderByType}_desc", 'url' => createLink($app->rawModule, 'track', sprintf($paramTemplate, $storyType, "{$orderByType}_desc") . "&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"));
|
||||
$item['items'][] = array('text' => $lang->story->trackSortList['asc'], 'selected' => $orderBy == "{$orderByType}_asc", 'url' => createLink($app->rawModule, 'track', sprintf($paramTemplate, $storyType, "{$orderByType}_asc") . (isset($pager) ? "&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}" : '')));
|
||||
$item['items'][] = array('text' => $lang->story->trackSortList['desc'], 'selected' => $orderBy == "{$orderByType}_desc", 'url' => createLink($app->rawModule, 'track', sprintf($paramTemplate, $storyType, "{$orderByType}_desc") . (isset($pager) ? "&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}" : '')));
|
||||
$orderByItems[] = $item;
|
||||
|
||||
if($item['selected'])
|
||||
@@ -137,7 +137,7 @@ empty($tracks) ? div(setClass('dtable-empty-tip bg-white shadow'), span(setClass
|
||||
'afterRender' => jsRaw('window.afterRender'),
|
||||
'draggable' => false
|
||||
))),
|
||||
set::height('calc(100vh - 130px)')
|
||||
set::height('calc(100vh - ' . (isset($pager) ? '130px' : '110px') . ')')
|
||||
),
|
||||
pager(setClass('justify-end'))
|
||||
isset($pager) ? pager(setClass('justify-end')) : null
|
||||
);
|
||||
|
||||
@@ -952,6 +952,46 @@ class productZen extends product
|
||||
return $stories;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据需求类型获取需求。
|
||||
* Get stories by story type.
|
||||
*
|
||||
* @param int $productID
|
||||
* @param string $branch
|
||||
* @param string $storyType
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getStoriesByStoryType(int $productID, string $branch = '', string $storyType = 'all', string $orderBy = 'id_desc', object $pager = null): array
|
||||
{
|
||||
/* Append id for second sort. */
|
||||
$sort = common::appendOrder($orderBy);
|
||||
if(strpos($sort, 'pri_') !== false) $sort = str_replace('pri_', 'priOrder_', $sort);
|
||||
|
||||
$parentIdList = array();
|
||||
if($storyType == 'requirement,story' && !empty($this->config->enableER)) $parentIdList = $this->dao->select('id')->from(TABLE_STORY)->where('type')->eq('epic')->andWhere('isParent')->eq(1)->fetchPairs('id', 'id');
|
||||
if($storyType == 'story' && (!empty($this->config->URAndSR) || $this->config->edition == 'ipd')) $parentIdList = $this->dao->select('id')->from(TABLE_STORY)->where('type')->eq('requirement')->andWhere('isParent')->eq(1)->fetchPairs('id', 'id');
|
||||
|
||||
$productQuery = $this->loadModel('story')->buildProductsCondition($productID, $branch);
|
||||
$stories = $this->dao->select("*,plan,path")->from(TABLE_STORY)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere($productQuery)
|
||||
->andWhere('parent', true)->eq(0)
|
||||
->beginIF($parentIdList)->orWhere("parent")->in($parentIdList)->fi()
|
||||
->markRight(1)
|
||||
->andWhere("FIND_IN_SET('{$this->config->vision}', vision)")
|
||||
->beginIF($storyType != 'all')->andWhere('type')->in($storyType)->fi()
|
||||
->beginIF(empty($this->config->enableER))->andWhere('type')->ne('epic')->fi()
|
||||
->beginIF(empty($this->config->URAndSR) && $this->config->edition != 'ipd')->andWhere('type')->ne('requirement')->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
|
||||
return $stories;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分支的配置数据。
|
||||
* Get branch options.
|
||||
|
||||
Reference in New Issue
Block a user