Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}}
|
||||
if(!function_exists('getWebRoot')){function getWebRoot(){}}
|
||||
|
||||
/* 基本设置。Basic settings. */
|
||||
$config->version = '12.3.4'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it.
|
||||
$config->version = '12.4'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it.
|
||||
$config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP.
|
||||
$config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time.
|
||||
$config->timezone = 'Asia/Shanghai'; // 时区设置。 The time zone setting, for more see http://www.php.net/manual/en/timezones.php.
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
2020-07-27 12.3.4
|
||||
2020-07-27 12.4.stable
|
||||
修复的Bug
|
||||
3196 内网快速开发平台第二期排版错行
|
||||
2784 用户可以修改他人记录的工时信息
|
||||
|
||||
@@ -114,6 +114,9 @@ class bug extends control
|
||||
$moduleTree = $this->tree->getTreeMenu($productID, $viewType = 'bug', $startModuleID = 0, array('treeModel', 'createBugLink'), '', (int)$this->cookie->treeBranch);
|
||||
}
|
||||
|
||||
if(($browseType != 'bymodule' && $browseType != 'bybranch')) $this->session->set('bugBrowseType', $browseType);
|
||||
if(($browseType == 'bymodule' || $browseType == 'bybranch') and $this->session->bugBrowseType == 'bysearch') $this->session->set('bugBrowseType', 'unclosed');
|
||||
|
||||
/* Process the order by field. */
|
||||
if(!$orderBy) $orderBy = $this->cookie->qaBugOrder ? $this->cookie->qaBugOrder : 'id_desc';
|
||||
setcookie('qaBugOrder', $orderBy, 0, $this->config->webRoot, '', false, true);
|
||||
|
||||
@@ -64,7 +64,7 @@ function setAssignedTo(moduleID, productID)
|
||||
var realName = owner[1];
|
||||
var isExist = false;
|
||||
var count = $('#assignedTo').find('option').length;
|
||||
for(var i=0;i<count;i++)
|
||||
for(var i=0; i < count; i++)
|
||||
{
|
||||
if($('#assignedTo').get(0).options[i].value == account)
|
||||
{
|
||||
@@ -79,7 +79,6 @@ function setAssignedTo(moduleID, productID)
|
||||
}
|
||||
$('#assignedTo').val(account);
|
||||
$("#assignedTo").trigger("chosen:updated");
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -48,12 +48,10 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
|
||||
foreach($menus as $menuItem)
|
||||
{
|
||||
if(isset($menuItem->hidden)) continue;
|
||||
|
||||
$menuBrowseType = strpos($menuItem->name, 'QUERY') === 0 ? 'bySearch' : $menuItem->name;
|
||||
$label = "<span class='text'>{$menuItem->text}</span>";
|
||||
if($this->session->bugBrowseType != 'bysearch' && ($browseType == 'bymodule' or $browseType == 'bybranch')) $browseType = $this->session->bugBrowseType;
|
||||
$label .= $menuBrowseType == $browseType ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : '';
|
||||
$active = $menuBrowseType == $browseType ? 'btn-active-text' : '';
|
||||
$label .= $menuBrowseType == $this->session->bugBrowseType ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : '';
|
||||
$active = $menuBrowseType == $this->session->bugBrowseType ? 'btn-active-text' : '';
|
||||
|
||||
if($menuItem->name == 'my')
|
||||
{
|
||||
|
||||
@@ -336,7 +336,6 @@ $lang->testreport->menu->caselib = array('link' => '用例庫|caselib|browse')
|
||||
|
||||
$lang->caselib = new stdclass();
|
||||
$lang->caselib->menu = new stdclass();
|
||||
$lang->caselib->subMenu = $lang->qa->subMenu;
|
||||
$lang->caselib->menu->bug = array('link' => 'Bug|bug|browse|');
|
||||
$lang->caselib->menu->testcase = array('link' => '用例|testcase|browse|', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->caselib->menu->testtask = array('link' => '測試單|testtask|browse|');
|
||||
@@ -344,6 +343,11 @@ $lang->caselib->menu->testsuite = array('link' => '套件|testsuite|browse|');
|
||||
$lang->caselib->menu->report = array('link' => '報告|testreport|browse|');
|
||||
$lang->caselib->menu->caselib = array('link' => '用例庫|caselib|browse|libID=%s', 'alias' => 'create,createcase,view,edit,batchcreatecase,showimport', 'subModule' => 'tree,testcase');
|
||||
|
||||
$lang->caselib->subMenu = new stdclass();
|
||||
$lang->caselib->subMenu->testcase = new stdclass();
|
||||
$lang->caselib->subMenu->testcase->feature = array('link' => '功能測試|testcase|browse|', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'subModule' => 'tree,story');
|
||||
$lang->caselib->subMenu->testcase->unit = array('link' => '單元測試|testtask|browseUnits|');
|
||||
|
||||
$lang->ci = new stdclass();
|
||||
$lang->ci->menu = new stdclass();
|
||||
$lang->ci->menu->code = array('link' => '代碼|repo|browse|repoID=%s', 'alias' => 'diff,view,revision,log,blame,showsynccomment');
|
||||
@@ -523,7 +527,7 @@ $lang->error->date = "『%s』應當為合法的日期。";
|
||||
$lang->error->datetime = "『%s』應當為合法的日期。";
|
||||
$lang->error->code = "『%s』應當為字母或數字的組合。";
|
||||
$lang->error->account = "『%s』只能是字母和數字的組合三位以上。";
|
||||
$lang->error->passwordsame = "兩次密碼應當相等。";
|
||||
$lang->error->passwordsame = "兩次密碼應該相同。";
|
||||
$lang->error->passwordrule = "密碼應該符合規則,長度至少為六位。";
|
||||
$lang->error->accessDenied = '您沒有訪問權限';
|
||||
$lang->error->pasteImg = '您的瀏覽器不支持粘貼圖片!';
|
||||
|
||||
@@ -59,6 +59,10 @@ $config->dev->group['score'] = 'admin';
|
||||
$config->dev->group['config'] = 'admin';
|
||||
$config->dev->group['svn'] = 'repo';
|
||||
$config->dev->group['git'] = 'repo';
|
||||
$config->dev->group['ci'] = 'repo';
|
||||
$config->dev->group['compile'] = 'repo';
|
||||
$config->dev->group['jenkins'] = 'repo';
|
||||
$config->dev->group['job'] = 'repo';
|
||||
$config->dev->group['api'] = 'api';
|
||||
$config->dev->group['entry'] = 'api';
|
||||
$config->dev->group['log'] = 'api';
|
||||
|
||||
@@ -110,6 +110,10 @@ $lang->dev->tableList['repo'] = 'Code';
|
||||
$lang->dev->tableList['repohistory'] = 'Repo History';
|
||||
$lang->dev->tableList['repofiles'] = 'Repo Files';
|
||||
$lang->dev->tableList['repobranch'] = 'Repo Branch';
|
||||
$lang->dev->tableList['ci'] = 'CI';
|
||||
$lang->dev->tableList['compile'] = 'Compile';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = 'Job';
|
||||
|
||||
$lang->dev->groupList['my'] = 'Dashboard';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -118,7 +122,7 @@ $lang->dev->groupList['qa'] = 'QA';
|
||||
$lang->dev->groupList['doc'] = 'Dok';
|
||||
$lang->dev->groupList['report'] = 'Report';
|
||||
$lang->dev->groupList['company'] = 'Unternehmen';
|
||||
$lang->dev->groupList['repo'] = 'Code';
|
||||
$lang->dev->groupList['repo'] = 'CI';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = 'Message';
|
||||
|
||||
|
||||
@@ -110,6 +110,10 @@ $lang->dev->tableList['repo'] = 'Code';
|
||||
$lang->dev->tableList['repohistory'] = 'Repo History';
|
||||
$lang->dev->tableList['repofiles'] = 'Repo Files';
|
||||
$lang->dev->tableList['repobranch'] = 'Repo Branch';
|
||||
$lang->dev->tableList['ci'] = 'CI';
|
||||
$lang->dev->tableList['compile'] = 'Compile';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = 'Job';
|
||||
|
||||
$lang->dev->groupList['my'] = 'Dashboard';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -118,7 +122,7 @@ $lang->dev->groupList['qa'] = 'Test';
|
||||
$lang->dev->groupList['doc'] = 'Doc';
|
||||
$lang->dev->groupList['report'] = 'Report';
|
||||
$lang->dev->groupList['company'] = 'Company';
|
||||
$lang->dev->groupList['repo'] = 'Code';
|
||||
$lang->dev->groupList['repo'] = 'CI';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = 'Message';
|
||||
|
||||
|
||||
@@ -110,6 +110,10 @@ $lang->dev->tableList['repo'] = 'Code';
|
||||
$lang->dev->tableList['repohistory'] = 'Repo History';
|
||||
$lang->dev->tableList['repofiles'] = 'Repo Files';
|
||||
$lang->dev->tableList['repobranch'] = 'Repo Branch';
|
||||
$lang->dev->tableList['ci'] = 'CI';
|
||||
$lang->dev->tableList['compile'] = 'Compile';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = 'Job';
|
||||
|
||||
$lang->dev->groupList['my'] = 'Dashboard';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -118,7 +122,7 @@ $lang->dev->groupList['qa'] = 'QA';
|
||||
$lang->dev->groupList['doc'] = 'Doc';
|
||||
$lang->dev->groupList['report'] = 'Rapport';
|
||||
$lang->dev->groupList['company'] = 'Entreprise';
|
||||
$lang->dev->groupList['repo'] = 'Code';
|
||||
$lang->dev->groupList['repo'] = 'CI';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = 'Message';
|
||||
|
||||
|
||||
@@ -110,6 +110,10 @@ $lang->dev->tableList['repo'] = 'Mã';
|
||||
$lang->dev->tableList['repohistory'] = 'Repo History';
|
||||
$lang->dev->tableList['repofiles'] = 'Repo Files';
|
||||
$lang->dev->tableList['repobranch'] = 'Repo nhánh';
|
||||
$lang->dev->tableList['ci'] = 'CI';
|
||||
$lang->dev->tableList['compile'] = 'Compile';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = 'Job';
|
||||
|
||||
$lang->dev->groupList['my'] = 'Dashboard';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -118,7 +122,7 @@ $lang->dev->groupList['qa'] = 'QA';
|
||||
$lang->dev->groupList['doc'] = 'Tài liệu';
|
||||
$lang->dev->groupList['report'] = 'Báo cáo';
|
||||
$lang->dev->groupList['company'] = 'Doanh nghiệp';
|
||||
$lang->dev->groupList['repo'] = 'Mã';
|
||||
$lang->dev->groupList['repo'] = 'CI';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = 'Tin nhắn';
|
||||
|
||||
|
||||
@@ -110,6 +110,10 @@ $lang->dev->tableList['repo'] = '代码';
|
||||
$lang->dev->tableList['repohistory'] = '版本历史';
|
||||
$lang->dev->tableList['repofiles'] = '代码文件';
|
||||
$lang->dev->tableList['repobranch'] = '代码分支';
|
||||
$lang->dev->tableList['ci'] = '持续集成';
|
||||
$lang->dev->tableList['compile'] = '构建';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = '构建任务';
|
||||
|
||||
$lang->dev->groupList['my'] = '我的地盘';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -118,7 +122,7 @@ $lang->dev->groupList['qa'] = '测试';
|
||||
$lang->dev->groupList['doc'] = '文档';
|
||||
$lang->dev->groupList['report'] = '统计';
|
||||
$lang->dev->groupList['company'] = '组织';
|
||||
$lang->dev->groupList['repo'] = '代码';
|
||||
$lang->dev->groupList['repo'] = '持续集成';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = '消息';
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ $lang->dev->tableList['svn'] = 'SVN';
|
||||
$lang->dev->tableList['testcase'] = '測試用例';
|
||||
$lang->dev->tableList['testreport'] = '測試報告';
|
||||
$lang->dev->tableList['testsuite'] = '測試套件';
|
||||
$lang->dev->tableList['caselib'] = '用例庫';
|
||||
$lang->dev->tableList['tree'] = '模組關係';
|
||||
$lang->dev->tableList['upgrade'] = '更新';
|
||||
$lang->dev->tableList['cron'] = '定時任務';
|
||||
@@ -105,13 +106,14 @@ $lang->dev->tableList['log'] = '介面日誌';
|
||||
$lang->dev->tableList['message'] = '消息';
|
||||
$lang->dev->tableList['notify'] = '通知';
|
||||
$lang->dev->tableList['userview'] = '可訪問權限';
|
||||
$lang->dev->tableList['im_chatuser'] = '客戶端用戶';
|
||||
$lang->dev->tableList['im_message'] = '客戶端消息';
|
||||
$lang->dev->tableList['im_messagestatus'] = '客戶端狀態';
|
||||
$lang->dev->tableList['repo'] = '代碼';
|
||||
$lang->dev->tableList['repohistory'] = '版本歷史';
|
||||
$lang->dev->tableList['repofiles'] = '代碼檔案';
|
||||
$lang->dev->tableList['repobranch'] = '代碼分支';
|
||||
$lang->dev->tableList['ci'] = '持續整合';
|
||||
$lang->dev->tableList['compile'] = '構建';
|
||||
$lang->dev->tableList['jenkins'] = 'Jenkins';
|
||||
$lang->dev->tableList['job'] = '構建任務';
|
||||
|
||||
$lang->dev->groupList['my'] = '我的地盤';
|
||||
$lang->dev->groupList['product'] = $lang->productCommon;
|
||||
@@ -120,7 +122,7 @@ $lang->dev->groupList['qa'] = '測試';
|
||||
$lang->dev->groupList['doc'] = '文檔';
|
||||
$lang->dev->groupList['report'] = '統計';
|
||||
$lang->dev->groupList['company'] = '組織';
|
||||
$lang->dev->groupList['repo'] = '代碼';
|
||||
$lang->dev->groupList['repo'] = '持續整合';
|
||||
$lang->dev->groupList['api'] = 'API';
|
||||
$lang->dev->groupList['message'] = '消息';
|
||||
|
||||
|
||||
@@ -241,6 +241,8 @@ class devModel extends model
|
||||
$modules = array();
|
||||
foreach($moduleList as $module)
|
||||
{
|
||||
if(!file_exists($module . DS . 'control.php')) continue;
|
||||
|
||||
$module = basename($module);
|
||||
if($module == 'editor' or $module == 'help' or $module == 'setting' or $module == 'common') continue;
|
||||
$group = zget($this->config->dev->group, $module, 'other');
|
||||
|
||||
@@ -62,3 +62,4 @@ $lang->file->dangerFile = " 您選擇的檔案存在安全風險,系統
|
||||
$lang->file->errorSuffix = '壓縮包格式錯誤,只能上傳zip壓縮包!';
|
||||
$lang->file->errorExtract = '解壓縮失敗!可能檔案已經損壞,或壓縮包裡含有非法上傳檔案。';
|
||||
$lang->file->fileNotFound = '未找到該檔案,可能物理檔案已被刪除!';
|
||||
$lang->file->fileContentEmpty = '上傳檔案內容為空,請檢查後重新上傳。';
|
||||
|
||||
@@ -86,7 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = 'Letzte Version';
|
||||
$lang->misc->feature->detailed = 'Details';
|
||||
|
||||
$lang->misc->releaseDate['12.3.4'] = '2020-07-27';
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -131,7 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.3.4'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'Fix workflow', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => '');
|
||||
|
||||
@@ -86,7 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = 'Latest Version';
|
||||
$lang->misc->feature->detailed = 'Detail';
|
||||
|
||||
$lang->misc->releaseDate['12.3.4'] = '2020-07-27';
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -131,7 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.3.4'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'Fix workflow', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => '');
|
||||
|
||||
@@ -86,7 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = 'Dernière Version';
|
||||
$lang->misc->feature->detailed = 'Détail';
|
||||
|
||||
$lang->misc->releaseDate['12.3.4'] = '2020-07-27';
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -131,7 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.3.4'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'Fix workflow', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => '');
|
||||
|
||||
@@ -86,7 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = 'Latest Version';
|
||||
$lang->misc->feature->detailed = 'Chi tiết';
|
||||
|
||||
$lang->misc->releaseDate['12.3.4'] = '2020-07-27';
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -131,7 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.3.4'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'Fix workflow', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => '');
|
||||
|
||||
@@ -86,7 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = '最新版本';
|
||||
$lang->misc->feature->detailed = '详情';
|
||||
|
||||
$lang->misc->releaseDate['12.3.4'] = '2020-07-27';
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -131,7 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.3.4'][] = array('title'=>'修复Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'修复Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'修复Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'修复工作流。', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'修复重要程度高的Bug。', 'desc' => '');
|
||||
|
||||
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
|
||||
$lang->misc->feature->lastest = '最新版本';
|
||||
$lang->misc->feature->detailed = '詳情';
|
||||
|
||||
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
|
||||
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
|
||||
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
|
||||
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
|
||||
@@ -130,6 +131,8 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'修復Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.3.3'][] = array('title'=>'修復Bug', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.2'][] = array('title'=>'修復工作流。', 'desc' => '');
|
||||
$lang->misc->feature->all['12.3.1'][] = array('title'=>'修復重要程度高的Bug。', 'desc' => '');
|
||||
|
||||
@@ -133,7 +133,6 @@ class product extends control
|
||||
if($browseType == '') setcookie('treeBranch', (int)$branch, 0, $this->config->webRoot, '', false, false);
|
||||
}
|
||||
if($browseType == 'bybranch') setcookie('storyBranch', (int)$branch, 0, $this->config->webRoot, '', false, false);
|
||||
if($browseType != 'bymodule' and $browseType != 'bybranch') $this->session->set('storyBrowseType', $browseType);
|
||||
|
||||
$moduleID = ($browseType == 'bymodule') ? (int)$param : (($browseType == 'bysearch' or $browseType == 'bybranch') ? 0 : ($this->cookie->storyModule ? $this->cookie->storyModule : 0));
|
||||
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
|
||||
@@ -154,6 +153,9 @@ class product extends control
|
||||
$moduleTree = $this->tree->getTreeMenu($productID, $viewType = 'story', $startModuleID = 0, array('treeModel', $createModuleLink), '', (int)$this->cookie->treeBranch);
|
||||
}
|
||||
|
||||
if($browseType != 'bymodule' and $browseType != 'bybranch') $this->session->set('storyBrowseType', $browseType);
|
||||
if(($browseType == 'bymodule' or $browseType == 'bybranch') and $this->session->storyBrowseType == 'bysearch') $this->session->set('storyBrowseType', 'unclosed');
|
||||
|
||||
/* Process the order by field. */
|
||||
if(!$orderBy) $orderBy = $this->cookie->productStoryOrder ? $this->cookie->productStoryOrder : 'id_desc';
|
||||
setcookie('productStoryOrder', $orderBy, 0, $this->config->webRoot, '', false, true);
|
||||
|
||||
@@ -561,6 +561,7 @@ class productModel extends model
|
||||
|
||||
/* Set modules and browse type. */
|
||||
$modules = $moduleID ? $this->loadModel('tree')->getAllChildID($moduleID) : '0';
|
||||
|
||||
$browseType = $browseType == 'bybranch' ? 'bymodule' : $browseType;
|
||||
$browseType = ($browseType == 'bymodule' and $this->session->storyBrowseType and $this->session->storyBrowseType != 'bysearch') ? $this->session->storyBrowseType : $browseType;
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@ js::set('foldAll', $lang->project->treeLevel['root']);
|
||||
</div>
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php
|
||||
if($this->session->storyBrowseType == 'bysearch') $this->session->set('storyBrowseType', 'allstory');
|
||||
foreach(customModel::getFeatureMenu($this->moduleName, $this->methodName) as $menuItem)
|
||||
{
|
||||
if(isset($menuItem->hidden)) continue;
|
||||
|
||||
@@ -149,6 +149,8 @@ class project extends control
|
||||
$this->session->set('taskBrowseType', $browseType);
|
||||
}
|
||||
|
||||
if($browseType == 'bymodule' and $this->session->taskBrowseType == 'bysearch') $this->session->set('taskBrowseType', 'unclosed');
|
||||
|
||||
/* Set queryID, moduleID and productID. */
|
||||
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
|
||||
$moduleID = ($browseType == 'bymodule') ? (int)$param : (($browseType == 'bysearch' or $browseType == 'byproduct') ? 0 : $this->cookie->moduleBrowseParam);
|
||||
|
||||
@@ -227,6 +227,7 @@ $lang->project->end = '截止日期';
|
||||
$lang->project->lblStats = '工時統計';
|
||||
$lang->project->stats = '可用工時 <strong>%s</strong> 工時,總共預計 <strong>%s</strong> 工時,已經消耗 <strong>%s</strong> 工時,預計剩餘 <strong>%s</strong> 工時';
|
||||
$lang->project->taskSummary = "本頁共 <strong>%s</strong> 個任務,未開始 <strong>%s</strong>,進行中 <strong>%s</strong>,總預計 <strong>%s</strong> 工時,已消耗 <strong>%s</strong> 工時,剩餘 <strong>%s</strong> 工時。";
|
||||
$lang->project->pageSummary = "本頁共 <strong>%total%</strong> 個任務,未開始 <strong>%wait%</strong>,進行中 <strong>%doing%</strong>,總預計 <strong>%estimate%</strong> 工時,已消耗 <strong>%consumed%</strong> 工時,剩餘 <strong>%left%</strong> 工時。";
|
||||
$lang->project->checkedSummary = "選中 <strong>%total%</strong> 個任務,未開始 <strong>%wait%</strong>,進行中 <strong>%doing%</strong>,總預計 <strong>%estimate%</strong> 工時,已消耗 <strong>%consumed%</strong> 工時,剩餘 <strong>%left%</strong> 工時。";
|
||||
$lang->project->memberHoursAB = "<div>%s有 <strong>%s</strong> 工時</div>";
|
||||
$lang->project->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s可用工時</div><div class="segment-value">%s</div></div></div></div>';
|
||||
@@ -276,6 +277,7 @@ $lang->project->fixFirstWithLeft = '修改剩餘工時';
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, 由 <strong>$actor</strong> 創建。$extra' . "\n";
|
||||
$lang->project->action->managed = '$date, 由 <strong>$actor</strong> 維護。$extra' . "\n";
|
||||
$lang->project->action->edited = '$date, 由 <strong>$actor</strong> 編輯。$extra' . "\n";
|
||||
$lang->project->action->extra = '相關產品為 %s。';
|
||||
|
||||
/* 統計。*/
|
||||
|
||||
@@ -69,8 +69,8 @@ js::set('foldAll', $lang->project->treeLevel['root']);
|
||||
elseif($menuType != 'status' and $menuType != 'QUERY')
|
||||
{
|
||||
$label = "<span class='text'>{$menuItem->text}</span>";
|
||||
$label .= $menuType == $browseType ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : '';
|
||||
$active = $menuType == $browseType ? 'btn-active-text' : '';
|
||||
$label .= $menuType == $this->session->taskBrowseType ? " <span class='label label-light label-badge'>{$pager->recTotal}</span>" : '';
|
||||
$active = $menuType == $this->session->taskBrowseType ? 'btn-active-text' : '';
|
||||
$title = $menuType == 'needconfirm' ? "title='{$lang->task->storyChange}'" : '';
|
||||
echo html::a(inlink('task', "project=$projectID&type=$menuType"), $label, '', "id='{$menuType}' class='btn btn-link $active' $title");
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ $lang->story->batchAssignTo = "Mehere zuordnen";
|
||||
$lang->story->batchChangeModule = "Mehere Module ändern";
|
||||
$lang->story->viewAll = "Alle";
|
||||
$lang->story->skipStory = '%s is a parent story. It cannot be closed.';
|
||||
$lang->story->closedStory = 'Story %s is closed and will not be closed.';
|
||||
|
||||
$lang->story->common = 'Story';
|
||||
$lang->story->id = 'ID';
|
||||
|
||||
@@ -59,6 +59,7 @@ $lang->story->batchAssignTo = "Batch Assign";
|
||||
$lang->story->batchChangeModule = "Batch Change Modules";
|
||||
$lang->story->viewAll = "See All";
|
||||
$lang->story->skipStory = '%s is a parent story. It cannot be closed.';
|
||||
$lang->story->closedStory = 'Story %s is closed and will not be closed.';
|
||||
|
||||
$lang->story->common = 'Story';
|
||||
$lang->story->id = 'ID';
|
||||
|
||||
@@ -59,6 +59,7 @@ $lang->story->batchAssignTo = "Affecter par lot";
|
||||
$lang->story->batchChangeModule = "Changer Modules par lot";
|
||||
$lang->story->viewAll = "Voir Tout";
|
||||
$lang->story->skipStory = '%s is a parent story. It cannot be closed.';
|
||||
$lang->story->closedStory = 'Story %s is closed and will not be closed.';
|
||||
|
||||
$lang->story->common = 'Story';
|
||||
$lang->story->id = 'ID';
|
||||
|
||||
@@ -59,6 +59,7 @@ $lang->story->batchAssignTo = "Bàn giao hàng loạt";
|
||||
$lang->story->batchChangeModule = "Thay đổi Module hàng loạt";
|
||||
$lang->story->viewAll = "Xem tất cả";
|
||||
$lang->story->skipStory = '%s is a parent story. It cannot be closed.';
|
||||
$lang->story->closedStory = 'Story %s is closed and will not be closed.';
|
||||
|
||||
$lang->story->common = 'Câu chuyện';
|
||||
$lang->story->id = 'ID';
|
||||
|
||||
@@ -125,6 +125,9 @@ $lang->story->released = "已發佈{$lang->storyCommon}數";
|
||||
$lang->story->ditto = '同上';
|
||||
$lang->story->dittoNotice = "該{$lang->storyCommon}與上一{$lang->storyCommon}不屬於同一產品!";
|
||||
|
||||
$lang->story->needNotReviewList[0] = '需要評審';
|
||||
$lang->story->needNotReviewList[1] = '不需要評審';
|
||||
|
||||
$lang->story->useList[0] = '不使用';
|
||||
$lang->story->useList[1] = '使用';
|
||||
|
||||
@@ -224,6 +227,7 @@ $lang->story->mustChoosePreVersion = '必須選擇回溯的版本';
|
||||
$lang->story->noStory = "暫時沒有{$lang->storyCommon}。";
|
||||
$lang->story->ignoreChangeStage = "{$lang->storyCommon} %s 為草稿狀態,沒有修改其階段。";
|
||||
$lang->story->cannotDeleteParent = "不能刪除父{$lang->storyCommon}";
|
||||
$lang->story->moveChildrenTips = "修改父{$lang->storyCommon}的所屬產品會將其下的子{$lang->storyCommon}也移動到所選產品下。";
|
||||
|
||||
$lang->story->form = new stdclass();
|
||||
$lang->story->form->area = "該{$lang->storyCommon}所屬範圍";
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang->task->case = '相關用例';
|
||||
$lang->task->confirmStoryChange = "確認{$lang->storyCommon}變動";
|
||||
$lang->task->storyChange = "{$lang->storyCommon}變更";
|
||||
$lang->task->progress = '進度';
|
||||
$lang->task->progressAB = '%';
|
||||
$lang->task->progressAB = '進度';
|
||||
$lang->task->progressTips = '已消耗/(已消耗+剩餘)';
|
||||
$lang->task->copy = '複製任務';
|
||||
$lang->task->waitTask = '未開始的任務';
|
||||
@@ -200,7 +200,8 @@ $lang->task->cannotDeleteParent = '不能刪除父任務。';
|
||||
$lang->task->error = new stdclass();
|
||||
$lang->task->error->totalNumber = '"總計消耗"必須為數字';
|
||||
$lang->task->error->consumedNumber = '"本次消耗"必須為數字';
|
||||
$lang->task->error->estimateNumber = '"預計剩餘"必須為數字';
|
||||
$lang->task->error->estimateNumber = '"最初預計"必須為數字';
|
||||
$lang->task->error->leftNumber = '"預計剩餘"必須為數字';
|
||||
$lang->task->error->recordMinus = '工時不能為負數';
|
||||
$lang->task->error->consumedSmall = '"總計消耗"必須大於之前消耗';
|
||||
$lang->task->error->consumedThisTime = '請填寫"工時"';
|
||||
@@ -211,6 +212,7 @@ $lang->task->error->consumed = '任務:%s工時不能小於0,忽略
|
||||
$lang->task->error->assignedTo = '當前狀態的多人任務不能指派給任務團隊外的成員。';
|
||||
$lang->task->error->consumedEmpty = '"本次消耗"不能為空';
|
||||
$lang->task->error->deadlineSmall = '"截止日期"必須大於"預計開始"';
|
||||
$lang->task->error->alreadyStarted = '此任務已被啟動,不能重複啟動!';
|
||||
|
||||
/* Report. */
|
||||
$lang->task->report = new stdclass();
|
||||
|
||||
@@ -349,6 +349,8 @@ class testreport extends control
|
||||
$tasks = $this->testtask->getByList($report->tasks);
|
||||
$productIdList[$report->product] = $report->product;
|
||||
|
||||
foreach($tasks as $task) $this->setChartDatas($task->id);
|
||||
|
||||
$builds = $this->build->getByList($report->builds);
|
||||
$stories = !empty($builds) ? $this->testreport->getStories4Test($builds) : $this->story->getProjectStories($project->id);;
|
||||
$bugs = $this->testreport->getBugs4Test($builds, $productIdList, $begin, $end, 'project');
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
i.icon-help{font-size:10px;}
|
||||
#refresh a.btn {border-left:none;}
|
||||
|
||||
@@ -16,6 +16,7 @@ $lang->todo->createCycle = "創建周期待辦";
|
||||
$lang->todo->assignTo = "指派給";
|
||||
$lang->todo->assignedDate = "指派日期";
|
||||
$lang->todo->assignAction = "指派待辦";
|
||||
$lang->todo->start = "開始待辦";
|
||||
$lang->todo->activate = "激活待辦";
|
||||
$lang->todo->batchCreate = "批量添加";
|
||||
$lang->todo->edit = "編輯待辦";
|
||||
|
||||
@@ -43,6 +43,7 @@ $lang->tree->confirmRoot4Doc = "修改所屬文檔庫,會同時修改該分
|
||||
$lang->tree->successSave = '成功保存';
|
||||
$lang->tree->successFixed = '成功修正數據!';
|
||||
$lang->tree->repeatName = '模組名“%s”已經存在!';
|
||||
$lang->tree->shouldNotBlank = '模組名不能為空格!';
|
||||
|
||||
$lang->tree->module = '模組';
|
||||
$lang->tree->name = '模組名稱';
|
||||
|
||||
@@ -596,7 +596,7 @@ class upgradeModel extends model
|
||||
$this->saveLogs('Execute 12_3_2');
|
||||
$this->execSQL($this->getUpgradeFile('12.3.2'));
|
||||
$this->appendExec('12_3_2');
|
||||
case '12.3.3':
|
||||
case '12_3_3':
|
||||
$this->saveLogs('Execute 12_3_3');
|
||||
$this->execSQL($this->getUpgradeFile('12.3.3'));
|
||||
$this->addPriv12_3_3();
|
||||
|
||||
+4
-4
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user