This commit is contained in:
Yagami
2019-11-21 09:13:53 +08:00
12 changed files with 122 additions and 96 deletions
-5
View File
@@ -252,11 +252,6 @@ $lang->bug->typeList['automation'] = 'Script-Test';
$lang->bug->typeList['designdefect'] = 'Design Fehler';
$lang->bug->typeList['others'] = 'Andere';
$lang->bug->discardedTypeList['interface'] = 'UI Optimierung';
$lang->bug->discardedTypeList['newfeature'] = 'Neues Feature';
$lang->bug->discardedTypeList['designchange'] = 'Design Änderung';
$lang->bug->discardedTypeList['trackthings'] = 'Arbeit Verfolgen';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Aktiv';
$lang->bug->statusList['resolved'] = 'Gelöst';
-5
View File
@@ -252,11 +252,6 @@ $lang->bug->typeList['automation'] = 'TestScript';
$lang->bug->typeList['designdefect'] = 'DesignDefect';
$lang->bug->typeList['others'] = 'Others';
$lang->bug->discardedTypeList['interface'] = 'Interface';
$lang->bug->discardedTypeList['designchange'] = 'DesignChange';
$lang->bug->discardedTypeList['newfeature'] = 'NewFeature';
$lang->bug->discardedTypeList['trackthings'] = 'Tracking';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Active';
$lang->bug->statusList['resolved'] = 'Resolved';
-5
View File
@@ -252,11 +252,6 @@ $lang->bug->typeList['automation'] = 'Script automatisation';
$lang->bug->typeList['designdefect'] = 'Erreur de Design';
$lang->bug->typeList['others'] = 'Autres';
$lang->bug->discardedTypeList['interface'] = 'Interface';
$lang->bug->discardedTypeList['designchange'] = 'Design Change';
$lang->bug->discardedTypeList['newfeature'] = 'Nouvelle fonctionnalité';
$lang->bug->discardedTypeList['trackthings'] = 'Tracking';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Actif';
$lang->bug->statusList['resolved'] = 'Résolu';
-5
View File
@@ -252,11 +252,6 @@ $lang->bug->typeList['automation'] = '测试脚本';
$lang->bug->typeList['designdefect'] = '设计缺陷';
$lang->bug->typeList['others'] = '其他';
$lang->bug->discardedTypeList['interface'] = '界面优化';
$lang->bug->discardedTypeList['designchange'] = '设计变更';
$lang->bug->discardedTypeList['newfeature'] = "新增{$lang->storyCommon}";
$lang->bug->discardedTypeList['trackthings'] = '事务跟踪';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = '激活';
$lang->bug->statusList['resolved'] = '已解决';
+2 -1
View File
@@ -1,5 +1,6 @@
$(document).ready(function()
{
{
$('#mainMenu #conceptTab').addClass('btn-active-text');
$('#ajaxForm').ajaxForm(
{
finish:function(response)
+1 -1
View File
@@ -79,7 +79,7 @@ $lang->custom->user->fields['statusList'] = '状态';
$lang->custom->user->fields['contactField'] = '可用联系方式';
$lang->custom->user->fields['deleted'] = '列出已删除用户';
$lang->custom->system = array('flow', 'working', 'required', 'score');
$lang->custom->system = array('concept', 'flow', 'working', 'required', 'score');
$lang->custom->block->fields['closed'] = '关闭的区块';
+33 -30
View File
@@ -8,50 +8,53 @@
* @package ZenTaoPMS
* @version $Id: deny.html.php 4129 2013-01-18 01:58:14Z wwccss $
*/
include '../../common/view/header.lite.html.php';
?>
<?php if($this->config->conceptSetted):?>
<?php include '../../common/view/header.html.php';?>
<?php if(isset($this->config->conceptSetted)):?>
<?php include 'header.html.php';?>
<?php else:?>
<?php include '../../common/view/header.lite.html.php';?>
<?php endif;?>
<div class='container'>
<?php if($_POST):?>
<div class='modal-dialog'>
<div class='alert alert-success'>
<?php printf($lang->custom->notice->conceptResult, $lang->productCommon, $lang->projectCommon, $lang->storyCommon, $lang->hourCommon);?>
<?php if(isset($this->config->conceptSetted)):?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<div class='heading'>
<strong><?php echo $lang->custom->concept?></strong>
</div>
</div>
<?php else:?>
<div class='container'>
<div class='modal-dialog'>
<div class='modal-header'>
<strong><?php echo $lang->custom->concept?></strong>
</div>
<?php endif;?>
<form id='ajaxForm' method='post'>
<div class='modal-dialog'>
<div class='modal-header'><strong><?php echo $lang->custom->concept;?></strong></div>
<div class='modal-body'>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['overview']?></label>
<div class="checkbox"> <?php echo html::radio('productProject', $lang->custom->productProject->relation, zget($this->config->custom, 'productProject', '0_0'))?> </div>
</div>
<?php if(!common::checkNotCN()):?>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['story']?></label>
<div class="checkbox"> <?php echo html::radio('storyRequirement', $lang->custom->conceptOptions->story, zget($this->config->custom, 'storyRequirement', '0'));?></div>
</div>
<?php endif;?>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['storypoint'];?></label>
<div class="checkbox"> <?php echo html::radio('hourPoint', $lang->custom->conceptOptions->hourPoint, '0')?> </div>
</div>
</div>
<div class='modal-footer'>
<div class='text-center'><?php echo html::submitButton();?></div>
<div class='modal-body'>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['overview']?></label>
<div class="checkbox"> <?php echo html::radio('productProject', $lang->custom->productProject->relation, zget($this->config->custom, 'productProject', '0_0'))?> </div>
</div>
<?php if(!common::checkNotCN()):?>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['story']?></label>
<div class="checkbox"> <?php echo html::radio('storyRequirement', $lang->custom->conceptOptions->story, zget($this->config->custom, 'storyRequirement', '0'));?></div>
</div>
<?php endif;?>
<div class="form-group">
<label><?php echo $lang->custom->conceptQuestions['storypoint'];?></label>
<div class="checkbox"> <?php echo html::radio('hourPoint', $lang->custom->conceptOptions->hourPoint, '0')?> </div>
</div>
<div class="form-group">
<label></label>
<div><?php echo html::submitButton();?></div>
</div>
</div>
</form>
<?php endif;?>
<?php if($this->config->conceptSetted):?>
<?php if(isset($this->config->conceptSetted)):?>
<?php include '../../common/view/footer.html.php';?>
<?php else:?>
</div>
</div>
</body>
</html>
<?php endif;?>
+5 -5
View File
@@ -22,21 +22,21 @@ function convertStringToDate(dateString)
*/
function computeEndDate(delta)
{
beginDate = $('#begin').val();
var beginDate = $('#begin').val();
if(!beginDate) return;
delta = parseInt(delta);
var delta = parseInt(delta);
beginDate = convertStringToDate(beginDate);
if((delta == 7 || delta == 14) && (beginDate.getDay() == 1))
{
delta = (weekend == 2) ? (delta - 2) : (delta - 1);
}
currentBeginDate = beginDate.toString('yyyy-MM-dd');
endDate = beginDate.addDays(delta - 1).toString('yyyy-MM-dd');
var currentBeginDate = beginDate.toString('yyyy-MM-dd');
var endDate = beginDate.addDays(delta - 1).toString('yyyy-MM-dd');
$('#begin').val(currentBeginDate);
$('#end').val(endDate);
$('#end').val(endDate).datetimepicker('update');
}
$('#begin').on('change', function()
+5 -37
View File
@@ -1,10 +1,8 @@
$(function()
{
var boardID = '';
var onlybody = config.requestType == 'GET' ? "&onlybody=yes" : "?onlybody=yes";
var isFirefox = $.zui.browser.firefox;
$.cookie('selfClose', 0, {expires:config.cookieLife, path:config.webRoot});
var $kanban = $('#kanban');
var kanbanModalTrigger = new $.zui.ModalTrigger({type: 'iframe', width:800});
var stageMap =
{
@@ -18,34 +16,6 @@ $(function()
}
};
// Get scrollbar width
var getScrollbarWidth = function ()
{
var outer = document.createElement("div");
outer.style.visibility = "hidden";
outer.style.width = "100px";
outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
document.body.appendChild(outer);
var widthNoScroll = outer.offsetWidth;
// force scrollbars
outer.style.overflow = "scroll";
// add innerdiv
var inner = document.createElement("div");
inner.style.width = "100%";
outer.appendChild(inner);
var widthWithScroll = inner.offsetWidth;
// remove divs
outer.parentNode.removeChild(outer);
return widthNoScroll - widthWithScroll;
};
var scrollbarWidth = getScrollbarWidth();
var fixBoardWidth = function()
{
var $table = $kanban.find('.table');
@@ -53,12 +23,12 @@ $(function()
var $cBoards = $table.find('thead>tr>th.c-board:not(.c-side)');
var boardCount = $cBoards.length;
var $cSide = $table.find('thead>tr>th.c-board.c-side');
var totalWidth = kanbanWidth - scrollbarWidth;
var totalWidth = kanbanWidth;
if ($cSide.length) totalWidth = totalWidth - ($cSide.outerWidth() + 5);
var cBoardWidth = Math.floor(totalWidth/boardCount) - 16;
$cBoards.not(':last').width(cBoardWidth);
$cBoards.first().width(cBoardWidth + 5);
$kanban.find('.boards > .board').width(cBoardWidth + 16 - 22);
$cBoards.width(cBoardWidth);
$kanban.find('.boards > .board').width(cBoardWidth);
};
fixBoardWidth();
$(window).on('resize', fixBoardWidth);
@@ -70,12 +40,10 @@ $(function()
if(selfClose == 1) $kanban.load(location.href + ' #kanban', fixBoardWidth);
};
var lastOperation;
var dropTo = function(id, from, to, type)
{
if(stageMap[type][from] && stageMap[type][from][to])
{
lastOperation = {id: id, from: from, to: to};
$.post(createLink(type, stageMap[type][from][to], 'stage=' + to), {'storyIDList[]':[id]}, function()
{
refresh();
+25
View File
@@ -23,5 +23,30 @@ $config->upgrade->bearychat['zh-tw'] = '倍洽';
$config->upgrade->bearychat['en'] = 'Bearychat';
$config->upgrade->bearychat['de'] = 'Bearychat';
$config->upgrade->discardedBugTypes['de']['interface'] = 'UI Optimierung';
$config->upgrade->discardedBugTypes['de']['newfeature'] = 'Neues Feature';
$config->upgrade->discardedBugTypes['de']['designchange'] = 'Design Änderung';
$config->upgrade->discardedBugTypes['de']['trackthings'] = 'Arbeit Verfolgen';
$config->upgrade->discardedBugTypes['en']['interface'] = 'Interface';
$config->upgrade->discardedBugTypes['en']['designchange'] = 'DesignChange';
$config->upgrade->discardedBugTypes['en']['newfeature'] = 'NewFeature';
$config->upgrade->discardedBugTypes['en']['trackthings'] = 'Tracking';
$config->upgrade->discardedBugTypes['fr']['interface'] = 'Interface';
$config->upgrade->discardedBugTypes['fr']['designchange'] = 'Design Change';
$config->upgrade->discardedBugTypes['fr']['newfeature'] = 'Nouvelle fonctionnalité';
$config->upgrade->discardedBugTypes['fr']['trackthings'] = 'Tracking';
$config->upgrade->discardedBugTypes['zh-cn']['interface'] = '界面优化';
$config->upgrade->discardedBugTypes['zh-cn']['designchange'] = '设计变更';
$config->upgrade->discardedBugTypes['zh-cn']['newfeature'] = "新增需求";
$config->upgrade->discardedBugTypes['zh-cn']['trackthings'] = '事务跟踪';
$config->upgrade->discardedBugTypes['zh-tw']['interface'] = '界面優化';
$config->upgrade->discardedBugTypes['zh-tw']['designchange'] = '設計變更';
$config->upgrade->discardedBugTypes['zh-tw']['newfeature'] = "新增需求";
$config->upgrade->discardedBugTypes['zh-tw']['trackthings'] = '事務跟蹤';
$config->delete['10.6'][] = 'module/chat/ext/control/extensions.php';
$config->delete['10.6'][] = 'module/common/ext/model/xuanxuan.php';
+46
View File
@@ -536,6 +536,8 @@ class upgradeModel extends model
$this->execSQL($this->getUpgradeFile('11.6.5'));
$this->fixGroupAcl();
$this->appendExec('11_6_5');
case '11_6_6':
$this->fixBugTypeList();
}
$this->deletePatch();
@@ -3444,4 +3446,48 @@ class upgradeModel extends model
public function appendExec($zentaoVersion)
{
}
/**
* Fix bug typeList.
*
* @access public
* @return bool
*/
public function fixBugTypeList()
{
foreach($this->config->upgrade->discardedBugTypes as $langCode => $types)
{
$bugs = $this->dao->select('type')->from(TABLE_BUG)->where('type')->in(array_keys($types))->fetchAll('type');
if(empty($bugs)) return true;
$usedTypes = array_keys($bugs);
$customedTypeList = $this->dao->select('*')->from(TABLE_LANG)
->where('lang')->in("$langCode,all")
->andWhere('module')->eq('bug')
->andWhere('section')->eq('typeList')
->fetchPairs('`key`');
$typesToSave = array_diff($usedTypes, $customedTypeList);
if(empty($typesToSave)) continue;
$langs = array();
foreach($typesToSave as $type) $langs[$type] = $types[$type];
if(empty($customedTypeList))
{
$lang = new stdclass;
$lang->bug = new stdclass;
$lang->productCommon = '';
$lang->projectCommon = '';
$lang->more = '';
$langFile = $this->app->getModuleRoot() . DS . 'bug' . DS . 'lang' . DS . $langCode . '.php';
if(is_file($langFile)) include $langFile;
$langs = array_merge($lang->bug->typeList, $langs);
}
foreach($langs as $type => $typeName) $this->loadModel('custom')->setItem("{$langCode}.bug.typeList.{$type}.1", $typeName);
}
return true;
}
}
+5 -2
View File
@@ -21,7 +21,7 @@ $jsFiles[] = $jsRoot . 'my.full.js';
/* Combine these js files. */
$allJSFile = $jsRoot . 'all.js';
$jsCode = '';
foreach($jsFiles as $jsFile) $jsCode .= "\n". file_get_contents($jsFile);
foreach($jsFiles as $jsFile) $jsCode .= "\n". str_replace('/*!', '/*', file_get_contents($jsFile));
file_put_contents($allJSFile, $jsCode);
/* Compress it. */
@@ -33,16 +33,19 @@ file_put_contents($allJSFile, $jsCode);
$themeRoot = $baseDir . '/www/theme/';
/* Iinclude config and lang file to get langs and themes. */
$config = new stdclass();
include $baseDir . '/config/config.php';
$lang = new stdclass();
$lang->productCommon = '';
$lang->projectCommon = '';
$lang->storyCommon = '';
include $baseDir . '/module/common/lang/zh-cn.php';
$langs = array_keys($config->langs);
$themes = array_keys($lang->themes);
/* Create css files for every them and every lang. */
$zuiCode = str_replace('../fonts', '../zui/fonts', file_get_contents($themeRoot . 'zui/css/min.css'));
$zuiCode = str_replace(array('/*!', '../fonts'), array('/*', '../zui/fonts'), file_get_contents($themeRoot . 'zui/css/min.css'));
foreach($langs as $lang)
{
foreach($themes as $theme)