* fix error for task #2554 when browseType is 'byproduct'.

This commit is contained in:
chenfeiCF
2016-04-19 13:31:14 +08:00
parent 25ada3e7e3
commit d1bcb26a7a
3 changed files with 40 additions and 19 deletions
+15 -7
View File
@@ -121,13 +121,22 @@ class project extends control
/* Set browse type. */
$browseType = strtolower($status);
if($browseType == 'bymodule') setcookie('taskModule', (int)$param, $this->config->cookieLife, $this->config->webRoot);
if($browseType != 'bymodule') $this->session->set('taskBrowseType', $browseType);
if($browseType == 'bymodule' or $browseType == 'byproduct')
{
setcookie('taskBrowseType', $browseType, $this->config->cookieLife, $this->config->webRoot);
setcookie('browseParam', (int)$param, $this->config->cookieLife, $this->config->webRoot);
}
else
{
$this->session->set('taskBrowseType', $browseType);
}
/* Set productID, moduleID and queryID. */
/* Set queryID, moduleID and productID. */
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
$moduleID = ($browseType == 'bymodule') ? (int)$param : ($browseType == 'bysearch' ? 0 : ($this->cookie->taskModule ? $this->cookie->taskModule : 0));
$productID = ($browseType == 'byproduct') ? (int)$param : 0;
$moduleID = ($browseType == 'bymodule') ? (int)$param : (($browseType == 'bysearch' or $browseType == 'byproduct') ? 0 : ($this->cookie->taskBrowseType == 'bymodule' ? $this->cookie->browseParam : 0));
$productID = ($browseType == 'byproduct') ? (int)$param : (($browseType == 'bysearch' or $browseType == 'bymodule') ? 0 : ($this->cookie->taskBrowseType == 'byproduct' ? $this->cookie->browseParam : 0));
/* Get products by project. */
$project = $this->commonAction($projectID, $status);
$projectID = $project->id;
$products = $this->loadModel('product')->getProductsByProject($projectID);
@@ -156,7 +165,7 @@ class project extends control
$pager = new pager($recTotal, $recPerPage, $pageID);
/* Get tasks. */
$tasks = $this->project->getTasks($productID, $projectID, $this->projects, $status, $browseType, $queryID, $moduleID, $sort, $pager);
$tasks = $this->project->getTasks($productID, $projectID, $this->projects, $browseType, $queryID, $moduleID, $sort, $pager);
/* Build the search form. */
$actionURL = $this->createLink('project', 'task', "projectID=$projectID&status=bySearch&param=myQueryID");
@@ -187,7 +196,6 @@ class project extends control
$this->view->modules = $this->tree->getTaskOptionMenu($projectID);
$this->view->moduleID = $moduleID;
$this->view->moduleTree = $this->tree->getTaskTreeMenu($projectID, $productID = 0, $startModuleID = 0, array('treeModel', 'createTaskLink'));
$this->view->moduleName = $moduleID ? $this->tree->getById($moduleID)->name : $this->lang->tree->all;
$this->view->projectTree = $this->project->tree();
$this->view->memberPairs = $memberPairs;
$this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products), 'noempty');
+10 -7
View File
@@ -752,7 +752,6 @@ class projectModel extends model
* @param int $productID
* @param int $projectID
* @param array $projects
* @param string $status
* @param string $browseType
* @param int $queryID
* @param int $moduleID
@@ -761,20 +760,24 @@ class projectModel extends model
* @access public
* @return array
*/
public function getTasks($productID, $projectID, $projects, $status, $browseType, $queryID, $moduleID, $sort, $pager)
public function getTasks($productID, $projectID, $projects, $browseType, $queryID, $moduleID, $sort, $pager)
{
$this->loadModel('task');
/* Set modules and $browseType. */
$modules = $moduleID ? $this->loadModel('tree')->getAllChildID($moduleID) : '0';
$browseType = (($browseType == 'bymodule') and ($this->session->taskBrowseType) and ($this->session->taskBrowseType != 'bysearch')) ? $this->session->taskBrowseType : $browseType;
$modules = 0;
if($productID) $modules = $this->loadModel('tree')->getProjectModule($projectID, $productID);
if($moduleID) $modules = $this->loadModel('tree')->getAllChildID($moduleID);
if($browseType == 'bymodule' or $browseType == 'byproduct')
{
if(($this->session->taskBrowseType) and ($this->session->taskBrowseType != 'bysearch')) $browseType = $this->session->taskBrowseType;
}
/* Get tasks. */
$tasks = array();
if($status == 'byProduct')
if($browseType == 'byproduct')
{
$modules = $this->loadModel('tree')->getProjectModule($projectID, $productID);
$tasks = $this->task->getTasksByModule($projectID, $modules, $sort, $pager);
$tasks = $this->task->getTasksByModule($projectID, $modules, $sort, $pager);
}
elseif($browseType == 'bymodule')
{
+15 -5
View File
@@ -1,20 +1,30 @@
<div id='featurebar'>
<ul class='nav'>
<?php if(isset($moduleID)):?>
<li>
<span>
<?php
echo $moduleName;
if($moduleID)
if($productID)
{
$removeLink = $browseType == 'bymodule' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("taskModule")';
$product = $this->product->getById($productID);
$removeLink = $browseType == 'byproduct' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("browseParam")';
echo $product->name;
echo '&nbsp;' . html::a($removeLink, "<i class='icon icon-remove'></i>") . '&nbsp;';
}
elseif($moduleID)
{
$module = $this->tree->getById($moduleID);
$removeLink = $browseType == 'bymodule' ? inlink('task', "projectID=$projectID&browseType=$status&param=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("browseParam")';
echo $module->name;
echo '&nbsp;' . html::a($removeLink, "<i class='icon icon-remove'></i>") . '&nbsp;';
}
else
{
echo $this->lang->tree->all;
}
echo " <i class='icon-angle-right'></i>&nbsp; ";
?>
</span>
</li>
<?php endif;?>
<?php
$hasBrowsePriv = common::hasPriv('project', 'task');
$hasKanbanPriv = common::hasPriv('project', 'kanban');