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:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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'] = '用户需求';
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user