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(); } /* 赋值。*/