diff --git a/module/action/model.php b/module/action/model.php index abc486f7d7..1af0bcd722 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -762,6 +762,7 @@ class actionModel extends model * Get dynamic by search. * * @param array $products + * @param array $projects * @param array $executions * @param int $queryID * @param string $orderBy @@ -771,7 +772,7 @@ class actionModel extends model * @access public * @return array */ - public function getDynamicBySearch($products, $executions, $queryID, $orderBy = 'date_desc', $pager = null, $date = '', $direction = 'next') + public function getDynamicBySearch($products, $projects, $executions, $queryID, $orderBy = 'date_desc', $pager = null, $date = '', $direction = 'next') { $query = $queryID ? $this->loadModel('search')->getQuery($queryID) : ''; @@ -783,7 +784,8 @@ class actionModel extends model } if($this->session->actionQuery == false) $this->session->set('actionQuery', ' 1 = 1'); - $allProduct = "`product` = 'all'"; + $allProducts = "`product` = 'all'"; + $allProjects = "`project` = 'all'"; $allExecutions = "`execution` = 'all'"; $actionQuery = $this->session->actionQuery; @@ -792,14 +794,25 @@ class actionModel extends model { $productID = $out[1]; } + /* If the sql not include 'product', add check purview for product. */ - if(strpos($actionQuery, $allProduct) === false) + if(strpos($actionQuery, $allProducts) === false) { if(!in_array($productID, array_keys($products))) return array(); } else { - $actionQuery = str_replace($allProduct, '1', $actionQuery); + $actionQuery = str_replace($allProducts, '1', $actionQuery); + } + + /* If the sql not include 'project', add check purview for project. */ + if(strpos($actionQuery, $allProjects) === false) + { + $actionQuery = $actionQuery . ' AND `project`' . helper::dbIN(array_keys($projects)); + } + else + { + $actionQuery = str_replace($allProjects, '1', $actionQuery); } /* If the sql not include 'execution', add check purview for execution. */ diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 480cb681b8..21675c4a37 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -213,6 +213,8 @@ $lang->doc->project = 'Project'; $lang->doc->custom = 'Custom'; $lang->doc->wiki = 'WIKI'; +$lang->product->list = $lang->productCommon . ' List'; + $lang->project->report = 'Report'; $lang->report->weekly = 'Weekly'; @@ -234,7 +236,7 @@ $lang->admin->data = 'Data'; $lang->admin->cron = 'Cron'; $lang->admin->buildIndex = 'Full Text Search'; -$lang->subject->storyConcept = 'Story Concpet'; +$lang->storyConcept = 'Story Concpet'; $lang->searchTips = ''; $lang->searchAB = 'Search'; diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 1e7f6087ef..70ab838b00 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -128,7 +128,7 @@ $lang->program->menu->personnel['subMenu']->whitelist = array('link' => "{$lang /* Product menu. */ $lang->product->homeMenu = new stdclass(); $lang->product->homeMenu->home = array('link' => "{$lang->dashboard}|product|index|"); -$lang->product->homeMenu->list = array('link' => $lang->productCommon . '|product|all|', 'alias' => 'create,batchedit,manageline'); +$lang->product->homeMenu->list = array('link' => $lang->product->list . '|product|all|', 'alias' => 'create,batchedit,manageline'); $lang->product->menu = new stdclass(); $lang->product->menu->dashboard = array('link' => "{$lang->dashboard}|product|dashboard|productID=%s"); diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 0cdebe1467..304cdbff43 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -213,6 +213,8 @@ $lang->doc->project = '项目库'; $lang->doc->custom = '自定义库'; $lang->doc->wiki = 'WIKI'; +$lang->product->list = $lang->productCommon . '列表'; + $lang->project->report = '报告'; $lang->report->weekly = '周报'; diff --git a/module/company/config.php b/module/company/config.php index 72c4590568..7b6de8a08f 100644 --- a/module/company/config.php +++ b/module/company/config.php @@ -9,17 +9,19 @@ $app->loadLang('user'); $config->company->dynamic = new stdclass(); $config->company->dynamic->search['module'] = 'action'; $config->company->dynamic->search['fields']['product'] = $lang->action->product; +$config->company->dynamic->search['fields']['project'] = '项目'; +$config->company->dynamic->search['fields']['execution'] = $lang->action->execution; $config->company->dynamic->search['fields']['actor'] = $lang->action->actor; $config->company->dynamic->search['fields']['objectID'] = $lang->action->objectID; -$config->company->dynamic->search['fields']['execution'] = $lang->action->execution; $config->company->dynamic->search['fields']['objectType'] = $lang->action->objectType; $config->company->dynamic->search['fields']['date'] = $lang->action->date; $config->company->dynamic->search['fields']['action'] = $lang->action->action; $config->company->dynamic->search['params']['product'] = array('operator' => '=', 'control' => 'select', 'values' => ''); +$config->company->dynamic->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => ''); +$config->company->dynamic->search['params']['execution'] = array('operator' => '=', 'control' => 'select', 'values' => ''); $config->company->dynamic->search['params']['actor'] = array('operator' => '=', 'control' => 'select', 'values' => ''); $config->company->dynamic->search['params']['objectID'] = array('operator' => '=', 'control' => 'input', 'values' => ''); -$config->company->dynamic->search['params']['execution'] = array('operator' => '=', 'control' => 'select', 'values' => ''); $config->company->dynamic->search['params']['objectType'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->action->search->objectTypeList); $config->company->dynamic->search['params']['date'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date'); $config->company->dynamic->search['params']['action'] = array('operator' => '=', 'control' => 'select', 'values' => ''); diff --git a/module/company/control.php b/module/company/control.php index 503156f065..c0cdba146e 100644 --- a/module/company/control.php +++ b/module/company/control.php @@ -205,7 +205,7 @@ class company extends control $product = $browseType == 'product' ? $param : 'all'; $project = $browseType == 'project' ? $param : 'all'; $execution = $browseType == 'execution' ? $param : 'all'; - $period = ($browseType == 'account' or $browseType == 'product' or $browseType == 'execution') ? 'all' : $browseType; + $period = in_array($browseType, array('account', 'product', 'project', 'execution')) ? 'all' : $browseType; $queryID = ($browseType == 'bysearch') ? (int)$param : 0; $date = empty($date) ? '' : date('Y-m-d', $date); @@ -214,6 +214,11 @@ class company extends control $products = array($this->lang->company->product) + $products; $this->view->products = $products; + /* Get projects' list.*/ + $projects = $this->loadModel('project')->getPairsByProgram(0); + $projects = array($this->lang->company->project) + $projects; + $this->view->projects = $projects; + /* Get executions' list.*/ $executions = $this->loadModel('execution')->getPairs(0, 'all', 'nocode'); $executions = array($this->lang->company->execution) + $executions; @@ -238,7 +243,7 @@ class company extends control } else { - $actions = $this->action->getDynamicBySearch($products, $executions, $queryID, $sort, $pager, $date, $direction); + $actions = $this->action->getDynamicBySearch($products, $projects, $executions, $queryID, $sort, $pager, $date, $direction); } /* Build search form. */ @@ -257,8 +262,9 @@ class company extends control $this->config->company->dynamic->search['actionURL'] = $this->createLink('company', 'dynamic', "browseType=bysearch¶m=myQueryID"); $this->config->company->dynamic->search['queryID'] = $queryID; $this->config->company->dynamic->search['params']['action']['values'] = $this->lang->action->search->label; - $this->config->company->dynamic->search['params']['execution']['values'] = $executions; $this->config->company->dynamic->search['params']['product']['values'] = $products; + $this->config->company->dynamic->search['params']['project']['values'] = $projects; + $this->config->company->dynamic->search['params']['execution']['values'] = $executions; $this->config->company->dynamic->search['params']['actor']['values'] = $accountPairs; $this->loadModel('search')->setSearchParams($this->config->company->dynamic->search); @@ -267,6 +273,7 @@ class company extends control $this->view->account = $account; $this->view->accountPairs = $accountPairs; $this->view->product = $product; + $this->view->project = $project; $this->view->execution = $execution; $this->view->queryID = $queryID; $this->view->orderBy = $orderBy; diff --git a/module/company/js/dynamic.js b/module/company/js/dynamic.js index 1b0c11597d..d6c43a72e3 100644 --- a/module/company/js/dynamic.js +++ b/module/company/js/dynamic.js @@ -10,13 +10,21 @@ function changeUser(account) } location.href = link; } -function changeExecution(execution) -{ - link = createLink('company', 'dynamic', 'type=execution¶m=' + execution); - location.href = link; -} + function changeProduct(product) { link = createLink('company', 'dynamic', 'type=product¶m=' + product); location.href = link; } + +function changeProject(project) +{ + link = createLink('company', 'dynamic', 'type=project¶m=' + project); + location.href = link; +} + +function changeExecution(execution) +{ + link = createLink('company', 'dynamic', 'type=execution¶m=' + execution); + location.href = link; +} diff --git a/module/company/lang/de.php b/module/company/lang/de.php index 590589eb1f..9e6522dbcf 100644 --- a/module/company/lang/de.php +++ b/module/company/lang/de.php @@ -29,6 +29,7 @@ $lang->company->guest = 'Gast Login'; $lang->company->admins = 'Administratoren'; $lang->company->product = $lang->productCommon; +$lang->company->project = 'Project'; $lang->company->execution = $lang->executionCommon; $lang->company->user = 'Benutzer'; diff --git a/module/company/lang/en.php b/module/company/lang/en.php index 4146531395..b8b23f5fed 100644 --- a/module/company/lang/en.php +++ b/module/company/lang/en.php @@ -29,6 +29,7 @@ $lang->company->guest = 'Guest Login'; $lang->company->admins = 'Administrator'; $lang->company->product = $lang->productCommon; +$lang->company->project = 'Project'; $lang->company->execution = $lang->executionCommon; $lang->company->user = 'User'; diff --git a/module/company/lang/fr.php b/module/company/lang/fr.php index 80c01b1312..e0da1fcd0f 100644 --- a/module/company/lang/fr.php +++ b/module/company/lang/fr.php @@ -29,6 +29,7 @@ $lang->company->guest = 'Connexion Invités'; $lang->company->admins = 'Administrateur'; $lang->company->product = $lang->productCommon; +$lang->company->project = 'Project'; $lang->company->execution = $lang->executionCommon; $lang->company->user = 'Utilisateurs'; diff --git a/module/company/lang/vi.php b/module/company/lang/vi.php index d5e2f8c92f..328e176471 100644 --- a/module/company/lang/vi.php +++ b/module/company/lang/vi.php @@ -29,6 +29,7 @@ $lang->company->guest = 'Khách truy cập'; $lang->company->admins = 'Quản trị viên'; $lang->company->product = $lang->productCommon; +$lang->company->project = 'Project'; $lang->company->execution = $lang->executionCommon; $lang->company->user = 'Người dùng'; diff --git a/module/company/lang/zh-cn.php b/module/company/lang/zh-cn.php index b1faf37167..75e63a4bb1 100644 --- a/module/company/lang/zh-cn.php +++ b/module/company/lang/zh-cn.php @@ -29,6 +29,7 @@ $lang->company->guest = '匿名登录'; $lang->company->admins = '管理员'; $lang->company->product = $lang->productCommon; +$lang->company->project = '项目'; $lang->company->execution = $lang->executionCommon; $lang->company->user = '用户'; diff --git a/module/company/view/dynamic.html.php b/module/company/view/dynamic.html.php index a4d22c29a5..e6f34234cb 100644 --- a/module/company/view/dynamic.html.php +++ b/module/company/view/dynamic.html.php @@ -27,6 +27,7 @@