From 03ff3c3b36c22ff8b2ddcfd99fa54fa7b80a4b06 Mon Sep 17 00:00:00 2001 From: mayue Date: Mon, 14 Nov 2022 10:55:28 +0800 Subject: [PATCH 01/95] * Optimize page style. --- module/task/view/taskteam.html.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/module/task/view/taskteam.html.php b/module/task/view/taskteam.html.php index 9a12387608..c3c270ac77 100644 --- a/module/task/view/taskteam.html.php +++ b/module/task/view/taskteam.html.php @@ -11,6 +11,11 @@ #taskTeamEditor .hourBox {padding-bottom: 1px;} +rawMethod == 'create' and !empty($task->mode)):?> + + rawMethod == 'assignto'):?> -rawMethod == 'create' and !empty($task->mode)):?> - - rawMethod == 'assignto'):?> diff --git a/module/release/lang/de.php b/module/release/lang/de.php index 5b9df0f6a5..81723c68b5 100644 --- a/module/release/lang/de.php +++ b/module/release/lang/de.php @@ -38,6 +38,8 @@ $lang->release->product = $lang->productCommon; $lang->release->branch = 'Platform/Branch'; $lang->release->project = 'Project'; $lang->release->build = 'Build'; +$lang->release->includedBuild = 'Included Build'; +$lang->release->relatedProject = 'Related Project'; $lang->release->name = 'Name'; $lang->release->marker = 'Meilensteine'; $lang->release->date = 'Datum'; diff --git a/module/release/lang/en.php b/module/release/lang/en.php index 14f54db539..c480cbd021 100644 --- a/module/release/lang/en.php +++ b/module/release/lang/en.php @@ -39,6 +39,8 @@ $lang->release->product = $lang->productCommon; $lang->release->branch = 'Platform/Branch'; $lang->release->project = 'Project'; $lang->release->build = 'Build'; +$lang->release->includedBuild = 'Included Build'; +$lang->release->relatedProject = 'Related Project'; $lang->release->name = 'Name'; $lang->release->marker = 'Milestone'; $lang->release->date = 'Release Date'; diff --git a/module/release/lang/fr.php b/module/release/lang/fr.php index 1f5dbdf9e1..c27bfe6121 100644 --- a/module/release/lang/fr.php +++ b/module/release/lang/fr.php @@ -38,6 +38,8 @@ $lang->release->product = $lang->productCommon; $lang->release->branch = 'Plateforme/Branche'; $lang->release->project = 'Project'; $lang->release->build = 'Build'; +$lang->release->includedBuild = 'Included Build'; +$lang->release->relatedProject = 'Related Project'; $lang->release->name = 'Nom'; $lang->release->marker = 'Etape Importante'; $lang->release->date = 'Date Release'; diff --git a/module/release/lang/zh-cn.php b/module/release/lang/zh-cn.php index 6689db4489..57af6338f2 100644 --- a/module/release/lang/zh-cn.php +++ b/module/release/lang/zh-cn.php @@ -39,6 +39,8 @@ $lang->release->product = $lang->productCommon; $lang->release->branch = '平台/分支'; $lang->release->project = '所属项目'; $lang->release->build = '版本'; +$lang->release->includedBuild = '包含版本'; +$lang->release->relatedProject = '对应项目'; $lang->release->name = '发布名称'; $lang->release->marker = '里程碑'; $lang->release->date = '发布日期'; diff --git a/module/release/view/browse.html.php b/module/release/view/browse.html.php index 3162da013b..b78e2b51fc 100644 --- a/module/release/view/browse.html.php +++ b/module/release/view/browse.html.php @@ -51,8 +51,8 @@ release->id;?> release->name;?> - release->build;?> - release->project;?> + release->includedBuild;?> + release->relatedProject;?> release->status;?> release->date;?> Date: Tue, 15 Nov 2022 17:16:30 +0800 Subject: [PATCH 75/95] * Modify code of review. --- module/my/view/task.html.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/module/my/view/task.html.php b/module/my/view/task.html.php index 950103d321..c465ef1f1e 100644 --- a/module/my/view/task.html.php +++ b/module/my/view/task.html.php @@ -104,16 +104,16 @@ ' title='name?>'> team)) echo '' . $this->lang->task->multipleAB . ' ';?> executionMultiple) ? 'project' : 'execution'; + $tab = empty($task->executionMultiple) ? 'project' : 'execution'; if($task->parent > 0) { - echo '' . $this->lang->task->childrenAB . ' ' . html::a($this->createLink('task', 'view', "taskID=$task->id", '', '', $task->project), $task->parentName . ' / '. $task->name, '', "title='{$task->parentName} / {$task->name}' data-app='$dataApp'"); + echo '' . $this->lang->task->childrenAB . ' ' . html::a($this->createLink('task', 'view', "taskID=$task->id", '', '', $task->project), $task->parentName . ' / '. $task->name, '', "title='{$task->parentName} / {$task->name}' data-app='$tab'"); } else { $onlybody = $task->executionType == 'kanban' ? true : ''; $class = $task->executionType == 'kanban' ? 'iframe' : ''; - echo html::a($this->createLink('task', 'view', "taskID=$task->id", '', $onlybody, $task->project), $task->name, null, "class='$class' data-width='80%' style='color: $task->color' data-app='$dataApp'"); + echo html::a($this->createLink('task', 'view', "taskID=$task->id", '', $onlybody, $task->project), $task->name, null, "class='$class' data-width='80%' style='color: $task->color' data-app='$tab'"); } ?> children)) echo '';?> @@ -190,9 +190,9 @@ id);?> - executionMultiple) ? 'project' : 'execution';?> + executionMultiple) ? 'project' : 'execution';?> parent > 0) echo '' . $this->lang->task->childrenAB . ' ';?> - createLink('task', 'view', "taskID=$child->id", '', '', $child->project), $child->name, null, "style='color: $child->color' data-app='$dataApp'");?> + createLink('task', 'view', "taskID=$child->id", '', '', $child->project), $child->name, null, "style='color: $child->color' data-app='$tab'");?> pri;?>' title='task->priList, $child->pri);?>'>task->priList, $child->pri);?> From 6a204a32c001d8b9174b07711f2c025c2767de79 Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Tue, 15 Nov 2022 09:35:10 +0000 Subject: [PATCH 76/95] * Fix bug #29720. --- module/task/config.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/task/config.php b/module/task/config.php index f2202e1f3f..68f7cfa71e 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -213,6 +213,10 @@ $config->task->datatable->fieldList['execution']['title'] = 'idAB'; $config->task->datatable->fieldList['execution']['control'] = 'hidden'; $config->task->datatable->fieldList['execution']['dataSource'] = array('module' => 'execution', 'method' => 'getPairs'); +$config->task->datatable->fieldList['project']['title'] = 'idAB'; +$config->task->datatable->fieldList['project']['control'] = 'hidden'; +$config->task->datatable->fieldList['project']['dataSource'] = array('module' => 'project', 'method' => 'getPairs'); + $config->task->datatable->fieldList['mode']['title'] = 'idAB'; $config->task->datatable->fieldList['mode']['control'] = 'hidden'; From 8270dc9ab2f0024d873ea5f78c6161ca4d9f51c1 Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Tue, 15 Nov 2022 09:57:19 +0000 Subject: [PATCH 77/95] * Fix bug #29712. --- module/common/lang/menu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index d5a9edadfd..5bea03e5c2 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -312,7 +312,7 @@ $lang->waterfall->menu->design['subMenu']->bysearch = array('link' => 'kanban->common}|project|index|project=%s"); -$lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s"); +$lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s", 'subModule' => 'projectbuild'); $lang->kanbanProject->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team'); $lang->kanbanProject->dividerMenu = ''; From d626bfbaef13730b48610f45c813bf1fa7f35304 Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Wed, 16 Nov 2022 08:49:31 +0800 Subject: [PATCH 78/95] * Fix bug #29820. --- module/project/view/execution.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/project/view/execution.html.php b/module/project/view/execution.html.php index 3cc1368a99..dec54b006e 100644 --- a/module/project/view/execution.html.php +++ b/module/project/view/execution.html.php @@ -42,7 +42,7 @@ $lang->programplan->stageCustom->task), '', $this->cookie->showTask ? 'checked=checked' : '');?>
- model == 'waterfall'):?> + model == 'waterfall' and $this->config->edition == 'max'):?>
 ", '', "class='btn btn-icon text-primary switchBtn' title='{$lang->project->bylist}'");?> createLink('programplan', 'browse', "projectID=$projectID&productID=$productID&type=gantt"), "  ", '', "class='btn btn-icon switchBtn' title='{$lang->programplan->gantt}'");?> From ad6a5c5524cb1e5f02a8010acac60ef50853dd1c Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Wed, 16 Nov 2022 09:04:52 +0800 Subject: [PATCH 79/95] * Fix bug#29730. --- module/projectstory/control.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module/projectstory/control.php b/module/projectstory/control.php index 03dbbc6cc1..8e2eb76c43 100644 --- a/module/projectstory/control.php +++ b/module/projectstory/control.php @@ -36,6 +36,13 @@ class projectStory extends control */ public function story($projectID = 0, $productID = 0, $branch = 0, $browseType = '', $param = 0, $storyType = 'story', $orderBy = '', $recTotal = 0, $recPerPage = 20, $pageID = 1) { + /* Get productID for none-product project. */ + if($projectID) + { + $project = $this->loadModel('project')->getByID($projectID); + if(!$project->hasProduct) $productID = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetch('product'); + } + $this->products = $this->loadModel('product')->getProductPairsByProject($projectID); /* Set product list for export. */ From b441fd0a4c2823f79dc924ac448bf65a990dced1 Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Wed, 16 Nov 2022 01:13:08 +0000 Subject: [PATCH 80/95] * Fix bug #29840. --- module/build/model.php | 18 +++++++++--------- module/product/view/all.html.php | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/module/build/model.php b/module/build/model.php index 0f98597790..7a137cfe63 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -568,25 +568,25 @@ class buildModel extends model * Bugs and stories associated with child builds. * * @param int $buildID - * @param string $childBuilds + * @param string $childBuildIDList * @access public * @return void */ - public function linkChildBuilds($buildID, $childBuilds) + public function linkChildBuilds($buildID, $childBuildIDList) { - $build = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->eq($buildID)->fetch(); - $buildList = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->in($childBuilds)->fetchAll(); + $build = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->eq($buildID)->fetch(); + $childBuilds = $this->dao->select('bugs, stories')->from(TABLE_BUILD)->where('id')->in($childBuildIDList)->fetchAll(); - foreach($buildList as $buildInfo) + foreach($childBuilds as $childBuild) { - if($buildInfo->bugs) $build->bugs .= ",{$buildInfo->bugs}"; - if($buildInfo->stories) $build->stories .= ",{$buildInfo->stories}"; + if($childBuild->bugs) $build->bugs .= ",{$childBuild->bugs}"; + if($childBuild->stories) $build->stories .= ",{$childBuild->stories}"; } $build->bugs = explode(',', $build->bugs); - $build->bugs = join(',', array_filter($build->bugs)); + $build->bugs = join(',', array_unique(array_filter($build->bugs))); $build->stories = explode(',', $build->stories); - $build->stories = join(',', array_filter($build->stories)); + $build->stories = join(',', array_unique(array_filter($build->stories))); $this->dao->update(TABLE_BUILD)->data($build)->where('id')->eq($buildID)->exec(); } diff --git a/module/product/view/all.html.php b/module/product/view/all.html.php index 2654ddf619..09d5aca48b 100644 --- a/module/product/view/all.html.php +++ b/module/product/view/all.html.php @@ -248,7 +248,7 @@
