* code for task #2527.

This commit is contained in:
wangyidong
2016-04-08 13:28:33 +08:00
parent 4d38fbdad1
commit ceb50edff9
10 changed files with 135 additions and 112 deletions
+2 -1
View File
@@ -29,7 +29,7 @@ $lang->todo->menuOrder = $lang->my->menuOrder;
/* product menu order. */
$lang->product->menuOrder[5] = 'index';
$lang->product->menuOrder[10] = 'story';
$lang->product->menuOrder[10] = 'story';
$lang->product->menuOrder[15] = 'dynamic';
$lang->product->menuOrder[20] = 'plan';
$lang->product->menuOrder[25] = 'release';
@@ -47,6 +47,7 @@ $lang->release->menuOrder = $lang->product->menuOrder;
$lang->branch->menuOrder = $lang->product->menuOrder;
/* project menu order. */
$lang->project->menuOrder[1] = 'index';
$lang->project->menuOrder[5] = 'task';
$lang->project->menuOrder[10] = 'story';
$lang->project->menuOrder[15] = 'bug';
+2 -1
View File
@@ -202,6 +202,7 @@ $lang->project = new stdclass();
$lang->project->menu = new stdclass();
$lang->project->menu->list = '%s';
$lang->project->menu->index = '首页|project|index|locate=no&prjectID=%s';
$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban');
$lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory');
$lang->project->menu->bug = 'Bug|project|bug|projectID=%s';
@@ -213,7 +214,7 @@ $lang->project->menu->doc = array('link' => '文档|project|doc|porjectID=
$lang->project->menu->product = $lang->productCommon . '|project|manageproducts|projectID=%s';
$lang->project->menu->view = array('link' => '概况|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close');
$lang->project->menu->create = array('link' => "<i class='icon-plus'></i>&nbsp;添加{$lang->projectCommon}|project|create", 'float' => 'right');
$lang->project->menu->all = array('link' => "<i class='icon-th-large'></i>&nbsp;所有{$lang->projectCommon}|project|index|locate=no&status=undone&projectID=%s", 'float' => 'right');
$lang->project->menu->all = array('link' => "<i class='icon-th-large'></i>&nbsp;所有{$lang->projectCommon}|project|all|status=undone&projectID=%s", 'float' => 'right');
$lang->task = new stdclass();
$lang->build = new stdclass();
+1 -1
View File
@@ -88,7 +88,7 @@
<div class='table-actions clearfix'>
<?php if($canBatchEdit and !empty($productStats)):?>
<?php echo html::selectButton();?>
<?php echo html::submitButton($lang->product->batchEdit, '', '');?>
<?php echo html::submitButton($lang->product->batchEdit);?>
<?php endif;?>
<?php if(!$canOrder and common::hasPriv('product', 'updateOrder')) echo html::a(inlink('all', "productID=$productID&status=$status&order=order_desc&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->product->updateOrder, '' , "class='btn'");?>
</div>
+27 -19
View File
@@ -37,30 +37,14 @@ class project extends control
* @access public
* @return void
*/
public function index($locate = 'yes', $status = 'undone', $projectID = 0, $orderBy = 'order_desc', $productID = 0, $recTotal = 0, $recPerPage = 10, $pageID = 1)
public function index($locate = 'yes', $projectID = 0)
{
if($locate == 'yes') $this->locate($this->createLink('project', 'task'));
if($this->projects) $this->commonAction($projectID);
$this->session->set('projectList', $this->app->getURI(true));
/* Load pager and get tasks. */
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$this->app->loadLang('my');
$this->view->title = $this->lang->project->allProject;
$this->view->position[] = $this->lang->project->allProject;
$this->view->projectStats = $this->project->getProjectStats($status == 'byproduct' ? 'all' : $status, $productID, 0, 30, $orderBy, $pager);
$this->view->products = array(0 => $this->lang->product->select) + $this->loadModel('product')->getPairs();
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->view->pager = $pager;
$this->view->recTotal = $pager->recTotal;
$this->view->recPerPage = $pager->recPerPage;
$this->view->orderBy = $orderBy;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->status = $status;
$this->view->title = $this->lang->project->index;
$this->view->position[] = $this->lang->project->index;
$this->display();
}
@@ -1927,4 +1911,28 @@ class project extends control
$this->dao->update(TABLE_PROJECT)->set('`order`')->eq($order)->where('id')->eq($newID)->exec();
}
}
public function all($status = 'undone', $projectID = 0, $orderBy = 'order_desc', $productID = 0, $recTotal = 0, $recPerPage = 10, $pageID = 1)
{
if($this->projects) $this->commonAction($projectID);
$this->session->set('projectList', $this->app->getURI(true));
/* Load pager and get tasks. */
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
$this->app->loadLang('my');
$this->view->title = $this->lang->project->allProject;
$this->view->position[] = $this->lang->project->allProject;
$this->view->projectStats = $this->project->getProjectStats($status == 'byproduct' ? 'all' : $status, $productID, 0, 30, $orderBy, $pager);
$this->view->products = array(0 => $this->lang->product->select) + $this->loadModel('product')->getPairs();
$this->view->productID = $productID;
$this->view->projectID = $projectID;
$this->view->pager = $pager;
$this->view->orderBy = $orderBy;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->status = $status;
$this->display();
}
}
@@ -11,5 +11,5 @@ $(function()
function byProduct(productID, projectID)
{
location.href = createLink('project', 'index', "locate=no&status=byproduct&project=" + projectID + "&orderBy=" + orderBy + '&productID=' + productID);
location.href = createLink('project', 'all', "status=byproduct&project=" + projectID + "&orderBy=" + orderBy + '&productID=' + productID);
}
+102
View File
@@ -0,0 +1,102 @@
<?php
/**
* The html template file of all method of project module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package project
* @version $Id: index.html.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/sparkline.html.php';?>
<?php include '../../common/view/sortable.html.php';?>
<div id='featurebar'>
<div class='actions'>
<?php common::printLink('project', 'create', '', "<i class='icon-plus'></i> " . $lang->project->create, '', "class='btn'")?>
</div>
<ul class='nav'>
<?php echo "<li id='undoneTab'>" . html::a(inlink("all", "status=undone&projectID=$project->id"), $lang->project->undone) . '</li>';?>
<?php echo "<li id='allTab'>" . html::a(inlink("all", "status=all&projectID=$project->id"), $lang->project->all) . '</li>';?>
<?php echo "<li id='waitTab'>" . html::a(inlink("all", "status=wait&projectID=$project->id"), $lang->project->statusList['wait']) . '</li>';?>
<?php echo "<li id='doingTab'>" . html::a(inlink("all", "status=doing&projectID=$project->id"), $lang->project->statusList['doing']) . '</li>';?>
<?php echo "<li id='suspendedTab'>" . html::a(inlink("all", "status=suspended&projectID=$project->id"), $lang->project->statusList['suspended']) . '</li>';?>
<?php echo "<li id='doneTab'>" . html::a(inlink("all", "status=done&projectID=$project->id"), $lang->project->statusList['done']) . '</li>';?>
<?php echo "<li>" . html::select('product', $products, $productID, "class='chosen' onchange='byProduct(this.value, $projectID)'") . '</li>';?>
</ul>
</div>
<?php $canOrder = (common::hasPriv('project', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
<form id='projectsForm' class='form-condensed' method='post' action='<?php echo inLink('batchEdit', "projectID=$projectID");?>'>
<table class='table table-fixed tablesorter'>
<?php $vars = "locate=no&status=$status&projectID=$projectID&orderBy=%s&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<thead>
<tr>
<th class='w-id'><?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->project->name);?></th>
<th class='w-100px'><?php common::printOrderLink('code', $orderBy, $vars, $lang->project->code);?></th>
<th class='w-90px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PM);?></th>
<th class='w-80px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
<th class='w-80px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->project->status);?></th>
<th class='w-70px'><?php echo $lang->project->totalEstimate;?></th>
<th class='w-70px'><?php echo $lang->project->totalConsumed;?></th>
<th class='w-70px'><?php echo $lang->project->totalLeft;?></th>
<th class='w-150px'><?php echo $lang->project->progess;?></th>
<th class='w-100px'><?php echo $lang->project->burn;?></th>
<?php if($canOrder):?>
<th class='w-60px sort-default'><?php common::printOrderLink('order', $orderBy, $vars, $lang->project->updateOrder);?></th>
<?php endif;?>
</tr>
</thead>
<?php $canBatchEdit = common::hasPriv('project', 'batchEdit'); ?>
<tbody class='sortable' id='projectTableList'>
<?php foreach($projectStats as $project):?>
<tr class='text-center' data-id='<?php echo $project->id ?>' data-order='<?php echo $project->order ?>'>
<td>
<?php if($canBatchEdit):?>
<input type='checkbox' name='projectIDList[<?php echo $project->id;?>]' value='<?php echo $project->id;?>' />
<?php endif;?>
<?php echo html::a($this->createLink('project', 'view', 'project=' . $project->id), sprintf('%03d', $project->id));?>
</td>
<td class='text-left' title='<?php echo $project->name?>'><?php echo html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name);?></td>
<td class='text-left'><?php echo $project->code;?></td>
<td><?php echo $users[$project->PM];?></td>
<td><?php echo $project->end;?></td>
<?php if(isset($project->delay)):?>
<td class='status-delay'><?php echo $lang->project->delayed;?></td>
<?php else:?>
<td class='status-<?php echo $project->status?>'><?php echo $lang->project->statusList[$project->status];?></td>
<?php endif;?>
<td><?php echo $project->hours->totalEstimate;?></td>
<td><?php echo $project->hours->totalConsumed;?></td>
<td><?php echo $project->hours->totalLeft;?></td>
<td class='text-left w-150px'>
<img class='progressbar' src='<?php echo $webRoot;?>theme/default/images/main/green.png' alt='' height='16' width='<?php echo $project->hours->progress == 0 ? 1 : round($project->hours->progress);?>'>
<small><?php echo $project->hours->progress;?>%</small>
</td>
<td class='projectline text-left' values='<?php echo join(',', $project->burns);?>'></td>
<?php if($canOrder):?>
<td class='sort-handler'><i class="icon icon-move"></i></td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='<?php echo $canOrder ? 12 : 11?>'>
<div class='table-actions clearfix'>
<?php if($canBatchEdit and !empty($projectStats)):?>
<?php echo html::selectButton();?>
<?php echo html::submitButton($lang->project->batchEdit);?>
<?php endif;?>
<?php if(!$canOrder and common::hasPriv('project', 'updateOrder')) echo html::a(inlink('all', "status=$status&projectID=$projectID&order=order_desc&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->project->updateOrder, '', "class='btn'");?>
</div>
<div class='text-right'><?php $pager->show();?></div>
</td>
</tr>
</tfoot>
</table>
</form>
<script>$("#<?php echo $status;?>Tab").addClass('active');</script>
<?php js::set('orderBy', $orderBy)?>
<?php include '../../common/view/footer.html.php';?>
-89
View File
@@ -10,93 +10,4 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/sparkline.html.php';?>
<?php include '../../common/view/sortable.html.php';?>
<div id='featurebar'>
<div class='actions'>
<?php common::printLink('project', 'create', '', "<i class='icon-plus'></i> " . $lang->project->create, '', "class='btn'")?>
</div>
<ul class='nav'>
<?php echo "<li id='undoneTab'>" . html::a(inlink("index", "locate=no&status=undone&projectID=$project->id"), $lang->project->undone) . '</li>';?>
<?php echo "<li id='allTab'>" . html::a(inlink("index", "locate=no&status=all&projectID=$project->id"), $lang->project->all) . '</li>';?>
<?php echo "<li id='waitTab'>" . html::a(inlink("index", "locate=no&status=wait&projectID=$project->id"), $lang->project->statusList['wait']) . '</li>';?>
<?php echo "<li id='doingTab'>" . html::a(inlink("index", "locate=no&status=doing&projectID=$project->id"), $lang->project->statusList['doing']) . '</li>';?>
<?php echo "<li id='suspendedTab'>" . html::a(inlink("index", "locate=no&status=suspended&projectID=$project->id"), $lang->project->statusList['suspended']) . '</li>';?>
<?php echo "<li id='doneTab'>" . html::a(inlink("index", "locate=no&status=done&projectID=$project->id"), $lang->project->statusList['done']) . '</li>';?>
<?php echo "<li>" . html::select('product', $products, $productID, "class='chosen' onchange='byProduct(this.value, $projectID)'") . '</li>';?>
</ul>
</div>
<?php $canOrder = (common::hasPriv('project', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
<form id='projectsForm' class='form-condensed' method='post' action='<?php echo inLink('batchEdit', "projectID=$projectID");?>'>
<table class='table table-fixed tablesorter'>
<?php $vars = "locate=no&status=$status&projectID=$projectID&orderBy=%s&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
<thead>
<tr>
<th class='w-id'><?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->project->name);?></th>
<th class='w-100px'><?php common::printOrderLink('code', $orderBy, $vars, $lang->project->code);?></th>
<th class='w-90px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PM);?></th>
<th class='w-80px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
<th class='w-80px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->project->status);?></th>
<th class='w-70px'><?php echo $lang->project->totalEstimate;?></th>
<th class='w-70px'><?php echo $lang->project->totalConsumed;?></th>
<th class='w-70px'><?php echo $lang->project->totalLeft;?></th>
<th class='w-150px'><?php echo $lang->project->progess;?></th>
<th class='w-100px'><?php echo $lang->project->burn;?></th>
<?php if($canOrder):?>
<th class='w-60px sort-default'><?php common::printOrderLink('order', $orderBy, $vars, $lang->project->updateOrder);?></th>
<?php endif;?>
</tr>
</thead>
<?php $canBatchEdit = common::hasPriv('project', 'batchEdit'); ?>
<tbody class='sortable' id='projectTableList'>
<?php foreach($projectStats as $project):?>
<tr class='text-center' data-id='<?php echo $project->id ?>' data-order='<?php echo $project->order ?>'>
<td>
<?php if($canBatchEdit):?>
<input type='checkbox' name='projectIDList[<?php echo $project->id;?>]' value='<?php echo $project->id;?>' />
<?php endif;?>
<?php echo html::a($this->createLink('project', 'view', 'project=' . $project->id), sprintf('%03d', $project->id));?>
</td>
<td class='text-left' title='<?php echo $project->name?>'><?php echo html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name);?></td>
<td class='text-left'><?php echo $project->code;?></td>
<td><?php echo $users[$project->PM];?></td>
<td><?php echo $project->end;?></td>
<?php if(isset($project->delay)):?>
<td class='status-delay'><?php echo $lang->project->delayed;?></td>
<?php else:?>
<td class='status-<?php echo $project->status?>'><?php echo $lang->project->statusList[$project->status];?></td>
<?php endif;?>
<td><?php echo $project->hours->totalEstimate;?></td>
<td><?php echo $project->hours->totalConsumed;?></td>
<td><?php echo $project->hours->totalLeft;?></td>
<td class='text-left w-150px'>
<img class='progressbar' src='<?php echo $webRoot;?>theme/default/images/main/green.png' alt='' height='16' width='<?php echo $project->hours->progress == 0 ? 1 : round($project->hours->progress);?>'>
<small><?php echo $project->hours->progress;?>%</small>
</td>
<td class='projectline text-left' values='<?php echo join(',', $project->burns);?>'></td>
<?php if($canOrder):?>
<td class='sort-handler'><i class="icon icon-move"></i></td>
<?php endif;?>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='<?php echo $canOrder ? 12 : 11?>'>
<div class='table-actions clearfix'>
<?php if($canBatchEdit and !empty($projectStats)):?>
<?php echo html::selectButton();?>
<?php echo html::submitButton($lang->project->batchEdit);?>
<?php endif;?>
<?php if(!$canOrder and common::hasPriv('project', 'updateOrder')) echo html::a(inlink('index', "locate=no&status=$status&projectID=$projectID&order=order_desc&productID=$productID&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->project->updateOrder, '', "class='btn'");?>
</div>
<div class='text-right'><?php $pager->show();?></div>
</td>
</tr>
</tfoot>
</table>
</form>
<script>$("#<?php echo $status;?>Tab").addClass('active');</script>
<?php js::set('orderBy', $orderBy)?>
<?php include '../../common/view/footer.html.php';?>