From e21aff2d5dd42a5125b862788bbb65a38907d17c Mon Sep 17 00:00:00 2001 From: sunjun Date: Fri, 10 Jun 2022 04:29:30 +0000 Subject: [PATCH] sprint_sunjun_201 --- module/my/control.php | 28 +++- module/my/model.php | 236 +++++++++++++++++++++++++++- module/my/view/requirement.html.php | 16 +- module/my/view/story.html.php | 16 +- module/my/view/testcase.html.php | 2 +- module/product/config.php | 1 + 6 files changed, 278 insertions(+), 21 deletions(-) diff --git a/module/my/control.php b/module/my/control.php index 9c6c3cea05..85542ad550 100755 --- a/module/my/control.php +++ b/module/my/control.php @@ -305,7 +305,7 @@ EOF; * @access public * @return void */ - public function story($type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) + public function story($type = 'assignedTo', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) { $this->loadModel('story'); /* Save session. */ @@ -318,11 +318,16 @@ EOF; /* Append id for secend sort. */ $sort = common::appendOrder($orderBy); + $queryID = ($type == 'bysearch') ? (int)$param : 0; if($type == 'assignedBy') { $stories = $this->loadModel('my')->getAssignedByMe($this->app->user->account, '', $pager, $orderBy, '', 'story'); } + elseif($type == 'bysearch') + { + $stories = $this->my->getStoriesBySearch($queryID, $this->app->rawMethod, $orderBy, $pager); + } else { $stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, 'story', false); @@ -330,6 +335,11 @@ EOF; if(!empty($stories)) $stories = $this->story->mergeReviewer($stories); + /* Build the search form. */ + $currentMethod = $this->app->rawMethod; + $actionURL = $this->createLink('my', $currentMethod, "mode=story&type=bysearch¶m=myQueryID&orderBy={$orderBy}&recTotal={$recTotal}&recPerPage={$recPerPage}&pageID={$pageID}"); + $this->my->buildStorySearchForm($queryID, $actionURL, $currentMethod); + /* Assign. */ $this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->story; $this->view->position[] = $this->lang->my->story; @@ -337,6 +347,7 @@ EOF; $this->view->users = $this->user->getPairs('noletter'); $this->view->projects = $this->loadModel('project')->getPairsByProgram(); $this->view->type = $type; + $this->view->param = $param; $this->view->recTotal = $recTotal; $this->view->recPerPage = $recPerPage; $this->view->pageID = $pageID; @@ -358,7 +369,7 @@ EOF; * @access public * @return void */ - public function requirement($type = 'assignedTo', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) + public function requirement($type = 'assignedTo', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) { /* Save session. */ $this->loadModel('story'); @@ -371,11 +382,16 @@ EOF; /* Append id for secend sort. */ $sort = common::appendOrder($orderBy); + $queryID = ($type == 'bysearch') ? (int)$param : 0; if($type == 'assignedBy') { $stories = $this->loadModel('my')->getAssignedByMe($this->app->user->account, '', $pager, $orderBy, '', 'requirement'); } + elseif($type == 'bysearch') + { + $stories = $this->my->getRequirementsBySearch($queryID, $this->app->rawMethod, $orderBy, $pager); + } else { $stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, 'requirement'); @@ -383,6 +399,11 @@ EOF; if(!empty($stories)) $stories = $this->story->mergeReviewer($stories); + /* Build the search form. */ + $currentMethod = $this->app->rawMethod; + $actionURL = $this->createLink('my', $currentMethod, "mode=requirement&type=bysearch¶m=myQueryID&orderBy={$orderBy}&recTotal={$recTotal}&recPerPage={$recPerPage}&pageID={$pageID}"); + $this->my->buildRequirementSearchForm($queryID, $actionURL, $currentMethod); + /* Assign. */ $this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->story; $this->view->position[] = $this->lang->my->story; @@ -390,6 +411,7 @@ EOF; $this->view->users = $this->user->getPairs('noletter'); $this->view->projects = $this->loadModel('project')->getPairsByProgram(); $this->view->type = $type; + $this->view->param = $param; $this->view->recTotal = $recTotal; $this->view->recPerPage = $recPerPage; $this->view->pageID = $pageID; @@ -657,7 +679,6 @@ EOF; /* Build the search form. */ $currentMethod = $this->app->rawMethod; $actionURL = $this->createLink('my', $currentMethod, "mode=testcase&type=bysearch¶m=myQueryID&orderBy={$orderBy}&recTotal={$recTotal}&recPerPage={$recPerPage}&pageID={$pageID}"); - $this->config->testcase->search['onMenuBar'] = 'yes'; $this->my->buildTestcaseSearchForm($queryID, $actionURL, $currentMethod); /* Assign. */ @@ -667,6 +688,7 @@ EOF; $this->view->users = $this->user->getPairs('noletter'); $this->view->tabID = 'test'; $this->view->type = $type; + $this->view->param = $param; $this->view->summary = $this->testcase->summary($cases); $this->view->recTotal = $recTotal; $this->view->recPerPage = $recPerPage; diff --git a/module/my/model.php b/module/my/model.php index 91b9784adf..9a8f5c5d5e 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -397,8 +397,8 @@ class myModel extends model $this->config->testcase->search['module'] = $queryName; $this->config->testcase->search['queryID'] = $queryID; $this->config->testcase->search['actionURL'] = $actionURL; - $this->config->testcase->search['params']['product']['values'] = $products; - $this->config->testcase->search['params']['lib']['values'] = $this->loadModel('caselib')->getLibraries(); + $this->config->testcase->search['params']['product']['values'] = array('' => '') + $products; + $this->config->testcase->search['params']['lib']['values'] = array('' => '') + $this->loadModel('caselib')->getLibraries(); unset($this->config->testcase->search['fields']['module']); @@ -418,13 +418,14 @@ class myModel extends model public function getTestcasesBySearch($queryID, $type, $orderBy, $pager) { $queryName = $type == 'contribute' ? 'contributeTestcaseQuery' : 'workTestcaseQuery'; + $queryForm = $type == 'openedbyme' ? 'contributeTestcaseForm' : 'workTestcaseForm'; if($queryID) { $query = $this->loadModel('search')->getQuery($queryID); if($query) { $this->session->set($queryName, $query->sql); - $this->session->set($queryName . 'Form', $query->form); + $this->session->set($queryForm, $query->form); } else { @@ -718,4 +719,233 @@ class myModel extends model return $risks; } + + /** + * Build Story search form. + * + * @param int $queryID + * @param string $actionURL + * @param string $type + * @access public + * @return void + */ + public function buildStorySearchForm($queryID, $actionURL, $type) + { + $products = $this->dao->select('id,name')->from(TABLE_PRODUCT) + ->where('deleted')->eq(0) + ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi() + ->orderBy('order_asc') + ->fetchPairs(); + + $productIdList = array_keys($products); + $branchParam = ''; + $queryName = $type == 'contribute' ? 'contributeStory' : 'workStory'; + $this->app->loadConfig('product'); + $this->config->product->search['module'] = $queryName; + $this->config->product->search['queryID'] = $queryID; + $this->config->product->search['actionURL'] = $actionURL; + $this->config->product->search['params']['product']['values'] = array('' => '') + $products; + $this->config->product->search['params']['plan']['values'] = array('' => '') + $this->loadModel('productplan')->getPairs($productIdList, $branchParam); + + unset($this->config->product->search['fields']['module']); + + $this->loadModel('search')->setSearchParams($this->config->product->search); + } + + /** + * Get stories by search. + * + * @param int $queryID + * @param string $type + * @param string $orderBy + * @param int $pager + * @access public + * @return array + */ + public function getStoriesBySearch($queryID, $type, $orderBy, $pager) + { + $queryName = $type == 'contribute' ? 'contributeStoryQuery' : 'workStoryQuery'; + $queryForm = $type == 'contribute' ? 'contributeStoryForm' : 'workStoryForm'; + if($queryID) + { + $query = $this->loadModel('search')->getQuery($queryID); + if($query) + { + $this->session->set($queryName, $query->sql); + $this->session->set($queryForm, $query->form); + } + else + { + $this->session->set($queryName, ' 1 = 1'); + } + } + else + { + if($this->session->$queryName == false) $this->session->set($queryName, ' 1 = 1'); + } + + $myStoryQuery = $this->session->$queryName; + $myStoryQuery = preg_replace('/`(\w+)`/', 't1.`$1`', $myStoryQuery); + + $storyIDList = array(); + if($type == 'contribute') + { + $storiesAssignedByMe = $this->getAssignedByMe($this->app->user->account, '', $pager, $orderBy, '', 'story'); + foreach($storiesAssignedByMe as $storyID => $story) + { + $storyIDList[$storyID] = $storyID; + } + + $stories = $this->dao->select('distinct t1.*, t2.name as productTitle, t4.title as planTitle')->from(TABLE_STORY)->alias('t1') + ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') + ->leftJoin(TABLE_PLANSTORY)->alias('t3')->on('t1.id = t3.plan') + ->leftJoin(TABLE_PRODUCTPLAN)->alias('t4')->on('t3.plan = t4.id') + ->leftJoin(TABLE_STORYREVIEW)->alias('t5')->on('t1.id = t5.story') + ->where($myStoryQuery) + ->andWhere('t1.type')->eq('story') + ->andWhere('t1.openedBy',1)->eq($this->app->user->account) + ->orWhere('t5.reviewer')->eq($this->app->user->account) + ->orWhere('t1.closedBy')->eq($this->app->user->account) + ->orWhere('t1.id')->in($storyIDList) + ->markRight(1) + ->andWhere('t1.deleted')->eq(0) + ->orderBy($orderBy) + ->page($pager, 't1.id') + ->fetchAll('id'); + } + else + { + $stories = $this->dao->select('distinct t1.*, t2.name as productTitle, t4.title as planTitle')->from(TABLE_STORY)->alias('t1') + ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') + ->leftJoin(TABLE_PLANSTORY)->alias('t3')->on('t1.id = t3.plan') + ->leftJoin(TABLE_PRODUCTPLAN)->alias('t4')->on('t3.plan = t4.id') + ->leftJoin(TABLE_STORYREVIEW)->alias('t5')->on('t1.id = t5.story') + ->where($myStoryQuery) + ->andWhere('t1.type')->eq('story') + ->andWhere('t1.assignedTo',1)->eq($this->app->user->account) + ->orWhere('t5.reviewer')->eq($this->app->user->account) + ->markRight(1) + ->andWhere('t1.deleted')->eq(0) + ->orderBy($orderBy) + ->page($pager, 't1.id') + ->fetchAll('id'); + } + return $stories; + } + + /** + * Build Requirement search form. + * + * @param int $queryID + * @param string $actionURL + * @param string $type + * @access public + * @return void + */ + public function buildRequirementSearchForm($queryID, $actionURL, $type) + { + $products = $this->dao->select('id,name')->from(TABLE_PRODUCT) + ->where('deleted')->eq(0) + ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi() + ->orderBy('order_asc') + ->fetchPairs(); + + $productIdList = array_keys($products); + $branchParam = ''; + $queryName = $type == 'contribute' ? 'contributeRequirement' : 'workRequirement'; + $this->app->loadConfig('product'); + $this->config->product->search['module'] = $queryName; + $this->config->product->search['queryID'] = $queryID; + $this->config->product->search['actionURL'] = $actionURL; + $this->config->product->search['params']['product']['values'] = array('' => '') + $products; + $this->config->product->search['params']['plan']['values'] = array('' => '') + $this->loadModel('productplan')->getPairs($productIdList, $branchParam); + + $this->lang->story->title = str_replace($this->lang->SRCommon, $this->lang->URCommon, $this->lang->story->title); + $this->lang->story->create = str_replace($this->lang->SRCommon, $this->lang->URCommon, $this->lang->story->create); + $this->config->product->search['fields']['title'] = $this->lang->story->title; + unset($this->config->product->search['fields']['plan']); + unset($this->config->product->search['fields']['stage']); + + unset($this->config->product->search['fields']['module']); + + $this->loadModel('search')->setSearchParams($this->config->product->search); + } + + /** + * Get requirements by search. + * + * @param int $queryID + * @param string $type + * @param string $orderBy + * @param int $pager + * @access public + * @return array + */ + public function getRequirementsBySearch($queryID, $type, $orderBy, $pager) + { + $queryName = $type == 'contribute' ? 'contributeRequirementQuery' : 'workRequirementQuery'; + $queryForm = $type == 'contribute' ? 'contributeRequirementForm' : 'workRequirementForm'; + if($queryID) + { + $query = $this->loadModel('search')->getQuery($queryID); + if($query) + { + $this->session->set($queryName, $query->sql); + $this->session->set($queryForm, $query->form); + } + else + { + $this->session->set($queryName, ' 1 = 1'); + } + } + else + { + if($this->session->$queryName == false) $this->session->set($queryName, ' 1 = 1'); + } + + $myRequirementQuery = $this->session->$queryName; + $myRequirementQuery = preg_replace('/`(\w+)`/', 't1.`$1`', $myRequirementQuery); + + $requirementIDList = array(); + if($type == 'contribute') + { + $requirementsAssignedByMe = $this->getAssignedByMe($this->app->user->account, '', $pager, $orderBy, '', 'requirement'); + foreach($requirementsAssignedByMe as $requirementID => $requirement) + { + $requirementIDList[$requirementID] = $requirementID; + } + + $requirements = $this->dao->select('distinct t1.*, t2.name as productTitle')->from(TABLE_STORY)->alias('t1') + ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') + ->leftJoin(TABLE_STORYREVIEW)->alias('t3')->on('t1.id = t3.story') + ->where($myRequirementQuery) + ->andWhere('t1.type')->eq('requirement') + ->andWhere('t1.openedBy',1)->eq($this->app->user->account) + ->orWhere('t1.closedBy')->eq($this->app->user->account) + ->orWhere('t5.reviewer')->eq($this->app->user->account) + ->orWhere('t1.id')->in($requirementIDList) + ->markRight(1) + ->andWhere('t1.deleted')->eq(0) + ->orderBy($orderBy) + ->page($pager, 't1.id') + ->fetchAll('id'); + } + else + { + $requirements = $this->dao->select('distinct t1.*, t2.name as productTitle')->from(TABLE_STORY)->alias('t1') + ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') + ->leftJoin(TABLE_STORYREVIEW)->alias('t3')->on('t1.id = t3.story') + ->where($myRequirementQuery) + ->andWhere('t1.type')->eq('requirement') + ->andWhere('t1.assignedTo',1)->eq($this->app->user->account) + ->orWhere('t3.reviewer')->eq($this->app->user->account) + ->markRight(1) + ->andWhere('t1.deleted')->eq(0) + ->orderBy($orderBy) + ->page($pager, 't1.id') + ->fetchAll('id'); + } + return $requirements; + } + } diff --git a/module/my/view/requirement.html.php b/module/my/view/requirement.html.php index e77af45520..cc96a946a2 100644 --- a/module/my/view/requirement.html.php +++ b/module/my/view/requirement.html.php @@ -20,20 +20,22 @@ $recTotalLabel = " {$pager->recTotal}"; if($app->rawMethod == 'contribute') { - echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy&&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedBy&&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedByMe}" . ($type == 'assignedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=openedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=closedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedByMe}" . ($type == 'assignedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedBy' ? ' btn-active-text' : '') . "'"); } else { - echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewByMe}" . ($type == 'reviewBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=assignedTo¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=requirement&type=reviewBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewByMe}" . ($type == 'reviewBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewBy' ? ' btn-active-text' : '') . "'"); } ?> + loadModel('search');echo $lang->search->common;?>
+
rawMethod == 'contribute' ? 'contributeRequirement' : 'workRequirement');?>>

