* finish task #4897.

This commit is contained in:
wangyidong
2018-09-20 13:17:27 +08:00
parent e3a1b2f2a2
commit fa38ced902
4 changed files with 60 additions and 9 deletions
+1 -1
View File
@@ -396,7 +396,7 @@ class product extends control
$this->view->lines = array('') + $this->loadModel('tree')->getLinePairs();
$this->view->branches = $this->loadModel('branch')->getPairs($productID);
$this->view->dynamics = $this->loadModel('action')->getDynamic('all', 'all', 'date_desc', $pager, $productID);
$this->view->plans = $this->loadModel('productplan')->getList($productID, 0, 'unexpired', null, 'begin');
$this->view->roadmap = $this->product->getRoadmap($productID, 0, 6);
$this->display();
}
+2 -2
View File
@@ -1,6 +1,6 @@
.branch-list {padding-left: 0; margin: 0;}
.branch-list > li {float: left; list-style: none; width: 50%; margin: 5px 0;}
.data-basic.table-data tbody > tr > th {width: 80px;}
.block-release .panel-body, .block-dynamic .panel-body {height: 240px; overflow: auto; position: relative;}
.block-release .panel-body, .block-dynamic .panel-body {height: 240px; overflow-x: hidden; overflow-y: auto; position: relative;}
.block-release .panel-body {padding-bottom: 50px;}
.block-release .panel-body > .btn.pull-right {position: absolute; right: 20px; bottom: 20px;}
.block-release .panel-body > .btn.pull-right {position: absolute; right: 20px; bottom: 20px;}
+44 -1
View File
@@ -607,29 +607,44 @@ class productModel extends model
* Get roadmap of a proejct
*
* @param int $productID
* @param int $branch
* @param int $num
* @access public
* @return array
*/
public function getRoadmap($productID, $branch = 0)
public function getRoadmap($productID, $branch = 0, $num = 0)
{
$plans = $this->loadModel('productplan')->getList($productID, $branch);
$releases = $this->loadModel('release')->getList($productID, $branch);
$roadmap = array();
$total = 0;
foreach($plans as $plan)
{
if(($plan->end != '0000-00-00' and strtotime($plan->end) - time() <= 0) or $plan->end == '2030-01-01') continue;
$year = substr($plan->end, 0, 4);
$roadmap[$year][$plan->branch][] = $plan;
$total++;
}
if($num > 0 and $total >= $num)
{
krsort($roadmap);
return $this->limitRoadmap($roadmap, $num);
}
foreach($releases as $release)
{
$year = substr($release->date, 0, 4);
$roadmap[$year][$release->branch][] = $release;
$total++;
if($num > 0 and $total >= $num) break;
}
krsort($roadmap);
if($num > 0) return $this->limitRoadmap($roadmap, $num);
$groupRoadmap = array();
foreach($roadmap as $year => $branchRoadmaps)
@@ -666,6 +681,34 @@ class productModel extends model
return $lastRoadmap;
}
/**
* Limit roadmap.
*
* @param string $roadmap
* @param int $num
* @access public
* @return array
*/
public function limitRoadmap($roadmap, $num)
{
$i = 0;
$newRoadmap = array();
foreach($roadmap as $year => $branches)
{
foreach($branches as $branch => $plans)
{
krsort($plans);
foreach($plans as $plan)
{
$newRoadmap[$year][$branch][] = $plan;
$i++;
if($i >= $num) break;
}
}
}
return $newRoadmap;
}
/**
* Get team members of a product from projects.
*
+13 -5
View File
@@ -17,22 +17,30 @@
<div class="col-sm-6">
<div class="panel block-release">
<div class="panel-heading">
<div class="panel-title"><?php echo $lang->productplan->unexpired;?> <span class="label label-badge label-light"><?php printf($lang->product->iterationInfo, count($plans));?></span></div>
<div class="panel-title"><?php echo $lang->product->roadmap;?></div>
</div>
<div class="panel-body">
<div class="release-path">
<ul class="release-line">
<?php $i = 0;?>
<?php foreach($roadmap as $year => $branches):?>
<?php $plans = $branches[0];?>
<?php foreach($plans as $plan):?>
<?php $i++;?>
<?php if($i > 6) break;?>
<?php if(isset($plan->begin)):?>
<li <?php if(date('Y-m-d') < $plan->begin) echo "class='active'";?>>
<a href="<?php echo $this->createLink('plan', 'view', "planID={$plan->id}");?>">
<span class="title"><?php echo $plan->title;?></span>
<span class="date"><?php echo $plan->begin;?></span>
<span class="info text-ellipsis" title="<?php echo strip_tags($plan->desc);?>"><?php echo $plan->desc;?></span>
</a>
</li>
<?php else:?>
<li>
<a href="<?php echo $this->createLink('release', 'view', "releaseID={$plan->id}");?>">
<span class="title"><?php echo $plan->name;?></span>
<span class="date"><?php echo $plan->date;?></span>
</a>
</li>
<?php endif;?>
<?php endforeach;?>
<?php endforeach;?>
</ul>
</div>