diff --git a/module/bug/config.php b/module/bug/config.php
index 31f93a8832..12027aa3d1 100644
--- a/module/bug/config.php
+++ b/module/bug/config.php
@@ -3,10 +3,11 @@ global $lang;
$config->bug->search['module'] = 'bug';
$config->bug->search['fields']['id'] = $lang->bug->id;
$config->bug->search['fields']['title'] = $lang->bug->title;
-$config->bug->search['fields']['product'] = $lang->bug->product;
+$config->bug->search['fields']['steps'] = $lang->bug->steps;
$config->bug->search['fields']['assignedTo'] = $lang->bug->assignedTo;
$config->bug->search['fields']['resolvedBy'] = $lang->bug->resolvedBy;
$config->bug->search['fields']['openedBy'] = $lang->bug->openedBy;
+$config->bug->search['fields']['project'] = $lang->bug->project;
$config->bug->search['fields']['closedBy'] = $lang->bug->closedBy;
$config->bug->search['fields']['lastEditedBy'] = $lang->bug->lastEditedBy;
$config->bug->search['fields']['status'] = $lang->bug->status;
@@ -22,7 +23,8 @@ $config->bug->search['fields']['closedDate'] = $lang->bug->closedDate;
$config->bug->search['fields']['lastEditedDate'] = $lang->bug->lastEditedDate;
$config->bug->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->bug->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => 'products');
+$config->bug->search['params']['steps'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
+$config->bug->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => 'projects');
$config->bug->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->bug->search['params']['resolvedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->bug->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
diff --git a/module/bug/control.php b/module/bug/control.php
index ecc58d4730..fe43dff35a 100644
--- a/module/bug/control.php
+++ b/module/bug/control.php
@@ -49,15 +49,15 @@ class bug extends control
/* 浏览一个产品下面的bug。*/
public function browse($productID = 0, $browseType = 'byModule', $param = 0, $orderBy = 'id|desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
{
- /* 设置搜索表单。*/
- $this->config->bug->search['actionURL'] = $this->createLink('bug', 'browse', "productID=$productID&browseType=bySearch");
- $this->view->searchForm = $this->fetch('search', 'buildForm', $this->config->bug->search);
-
/* 设置产品id和模块id。*/
$browseType = strtolower($browseType);
$productID = common::saveProductState($productID, key($this->products));
$moduleID = ($browseType == 'bymodule') ? (int)$param : 0;
+ /* 设置搜索表单。*/
+ $this->config->bug->search['actionURL'] = $this->createLink('bug', 'browse', "productID=$productID&browseType=bySearch");
+ $this->view->searchForm = $this->fetch('search', 'buildForm', $this->config->bug->search);
+
/* 设置菜单,登记session。*/
$this->bug->setMenu($this->products, $productID);
$this->session->set('bugList', $this->app->getURI(true));
@@ -103,7 +103,7 @@ class bug extends control
elseif($browseType == 'bysearch')
{
if($this->session->bugQuery == false) $this->session->set('bugQuery', ' 1 = 1');
- $bugs = $this->dao->select('*')->from(TABLE_BUG)->where($this->session->bugQuery)->orderBy($orderBy)->page($pager)->fetchAll();
+ $bugs = $this->dao->select('*')->from(TABLE_BUG)->where($this->session->bugQuery)->andWhere('product')->eq($productID)->orderBy($orderBy)->page($pager)->fetchAll();
}
$users = $this->user->getPairs($this->app->company->id, 'noletter');
@@ -120,9 +120,7 @@ class bug extends control
$this->assign('browseType', $browseType);
$this->assign('bugs', $bugs);
$this->assign('users', $users);
- $this->assign('recTotal', $pager->recTotal);
- $this->assign('recPerPage', $pager->recPerPage);
- $this->assign('pager', $pager->get());
+ $this->assign('pager', $pager);
$this->assign('param', $param);
$this->assign('orderBy', $orderBy);
$this->assign('moduleID', $moduleID);
@@ -131,7 +129,7 @@ class bug extends control
}
/* 创建Bug。*/
- public function create($productID, $moduleID = 0)
+ public function create($productID, $moduleID = 0, $projectID)
{
if(empty($this->products)) $this->locate($this->createLink('product', 'create'));
diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php
index 1393590033..d5af06ce3e 100644
--- a/module/bug/view/browse.html.php
+++ b/module/bug/view/browse.html.php
@@ -53,14 +53,14 @@ function browseBySearch(active)
" . $lang->bug->moduleBugs . " ";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=assignToMe¶m=0"), $lang->bug->assignToMe) . "";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=openedByMe¶m=0"), $lang->bug->openedByMe) . "";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=resolvedByMe¶m=0"), $lang->bug->resolvedByMe) . "";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=assignToNull¶m=0"), $lang->bug->assignToNull) . "";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=longLifeBugs¶m=0"), $lang->bug->longLifeBugs) . "";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=postponedBugs¶m=0"), $lang->bug->postponedBugs) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToMe¶m=0"), $lang->bug->assignToMe) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=openedByMe¶m=0"), $lang->bug->openedByMe) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=resolvedByMe¶m=0"), $lang->bug->resolvedByMe) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=assignToNull¶m=0"), $lang->bug->assignToNull) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=longLifeBugs¶m=0"), $lang->bug->longLifeBugs) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=postponedBugs¶m=0"), $lang->bug->postponedBugs) . "";
echo "{$lang->bug->byQuery} ";
- echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&type=all¶m=0&orderBy=$orderBy&recTotal=$recTotal&recPerPage=200"), $lang->bug->allBugs) . "";
+ echo "" . html::a($this->createLink('bug', 'browse', "productid=$productID&browseType=all¶m=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage=200"), $lang->bug->allBugs) . "";
?>
@@ -70,8 +70,8 @@ function browseBySearch(active)
'>
-' id='mainbox'>
-
' id='treebox'>
+
' id='mainbox'>
+
' id='treebox'>
@@ -83,7 +83,7 @@ function browseBySearch(active)
-
+ recTotal}&recPerPage={$pager->recPerPage}"; ?>
@@ -110,7 +110,7 @@ function browseBySearch(active)
-
+ show();?>
diff --git a/module/product/config.php b/module/product/config.php
index 53dea7774a..c32b0999ef 100644
--- a/module/product/config.php
+++ b/module/product/config.php
@@ -4,7 +4,7 @@ $app->loadLang('story');
$config->product->search['module'] = 'story';
$config->product->search['fields']['id'] = $lang->story->id;
$config->product->search['fields']['title'] = $lang->story->title;
-$config->product->search['fields']['product'] = $lang->story->product;
+$config->product->search['fields']['spec'] = $lang->story->spec;
$config->product->search['fields']['assignedTo'] = $lang->story->assignedTo;
$config->product->search['fields']['openedBy'] = $lang->story->openedBy;
$config->product->search['fields']['lastEditedBy'] = $lang->story->lastEditedBy;
@@ -12,7 +12,7 @@ $config->product->search['fields']['status'] = $lang->story->status;
$config->product->search['fields']['pri'] = $lang->story->pri;
$config->product->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->product->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => 'products');
+$config->product->search['params']['spec'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->product->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->product->search['params']['resolvedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->product->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
diff --git a/module/product/control.php b/module/product/control.php
index 6b3cc574f2..a2998b010f 100644
--- a/module/product/control.php
+++ b/module/product/control.php
@@ -87,7 +87,7 @@ class product extends control
elseif($browseType == 'bysearch')
{
if($this->session->storyQuery == false) $this->session->set('storyQuery', ' 1 = 1');
- $stories = $this->story->getByQuery($this->session->storyQuery, $orderBy, $pager);
+ $stories = $this->story->getByQuery($productID, $this->session->storyQuery, $orderBy, $pager);
}
$this->assign('productID', $productID);
diff --git a/module/search/model.php b/module/search/model.php
index 45fcb2f3c2..67a391d372 100644
--- a/module/search/model.php
+++ b/module/search/model.php
@@ -99,7 +99,8 @@ class searchModel extends model
$queryForm[$fieldName] = key($fields);
$queryForm[$andOrName] = 'and';
$queryForm[$operatorName] = $operator;
- $queryForm[$valueName] = '';
+ $queryForm[$valueName] = '';
+
if(!next($fields)) reset($fields);
}
$queryForm['groupAndOr'] = 'and';
@@ -111,12 +112,14 @@ class searchModel extends model
{
$users = $this->loadModel('user')->getPairs();
$products = array('' => '') + $this->loadModel('product')->getPairs();
+ $projects = array('' => '') + $this->loadModel('project')->getPairs();
$fields = array_keys($fields);
foreach($fields as $fieldName)
{
if(!isset($params[$fieldName])) $params[$fieldName] = array('operator' => '=', 'control' => 'input', 'values' => '');
- if($params[$fieldName]['values'] == 'users') $params[$fieldName]['values'] = $users;
- if($params[$fieldName]['values'] == 'products') $params[$fieldName]['values'] = $products;
+ if($params[$fieldName]['values'] == 'users') $params[$fieldName]['values'] = $users;
+ if($params[$fieldName]['values'] == 'products') $params[$fieldName]['values'] = $products;
+ if($params[$fieldName]['values'] == 'projects') $params[$fieldName]['values'] = $projects;
}
return $params;
}
diff --git a/module/story/model.php b/module/story/model.php
index 62b62f4687..726fa61fb6 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -110,9 +110,9 @@ class storyModel extends model
}
/* 按照某一个查询条件获取列表。*/
- public function getByQuery($query, $orderBy, $pager = null)
+ public function getByQuery($productID, $query, $orderBy, $pager = null)
{
- $tmpStories = $this->dao->select('*')->from(TABLE_STORY)->where($query)->orderBy($orderBy)->page($pager)->fetchGroup('plan');
+ $tmpStories = $this->dao->select('*')->from(TABLE_STORY)->where($query)->andWhere('product')->eq((int)$productID)->orderBy($orderBy)->page($pager)->fetchGroup('plan');
if(!$tmpStories) return array();
$plans = $this->dao->select('id,title')->from(TABLE_PRODUCTPLAN)->where('id')->in(array_keys($tmpStories))->fetchPairs();
$stories = array();
diff --git a/module/testcase/config.php b/module/testcase/config.php
index ac6a9a37bc..8a5f6394b6 100644
--- a/module/testcase/config.php
+++ b/module/testcase/config.php
@@ -3,7 +3,7 @@ global $lang;
$config->testcase->search['module'] = 'testcase';
$config->testcase->search['fields']['id'] = $lang->testcase->id;
$config->testcase->search['fields']['title'] = $lang->testcase->title;
-$config->testcase->search['fields']['product'] = $lang->testcase->product;
+$config->testcase->search['fields']['steps'] = $lang->testcase->steps;
$config->testcase->search['fields']['openedBy'] = $lang->testcase->openedBy;
$config->testcase->search['fields']['lastEditedBy'] = $lang->testcase->lastEditedBy;
$config->testcase->search['fields']['status'] = $lang->testcase->status;
@@ -13,7 +13,7 @@ $config->testcase->search['fields']['openedDate'] = $lang->testcase->openedD
$config->testcase->search['fields']['lastEditedDate'] = $lang->testcase->lastEditedDate;
$config->testcase->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->testcase->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => 'products');
+$config->testcase->search['params']['steps'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->testcase->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->testcase->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
$config->testcase->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->testcase->statusList);
diff --git a/module/testcase/control.php b/module/testcase/control.php
index b94129939e..e85d9e3a07 100644
--- a/module/testcase/control.php
+++ b/module/testcase/control.php
@@ -70,7 +70,7 @@ class testcase extends control
elseif($browseType == 'bysearch')
{
if($this->session->testcaseQuery == false) $this->session->set('testcaseQuery', ' 1 = 1');
- $this->view->cases = $this->dao->select('*')->from(TABLE_CASE)->where($this->session->testcaseQuery)->orderBy($orderBy)->page($pager)->fetchAll();
+ $this->view->cases = $this->dao->select('*')->from(TABLE_CASE)->where($this->session->testcaseQuery)->andWhere('product')->eq($productID)->orderBy($orderBy)->page($pager)->fetchAll();
}
/* 赋值。*/