my->noData, $lang->URCommon);?>

@@ -41,7 +43,7 @@
- + {$pager->recTotal}"; if($app->rawMethod == 'contribute') { - echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=assignedBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedByMe}" . ($type == 'assignedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=openedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->openedByMe}" . ($type == 'openedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'openedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=reviewedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewedByMe}" . ($type == 'reviewedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=closedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=assignedBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedByMe}" . ($type == 'assignedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedBy' ? ' btn-active-text' : '') . "'"); } else { - echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); - echo html::a(inlink($app->rawMethod, "mode=story&type=reviewBy&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewByMe}" . ($type == 'reviewBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewBy' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=assignedTo¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'"); + echo html::a(inlink($app->rawMethod, "mode=story&type=reviewBy¶m=$param&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pagerID=$pageID"), "{$lang->my->storyMenu->reviewByMe}" . ($type == 'reviewBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'reviewBy' ? ' btn-active-text' : '') . "'"); } ?> + loadModel('search');echo $lang->search->common;?>
+
rawMethod == 'contribute' ? 'contributeStory' : 'workStory');?>>

my->noData, $lang->SRCommon);?>

@@ -41,7 +43,7 @@
- +
app->loadLang('testtask'); $canBatchRun = (common::hasPriv('testtask', 'batchRun') and $type == 'assigntome'); $canBatchEdit = (common::hasPriv('testcase', 'batchEdit') and $type == 'assigntome'); diff --git a/module/product/config.php b/module/product/config.php index e4259cb6be..484c3337fb 100644 --- a/module/product/config.php +++ b/module/product/config.php @@ -89,6 +89,7 @@ $config->product->search['params']['closedDate'] = array('operator' => '=', $config->product->search['params']['lastEditedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date'); $config->product->search['params']['activatedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date'); +$app->loadLang('product'); $config->product->all = new stdclass(); $config->product->all->search['module'] = 'product'; $config->product->all->search['fields']['name'] = $lang->product->name;