diff --git a/config/zentaopms.php b/config/zentaopms.php index a97a6d47a3..1c33bb6d96 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -372,6 +372,7 @@ $config->objectTables['kanbanorder'] = TABLE_KANBANORDER; $config->objectTables['kanbangroup'] = TABLE_KANBANGROUP; $config->objectTables['kanbancard'] = TABLE_KANBANCARD; $config->objectTables['sonarqube'] = TABLE_PIPELINE; +$config->objectTables['gitea'] = TABLE_PIPELINE; $config->objectTables['gitlab'] = TABLE_PIPELINE; $config->objectTables['jebkins'] = TABLE_PIPELINE; $config->objectTables['stage'] = TABLE_STAGE; @@ -379,7 +380,7 @@ $config->objectTables['apistruct'] = TABLE_APISTRUCT; $config->newFeatures = array('introduction', 'tutorial', 'youngBlueTheme', 'visions'); -$config->pipelineTypeList = array('gitlab', 'sonarqube', 'jenkins'); +$config->pipelineTypeList = array('gitlab', 'sonarqube', 'jenkins', 'gitea'); /* Program privs.*/ $config->programPriv = new stdclass(); diff --git a/lib/base/front/front.class.php b/lib/base/front/front.class.php index 9afe2605e6..fff699c0a3 100644 --- a/lib/base/front/front.class.php +++ b/lib/base/front/front.class.php @@ -1025,6 +1025,8 @@ EOT; } else { + /* Can not locate the url that has '#app', so remove it. */ + if(strpos($url, '#app=') !== false) $url = substr($url, 0, strpos($url, '#app=')); $js .= "$target.location='$url';\n"; } return $js . self::end(); diff --git a/module/action/config.php b/module/action/config.php index 85dd6cbcb9..cc841bc007 100755 --- a/module/action/config.php +++ b/module/action/config.php @@ -43,6 +43,7 @@ $config->action->objectNameFields['kanban'] = 'name'; $config->action->objectNameFields['kanbancard'] = 'name'; $config->action->objectNameFields['sonarqube'] = 'name'; $config->action->objectNameFields['gitlab'] = 'name'; +$config->action->objectNameFields['gitea'] = 'name'; $config->action->objectNameFields['stage'] = 'name'; $config->action->objectNameFields['apistruct'] = 'name'; @@ -60,7 +61,7 @@ $config->action->majorList['execution'] = array('opened', 'edited'); $config->action->needGetProjectType = 'build,task,bug,case,testcase,caselib,testtask,testsuite,testreport,doc,issue,release,risk,design,opportunity,trainplan,gapanalysis,researchplan,researchreport,'; $config->action->needGetRelateField = ',story,productplan,release,task,build,bug,testcase,case,testtask,testreport,doc,doclib,issue,risk,opportunity,trainplan,gapanalysis,team,whitelist,researchplan,researchreport,meeting,kanbanlane,kanbancolumn,module,'; -$config->action->noLinkModules = ',doclib,module,webhook,gitlab,sonarqube,pipeline,jenkins,kanban,kanbanspace,kanbancolumn,kanbanlane,kanbanregion,kanbancard,execution,project,traincategory,apistruct,program,product,user,entry,'; +$config->action->noLinkModules = ',doclib,module,webhook,gitlab,gitea,sonarqube,pipeline,jenkins,kanban,kanbanspace,kanbancolumn,kanbanlane,kanbanregion,kanbancard,execution,project,traincategory,apistruct,program,product,user,entry,'; $config->action->preferredTypeNum = 10; diff --git a/module/action/lang/de.php b/module/action/lang/de.php index ba4212243b..988570d7ce 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -123,6 +123,7 @@ $lang->action->objectTypes['team'] = 'Team'; $lang->action->objectTypes['whitelist'] = 'Whitelist'; $lang->action->objectTypes['pipeline'] = 'GitLib'; $lang->action->objectTypes['gitlab'] = 'GitLab Server'; +$lang->action->objectTypes['gitea'] = 'Gitea Server'; $lang->action->objectTypes['jenkins'] = 'Jenkins'; $lang->action->objectTypes['mr'] = 'Merge Request'; $lang->action->objectTypes['gitlabproject'] = 'GitLab Project'; @@ -635,6 +636,10 @@ $lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; $lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; $lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; + /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; diff --git a/module/action/lang/en.php b/module/action/lang/en.php index 90ef4137cf..e195c73ad7 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -123,6 +123,7 @@ $lang->action->objectTypes['team'] = 'Team'; $lang->action->objectTypes['whitelist'] = 'Whitelist'; $lang->action->objectTypes['pipeline'] = 'GitLab Server'; $lang->action->objectTypes['gitlab'] = 'GitLab Server'; +$lang->action->objectTypes['gitea'] = 'Gitea Server'; $lang->action->objectTypes['jenkins'] = 'Jenkins'; $lang->action->objectTypes['mr'] = 'Merge Request'; $lang->action->objectTypes['gitlabproject'] = 'GitLab Project'; @@ -635,6 +636,10 @@ $lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; $lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; $lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; + /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index 2811d2c9ec..fb1c45ebc5 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -123,6 +123,7 @@ $lang->action->objectTypes['team'] = 'Team'; $lang->action->objectTypes['whitelist'] = 'Whitelist'; $lang->action->objectTypes['pipeline'] = 'GitLib'; $lang->action->objectTypes['gitlab'] = 'GitLab Server'; +$lang->action->objectTypes['gitea'] = 'Gitea Server'; $lang->action->objectTypes['jenkins'] = 'Jenkins'; $lang->action->objectTypes['mr'] = 'Merge Request'; $lang->action->objectTypes['gitlabproject'] = 'GitLab Project'; @@ -635,6 +636,10 @@ $lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; $lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; $lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; + /* Generate the corresponding object link. */ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = 'Plan|productplan|view|productID=%s'; diff --git a/module/action/lang/vi.php b/module/action/lang/vi.php index 1b014851f3..681dc1b71f 100644 --- a/module/action/lang/vi.php +++ b/module/action/lang/vi.php @@ -65,41 +65,62 @@ $lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek; $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth; $lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth; -$lang->action->objectTypes['product'] = $lang->productCommon; -$lang->action->objectTypes['branch'] = 'Nhánh'; -$lang->action->objectTypes['story'] = $lang->SRCommon; -$lang->action->objectTypes['design'] = 'Design'; -$lang->action->objectTypes['productplan'] = 'Plan'; -$lang->action->objectTypes['release'] = 'Phát hành'; -$lang->action->objectTypes['program'] = 'Program'; -$lang->action->objectTypes['project'] = 'Project'; -$lang->action->objectTypes['execution'] = $lang->executionCommon; -$lang->action->objectTypes['task'] = 'Nhiệm vụ'; -$lang->action->objectTypes['build'] = 'Bản dựng'; -$lang->action->objectTypes['job'] = 'Job'; -$lang->action->objectTypes['bug'] = 'Bug'; -$lang->action->objectTypes['case'] = 'Tình huống'; -$lang->action->objectTypes['caseresult'] = 'Kết quả tình huống'; -$lang->action->objectTypes['stepresult'] = 'Các bước tình huống'; -$lang->action->objectTypes['caselib'] = 'Thư viện'; -$lang->action->objectTypes['testsuite'] = 'Suite'; -$lang->action->objectTypes['testtask'] = 'Test bản dựng'; -$lang->action->objectTypes['testreport'] = 'Báo cáo'; -$lang->action->objectTypes['doc'] = 'Tài liệu'; -$lang->action->objectTypes['doclib'] = 'Thư viện tài liệu'; -$lang->action->objectTypes['todo'] = 'Việc làm'; -$lang->action->objectTypes['risk'] = 'Risk'; -$lang->action->objectTypes['issue'] = 'Issue'; -$lang->action->objectTypes['module'] = 'Module'; -$lang->action->objectTypes['user'] = 'Người dùng'; -$lang->action->objectTypes['stakeholder'] = 'Stakeholder'; -$lang->action->objectTypes['budget'] = 'Cost Estimate'; -$lang->action->objectTypes['entry'] = 'Entry'; -$lang->action->objectTypes['webhook'] = 'Webhook'; -$lang->action->objectTypes['job'] = 'Job'; -$lang->action->objectTypes['team'] = 'Team'; -$lang->action->objectTypes['whitelist'] = 'Whitelist'; -$lang->action->objectTypes['pipeline'] = 'GitLib'; +$lang->action->objectTypes['product'] = $lang->productCommon; +$lang->action->objectTypes['branch'] = 'Nhánh'; +$lang->action->objectTypes['story'] = $lang->SRCommon; +$lang->action->objectTypes['design'] = 'Design'; +$lang->action->objectTypes['productplan'] = 'Plan'; +$lang->action->objectTypes['release'] = 'Phát hành'; +$lang->action->objectTypes['program'] = 'Program'; +$lang->action->objectTypes['project'] = 'Project'; +$lang->action->objectTypes['execution'] = $lang->executionCommon; +$lang->action->objectTypes['task'] = 'Nhiệm vụ'; +$lang->action->objectTypes['build'] = 'Bản dựng'; +$lang->action->objectTypes['job'] = 'Job'; +$lang->action->objectTypes['bug'] = 'Bug'; +$lang->action->objectTypes['case'] = 'Tình huống'; +$lang->action->objectTypes['caseresult'] = 'Kết quả tình huống'; +$lang->action->objectTypes['stepresult'] = 'Các bước tình huống'; +$lang->action->objectTypes['caselib'] = 'Thư viện'; +$lang->action->objectTypes['testsuite'] = 'Suite'; +$lang->action->objectTypes['testtask'] = 'Test bản dựng'; +$lang->action->objectTypes['testreport'] = 'Báo cáo'; +$lang->action->objectTypes['doc'] = 'Tài liệu'; +$lang->action->objectTypes['doclib'] = 'Thư viện tài liệu'; +$lang->action->objectTypes['todo'] = 'Việc làm'; +$lang->action->objectTypes['risk'] = 'Risk'; +$lang->action->objectTypes['issue'] = 'Issue'; +$lang->action->objectTypes['module'] = 'Module'; +$lang->action->objectTypes['user'] = 'Người dùng'; +$lang->action->objectTypes['stakeholder'] = 'Stakeholder'; +$lang->action->objectTypes['budget'] = 'Cost Estimate'; +$lang->action->objectTypes['entry'] = 'Entry'; +$lang->action->objectTypes['webhook'] = 'Webhook'; +$lang->action->objectTypes['job'] = 'Job'; +$lang->action->objectTypes['team'] = 'Team'; +$lang->action->objectTypes['whitelist'] = 'Whitelist'; +$lang->action->objectTypes['pipeline'] = 'GitLib'; +$lang->action->objectTypes['gitlab'] = 'GitLab Server'; +$lang->action->objectTypes['gitea'] = 'Gitea Server'; +$lang->action->objectTypes['jenkins'] = 'Jenkins'; +$lang->action->objectTypes['mr'] = 'Merge Request'; +$lang->action->objectTypes['gitlabproject'] = 'GitLab Project'; +$lang->action->objectTypes['gitlabuser'] = 'GitLab User'; +$lang->action->objectTypes['gitlabgroup'] = 'GitLab Group'; +$lang->action->objectTypes['gitlabbranch'] = 'GitLab Branch'; +$lang->action->objectTypes['gitlabbranchpriv'] = 'GitLab Protected Branches'; +$lang->action->objectTypes['gitlabtag'] = 'GitLab Tag'; +$lang->action->objectTypes['gitlabtagpriv'] = 'GitLab Tag Protected'; +$lang->action->objectTypes['kanbanspace'] = 'Kanban Space'; +$lang->action->objectTypes['kanban'] = 'Kanban'; +$lang->action->objectTypes['kanbanregion'] = 'Kanban Region'; +$lang->action->objectTypes['kanbanlane'] = 'Kanban Lane'; +$lang->action->objectTypes['kanbancolumn'] = 'Kanban Column'; +$lang->action->objectTypes['kanbancard'] = 'Kanban Card'; +$lang->action->objectTypes['sonarqube'] = 'SonarQube Server'; +$lang->action->objectTypes['sonarqubeproject'] = 'SonarQube Project'; +$lang->action->objectTypes['stage'] = 'Stage'; +$lang->action->objectTypes['patch'] = 'Patch'; /* Used to describe operation history. */ $lang->action->desc = new stdclass(); @@ -462,6 +483,26 @@ $lang->action->dynamicAction->user['loginxuanxuan'] = 'Login Desktop'; $lang->action->dynamicAction->entry['created'] = 'Thêm ứng dụng'; $lang->action->dynamicAction->entry['edited'] = 'Sửa ứng dụng'; +$lang->action->dynamicAction->job['created'] = 'Create Job'; +$lang->action->dynamicAction->job['edited'] = 'Edit Job'; +$lang->action->dynamicAction->job['executed'] = 'Execute Job'; +$lang->action->dynamicAction->job['deleted'] = 'Delete Job'; +$lang->action->dynamicAction->job['undeleted'] = 'Undelete Job'; + +$lang->action->dynamicAction->sonarqube['created'] = 'Create SonarQube Server'; +$lang->action->dynamicAction->sonarqube['edited'] = 'Edit SonarQube Server'; +$lang->action->dynamicAction->sonarqube['deleted'] = 'Delete SonarQube Server'; + +$lang->action->dynamicAction->sonarqubeproject['deleted'] = 'Delete SonarQube Project'; + +$lang->action->dynamicAction->gitlab['created'] = 'Create GitLab Server'; +$lang->action->dynamicAction->gitlab['edited'] = 'Edit GitLab Server'; +$lang->action->dynamicAction->gitlab['deleted'] = 'Delete GitLab Server'; + +$lang->action->dynamicAction->gitea['created'] = 'Create Gitea Server'; +$lang->action->dynamicAction->gitea['edited'] = 'Edit Gitea Server'; +$lang->action->dynamicAction->gitea['deleted'] = 'Delete Gitea Server'; + /* Generate the corresponding object link. */ global $config; $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index f1ef255b25..4b332524af 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -123,6 +123,7 @@ $lang->action->objectTypes['team'] = '团队'; $lang->action->objectTypes['whitelist'] = '白名单'; $lang->action->objectTypes['pipeline'] = 'GitLab服务器'; $lang->action->objectTypes['gitlab'] = 'GitLab服务器'; +$lang->action->objectTypes['gitea'] = 'Gitea服务器'; $lang->action->objectTypes['jenkins'] = 'Jenkins'; $lang->action->objectTypes['mr'] = '合并请求'; $lang->action->objectTypes['gitlabproject'] = 'GitLab项目'; @@ -632,9 +633,13 @@ $lang->action->dynamicAction->sonarqube['deleted'] = '删除SonarQube服务器'; $lang->action->dynamicAction->sonarqubeproject['deleted'] = '删除SonarQube项目'; $lang->action->dynamicAction->gitlab['created'] = '创建GitLab服务器'; -$lang->action->dynamicAction->gitlab['edited'] = '设置GitLab服务器'; +$lang->action->dynamicAction->gitlab['edited'] = '编辑GitLab服务器'; $lang->action->dynamicAction->gitlab['deleted'] = '删除GitLab服务器'; +$lang->action->dynamicAction->gitea['created'] = '创建Gitea服务器'; +$lang->action->dynamicAction->gitea['edited'] = '编辑Gitea服务器'; +$lang->action->dynamicAction->gitea['deleted'] = '删除Gitea服务器'; + /* 用来生成相应对象的链接。*/ $lang->action->label->product = $lang->productCommon . '|product|view|productID=%s'; $lang->action->label->productplan = "计划|productplan|view|productID=%s"; diff --git a/module/block/control.php b/module/block/control.php index 7a757e820e..8436a597c6 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -1756,10 +1756,7 @@ class block extends control ->beginIF($objectType == 'story' or $objectType == 'requirement')->andWhere('t2.deleted')->eq('0')->fi() ->beginIF($objectType == 'todo')->andWhere('t1.cycle')->eq(0)->andWhere('t1.status')->eq('wait')->andWhere('t1.vision')->eq($this->config->vision)->fi() ->beginIF($objectType != 'todo')->andWhere('t1.status')->ne('closed')->fi() - ->beginIF($objectType == 'feedback') - ->andWhere('t1.status')->in('wait, noreview') - ->andWhere('t1.assignedTo')->eq($this->app->user->account) - ->fi() + ->beginIF($objectType == 'feedback')->andWhere('t1.status')->in('wait, noreview')->fi() ->orderBy($orderBy) ->beginIF($limitCount)->limit($limitCount)->fi() ->fetchAll(); diff --git a/module/branch/control.php b/module/branch/control.php index b42ee63b0c..ae9090bde2 100644 --- a/module/branch/control.php +++ b/module/branch/control.php @@ -211,7 +211,10 @@ class branch extends control public function ajaxGetDropMenu($productID, $branch, $module, $method, $extra = '') { parse_str($extra, $output); - $branches = $this->branch->getPairs($productID, 'all', isset($output['projectID']) ? $output['projectID'] : 0); + $isQaModule = (strpos(',project,execution,', ",{$this->app->tab},") !== false and strpos(',bug,', ",$method,") !== false and !empty($productID)) ? true : false; + $param = $isQaModule ? $extra : 0; + $param = isset($output['projectID']) ? $output['projectID'] : $param; + $branches = $this->branch->getPairs($productID, 'all', $param); $statusList = $this->dao->select('id,status')->from(TABLE_BRANCH)->where('product')->eq($productID)->fetchPairs(); $this->view->link = $this->loadModel('product')->getProductLink($module, $method, $extra, true); diff --git a/module/bug/control.php b/module/bug/control.php index c01bb8e481..38e223697c 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -1416,13 +1416,26 @@ class bug extends control { $bug = $this->bug->getById($bugID); $execution = $this->loadModel('execution')->getByID($bug->execution); - if(isset($execution->type) and $execution->type == 'kanban' and $this->app->tab == 'execution') + if($this->app->tab == 'execution') { + $execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all'; + $execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default'; $rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : ''; - $kanbanData = $this->loadModel('kanban')->getRDKanban($bug->execution, $this->session->execLaneType ? $this->session->execLaneType : 'all', 'id_desc', 0, $kanbanGroup, $rdSearchValue); - $kanbanData = json_encode($kanbanData); - return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData)")); + if(isset($execution->type) and $execution->type == 'kanban') + { + $kanbanData = $this->loadModel('kanban')->getRDKanban($bug->execution, $execLaneType, 'id_desc', 0, $kanbanGroup, $rdSearchValue); + $kanbanData = json_encode($kanbanData); + return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData)")); + } + else + { + $kanbanData = $this->loadModel('kanban')->getExecutionKanban($bug->execution, $execLaneType, $execGroupBy, $rdSearchValue); + $kanbanType = $execLaneType == 'all' ? 'bug' : key($kanbanData); + $kanbanData = $kanbanData[$kanbanType]; + $kanbanData = json_encode($kanbanData); + return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban(\"bug\", $kanbanData)")); + } } else { @@ -1853,16 +1866,27 @@ class bug extends control if(isonlybody()) { $execution = $this->loadModel('execution')->getByID($bug->execution); - if(isset($execution->type) and $execution->type == 'kanban' and $this->app->tab == 'execution') + if($this->app->tab == 'execution') { - $regionID = !empty($output['regionID']) ? $output['regionID'] : 0; $execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all'; $execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default'; $rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : ''; - $kanbanData = $this->loadModel('kanban')->getRDKanban($bug->execution, $execLaneType, 'id_desc', $regionID, $execGroupBy, $rdSearchValue); - $kanbanData = json_encode($kanbanData); - return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData, $regionID)")); + if(isset($execution->type) and $execution->type == 'kanban') + { + $regionID = !empty($output['regionID']) ? $output['regionID'] : 0; + $kanbanData = $this->loadModel('kanban')->getRDKanban($bug->execution, $execLaneType, 'id_desc', $regionID, $execGroupBy, $rdSearchValue); + $kanbanData = json_encode($kanbanData); + return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData, $regionID)")); + } + else + { + $kanbanData = $this->loadModel('kanban')->getExecutionKanban($bug->execution, $execLaneType, $execGroupBy, $rdSearchValue); + $kanbanType = $execLaneType == 'all' ? 'bug' : key($kanbanData); + $kanbanData = $kanbanData[$kanbanType]; + $kanbanData = json_encode($kanbanData); + return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban(\"bug\", $kanbanData)")); + } } else { diff --git a/module/bug/model.php b/module/bug/model.php index 6ae8cdee28..b0e3f1ccbc 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -1737,6 +1737,7 @@ class bugModel extends model * * @param int $projectID * @param int $productID + * @param int $branchID * @param int $build * @param string $type * @param int $param @@ -1746,7 +1747,7 @@ class bugModel extends model * @access public * @return array */ - public function getProjectBugs($projectID, $productID = 0, $build = 0, $type = '', $param = 0, $orderBy = 'id_desc', $excludeBugs = '', $pager = null) + public function getProjectBugs($projectID, $productID = 0, $branchID = 0, $build = 0, $type = '', $param = 0, $orderBy = 'id_desc', $excludeBugs = '', $pager = null) { $type = strtolower($type); if($type == 'bysearch') @@ -1781,6 +1782,7 @@ class bugModel extends model ->where('t1.deleted')->eq(0) ->beginIF(empty($build))->andWhere('t1.project')->eq($projectID)->fi() ->beginIF(!empty($productID))->andWhere('t1.product')->eq($productID)->fi() + ->andWhere('t1.branch')->eq($branchID) ->beginIF($type == 'unresolved')->andWhere('t1.status')->eq('active')->fi() ->beginIF($type == 'noclosed')->andWhere('t1.status')->ne('closed')->fi() ->beginIF($type == 'assignedtome')->andWhere('t1.assignedTo')->eq($this->app->user->account)->fi() @@ -1801,6 +1803,7 @@ class bugModel extends model * * @param int $executionID * @param int $productID + * @param int $branchID * @param int $build * @param string $type * @param int $param @@ -1810,7 +1813,7 @@ class bugModel extends model * @access public * @return array */ - public function getExecutionBugs($executionID, $productID = 0, $build = 0, $type = '', $param = 0, $orderBy = 'id_desc', $excludeBugs = '', $pager = null) + public function getExecutionBugs($executionID, $productID = 0, $branchID = 'all', $build = 0, $type = '', $param = 0, $orderBy = 'id_desc', $excludeBugs = '', $pager = null) { $type = strtolower($type); if($type == 'bysearch') @@ -1843,6 +1846,7 @@ class bugModel extends model $bugs = $this->dao->select('t1.*')->from(TABLE_BUG)->alias('t1') ->leftJoin(TABLE_MODULE)->alias('t2')->on('t1.module=t2.id') ->where('t1.deleted')->eq(0) + ->beginIF($branchID != 'all')->andWhere('t1.branch')->eq($branchID)->fi() ->beginIF(empty($build))->andWhere('t1.execution')->eq($executionID)->fi() ->beginIF(!empty($productID))->andWhere('t1.product')->eq($productID)->fi() ->beginIF($type == 'unresolved')->andWhere('t1.status')->eq('active')->fi() diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php index 49381e4a63..005a5fd1fa 100644 --- a/module/bug/view/browse.html.php +++ b/module/bug/view/browse.html.php @@ -288,7 +288,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
project->empty;?> - ' . $lang->project->create, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?> + ' . $lang->project->create, '', 'class="btn btn-info btn-wide " data-toggle="modal"');?>