diff --git a/module/project/control.php b/module/project/control.php index e46b59976d..2642eb68b5 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -127,6 +127,7 @@ class project extends control unset($projects[$project->id]); } + $this->view->link = $this->project->getProjectLink($module, $method, $projectID); $this->view->projectID = $projectID; $this->view->projects = $orderedProjects; $this->view->module = $module; diff --git a/module/project/model.php b/module/project/model.php index 04a76c89f2..145776ad82 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -457,6 +457,189 @@ class projectModel extends model return $projects; } + + /** + * Create the link from module,method. + * + * @param string $module + * @param string $method + * @param int $projectID + * @access public + * @return void + */ + public function getProjectLink($module, $method, $projectID) + { + $link = helper::createLink('project', 'index', "projectID=%s"); + $project = $this->getByID($projectID); + + if(strpos(',project,product,projectstory,story,bug,testcase,testtask,testreport,build,projectrelease,stakeholder,', ',' . $module . ',') !== false) + { + if($module == 'project' and $method == 'execution') + { + $link = helper::createLink($module, $method, "status=all&projectID=%s"); + } + elseif($module == 'project' and $method == 'bug') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'testcase') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'testtask') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'testreport') + { $link = helper::createLink($module, $method, "projectID=%s"); } + elseif($module == 'project' and $method == 'build') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'dynamic') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'view') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'manageproducts') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'team') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'managemembers') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'whitelist') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'addwhitelist') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'group') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'project' and $method == 'managePriv') + { + $link = helper::createLink($module, 'group', "projectID=%s"); + } + elseif($module == 'projectstory' and $method == 'linkstory') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + elseif($module == 'bug') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "productID=0&branch=0&extras=projectID=%s"); + } + elseif($method == 'edit') + { + $link = helper::createLink('project', 'bug', "projectID=%s"); + } + } + elseif($module == 'story' and $method == 'create') + { + $link = helper::createLink($module, $method); + } + elseif($module == 'story' and $method == 'change') + { + $link = helper::createLink('projectstory', 'story', "projectID=%s"); + } + elseif($module == 'story' and $method == 'zerocase') + { + $link = helper::createLink('project', 'testcase', "projectID=%s"); + } + elseif($module == 'testcase' and $method == 'create') + { + if($method == 'create') + { + $link = helper::createLink($module, $method); + } + elseif($method == 'edit') + { + $link = helper::createLink('project', 'testcase', "projectID=%s"); + } + } + elseif($module == 'testtask') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "product=0&executionID=0&build=0&projectID=%s"); + } + else + { + $link = helper::createLink($module, 'browseunits'); + } + } + elseif($module == 'testreport') + { + $link = helper::createLink('project', 'testreport', "projectID=%s"); + } + elseif($module == 'repo') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "objectID=%s#app=project"); + } + else + { + $link = helper::createLink($module, 'browse', "repoID=&branchID=&objectID=%s#app=project"); + } + } + elseif($module == 'doc') + { + $link = helper::createLink($module, 'tablecontents', "type=projectprojectID=%s#app=project"); + } + elseif($module == 'build') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "executionID=&productID=&projectID=%s#app=project"); + } + else + { + $link = helper::createLink('project', 'build', "projectID=%s"); + } + } + elseif($module == 'projectrelease') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + else + { + $link = helper::createLink('projectrelease', 'browse', "projectID=%s"); + } + } + elseif($module == 'stakeholder') + { + if($method == 'create') + { + $link = helper::createLink($module, $method, "projectID=%s"); + } + else + { + $link = helper::createLink($module, 'browse', "projectID=%s"); + } + } + } + + if($project->model == 'kanban') $link = helper::createLink('project', 'index', "projectID=%s"); + + return $link; + } + /** * Get project stat data . * @@ -517,7 +700,7 @@ class projectModel extends model ->andWhere('deleted')->eq(0) ->andWhere('vision')->eq($this->config->vision) ->beginIF($programID !== '')->andWhere('parent')->eq($programID)->fi() - ->beginIF($status != 'all' && $status != 'noclosed')->andWhere('status')->eq($status)->fi() + ->beginIF($status != 'all' and $status != 'noclosed')->andWhere('status')->eq($status)->fi() ->beginIF($excludedModel)->andWhere('model')->ne($excludedModel)->fi() ->beginIF($status == 'noclosed')->andWhere('status')->ne('closed')->fi() ->beginIF(!$this->app->user->admin and !$isQueryAll)->andWhere('id')->in($this->app->user->view->projects)->fi() @@ -981,7 +1164,7 @@ class projectModel extends model $this->updateProducts($projectID); - if(isset($_POST['newProduct']) || (!$project->parent && empty($linkedProductsCount))) + if(isset($_POST['newProduct']) or (!$project->parent and empty($linkedProductsCount))) { /* If parent not empty, link products or create products. */ $product = new stdclass(); @@ -1719,11 +1902,11 @@ class projectModel extends model if($project->model === 'scrum') $prefix = "{$this->lang->project->scrum} "; if($project->model === 'kanban') $prefix = "{$this->lang->project->kanban} "; if(isset($project->delay)) $suffix = "{$this->lang->project->statusList['delay']}"; - if(!empty($suffix) || !empty($prefix)) echo '