From 9f77cc6fb6956d5ffc6bd55ba01bf69bf21bff0c Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Tue, 9 Nov 2021 17:16:30 +0800 Subject: [PATCH] * Finish task #43898. --- module/action/lang/en.php | 10 ++++++---- module/action/lang/zh-cn.php | 10 ++++++---- module/branch/control.php | 25 +++++++++++++++++++++++++ module/branch/js/manage.js | 8 ++++++++ module/branch/lang/en.php | 13 ++++++++----- module/branch/lang/zh-cn.php | 13 ++++++++----- module/branch/model.php | 20 ++++++++++++++++++++ module/branch/view/manage.html.php | 18 +++++++++++++++++- 8 files changed, 98 insertions(+), 19 deletions(-) diff --git a/module/action/lang/en.php b/module/action/lang/en.php index 2db333a59d..53a397e4d2 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -279,6 +279,7 @@ $lang->action->label->reviewrejected = 'Reject'; $lang->action->label->reviewclarified = 'Clarify'; $lang->action->label->commitsummary = 'Commit Summary'; $lang->action->label->updatetrainee = 'Update Trainee'; +$lang->action->label->setdefaultbranch = 'Set default branch'; /* Dynamic information is grouped by object. */ $lang->action->dynamicAction = new stdclass; @@ -312,10 +313,11 @@ $lang->action->dynamicAction->product['closed'] = 'Close ' . $lang->productCo $lang->action->dynamicAction->product['undeleted'] = 'Restore ' . $lang->productCommon; $lang->action->dynamicAction->product['hidden'] = 'Hide ' . $lang->productCommon; -$lang->action->dynamicAction->branch['opened'] = 'Create Branch'; -$lang->action->dynamicAction->branch['edited'] = 'Edit Branch'; -$lang->action->dynamicAction->branch['closed'] = 'Close Branch'; -$lang->action->dynamicAction->branch['activated'] = 'Activate Branch'; +$lang->action->dynamicAction->branch['opened'] = 'Create Branch'; +$lang->action->dynamicAction->branch['edited'] = 'Edit Branch'; +$lang->action->dynamicAction->branch['closed'] = 'Close Branch'; +$lang->action->dynamicAction->branch['activated'] = 'Activate Branch'; +$lang->action->dynamicAction->branch['setdefaultbranch'] = 'Set Default Branch'; $lang->action->dynamicAction->productplan['opened'] = 'Create Plan'; $lang->action->dynamicAction->productplan['edited'] = 'Edit Plan'; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index 37b4303416..7f71f341bc 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -279,6 +279,7 @@ $lang->action->label->reviewrejected = '拒绝'; $lang->action->label->reviewclarified = '有待明确'; $lang->action->label->commitsummary = '提交培训总结'; $lang->action->label->updatetrainee = '更新培训人员'; +$lang->action->label->setdefaultbranch = '设置了默认分支'; /* 动态信息按照对象分组 */ $lang->action->dynamicAction = new stdclass(); @@ -312,10 +313,11 @@ $lang->action->dynamicAction->product['closed'] = '关闭' . $lang->productCo $lang->action->dynamicAction->product['undeleted'] = '还原' . $lang->productCommon; $lang->action->dynamicAction->product['hidden'] = '隐藏' . $lang->productCommon; -$lang->action->dynamicAction->branch['opened'] = '创建分支'; -$lang->action->dynamicAction->branch['edited'] = '编辑分支'; -$lang->action->dynamicAction->branch['closed'] = '关闭分支'; -$lang->action->dynamicAction->branch['activated'] = '激活分支'; +$lang->action->dynamicAction->branch['opened'] = '创建分支'; +$lang->action->dynamicAction->branch['edited'] = '编辑分支'; +$lang->action->dynamicAction->branch['closed'] = '关闭分支'; +$lang->action->dynamicAction->branch['activated'] = '激活分支'; +$lang->action->dynamicAction->branch['setdefaultbranch'] = '设置默认分支'; $lang->action->dynamicAction->productplan['opened'] = "创建计划"; $lang->action->dynamicAction->productplan['edited'] = "编辑计划"; diff --git a/module/branch/control.php b/module/branch/control.php index 8974588a5b..2d38d7db06 100644 --- a/module/branch/control.php +++ b/module/branch/control.php @@ -254,4 +254,29 @@ class branch extends control if($oldBranch) $branches = array($oldBranch => $branches[$oldBranch]); die(html::select('branch', $branches, '', "class='form-control' onchange='loadBranch(this)'")); } + + /** + * Set default branch. + * + * @param int $productID + * @param int $branchID + * @param string $confirm yes|no + * @access public + * @return void + */ + public function setDefault($productID, $branchID, $confirm = 'no') + { + if($confirm == 'no') + { + $this->app->loadLang('product'); + $productType = $this->branch->getProductType($branchID); + die(js::confirm(str_replace('@branch@', $this->lang->product->branchName[$productType], $this->lang->branch->confirmSetDefault), inlink('setDefault', "productID=$productID&branchID=$branchID&confirm=yes"))); + } + + $this->branch->setDefault($productID, $branchID); + + $this->loadModel('action')->create('branch', $branchID, 'SetDefaultBranch'); + + die(js::reload('parent')); + } } diff --git a/module/branch/js/manage.js b/module/branch/js/manage.js index 7b371ff1ef..174c409d56 100644 --- a/module/branch/js/manage.js +++ b/module/branch/js/manage.js @@ -25,4 +25,12 @@ $(function() $.post(createLink('branch', 'sort'), {'branches' : list}); } }); + + $('td.c-name.flex').mouseenter(function() + { + $(this).find('.setDefault').removeClass('hidden'); + }).mouseleave(function() + { + $(this).find('.setDefault').addClass('hidden'); + }) }); diff --git a/module/branch/lang/en.php b/module/branch/lang/en.php index f90395fbf7..e6d92b6da7 100644 --- a/module/branch/lang/en.php +++ b/module/branch/lang/en.php @@ -19,6 +19,7 @@ $lang->branch->create = 'Create Branch'; $lang->branch->merge = 'Merge'; $lang->branch->batchEdit = 'Batch Edit'; $lang->branch->defaultBranch = 'Default Branch'; +$lang->branch->setDefault = 'Set Default'; $lang->branch->id = 'ID'; $lang->branch->product = 'Product'; @@ -30,12 +31,14 @@ $lang->branch->desc = 'Desc'; $lang->branch->order = 'Order'; $lang->branch->deleted = 'Delete'; $lang->branch->closed = 'Closed'; +$lang->branch->default = 'Default'; -$lang->branch->confirmDelete = 'Do you want to delete this @branch@?'; -$lang->branch->canNotDelete = 'There is data in @branch@. It cannot be deleted.'; -$lang->branch->nameNotEmpty = 'Name must not be empty!'; -$lang->branch->confirmClose = 'Do you want to close this @branch@?'; -$lang->branch->confirmActivate = 'Do you want to activate this @branch@?'; +$lang->branch->confirmDelete = 'Do you want to delete this @branch@?'; +$lang->branch->confirmSetDefault = 'Do you want to set @branch@ as default @branch@? After your setting, the default @branch@ will be selected and shown in its Plan/Release list.'; +$lang->branch->canNotDelete = 'There is data in @branch@. It cannot be deleted.'; +$lang->branch->nameNotEmpty = 'Name must not be empty!'; +$lang->branch->confirmClose = 'Do you want to close this @branch@?'; +$lang->branch->confirmActivate = 'Do you want to activate this @branch@?'; $lang->branch->noData = 'No branches.'; $lang->branch->mainBranch = 'The default main branch of the product.'; diff --git a/module/branch/lang/zh-cn.php b/module/branch/lang/zh-cn.php index c740329111..81d76c9a5c 100644 --- a/module/branch/lang/zh-cn.php +++ b/module/branch/lang/zh-cn.php @@ -19,6 +19,7 @@ $lang->branch->create = '新增分支'; $lang->branch->merge = '合并'; $lang->branch->batchEdit = '批量编辑'; $lang->branch->defaultBranch = '默认分支'; +$lang->branch->setDefault = '设为默认分支'; $lang->branch->id = 'ID'; $lang->branch->product = '所属产品'; @@ -30,12 +31,14 @@ $lang->branch->desc = '分支描述'; $lang->branch->order = '排序'; $lang->branch->deleted = '已删除'; $lang->branch->closed = '已关闭'; +$lang->branch->default = '默认'; -$lang->branch->confirmDelete = '是否删除该@branch@?'; -$lang->branch->canNotDelete = '该@branch@下已经有数据,不能删除!'; -$lang->branch->nameNotEmpty = '名称不能为空!'; -$lang->branch->confirmClose = '是否关闭该@branch@?'; -$lang->branch->confirmActivate = '是否激活该@branch@?'; +$lang->branch->confirmDelete = '是否删除该@branch@?'; +$lang->branch->confirmSetDefault = '请确认是否需要将该@branch@设置为默认@branch@,设置成功后计划和发布列表将默认选中默认@branch@。'; +$lang->branch->canNotDelete = '该@branch@下已经有数据,不能删除!'; +$lang->branch->nameNotEmpty = '名称不能为空!'; +$lang->branch->confirmClose = '是否关闭该@branch@?'; +$lang->branch->confirmActivate = '是否激活该@branch@?'; $lang->branch->noData = '暂时没有分支。'; $lang->branch->mainBranch = '产品默认主干分支。'; diff --git a/module/branch/model.php b/module/branch/model.php index 43afc3fc5f..1c1d118583 100644 --- a/module/branch/model.php +++ b/module/branch/model.php @@ -393,4 +393,24 @@ class branchModel extends model $linkHtml = strpos('programplan', $module) !== false ? sprintf($link, $projectID, $productID, $branch) : sprintf($link, $productID, $branch); return $linkHtml; } + + /** + * Set default branch. + * + * @param int $productID + * @param int $branchID + * @accesss public + * @return void + */ + public function setDefault($productID, $branchID) + { + $defaultBranch = $this->dao->select('id')->from(TABLE_BRANCH) + ->where('product')->eq($productID) + ->andWhere('`default`')->eq('1') + ->fetch('id'); + + $this->dao->update(TABLE_BRANCH)->set('`default`')->eq('1')->where('id')->eq($branchID)->exec(); + + if(!empty($defaultBranch)) $this->dao->update(TABLE_BRANCH)->set('`default`')->eq('0')->where('id')->eq($defaultBranch)->exec(); + } } diff --git a/module/branch/view/manage.html.php b/module/branch/view/manage.html.php index b114d70273..276448f2ff 100644 --- a/module/branch/view/manage.html.php +++ b/module/branch/view/manage.html.php @@ -67,7 +67,23 @@ - name;?> + + name;?> + default) + { + echo '' . $lang->branch->default . ''; + } + else + { + + $setDefaultLink = helper::createLink('branch', 'setDefault', "productID=$productID&branchID=$branch->id", '', true); + $setDefaultHtml = html::a($setDefaultLink, " {$lang->branch->setDefault}", '', "class='iframe btn btn-icon-left btn-sm setDefault hidden'"); + + echo common::hasPriv('branch', 'setDefault') ? $setDefaultHtml : ''; + } + ?> + branch->statusList, $branch->status);?> createdDate) ? '' : $branch->createdDate;?> closedDate) ? '' : $branch->closedDate;?>