Merge branch 'zentaopms_239' into 'zentaopms_239_task_#74667'

# Conflicts:
#   module/custom/js/mode.js
#   module/custom/lang/de.php
#   module/custom/lang/en.php
#   module/custom/lang/fr.php
#   module/custom/lang/zh-cn.php
This commit is contained in:
代婷婷
2022-11-03 05:36:38 +00:00
10 changed files with 135 additions and 63 deletions
+5 -1
View File
@@ -782,7 +782,11 @@ $hasOtherKanban = strpos(",$config->disabledFeatures,", ',otherKanban,')
if(!$config->URAndSR) unset($lang->product->menu->requirement, $lang->product->menuOrder[35]);
if(!$hasProductRoadmap) unset($lang->product->menu->roadmap, $lang->product->menuOrder[30]);
if(!$hasProductTrack) unset($lang->product->menu->track, $lang->product->menuOrder[40]);
if(!$hasProductTrack)
{
unset($lang->product->menu->track, $lang->product->menuOrder[40]);
$lang->product->dividerMenu = str_replace(',track,', ',doc,', $lang->product->dividerMenu);
}
if(!$hasWaterfall) unset($lang->admin->menu->model['dropMenu']->waterfall);
if(!$hasOtherDevops)
-9
View File
@@ -646,15 +646,6 @@ class custom extends control
$this->app->loadLang('upgrade');
$this->lang->custom->changeModeContentTips['light'] = $this->lang->custom->hasMoreData['yes'];
$counts = $this->custom->getCounts();
foreach($counts as $function => $count)
{
if($count) unset($this->lang->custom->needClosedFunctions[$function]);
}
if(!empty($this->lang->custom->needClosedFunctions)) $this->lang->custom->changeModeContentTips['light'] = sprintf($this->lang->custom->hasMoreData['no'], implode($this->lang->comma, $this->lang->custom->needClosedFunctions));
$this->view->title = $this->lang->custom->mode;
$this->view->position[] = $this->lang->custom->common;
$this->view->position[] = $this->view->title;
+4 -5
View File
@@ -248,12 +248,11 @@ $lang->custom->currentModeTips = 'You are currently using %s, you can switch t
$lang->custom->changeModeTips = 'Please double confirm to switch to %s Mode.';
$lang->custom->selectProgramTips = 'After switching to the Light Mode, in order to ensure the consistency of the data structure, you need to select a program as the default program, and subsequent new product and project data are associated with this default program.';
$lang->custom->changeModeTitleTips['ALM'] = 'Please double confirm to switch to ALM Mode.';
$lang->custom->changeModeTitleTips['light'] = 'Please double confirm to switch to Light Mode.';
$lang->custom->changeModeContentTips['ALM'] = 'The ALM mode is suitable for medium and large R&D teams. After switching the ALM mode, the system will enable functions such as program sets.';
$lang->custom->modeList['light'] = 'Light Mode';
$lang->custom->modeList['ALM'] = 'ALM Mode';
$lang->custom->hasMoreData['yes'] = 'After switching to light mode, the system will close the program function, and the related functions of the program will be hidden.';
$lang->custom->hasMoreData['no'] = 'After switching to light mode, the system will close functions such as program sets, %s.';
$lang->custom->modeIntrodutionList['light'] = 'Light Mode suitable for small software development teams.';
$lang->custom->modeIntrodutionList['ALM'] = 'ALM Mode suitable for medium and large software R&D teams';
$lang->custom->needClosedFunctions['waterfall'] = 'Waterfall';
$lang->custom->needClosedFunctions['URStory'] = 'User Story';
+4 -5
View File
@@ -248,12 +248,11 @@ $lang->custom->currentModeTips = 'You are currently using %s, you can switch t
$lang->custom->changeModeTips = 'Please double confirm to switch to %s Mode.';
$lang->custom->selectProgramTips = 'After switching to the Light Mode, in order to ensure the consistency of the data structure, you need to select a program as the default program, and subsequent new product and project data are associated with this default program.';
$lang->custom->changeModeTitleTips['ALM'] = 'Please double confirm to switch to ALM Mode.';
$lang->custom->changeModeTitleTips['light'] = 'Please double confirm to switch to Light Mode.';
$lang->custom->changeModeContentTips['ALM'] = 'The ALM mode is suitable for medium and large R&D teams. After switching the ALM mode, the system will enable functions such as program sets.';
$lang->custom->modeList['light'] = 'Light Mode';
$lang->custom->modeList['ALM'] = 'ALM Mode';
$lang->custom->hasMoreData['yes'] = 'After switching to light mode, the system will close the program function, and the related functions of the program will be hidden.';
$lang->custom->hasMoreData['no'] = 'After switching to light mode, the system will close functions such as program sets, %s.';
$lang->custom->modeIntrodutionList['light'] = 'Light Mode suitable for small software development teams.';
$lang->custom->modeIntrodutionList['ALM'] = 'ALM Mode suitable for medium and large software R&D teams';
$lang->custom->needClosedFunctions['waterfall'] = 'Waterfall';
$lang->custom->needClosedFunctions['URStory'] = 'User Story';
+4 -5
View File
@@ -248,12 +248,11 @@ $lang->custom->currentModeTips = 'You are currently using %s, you can switch t
$lang->custom->changeModeTips = 'Please double confirm to switch to %s Mode.';
$lang->custom->selectProgramTips = 'After switching to the Light Mode, in order to ensure the consistency of the data structure, you need to select a program as the default program, and subsequent new product and project data are associated with this default program.';
$lang->custom->changeModeTitleTips['ALM'] = 'Please double confirm to switch to ALM Mode.';
$lang->custom->changeModeTitleTips['light'] = 'Please double confirm to switch to Light Mode.';
$lang->custom->changeModeContentTips['ALM'] = 'The ALM mode is suitable for medium and large R&D teams. After switching the ALM mode, the system will enable functions such as program sets.';
$lang->custom->modeList['light'] = 'Light Mode';
$lang->custom->modeList['ALM'] = 'ALM Mode';
$lang->custom->hasMoreData['yes'] = 'After switching to light mode, the system will close the program function, and the related functions of the program will be hidden.';
$lang->custom->hasMoreData['no'] = 'After switching to light mode, the system will close functions such as program sets, %s.';
$lang->custom->modeIntrodutionList['light'] = 'Light Mode suitable for small software development teams.';
$lang->custom->modeIntrodutionList['ALM'] = 'ALM Mode suitable for medium and large software R&D teams';
$lang->custom->needClosedFunctions['waterfall'] = 'Waterfall';
$lang->custom->needClosedFunctions['URStory'] = 'User Story';
+4 -5
View File
@@ -249,12 +249,11 @@ $lang->custom->currentModeTips = '您当前使用的是%s, 您可以切换到%
$lang->custom->changeModeTips = '您确定要切换到%s吗?';
$lang->custom->selectProgramTips = '切换到轻量管理模式后,为确保数据结构一致,需要选择一个项目集作为默认项目集,后续新增的产品和项目数据都关联在这个默认的项目集下。';
$lang->custom->changeModeTitleTips['ALM'] = '您确定要切换到全生命周期管理模式吗?';
$lang->custom->changeModeTitleTips['light'] = '您确定要切换到轻量管理模式吗?';
$lang->custom->changeModeContentTips['ALM'] = '全生命周期管理模式适用于中大型研发团队,切换全生命周期管理模式后,系统将启用项目集等功能。';
$lang->custom->modeList['light'] = '轻量级管理模式';
$lang->custom->modeList['ALM'] = '全生命周期管理模式';
$lang->custom->hasMoreData['yes'] = '切换到轻量管理模式后,系统将关闭项目集功能,项目集的相关功能将会被隐藏。';
$lang->custom->hasMoreData['no'] = '切换到轻量管理模式后,系统将关闭项目集,%s等功能。';
$lang->custom->modeIntrodutionList['light'] = '轻量级管理模式适用于小型软件研发团队';
$lang->custom->modeIntrodutionList['ALM'] = '全生命周期管理模式适用于中大型软件研发团队';
$lang->custom->needClosedFunctions['waterfall'] = '瀑布项目';
$lang->custom->needClosedFunctions['URStory'] = '用户需求';
-16
View File
@@ -817,22 +817,6 @@ class customModel extends model
}
}
/**
* Get waterfall, assetLib, URStory counts.
*
* @access public
* @return array
*/
public function getCounts()
{
$counts = array();
$counts['waterfall'] = $this->dao->select('COUNT(*) AS waterfallCount')->from(TABLE_PROJECT)->where('model')->eq('waterfall')->andWhere('deleted')->eq('0')->fetch('waterfallCount');
$counts['URStory'] = $this->dao->select('COUNT(*) AS URStoryCount')->from(TABLE_STORY)->where('type')->eq('requirement')->andWhere('deleted')->eq('0')->fetch('URStoryCount');
if($this->config->edition == 'max') $counts['assetLib'] = $this->dao->select('COUNT(*) AS assetLibCount')->from(TABLE_ASSETLIB)->where('deleted')->eq('0')->fetch('assetLibCount');
return $counts;
}
/**
* process project priv within a program set.
*
+96 -16
View File
@@ -11,30 +11,110 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('changeModeTitleTips', $lang->custom->changeModeTitleTips);?>
<?php js::set('changeModeContentTips', $lang->custom->changeModeContentTips);?>
<?php js::set('changeModeTips', sprintf($lang->custom->changeModeTips, $lang->custom->modeList[$mode == 'light' ? 'ALM' : 'light']));?>
<?php js::set('mode', $mode);?>
<div id='mainContent' class='main-content'>
<form id='modeForm' class="load-indicator main-form form-ajax" method='post'>
<div class='main-header'>
<div class='heading'>
<strong><?php echo $lang->custom->mode?></strong>
</div>
<h2><?php echo $lang->custom->mode;?></h2>
</div>
<table class='table table-form'>
<table class='table table-form w-700px'>
<tr>
<th class='text-top w-120px'><?php echo $lang->custom->mode;?></th>
<td class='w-300px'>
<p>
<label class="radio-inline"><input type="radio" name="mode" value="light" <?php echo $mode == 'light'? "checked='checked'" : '';?> id="modelight"><?php echo $lang->upgrade->to18Mode['light'];?></label>
<label class="radio-inline"><input type="radio" name="mode" value="ALM" <?php echo $mode == 'ALM'? "checked='checked'" : '';?> id="modeALM"><?php echo $lang->upgrade->to18Mode['ALM'];?></label>
</p>
</td>
<td></td>
<td colspan='2'><?php echo sprintf($lang->custom->currentModeTips, $lang->custom->modeList[$mode], $lang->custom->modeList[$mode == 'light' ? 'ALM' : 'light']);?> </td>
</tr>
<tr>
<td></td>
<td><?php echo html::submitButton($lang->custom->switch, 'disabled');?></td>
<td>
<label class='radio-inline'><input type='radio' name='mode' value='light' <?php echo $mode == 'light'? "checked='checked'" : '';?> id="modelight"><strong><?php echo $lang->upgrade->to18Mode['light'];?></strong></label>
<p class='with-padding text-muted'><?php echo $lang->custom->modeIntrodutionList['light'];?></p>
</td>
<td>
<label class='radio-inline'><input type='radio' name='mode' value='ALM' <?php echo $mode == 'ALM'? "checked='checked'" : '';?> id="modeALM"><strong><?php echo $lang->upgrade->to18Mode['ALM'];?></strong></label>
<p class='with-padding text-muted'><?php echo $lang->custom->modeIntrodutionList['ALM'];?></p>
</td>
</tr>
<tr>
<td colspan='2'>
<table class='table table-bordered'>
<thead>
<tr>
<th><?php echo $this->lang->upgrade->mode;?></th>
<th class="text-center"><?php echo $this->lang->upgrade->to18Mode['light'];?></th>
<th class="text-center"><?php echo $this->lang->upgrade->to18Mode['ALM'];?></th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $this->lang->upgrade->program;?></td>
<td class="text-center"><i class="icon text-red text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->productRR;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->productUR;?></td>
<td class="text-center"><i class="icon text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->productLine;?></td>
<td class="text-center"><i class="icon text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->projectScrum;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<?php if($config->edition == 'max'):?>
<tr>
<td><?php echo $this->lang->upgrade->scrumDetail;?></td>
<td class="text-center"><i class="icon text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<?php endif;?>
<tr>
<td><?php echo $this->lang->upgrade->projectWaterfall;?></td>
<td class="text-center"><i class="icon text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->projectKanban;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<tr>
<td><?php echo $this->lang->upgrade->execution;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<?php if($config->edition == 'max'):?>
<tr>
<td><?php echo $this->lang->upgrade->assetlib;?></td>
<td class="text-center"><i class="icon text-red icon-close"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<?php endif;?>
<?php if($config->edition == 'biz' or $config->edition == 'max'):?>
<tr>
<td><?php echo $this->lang->upgrade->oa;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
<?php endif;?>
<tr>
<td><?php echo $this->lang->upgrade->vision;?></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
<td class="text-center"><i class="icon text-success icon-check"></i></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan='2'><?php echo html::submitButton($lang->custom->switch, 'disabled');?></td>
</tr>
</table>
</form>
+16 -1
View File
@@ -1920,7 +1920,22 @@ if(!$hasProductTrack) unset($lang->resource->product->track);
if(!$hasProductRoadmap) unset($lang->resource->product->roadmap);
if(!$hasWaterfallTrack) unset($lang->resource->projectstory->track);
if(!$hasOtherDevops) unset($lang->resource->repo);
if(!$hasOtherDevops)
{
unset($lang->resource->repo);
unset($lang->resource->svn);
unset($lang->resource->git);
unset($lang->resource->app);
unset($lang->resource->ci);
unset($lang->resource->compile);
unset($lang->resource->jenkins);
unset($lang->resource->job);
unset($lang->resource->gitlab);
unset($lang->resource->gogs);
unset($lang->resource->gitea);
unset($lang->resource->sonarqube);
unset($lang->resource->mr);
}
if(!$hasOtherKanban) unset($lang->resource->kanban);
include (dirname(__FILE__) . '/changelog.php');
+2
View File
@@ -7521,6 +7521,8 @@ class upgradeModel extends model
$project->status = $sprint->status;
$project->begin = $sprint->begin;
$project->end = isset($sprint->end) ? $sprint->end : LONG_TIME;
$project->realBegan = $sprint->realBegan;
$project->realEnd = $sprint->realEnd;
$project->days = $this->computeDaysDelta($project->begin, $project->end);
$project->PM = $sprint->PM;
$project->auth = 'extend';