diff --git a/module/action/model.php b/module/action/model.php index aac9566abb..0c11821c8e 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -209,8 +209,8 @@ class actionModel extends model { $record = (array)$record; $record['product'] = isset($record['product']) ? ',' . $record['product'] . ',' : ',0,'; - if(!isset($record['project'])) $record['project'] = 0; - if(!isset($record['execution'])) $record['execution'] = 0; + if(empty($record['project'])) $record['project'] = 0; + if(empty($record['execution'])) $record['execution'] = 0; return $record; } diff --git a/module/bug/control.php b/module/bug/control.php index d0a4d0858b..d683410dd2 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -999,10 +999,23 @@ class bug extends control die(js::locate($this->createLink('bug', 'view', "bugID=$bugID"), 'parent')); } + if($this->app->openApp == 'project') + { + $users = $this->project->getTeamMemberPairs($bug->project, 'nodeleted', $bug->assignedTo); + } + elseif($this->app->openApp == 'execution') + { + $users = $this->execution->getTeamMemberPairs($bug->execution, 'nodeleted', $bug->assignedTo); + } + else + { + $users = $this->user->getPairs('nodeleted|nofeedback', $bug->assignedTo); + } + $this->view->title = $this->products[$bug->product] . $this->lang->colon . $this->lang->bug->assignedTo; $this->view->position[] = $this->lang->bug->assignedTo; - $this->view->users = $this->user->getPairs('nodeleted|nofeedback', $bug->assignedTo); + $this->view->users = $users; $this->view->bug = $bug; $this->view->bugID = $bugID; $this->view->actions = $this->action->getList('bug', $bugID); diff --git a/module/build/control.php b/module/build/control.php index c08d9440f4..4dfe91451d 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -115,7 +115,7 @@ class build extends control { $this->loadModel('project')->setMenu($build->project); } - elseif($this->app->openApp == 'exectuion') + elseif($this->app->openApp == 'execution') { $this->execution->setMenu($build->execution); } diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index e0fc22d820..c70b6154c7 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -179,7 +179,7 @@ $lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project| $lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory', 'alias' => 'story,track'); $lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=project&objectID=%s", 'subModule' => 'doc'); $lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|qa|projectID=%s", 'subModule' => 'testcase,testtask,bug', 'alias' => 'bug,testtask,testcase'); -$lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo'); +$lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo'); $lang->scrum->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s"); $lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease'); $lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s"); @@ -222,7 +222,7 @@ $lang->waterfall->menu->programplan = array('link' => "{$lang->productplan->shor $lang->waterfall->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=project&objectID=%s"); $lang->waterfall->menu->story = array('link' => "$lang->SRCommon|projectstory|story|project=%s", 'subModule' => 'projectstory'); $lang->waterfall->menu->design = array('link' => "$lang->design|design|browse|project=%s"); -$lang->waterfall->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo'); +$lang->waterfall->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo'); $lang->waterfall->menu->track = array('link' => "$lang->track|projectstory|track", 'alias' => 'track'); $lang->waterfall->menu->qa = array('link' => "{$lang->qa->common}|project|qa|projectID=%s", 'subModule' => 'testcase,testtask,bug', 'alias' => 'bug,testtask,testcase'); $lang->waterfall->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease'); @@ -256,9 +256,9 @@ $lang->waterfall->menu->qa['subMenu']->testcase = array('link' => "{$lang->testc $lang->waterfall->menu->qa['subMenu']->testtask = array('link' => "{$lang->testtask->common}|project|testtask|projectID=%s", 'subModule' => 'testtask', 'class' => 'dropdown dropdown-hover'); $lang->waterfall->menu->other['dropMenu'] = new stdclass(); -$lang->waterfall->menu->other['dropMenu']->estimation = array('link' => "$lang->estimation|workestimation|index|projectID=%s", 'subModule' => 'workestimation,durationestimation,budget'); -$lang->waterfall->menu->other['dropMenu']->issue = array('link' => "$lang->issue|issue|browse|projectID=%s", 'subModule' => 'issue'); -$lang->waterfall->menu->other['dropMenu']->risk = array('link' => "$lang->risk|risk|browse|projectID=%s", 'subModule' => 'risk'); +$lang->waterfall->menu->other['dropMenu']->estimation = array('link' => "$lang->estimation|workestimation|index|projectID=%s", 'subModule' => 'workestimation,durationestimation,budget'); +$lang->waterfall->menu->other['dropMenu']->issue = array('link' => "$lang->issue|issue|browse|projectID=%s", 'subModule' => 'issue'); +$lang->waterfall->menu->other['dropMenu']->risk = array('link' => "$lang->risk|risk|browse|projectID=%s", 'subModule' => 'risk'); $lang->waterfall->menu->devops = $lang->scrum->menu->devops; $lang->waterfall->menu->settings = $lang->scrum->menu->settings; @@ -275,7 +275,7 @@ $lang->execution->menu->burn = array('link' => "$lang->burn|execution|burn|e $lang->execution->menu->view = array('link' => "$lang->view|execution|grouptask|executionID=%s", 'alias' => 'grouptask,tree', 'class' => 'dropdown dropdown-hover'); $lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story', 'alias' => 'batchcreate,linkstory,storykanban'); $lang->execution->menu->qa = array('link' => "{$lang->qa->common}|execution|qa|executionID=%s", 'subModule' => 'bug,testcase,testtask,testreport', 'alias' => 'qa,bug,testcase,testtask,testreport'); -$lang->execution->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&objectID=%s", 'subModule' => 'repo'); +$lang->execution->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo'); $lang->execution->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=execution&objectID=%s", 'subModule' => 'doc'); $lang->execution->menu->build = array('link' => "{$lang->build->common}|execution|build|executionID=%s", 'subModule' => 'build'); $lang->execution->menu->action = array('link' => "$lang->dynamic|execution|dynamic|executionID=%s"); diff --git a/module/project/view/testtask.html.php b/module/project/view/testtask.html.php index d4adc302e7..ab5fc55f21 100644 --- a/module/project/view/testtask.html.php +++ b/module/project/view/testtask.html.php @@ -29,7 +29,7 @@
- + " . $lang->testtask->create, '', "class='btn btn-primary'");?>
@@ -53,11 +53,6 @@ '> testtask->product);?> - -
- -
- idAB);?> testtask->name);?> @@ -81,11 +76,7 @@ - - id => sprintf('%03d', $task->id)));?> - id);?> - createLink('testtask', 'view', "taskID=$task->id"), $task->name);?> build == 'trunk' || empty($task->buildName)) ? $lang->trunk : html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName);?> @@ -127,19 +118,6 @@ - diff --git a/module/repo/control.php b/module/repo/control.php index 9b2fc6eb74..f756e39ee7 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -225,8 +225,6 @@ class repo extends control */ public function view($repoID, $objectID = 0, $entry = '', $revision = 'HEAD', $showBug = 'false', $encoding = '') { - $this->commonAction($repoID, $objectID); - if($this->get->repoPath) $entry = $this->get->repoPath; $this->repo->setBackSession('view', $withOtherModule = true); if($repoID == 0) $repoID = $this->session->repoID; @@ -239,11 +237,12 @@ class repo extends control $this->locate($this->repo->createLink('diff', "repoID=$repoID&entry=$entry&oldrevision=$oldRevision&newRevision=$newRevision")); } + $this->commonAction($repoID, $objectID); + $file = $entry; $repo = $this->repo->getRepoByID($repoID); $entry = $this->repo->decodePath($entry); - $this->commonAction($repoID); $this->scm->setEngine($repo); $info = $this->scm->info($entry, $revision); $path = $entry ? $info->path : ''; @@ -294,6 +293,7 @@ class repo extends control $this->view->showBug = $showBug; $this->view->encoding = str_replace('-', '_', $encoding); $this->view->repoID = $repoID; + $this->view->branchID = $this->cookie->repoBranch; $this->view->objectID = $objectID; $this->view->repo = $repo; $this->view->revision = $revision; @@ -318,6 +318,7 @@ class repo extends control * Browse repo. * * @param int $repoID + * @param string $branchID * @param int $objectID * @param string $path * @param string $revision @@ -325,9 +326,8 @@ class repo extends control * @access public * @return void */ - public function browse($repoID = 0, $objectID = 0, $path = '', $revision = 'HEAD', $refresh = 0) + public function browse($repoID = 0, $branchID = '', $objectID = 0, $path = '', $revision = 'HEAD', $refresh = 0) { - if($this->get->repoPath) $path = $this->get->repoPath; $repoID = $this->repo->saveState($repoID, $objectID); $this->commonAction($repoID, $objectID); @@ -338,6 +338,13 @@ class repo extends control $this->repo->setMenu($this->repos, $repoID); $this->repo->setBackSession('list', $withOtherModule = true); + session_start(); + $this->session->set('revisionList', $this->app->getURI(true)); + session_write_close(); + + /* Use cookie to switch repo branch. */ + setcookie('repoBranch', $branchID); + /* Get repo and synchronous commit. */ $repo = $this->repo->getRepoByID($repoID); if(!$repo->synced) $this->locate($this->repo->createLink('showSyncCommit', "repoID=$repoID")); @@ -423,6 +430,7 @@ class repo extends control $this->view->revision = $revision; $this->view->infos = $infos; $this->view->repoID = $repoID; + $this->view->branchID = $this->cookie->branchID; $this->view->objectID = $objectID; $this->view->pager = $pager; $this->view->path = urldecode($path); @@ -547,13 +555,13 @@ class repo extends control $encodePath = $this->repo->encodePath($path); if($change['kind'] == '' or $change['kind'] == 'file') { - $change['view'] = $viewPriv ? html::a($this->repo->createLink('view', "repoID=$repoID&entry=$encodePath&revision=$revision"), $this->lang->repo->viewA) : ''; - if($change['action'] == 'M') $change['diff'] = $diffPriv ? html::a($this->repo->createLink('diff', "repoID=$repoID&entry=$encodePath&oldRevision=$oldRevision&newRevision=$revision"), $this->lang->repo->diffAB) : ''; + $change['view'] = $viewPriv ? html::a($this->repo->createLink('view', "repoID=$repoID&objectID=$objectID&entry=$encodePath&revision=$revision"), $this->lang->repo->viewA, '', "data-app='{$this->app->openApp}'") : ''; + if($change['action'] == 'M') $change['diff'] = $diffPriv ? html::a($this->repo->createLink('diff', "repoID=$repoID&objectID=$objectID&entry=$encodePath&oldRevision=$oldRevision&newRevision=$revision"), $this->lang->repo->diffAB, '', "data-app='{$this->app->openApp}'") : ''; } else { - $change['view'] = $viewPriv ? html::a($this->repo->createLink('browse', "repoID=$repoID&path=$encodePath&revision=$revision"), $this->lang->repo->browse) : ''; - if($change['action'] == 'M') $change['diff'] = $diffPriv ? html::a($this->repo->createLink('diff', "repoID=$repoID&entry=$encodePath&oldRevision=$oldRevision&newRevision=$revision"), $this->lang->repo->diffAB) : ''; + $change['view'] = $viewPriv ? html::a($this->repo->createLink('browse', "repoID=$repoID&objectID=$objectID&path=$encodePath&revision=$revision"), $this->lang->repo->browse, '', "data-app='{$this->app->openApp}'") : ''; + if($change['action'] == 'M') $change['diff'] = $diffPriv ? html::a($this->repo->createLink('diff', "repoID=$repoID&objectID=$objectID&entry=$encodePath&oldRevision=$oldRevision&newRevision=$revision"), $this->lang->repo->diffAB, '', "data-app='{$this->app->openApp}'") : ''; } $changes[$path] = $change; } @@ -575,6 +583,7 @@ class repo extends control $this->view->type = $type; $this->view->changes = $changes; $this->view->repoID = $repoID; + $this->view->branchID = $this->cookie->repoBranch; $this->view->objectID = $objectID; $this->view->revision = $log[0]->revision; $this->view->parentDir = $parent; @@ -625,6 +634,7 @@ class repo extends control $this->view->title = $this->lang->repo->common; $this->view->repoID = $repoID; + $this->view->branchID = $this->cookie->repoBranch; $this->view->objectID = $objectID; $this->view->repo = $repo; $this->view->revision = $revision; @@ -655,9 +665,9 @@ class repo extends control $this->commonAction($repoID, $objectID); if($this->get->repoPath) $entry = $this->get->repoPath; - $file = $entry; - $repo = $this->repo->getRepoByID($repoID); - $entry = $this->repo->decodePath($entry); + $file = $entry; + $repo = $this->repo->getRepoByID($repoID); + $entry = $this->repo->decodePath($entry); $pathInfo = pathinfo($entry); $suffix = ''; @@ -729,6 +739,7 @@ class repo extends control $this->view->suffix = $suffix; $this->view->file = $file; $this->view->repoID = $repoID; + $this->view->branchID = $this->cookie->repoBranch; $this->view->objectID = $objectID; $this->view->repo = $repo; $this->view->encoding = str_replace('-', '_', $encoding); @@ -1054,7 +1065,7 @@ class repo extends control foreach($repos as $id => $repoName) { $selected = $id == $repoID ? 'selected' : ''; - $reposHtml .= html::a($this->createLink('repo', 'browse', "repoID=$id"), $repoName, '', "class='$selected'"); + $reposHtml .= html::a($this->createLink('repo', 'browse', "repoID=$id&branchID=&objectID=$objectID"), $repoName, '', "class='$selected' data-app='{$this->app->openApp}'"); } $reposHtml .= ''; @@ -1065,11 +1076,12 @@ class repo extends control * Ajax get branch drop menu. * * @param int $repoID - * @param int $branchID + * @param string $branchID + * @param int $objectID * @access public * @return void */ - public function ajaxGetBranchDropMenu($repoID, $branchID) + public function ajaxGetBranchDropMenu($repoID, $branchID, $objectID) { $repo = $this->repo->getRepoByID($repoID); $branches = $this->repo->getBranches($repo); @@ -1078,7 +1090,7 @@ class repo extends control foreach($branches as $id => $branchName) { $selected = $id == $branchID ? 'selected' : ''; - $branchesHtml .= html::a($this->createLink('repo', 'browse', "repoID=$repoID&branchID=$branchID"), $branchName, '', "class='$selected'"); + $branchesHtml .= html::a($this->createLink('repo', 'browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID"), $branchName, '', "class='$selected' data-app='{$this->app->openApp}'"); } $branchesHtml .= ''; diff --git a/module/repo/model.php b/module/repo/model.php index 6d75b918c4..d12b398bb3 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -97,7 +97,6 @@ class repoModel extends model */ common::setMenuVars('devops', $repoID); - session_start(); $this->session->set('repoID', $repoID); session_write_close(); @@ -145,7 +144,7 @@ class repoModel extends model $branchName = isset($branches[$branch]) ? $branches[$branch] : $branches[0]; - $dropMenuLink = helper::createLink('repo', 'ajaxGetBranchDropMenu', "repID=$repoID&branchID=$branchID"); + $dropMenuLink = helper::createLink('repo', 'ajaxGetBranchDropMenu', "repID=$repoID&branchID=$branchID&objectID=$objectID"); $output .= "
"; diff --git a/module/repo/view/ajaxsidecommits.html.php b/module/repo/view/ajaxsidecommits.html.php index 7c71b1d93d..7e472ed9bc 100644 --- a/module/repo/view/ajaxsidecommits.html.php +++ b/module/repo/view/ajaxsidecommits.html.php @@ -37,7 +37,7 @@ if(isset($entry)) $pathInfo .= '&type=file'; - repo->createLink('revision', "repoID=$repoID&revision={$log->revision}" . $pathInfo), $repo->SCM == 'Git' ? substr($log->revision, 0, 10) : $log->revision);?> + repo->createLink('revision', "repoID=$repoID&objectID=$objectID&revision={$log->revision}" . $pathInfo), $repo->SCM == 'Git' ? substr($log->revision, 0, 10) : $log->revision, '', "data-app='{$this->app->openApp}'");?> SCM == 'Git'):?> commit?> diff --git a/module/repo/view/blame.html.php b/module/repo/view/blame.html.php index fb2b0c2ac7..5ce5e3c616 100644 --- a/module/repo/view/blame.html.php +++ b/module/repo/view/blame.html.php @@ -31,14 +31,14 @@ css::import($jsRoot . 'misc/highlight/styles/github.css');
repo->createLink('browse', "repoID=$repoID&objectID=$objectID"), $repo->name); + echo html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID"), $repo->name); $paths= explode('/', $entry); $fileName = array_pop($paths); $postPath = ''; foreach($paths as $pathName) { $postPath .= $pathName . '/'; - echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&objectID=$objectID&path=" . $this->repo->encodePath($postPath)), trim($pathName, '/')); + echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($postPath)), trim($pathName, '/')); } echo '/' . ' ' . $fileName; echo " " . $revisionName . ''; diff --git a/module/repo/view/browse.html.php b/module/repo/view/browse.html.php index 2a580ac582..9c65c9fc67 100644 --- a/module/repo/view/browse.html.php +++ b/module/repo/view/browse.html.php @@ -14,7 +14,7 @@
repo->createLink('browse', "repoID=$repoID&objectID=$objectID"), $repo->name); + echo html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID"), $repo->name, '', "data-app={$app->openApp}"); if(!empty($path)) { $paths = explode('/', $path); @@ -22,7 +22,7 @@ foreach($paths as $pathName) { $postPath .= $pathName . '/'; - echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&objectID=$objectID&path=" . $this->repo->encodePath($postPath) . "&revision=$revision"), trim($pathName, '/')); + echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($postPath) . "&revision=$revision"), trim($pathName, '/'), '', '', "data-app={$app->openApp}"); } } ?> @@ -31,7 +31,7 @@
repo->notice->lastSyncTime . $cacheTime?> - repo->createLink('browse', "repoID=$repoID&objectID=$objectID&path=" . $this->repo->encodePath($path) . "&revision=$revision&refresh=1"), " ". $lang->refresh, '', "class='btn btn-primary'");?> + repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($path) . "&revision=$revision&refresh=1"), " " . $lang->refresh, '', "class='btn btn-primary' data-app={$app->openApp}");?>
@@ -57,8 +57,8 @@ name, '/'); - $link = $info->kind == 'dir' ? $this->repo->createLink('browse', "repoID=$repoID&objectID=$objectID&path=" . $this->repo->encodePath($infoPath)) : $this->repo->createLink('view', "repoID=$repoID&objectID=$objectID&entry=" . $this->repo->encodePath($infoPath)); - echo html::a($link, $info->name, '', "title='{$info->name}'"); + $link = $info->kind == 'dir' ? $this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($infoPath)) : $this->repo->createLink('view', "repoID=$repoID&objectID=$objectID&entry=" . $this->repo->encodePath($infoPath)); + echo html::a($link, $info->name, '', "title='{$info->name}' data-app={$app->openApp}"); ?> SCM == 'Git' ? substr($info->revision, 0, 10) : $info->revision;?> diff --git a/module/repo/view/diff.html.php b/module/repo/view/diff.html.php index a3a4313291..3a1934949c 100644 --- a/module/repo/view/diff.html.php +++ b/module/repo/view/diff.html.php @@ -35,7 +35,7 @@ foreach($paths as $pathName) { $postPath .= $pathName . '/'; - echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&path=" . $this->repo->encodePath($postPath)), trim($pathName, '/')); + echo '/' . ' ' . html::a($this->repo->createLink('browse', "repoID=$repoID&branchID=$branchID&objectID=$objectID&path=" . $this->repo->encodePath($postPath)), trim($pathName, '/')); } echo '/' . ' ' . $fileName; if($repo->SCM == 'Git') diff --git a/module/repo/view/log.html.php b/module/repo/view/log.html.php index 06a2eccba5..88625c9024 100644 --- a/module/repo/view/log.html.php +++ b/module/repo/view/log.html.php @@ -40,9 +40,9 @@ @@ -70,7 +70,7 @@
- repo->createLink('revision', "repoID=$repoID&revision=" . $log->revision), substr($log->revision, 0, 10));?> + repo->createLink('revision', "repoID=$repoID&objectID=$objectID&revision=" . $log->revision), substr($log->revision, 0, 10), '', "data-app='{$app->openApp}'");?> SCM == 'Git'):?> commit?> @@ -82,7 +82,7 @@ diff --git a/module/repo/view/maintain.html.php b/module/repo/view/maintain.html.php index 90f05f4e4a..2cb0aced53 100644 --- a/module/repo/view/maintain.html.php +++ b/module/repo/view/maintain.html.php @@ -35,7 +35,7 @@ id; ?> repo->scmList, $repo->SCM); ?> - createLink('repo', 'browse', "repoID={$repo->id}&objectID=$objectID"), $repo->name);?> + createLink('repo', 'browse', "repoID={$repo->id}&branchID=&objectID=$objectID"), $repo->name);?> product)); diff --git a/module/repo/view/revision.html.php b/module/repo/view/revision.html.php index 9c403e74a8..21d7855802 100644 --- a/module/repo/view/revision.html.php +++ b/module/repo/view/revision.html.php @@ -19,8 +19,8 @@ $typeInfo = $type == 'file' ? '&type=file' : '';