product->pageSummary, count($productStats)) : sprintf($lang->product->lineSummary, count($lineNames), count($productStats)); + $summary = (empty($productLines) or $this->config->systemMode == 'light') ? sprintf($lang->product->pageSummary, count($productStats)) : sprintf($lang->product->lineSummary, count($lineNames), count($productStats)); echo "
$summary
"; ?>
From 921de5b4f1d22ec11a8e63c18e7a11dbedc5f9a3 Mon Sep 17 00:00:00 2001 From: zenggang Date: Wed, 16 Nov 2022 01:13:55 +0000 Subject: [PATCH 81/95] * Fix feedback#1452 --- module/group/model.php | 6 ++++-- module/user/control.php | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/module/group/model.php b/module/group/model.php index 77a081350c..b11bf6c2aa 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -154,17 +154,19 @@ class groupModel extends model * Get group by account. * * @param string $account + * @param string $vision * @access public * @return array */ - public function getByAccount($account) + public function getByAccount($account, $visions = '') { + $visions = empty($visions) ? $this->config->vision : $visions; return $this->dao->select('t2.*')->from(TABLE_USERGROUP)->alias('t1') ->leftJoin(TABLE_GROUP)->alias('t2') ->on('t1.`group` = t2.id') ->where('t1.account')->eq($account) ->andWhere('t2.project')->eq(0) - ->andWhere('t2.vision')->eq($this->config->vision) + ->andWhere('t2.vision')->in($visions) ->fetchAll('id'); } diff --git a/module/user/control.php b/module/user/control.php index 8639e943ec..1668ccade5 100755 --- a/module/user/control.php +++ b/module/user/control.php @@ -610,6 +610,7 @@ class user extends control $this->view->roleGroup = $roleGroup; $this->view->rand = $this->user->updateSessionRandom(); $this->view->visionList = $this->user->getVisionList(); + $this->view->companies = $this->loadModel('company')->getOutsideCompanies() + array('ditto' => $this->lang->user->ditto); $this->display(); } @@ -634,8 +635,10 @@ class user extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $link)); } + $visionList = $this->user->getVisionList(); + $user = $this->user->getById($userID, 'id'); - $userGroups = $this->loadModel('group')->getByAccount($user->account); + $userGroups = $this->loadModel('group')->getByAccount($user->account, implode(',', array_keys($visionList))); $title = $this->lang->company->common . $this->lang->colon . $this->lang->user->edit; $position[] = $this->lang->user->edit; @@ -647,7 +650,7 @@ class user extends control $this->view->companies = $this->loadModel('company')->getOutsideCompanies(); $this->view->groups = $this->dao->select('id, name')->from(TABLE_GROUP)->where('project')->eq(0)->fetchPairs('id', 'name'); $this->view->rand = $this->user->updateSessionRandom(); - $this->view->visionList = $this->user->getVisionList(); + $this->view->visionList = $visionList; $this->display(); } From b2adb6ab92a32cc129d605f467d612de3dab3751 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 16 Nov 2022 09:32:02 +0800 Subject: [PATCH 82/95] * Fix bug #29839. --- module/action/lang/de.php | 2 ++ module/action/lang/en.php | 2 ++ module/action/lang/fr.php | 2 ++ module/action/lang/zh-cn.php | 2 ++ module/project/model.php | 2 +- 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 40ccd09b94..d481dba4de 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -902,3 +902,5 @@ $lang->action->desc->deletemr = '$date, $actoraction->desc->mergedmr = '$date, $actor merged code.'; $lang->action->desc->approve = '$date, $actor approved.'; $lang->action->desc->reject = '$date, $actor rejected.'; +$lang->action->desc->linkedrepo = '$date, $actor linked repo $extra'; +$lang->action->desc->unlinkedrepo = '$date, $actor unlinked repo $extra'; diff --git a/module/action/lang/en.php b/module/action/lang/en.php index d81a9e8162..4b3f27e21c 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -902,3 +902,5 @@ $lang->action->desc->deletemr = '$date, $actoraction->desc->mergedmr = '$date, $actor merged code.'; $lang->action->desc->approve = '$date, $actor approved.'; $lang->action->desc->reject = '$date, $actor rejected.'; +$lang->action->desc->linkedrepo = '$date, $actor linked repo $extra'; +$lang->action->desc->unlinkedrepo = '$date, $actor unlinked repo $extra'; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index 764d4f04af..262e31e96f 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -902,3 +902,5 @@ $lang->action->desc->deletemr = '$date, $actoraction->desc->mergedmr = '$date, $actor merged code.'; $lang->action->desc->approve = '$date, $actor approved.'; $lang->action->desc->reject = '$date, $actor rejected.'; +$lang->action->desc->linkedrepo = '$date, $actor linked repo $extra'; +$lang->action->desc->unlinkedrepo = '$date, $actor unlinked repo $extra'; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index 35745a10ac..080aea9711 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -902,3 +902,5 @@ $lang->action->desc->deletemr = '$date, 由 $actoraction->desc->mergedmr = '$date, 由 $actor 合并了 代码。'; $lang->action->desc->approve = '$date, 由 $actor 审核通过。'; $lang->action->desc->reject = '$date, 由 $actor 拒绝。'; +$lang->action->desc->linkedrepo = '$date, 由 $actor 关联代码库 $extra'; +$lang->action->desc->unlinkedrepo = '$date, 由 $actor 取消了项目与代码库 $extra 的关联'; diff --git a/module/project/model.php b/module/project/model.php index 472a23d353..d7ebfe59f8 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -3086,7 +3086,7 @@ class projectModel extends model ->set('projects')->eq(implode(',', $newProjects)) ->where('id')->eq($repo->id)->exec(); - $this->action->create('project', $projectID, 'linkedRepo', $repo->name); + $this->action->create('project', $projectID, 'linkedRepo', '', $repo->name); } } From 2f7e39685c15d1401a17b46d440b68eb7c525bc6 Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Wed, 16 Nov 2022 09:34:31 +0800 Subject: [PATCH 83/95] * finish task #75921 --- module/bug/view/view.html.php | 1 - module/common/lang/menu.php | 2 +- module/execution/model.php | 5 +++++ module/story/control.php | 6 +++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/module/bug/view/view.html.php b/module/bug/view/view.html.php index 77767bbee6..247a92c471 100644 --- a/module/bug/view/view.html.php +++ b/module/bug/view/view.html.php @@ -9,7 +9,6 @@ * @version $Id: view.html.php 4728 2013-05-03 06:14:34Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ - ?> diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index d5a9edadfd..2d49c73c55 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -343,7 +343,7 @@ $lang->execution->menu->view = array('link' => "$lang->view|execution|grouptas if($config->edition != 'open') $lang->execution->menu->view = array('link' => "$lang->view|execution|gantt|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation'); $lang->execution->menu->storyGroup = array('link' => "{$lang->common->story}|execution|story|executionID=%s",'class' => 'dropdown dropdown-hover', 'subModule' => 'story', 'alias' => 'batchcreate,storykanban'); -$lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story', 'alias' => 'storykanban'); +$lang->execution->menu->story = array('link' => "$lang->SRCommon|execution|story|executionID=%s", 'subModule' => 'story,execution', 'alias' => 'storykanban'); $lang->execution->menu->qa = array('link' => "{$lang->qa->common}|execution|bug|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&branchID=&objectID=%s", 'subModule' => 'repo'); $lang->execution->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=execution&objectID=%s", 'subModule' => 'doc'); diff --git a/module/execution/model.php b/module/execution/model.php index 42ccba915f..129b2aa23c 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -142,6 +142,11 @@ class executionModel extends model $this->loadModel('project')->setNoMultipleMenu($executionID); if(isset($this->lang->execution->menu->storyGroup)) unset($this->lang->execution->menu->storyGroup); + if(isset($this->lang->execution->menu->story['dropMenu']) and $methodName == 'storykanban') + { + unset($this->lang->execution->menu->story['dropMenu']); + $this->lang->execution->menu->story['link'] = str_replace(array($this->lang->common->story, 'story'), array($this->lang->SRCommon, 'storykanban'), $this->lang->execution->menu->story['link']); + } } /** diff --git a/module/story/control.php b/module/story/control.php index 0877c6779d..ec9cf2768d 100755 --- a/module/story/control.php +++ b/module/story/control.php @@ -2815,9 +2815,9 @@ class story extends control /* Unset product field when in single project. */ if(isset($project->hasProduct) && !$project->hasProduct) { - $filterFields = array('product,', 'branch,'); - if($project->model != 'scrum') $filterFields[] = 'plan,'; - $this->config->story->exportFields = str_replace($filterFields, '', $this->config->story->exportFields); + $filterFields = array(', product,', ', branch,'); + if($project->model != 'scrum') $filterFields[] = ', plan,'; + $this->config->story->exportFields = str_replace($filterFields, ',', $this->config->story->exportFields); } $this->view->fileName = $fileName; From 4d90d01042291df16f75d35f54b9f2ac745f8bcc Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 16 Nov 2022 09:38:27 +0800 Subject: [PATCH 84/95] * Fix bug #29835. --- module/execution/view/linkstory.html.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/module/execution/view/linkstory.html.php b/module/execution/view/linkstory.html.php index 05e7db5875..bc1af1e745 100644 --- a/module/execution/view/linkstory.html.php +++ b/module/execution/view/linkstory.html.php @@ -65,7 +65,11 @@ id => sprintf('%03d', $story->id)));?> id]", $story->product);?> - pri;?>' title='story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri);?> + + pri):?> + pri;?>' title='story->priList, $story->pri, $story->pri);?>'>story->priList, $story->pri, $story->pri);?> + + parent > 0) echo "{$lang->story->childrenAB}"; From 14edb87de2809e174b48de7b9e7164364025e96b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Wed, 16 Nov 2022 09:38:55 +0800 Subject: [PATCH 85/95] * fix bug #29675. --- module/my/model.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/my/model.php b/module/my/model.php index 926ec8e9a9..6b48ef9550 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -1058,6 +1058,7 @@ class myModel extends model ->beginIF(!$this->app->user->admin)->andWhere('t1.product')->in($this->app->user->view->products)->fi() ->andWhere('t2.reviewer')->eq($this->app->user->account) ->andWhere('t2.result')->eq('') + ->andWhere('t1.vision')->eq($this->config->vision) ->andWhere('t1.status')->eq('reviewing') ->orderBy($orderBy) ->query(); @@ -1263,6 +1264,7 @@ class myModel extends model $actions = $this->dao->select('objectType,objectID,actor,action,MAX(`date`) as `date`,extra')->from(TABLE_ACTION) ->where('actor')->eq($this->app->user->account) ->andWhere('objectType')->in($this->config->my->reviewObjectType) + ->andWhere('vision')->eq($this->config->vision) ->andWhere($condition) ->groupBy('objectType,objectID') ->orderBy($orderBy) From ad8a80938415333ab4b1adb9a2d1115dc4295a41 Mon Sep 17 00:00:00 2001 From: daitingting Date: Wed, 16 Nov 2022 01:45:04 +0000 Subject: [PATCH 86/95] * Fix bug #29851. --- module/release/view/browse.html.php | 4 ++-- module/release/view/view.html.php | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/module/release/view/browse.html.php b/module/release/view/browse.html.php index b78e2b51fc..c6f0049c4e 100644 --- a/module/release/view/browse.html.php +++ b/module/release/view/browse.html.php @@ -51,8 +51,8 @@ release->id;?> release->name;?> - release->includedBuild;?> - release->relatedProject;?> + release->includedBuild;?> + release->relatedProject;?> release->status;?> release->date;?> release->build;?> builds as $build) { - $buildDivision = $i == count($release->builds) ? '' : $lang->comma; - echo (($build->project) ? html::a($this->createLink($build->execution ? 'build' : 'projectbuild', 'view', "buildID=$build->id"), $build->name) : $build->name) . $buildDivision; - $i++; + $buildHtml[] = html::a($this->createLink($build->execution ? 'build' : 'projectbuild', 'view', "buildID=$build->id"), $build->name, '', "data-app='project'"); } + echo join($lang->comma, $buildHtml); ?> From 62312f55b8a3d144277e2f9f6799c9d9779dfe07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Wed, 16 Nov 2022 09:53:17 +0800 Subject: [PATCH 87/95] * fix bug #29798. --- module/kanban/js/view.js | 2 +- module/kanban/view/view.html.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/module/kanban/js/view.js b/module/kanban/js/view.js index 7950927243..b1a7f40dff 100644 --- a/module/kanban/js/view.js +++ b/module/kanban/js/view.js @@ -483,7 +483,7 @@ function renderExecutionItem(item, $item) var name = item.title ? item.title : item.name; if(!$title.length) { - var icon = mode == 'new' ? 'run' : 'project'; + var icon = mode == 'ALM' ? 'run' : 'project'; var viewMethod = item.execType == 'kanban' ? 'kanban' : 'view'; if(privs.includes('viewExecution') && item.deleted == '0') $title = $('' + name + '').appendTo($titleBox).attr('href', createLink('execution', viewMethod, 'executionID=' + item.fromID)); if(!privs.includes('viewExecution') || item.deleted == '1') $title = $('
' + name + '
').appendTo($titleBox); diff --git a/module/kanban/view/view.html.php b/module/kanban/view/view.html.php index 9d48a444cf..a3c572243c 100644 --- a/module/kanban/view/view.html.php +++ b/module/kanban/view/view.html.php @@ -36,6 +36,7 @@ js::set('kanbanID', $kanban->id); js::set('laneCount', $laneCount); js::set('userList', $userList); js::set('noAssigned', $lang->kanbancard->noAssigned); +js::set('mode', $config->systemMode); js::set('users', $users); js::set('colorListLang', $lang->kanbancard->colorList); js::set('colorList', $this->config->kanban->cardColorList); From f055b3ffc0481073f6baf69c9b71312413fb5574 Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Wed, 16 Nov 2022 01:54:15 +0000 Subject: [PATCH 88/95] * Fix bug #29825. --- module/build/control.php | 2 +- module/build/model.php | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/module/build/control.php b/module/build/control.php index 91353e2f9d..0abe7eb54e 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -119,7 +119,7 @@ class build extends control $this->view->executionID = $executionID; $this->view->products = $products; $this->view->projectID = $projectID; - $this->view->lastBuild = $this->build->getLast($executionID); + $this->view->lastBuild = $this->build->getLast($executionID, $projectID); $this->view->productGroups = $productGroups; $this->view->users = $this->user->getPairs('nodeleted|noclosed'); $this->display(); diff --git a/module/build/model.php b/module/build/model.php index 0f98597790..81fdc0b6bc 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -284,14 +284,16 @@ class buildModel extends model * Get last build. * * @param int $executionID + * @param int $projectID * @access public * @return bool | object */ - public function getLast($executionID) + public function getLast($executionID = 0, $projectID = 0) { return $this->dao->select('id, name')->from(TABLE_BUILD) - ->where('execution')->eq((int)$executionID) - ->andWhere('deleted')->eq(0) + ->where('deleted')->eq(0) + ->beginIF($executionID)->andWhere('execution')->eq((int)$executionID)->fi() + ->beginIF($projectID)->andWhere('project')->eq((int)$projectID)->fi() ->orderBy('date DESC,id DESC') ->limit(1) ->fetch(); From 41ecdd3e891c24bb757685ad92162fa2a9e37823 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 16 Nov 2022 10:00:57 +0800 Subject: [PATCH 89/95] * Modify severity style. --- .../images/severity/severity-sprite.png | Bin 5660 -> 5586 bytes www/theme/default/style.css | 34 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/www/theme/default/images/severity/severity-sprite.png b/www/theme/default/images/severity/severity-sprite.png index e589db598d7f55dc5d0212fe6a54ed97a4a799f4..d1769864449546accd911e0e8bcfe0c47012fa85 100644 GIT binary patch literal 5586 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 diff --git a/www/theme/default/style.css b/www/theme/default/style.css index 42b28041f7..3688826f8f 100644 --- a/www/theme/default/style.css +++ b/www/theme/default/style.css @@ -195,35 +195,35 @@ tbody tr td.c-actions .dividing-line {width: 1px; height: 16px; display: inline- .label-pri-4, .label-pri-5, .label-selector > .label-pri[data-value="4"], .label-selector > .label-pri[data-value="5"] {color: #9EA3B0; border-color: #9EA3B0;} .label-severity:before {content: '';} -.label-selector > .label.label-severity, .label-selector > .label.label-severity.active, .c-severity > .label-severity, .pri-text > .label-severity {background: url('images/severity/severity-sprite.png') no-repeat; background-size:cover; border: none; height: 26px; line-height: 32px; background-position: 0px -165px; color: #9EA3B0;} -.label-selector > .label.label-severity[data-severity="1"], .label-selector > .label.label-severity[data-value="1"] {color: #FB2B2B; background-position: 0px -1px;} -.label-selector > .label.label-severity[data-severity="2"], .label-selector > .label.label-severity[data-value="2"] {color: #FF8058; background-position: 0px -41px;} +.label-selector > .label.label-severity, .label-selector > .label.label-severity.active, .c-severity > .label-severity, .pri-text > .label-severity {background: url('images/severity/severity-sprite.png') no-repeat; background-size:cover; border: none; height: 26px; line-height: 32px; background-position: 0px -162px; color: #9EA3B0;} +.label-selector > .label.label-severity[data-severity="1"], .label-selector > .label.label-severity[data-value="1"] {color: #FB2B2B; background-position: 0px 2px;} +.label-selector > .label.label-severity[data-severity="2"], .label-selector > .label.label-severity[data-value="2"] {color: #FF8058; background-position: 0px -39px;} .label-selector > .label.label-severity[data-severity="3"], .label-selector > .label.label-severity[data-value="3"] {color: #FAAE1A; background-position: 0px -80px;} -.label-selector > .label.label-severity[data-severity="4"], .label-selector > .label.label-severity[data-value="4"] {color: #B89664; background-position: 0px -123px;} +.label-selector > .label.label-severity[data-severity="4"], .label-selector > .label.label-severity[data-value="4"] {color: #B89664; background-position: 0px -121px;} .c-severity > .label-severity:after {top: 9px;} #legendBasicInfo .label-severity:after {top: 8px;} .kanban-item-bug .label-severity, #legendBasicInfo .label-severity, .c-severity > .label-severity {height: 28px;} -.kanban-item-bug .label-severity, #legendBasicInfo .label-severity, .c-severity > .label-severity {background: url('images/severity/severity-sprite.png') no-repeat; border: none; height: 26px; line-height: 32px; background-position: 2px -136px; color: #9EA3B0; background-size: 83%;} -#legendBasicInfo .label-severity[data-severity="1"], .c-severity > .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 2px 1px;} -#legendBasicInfo .label-severity[data-severity="2"], .c-severity > .label-severity[data-severity="2"] {color: #FF8058; background-position: 2px -32px;} +.kanban-item-bug .label-severity, #legendBasicInfo .label-severity, .c-severity > .label-severity {background: url('images/severity/severity-sprite.png') no-repeat; border: none; height: 26px; line-height: 32px; background-position: 2px -133px; color: #9EA3B0; background-size: 83%;} +#legendBasicInfo .label-severity[data-severity="1"], .c-severity > .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 2px 3px;} +#legendBasicInfo .label-severity[data-severity="2"], .c-severity > .label-severity[data-severity="2"] {color: #FF8058; background-position: 2px -31px;} #legendBasicInfo .label-severity[data-severity="3"], .c-severity > .label-severity[data-severity="3"] {color: #FAAE1A; background-position: 2px -65px;} -#legendBasicInfo .label-severity[data-severity="4"], .c-severity > .label-severity[data-severity="4"] {color: #B89664; background-position: 2px -101px;} +#legendBasicInfo .label-severity[data-severity="4"], .c-severity > .label-severity[data-severity="4"] {color: #B89664; background-position: 2px -99px;} .kanban-item-bug .label-severity:after {top: 9px;} -.kanban-item-bug .label-severity {background-position: 1px -147px; background-size: 90%;} -.kanban-item-bug .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 1px 0px;} -.kanban-item-bug .label-severity[data-severity="2"] {color: #FF8058; background-position: 1px -36px;} -.kanban-item-bug .label-severity[data-severity="3"] {color: #FAAE1A; background-position: 1px -71px;} -.kanban-item-bug .label-severity[data-severity="4"] {color: #B89664; background-position: 1px -110px;} +.kanban-item-bug .label-severity {background-position: 1px -145px; background-size: 90%;} +.kanban-item-bug .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 1px 2px;} +.kanban-item-bug .label-severity[data-severity="2"] {color: #FF8058; background-position: 1px -34px;} +.kanban-item-bug .label-severity[data-severity="3"] {color: #FAAE1A; background-position: 0px -72px;} +.kanban-item-bug .label-severity[data-severity="4"] {color: #B89664; background-position: 1px -108px;} .pri-text > .label-pri {padding: 1px 5px;} .pri-text > .label-pri, .pri-text > .label-severity {height: 20px;} -.pri-text > .label-severity {background-size: 80%; background-position: 2px -132px;} -.pri-text > .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 2px -1px;} -.pri-text > .label-severity[data-severity="2"] {color: #FF8058; background-position: 2px -33px;} +.pri-text > .label-severity {background-size: 80%; background-position: 2px -130px;} +.pri-text > .label-severity[data-severity="1"] {color: #FB2B2B; background-position: 2px 1px;} +.pri-text > .label-severity[data-severity="2"] {color: #FF8058; background-position: 2px -31px;} .pri-text > .label-severity[data-severity="3"] {color: #FAAE1A; background-position: 2px -64px;} -.pri-text > .label-severity[data-severity="4"] {color: #B89664; background-position: 2px -99px;} +.pri-text > .label-severity[data-severity="4"] {color: #B89664; background-position: 2px -97px;} .flow-block .footerbar span.label-success {background-color: #0DBB7D;} .flow-block .footerbar span.label-default {background-color: #9EA3B0;} From 1c69f3079373b79412c00ee932eec3bf1433a314 Mon Sep 17 00:00:00 2001 From: zenggang Date: Wed, 16 Nov 2022 02:08:00 +0000 Subject: [PATCH 90/95] * Adjust code --- module/group/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/group/model.php b/module/group/model.php index b11bf6c2aa..1de55a054b 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -154,7 +154,7 @@ class groupModel extends model * Get group by account. * * @param string $account - * @param string $vision + * @param string $visions * @access public * @return array */ From 930e378c0a25bffb40eef0d7e3c573302457057a Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Wed, 16 Nov 2022 10:18:25 +0800 Subject: [PATCH 91/95] * Fix bug#29860. --- module/project/model.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/module/project/model.php b/module/project/model.php index 472a23d353..adf33cd897 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1700,10 +1700,13 @@ class projectModel extends model { if(!$oldProject->hasProduct && $oldProject->name != $project->name) $this->updateProductName($project->name, $projectID); - $linkedProducts = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs(); - $this->updateProductProgram($oldProject->parent, $project->parent, $linkedProducts); + if(isset($project->parent)) + { + $linkedProducts = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs(); + $this->updateProductProgram($oldProject->parent, $project->parent, $linkedProducts); + if($oldProject->parent != $project->parent) $this->loadModel('program')->processNode($projectID, $project->parent, $oldProject->path, $oldProject->grade); + } - if($oldProject->parent != $project->parent) $this->loadModel('program')->processNode($projectID, $project->parent, $oldProject->path, $oldProject->grade); /* When acl is open, white list set empty. When acl is private,update user view. */ if($project->acl == 'open') $this->loadModel('personnel')->updateWhitelist(array(), 'project', $projectID); if($project->acl != 'open') $this->loadModel('user')->updateUserView($projectID, 'project'); From bbee9eedcae0da4b7cbe84faf8f5f386f668d7a7 Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Wed, 16 Nov 2022 10:21:47 +0800 Subject: [PATCH 92/95] * finish task #76394 --- module/project/js/create.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/module/project/js/create.js b/module/project/js/create.js index 502b08126f..f140841f41 100644 --- a/module/project/js/create.js +++ b/module/project/js/create.js @@ -146,7 +146,9 @@ function setParentProgram(parentProgram) selectedParent = parentProgram != 0 ? data.selectedProgramPath[1] : 0; lastSelectedParent = lastSelectedID != 0 ? data.objectPath[1] : 0; - if(selectedParent != lastSelectedParent) + var hasProduct = $('[name=hasProduct]:checked').val(); + + if((selectedParent != lastSelectedParent) && hasProduct == 1) { $('#budget').val(''); From d6488a7e0fc1439404e6b6dab4ce51dbd512e2f1 Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Wed, 16 Nov 2022 02:29:06 +0000 Subject: [PATCH 93/95] * Fix bug #29708. --- module/bug/control.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/bug/control.php b/module/bug/control.php index b8546daf3a..7c12932430 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -286,6 +286,9 @@ class bug extends control } } + $project = $this->loadModel('project')->getByShadowProduct($productID); + if(!$project->multiple) unset($this->lang->bug->report->charts['bugsPerExecution']); + $this->qa->setMenu($this->products, $productID, $branchID); $this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->bug->common . $this->lang->colon . $this->lang->bug->reportChart; $this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]); From 61438d05cb9e65b845cc7980648f4e416ca1cc6d Mon Sep 17 00:00:00 2001 From: wangyuting <851424971@qq.com> Date: Wed, 16 Nov 2022 02:34:34 +0000 Subject: [PATCH 94/95] * Fix bug #29705. --- module/project/view/batchedit.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index 883eeaa5ea..ffadddce06 100644 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -29,7 +29,7 @@ idAB;?> - + project->parent;?> project->name;?> @@ -51,7 +51,7 @@ parent) ? $lang->program->subAcls : $lang->project->acls;?> - + parent])):?> parent, "class='form-control chosen' onchange='outOfDateTip($projectID)' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}' disabled");?> From 22fe1664991fd22a39b6c83dbce7370340421c4c Mon Sep 17 00:00:00 2001 From: lanzongjun Date: Wed, 16 Nov 2022 10:36:12 +0800 Subject: [PATCH 95/95] * finish task #76402 --- module/execution/control.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/execution/control.php b/module/execution/control.php index 4b6cddece1..4bc1ba9ad3 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -1733,7 +1733,7 @@ class execution extends control $this->view->linkedBranches = $linkedBranches; } - if(!empty($project->hasProduct)) + if(empty($project->hasProduct)) { $shadowProduct = $this->loadModel('product')->getShadowProductByProject($project->id); $productPlan = $this->loadModel('productplan')->getPairs($shadowProduct->id, '0,0', 'noclosed,unexpired', true); @@ -1744,7 +1744,7 @@ class execution extends control if(isset($_POST['attribute']) and in_array($_POST['attribute'], array('request', 'design', 'review'))) unset($_POST['plans']); /* No product execution link plans. */ - if(!empty($project->hasProduct) and !empty($_POST['plans'])) + if(empty($project->hasProduct) and !empty($_POST['plans'])) { $plansItem = array(); foreach($_POST['plans'] as $planItem)