* add new version and upgrade.

This commit is contained in:
z
2020-11-19 11:20:03 +08:00
parent 4b20ebefbe
commit 5362b9367f
34 changed files with 1386 additions and 76 deletions
+1 -1
View File
@@ -1 +1 @@
12.4.4
12.5.stable
+1 -1
View File
@@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}}
if(!function_exists('getWebRoot')){function getWebRoot(){}}
/* 基本设置。Basic settings. */
$config->version = '12.4.4'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it.
$config->version = '12.5'; // 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.
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -13,5 +13,7 @@ ALTER TABLE `zt_history` ADD INDEX `action` (`action`);
ALTER TABLE `zt_action` ADD INDEX `action` (`action`);
ALTER TABLE `zt_action` DROP INDEX `product`;
INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', '', 'CRProduct', '1');
INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', '', 'CRProject', '1');
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', '', 'CRProduct', '1');
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', '', 'CRProject', '1');
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', 'xuanxuan', 'pollingInterval', '60');
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', 'xuanxuan', 'aes', 'on');
+21 -5
View File
@@ -15,6 +15,7 @@ CREATE TABLE IF NOT EXISTS `zt_action` (
KEY `date` (`date`),
KEY `actor` (`actor`),
KEY `project` (`project`),
KEY `action` (`action`),
KEY `objectID` (`objectID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_block`;
@@ -108,6 +109,8 @@ CREATE TABLE IF NOT EXISTS `zt_bug` (
KEY `plan` (`plan`),
KEY `story` (`story`),
KEY `case` (`case`),
KEY `toStory` (`toStory`),
KEY `result` (`result`),
KEY `assignedTo` (`assignedTo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_build`;
@@ -185,6 +188,7 @@ CREATE TABLE IF NOT EXISTS `zt_case` (
PRIMARY KEY (`id`),
KEY `product` (`product`),
KEY `story` (`story`),
KEY `fromBug` (`fromBug`),
KEY `module` (`module`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_casestep`;
@@ -458,6 +462,7 @@ CREATE TABLE IF NOT EXISTS `zt_job` (
`svnDir` varchar(255) NOT NULL,
`atDay` varchar(255) DEFAULT NULL,
`atTime` varchar(10) DEFAULT NULL,
`customParam` text NOT NULL,
`comment` varchar(255) DEFAULT NULL,
`createdBy` varchar(30) NOT NULL,
`createdDate` datetime NOT NULL,
@@ -466,7 +471,6 @@ CREATE TABLE IF NOT EXISTS `zt_job` (
`lastExec` datetime DEFAULT NULL,
`lastStatus` varchar(255) DEFAULT NULL,
`lastTag` varchar(255) DEFAULT NULL,
`customParam` text NOT NULL,
`deleted` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@@ -492,7 +496,7 @@ CREATE TABLE IF NOT EXISTS `zt_module` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_notify`;
CREATE TABLE IF NOT EXISTS `zt_notify` (
`id` mediumint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`id` mediumint unsigned NOT NULL AUTO_INCREMENT,
`objectType` varchar(50) NOT NULL,
`objectID` mediumint unsigned NOT NULL,
`action` mediumint NOT NULL,
@@ -504,7 +508,9 @@ CREATE TABLE IF NOT EXISTS `zt_notify` (
`createdDate` datetime NOT NULL,
`sendTime` datetime NOT NULL,
`status` varchar(10) NOT NULL DEFAULT 'wait',
`failReason` text NOT NULL
`failReason` text NOT NULL,
PRIMARY KEY (`id`),
KEY `objectType_toList_status` (`objectType`,`toList`,`status`)
) ENGINE='MyISAM' COLLATE 'utf8_general_ci';
-- DROP TABLE IF EXISTS `zt_oauth`;
CREATE TABLE IF NOT EXISTS `zt_oauth` (
@@ -794,7 +800,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
`assignedTo` varchar(30) NOT NULL,
`assignedDate` datetime NOT NULL,
`estStarted` date NOT NULL,
`realStarted` date NOT NULL,
`realStarted` datetime NOT NULL,
`finishedBy` varchar(30) NOT NULL,
`finishedDate` datetime NOT NULL,
`finishedList` text NOT NULL,
@@ -809,6 +815,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
PRIMARY KEY (`id`),
KEY `project` (`project`),
KEY `story` (`story`),
KEY `parent` (`parent`),
KEY `assignedTo` (`assignedTo`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_taskestimate`;
@@ -1001,7 +1008,8 @@ CREATE TABLE IF NOT EXISTS `zt_user` (
UNIQUE KEY `account` (`account`),
KEY `dept` (`dept`),
KEY `email` (`email`),
KEY `commiter` (`commiter`)
KEY `commiter` (`commiter`),
KEY `deleted` (`deleted`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_usercontact`;
CREATE TABLE IF NOT EXISTS `zt_usercontact` (
@@ -1245,6 +1253,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'custom', 'working'),
(1, 'custom', 'index'),
(1, 'custom', 'restore'),
(1, 'custom', 'project'),
(1, 'custom', 'product'),
(1, 'custom', 'set'),
(1, 'dept', 'browse'),
(1, 'dept', 'delete'),
@@ -1455,6 +1465,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'story', 'change'),
(1, 'story', 'close'),
(1, 'story', 'create'),
(1, 'story', 'batchToTask'),
(1, 'story', 'delete'),
(1, 'story', 'edit'),
(1, 'story', 'assignTo'),
@@ -1728,6 +1739,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'story', 'bugs'),
(2, 'story', 'cases'),
(2, 'story', 'view'),
(2, 'story', 'batchToTask'),
(2, 'svn', 'apiSync'),
(2, 'svn', 'cat'),
(2, 'svn', 'diff'),
@@ -1923,6 +1935,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'story', 'cases'),
(3, 'story', 'view'),
(3, 'story', 'zeroCase'),
(3, 'story', 'batchToTask'),
(3, 'svn', 'apiSync'),
(3, 'svn', 'cat'),
(3, 'svn', 'diff'),
@@ -2210,6 +2223,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'story', 'cases'),
(4, 'story', 'view'),
(4, 'story', 'zeroCase'),
(4, 'story', 'batchToTask'),
(4, 'svn', 'apiSync'),
(4, 'svn', 'cat'),
(4, 'svn', 'diff'),
@@ -2746,6 +2760,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'story', 'cases'),
(6, 'story', 'view'),
(6, 'story', 'zeroCase'),
(6, 'story', 'batchToTask'),
(6, 'svn', 'apiSync'),
(6, 'svn', 'cat'),
(6, 'svn', 'diff'),
@@ -3223,6 +3238,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'story', 'cases'),
(8, 'story', 'view'),
(8, 'story', 'zeroCase'),
(8, 'story', 'batchToTask'),
(8, 'svn', 'apiSync'),
(8, 'svn', 'cat'),
(8, 'svn', 'diff'),
+97
View File
@@ -1,3 +1,100 @@
2020-11-19 12.5.stable
完成的需求
5487 在禅道专业版、企业版的授权中增加版本号限制
5458 任务实际开始、完成时间记录上完整的日期+时分秒
5389 安装成功后页面语言优化
5387 后台-二开-应用 代号错误提醒多余标点去掉
5383 增加需求一键转任务功能
5382 删除项目的时候给一个确认提示
5261 看板模式下面移动任务到进行中甬道时默认保持指派给字段不变
5221 测试-测试单关联用例的搜索中增加所属库字段
5219 文档增加抄送功能
5218 可以按照指定的日期添加待办
5217 期望版本增加标签和查询功能。
5194 任务页面点击相关需求可以直接对需求创建用例
5193 期望用例在测试单中显示和用例库的关联图标
5144 后台自定义增加产品和项目的关闭后是否只读的开关
5126 构建增加给jenkins传参功能
4421 一键安装包兼容centos8
4329 增加webhook权限控制
3423 session.save_path 逻辑调整
修复的Bug
3625 CNVD-C-2020-238015 禅道CMS存在文件上传漏洞
3621 测试单中用例搜索后无法正常排序
3620 升级成功后默认不应该跳转到非研发页面
3619 国际版禅道安装和升级页面,zdoo网址应换为英文网址链接
3618 提bug页面IE浏览器加载所有用户失败
3617 批量编辑修改需求阶段后未起效
3612 项目-需求 点击B字段中数据弹窗中数据统计问题
3600 windows一键安装包无法更改数据库密码
3599 xampp中存在大量mariadb ssl报错
3597 父需求的任务数不会自动计算
3596 CNVD-C-2020-204858_关于zentao开源版V12.3.3后台存在任意文件读取漏洞的情况通报
3595 CNVD-C-2020-204868_关于zentao开源版后台存在SQL注入漏洞的情况通报
3594 CNVD-C-2020-230107 关于禅道专业版后台存在命令执行漏洞的情况通报
3593 CNVD-C-2020-209376_关于青岛易企天创管理咨询有限公司禅道PMS存在SQL注入漏洞的情况通报
3592 项目需求下批量创建需求没有关联到项目
3591 安装界面最后一步,输入框离文字太远
3590 创建OK文件的页面,需要把刷新按钮加回来
3589 bug 编辑页面需求没有根据模块展示,需要切换下模块才会规则生效
3579 访问禅道加载失败时,给出刷新按钮
3578 禅道应用的logo背景需要优化
3577 人数较多时,抄送功能输入用户名回车后,输入信息不查询下一个用户名
3576 父计划关联需求设计问题
3575 开始任务关闭弹窗后按钮禁用
3573 创建OK文件的页面,需要添加网页标题头
3572 地盘需求只显示父需求
3571 必填项限制无法批量创建测试任务。
3570 细分需求后进行指派,被指派人我的地盘-需求显示问题
3569 安装翻译插件后,创建翻译提示优化
3568 windows和linux一键安装包切换日语后页面未能正确跳转
3567 客户端调试页面ip地址建议与服务器设置页保持一致
3566 企业微信应用消息绑定用户时提示“malformed”
3565 文档中编辑表格属性报错后未生效
3564 批量编辑用例模块处没有显示title
3563 zbox一键安装包域名解析问题
3562 自定义添加需求来源后导出需求模板无法正常打开
3561 添加必填后批量创建需求页面提示后无法正常跳转
3557 创建需求保存时页面有报错
3551 父任务指派,提示剩余工时不能为空
3550 禁用和删除日志插件后文件无法成功删除
3548 批量编辑项目时,调整重名的逻辑
3546 终身版插件安装后到期日期显示错误
3543 客户端登录禅道后用户最后的登录ip记录的是xxd的ip
3535 所属计划设为必填项后不生效
3534 用户后台绑定社区账号无法确认
3507 集成版本库点击刷新按钮数据不更新
3505 查看相关需求不存在时出现空白弹窗
3504 客户端创建文档链接报错
3503 客户端关于页面无法展示
3502 在步骤里面编辑内容会触发页面自动滚动
3501 发布关联子需求后父需求的阶段没有自动更新
3500 xampp启动失败没有任何日志记录
3496 帮助手册不能正常查看
3493 用户被锁定,仍可以成功登录禅道客户端
3492 锁定用户的时间,有时没到10分钟就失效
3490 插件目录结构未显示信息
3489 插件详情页页面需优化
3482 改进意见:任务确认变更,展示需求的详情信息
3481 9.6升级到12.1,有sql报错
3480 11.5升级到12.3,升级失败有sql报错
3479 通知邮件中的连接地址拼装不正确
3319 创建任务提示报错,还可以正常创建
3250 bug详情页面有2排操作按钮都可以点击
3212 Markdown格式的文档中表格列宽显示问题
3097 数据量大导致禅道操作过程中锁表
3089 导出文件时编码字段默认“UTF-8”,导出的excel中文字不能正常展示。
3078 客户端如果停留在我的地盘点击通知里面的信息跳转不过去
3040 覆盖新版本代码后不会自动跳转upgrade.php会报错config或者userview表不存在
3022 发布bug列表页面显示优化
2979 数据比较多时下拉框渲染比较慢
2963 项目-版本中解决的bug移除不过后bug解决版本没有更新
2909 linux 在centos 8.0 兼容问题
2855 阿里云mysql,备份数据还原报错
2604 关闭客户端提醒后,整个页面都置灰
2020-11-03 12.4.4
2020-10-13 12.4.3
修复的Bug
2385 客户端访问禅道多次点击新手教程页面空白
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => 'Notification|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => 'Custom|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => 'Custom|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
$lang->admin->menu->extension = array('link' => 'Extension|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => 'Entwicklung|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => 'Notification|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => 'Custom|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => 'Custom|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
$lang->admin->menu->extension = array('link' => 'Extension|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => 'Accueil|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => 'Notification|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => 'Personnalisation|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => 'Personnalisation|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => 'Intégration|admin|sso');
$lang->admin->menu->extension = array('link' => 'Extension|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => 'Dévelop.|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => 'Thông báo|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => 'Custom|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => 'Custom|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
$lang->admin->menu->extension = array('link' => 'Extension|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首页|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => '通知|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => '自定义|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => '自定义|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => '集成|admin|sso', 'subModule' => '');
$lang->admin->menu->extension = array('link' => '插件|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => '二次开发|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+1 -1
View File
@@ -408,7 +408,7 @@ $lang->admin = new stdclass();
$lang->admin->menu = new stdclass();
$lang->admin->menu->index = array('link' => '首頁|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
$lang->admin->menu->message = array('link' => '通知|message|index', 'subModule' => 'message,mail,webhook');
$lang->admin->menu->custom = array('link' => '自定義|custom|product', 'subModule' => 'custom');
$lang->admin->menu->custom = array('link' => '自定義|custom|index', 'subModule' => 'custom');
$lang->admin->menu->sso = array('link' => '整合|admin|sso', 'subModule' => '');
$lang->admin->menu->extension = array('link' => '插件|extension|browse', 'subModule' => 'extension');
$lang->admin->menu->dev = array('link' => '二次開發|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+8 -1
View File
@@ -19,7 +19,14 @@ class custom extends control
*/
public function index()
{
die(js::locate(inlink('set')));
if(common::hasPriv('custom', 'product')) die(js::locate(inlink('product')));
if(common::hasPriv('custom', 'project')) die(js::locate(inlink('project')));
if(common::hasPriv('custom', 'set')) die(js::locate(inlink('set')));
foreach($this->lang->custom->system as $sysObject)
{
if(common::hasPriv('custom', $sysObject)) die(js::locate(inlink($sysObject)));
}
}
/**
+1 -1
View File
@@ -106,7 +106,7 @@ $lang->custom->notice->noClosedBlock = '沒有永久關閉的區
$lang->custom->notice->required = '頁面提交時,選中的欄位必填';
$lang->custom->notice->conceptResult = '我們已經根據您的選擇為您設置了<b> %s-%s </b>模式,使用<b>%s</b> + <b> %s</b>。';
$lang->custom->notice->conceptPath = '您可以在:後台 -> 自定義 -> 流程頁面修改。';
$lang->custom->notice->readOnlyOfProduct = '禁止修改後,已關閉' . $lang->productCommon . '下的' . $lang->storyCommon . '、Bug、用例、日誌、發布、計劃都禁止修改。';
$lang->custom->notice->readOnlyOfProduct = '禁止修改後,已關閉' . $lang->productCommon . '下的' . $lang->storyCommon . '、Bug、用例、日誌、發佈、計劃都禁止修改。';
$lang->custom->notice->readOnlyOfProject = '禁止修改後,已關閉' . $lang->projectCommon . '下的任務、版本、日誌以及關聯需求都禁止修改。';
$lang->custom->notice->indexPage['product'] = "從8.2版本起增加了產品主頁視圖,是否預設進入產品主頁?";
+7
View File
@@ -47,6 +47,7 @@ $lang->doc->users = '用戶';
$lang->doc->item = '項';
$lang->doc->num = '文檔數量';
$lang->doc->searchResult = '搜索結果';
$lang->doc->mailto = '抄送給';
$lang->doc->moduleDoc = '按模組瀏覽';
$lang->doc->searchDoc = '搜索';
@@ -155,6 +156,12 @@ $lang->doc->customShowLibsList['zero'] = '顯示空文檔的庫';
$lang->doc->customShowLibsList['children'] = '顯示子分類的文檔';
$lang->doc->customShowLibsList['unclosed'] = '只顯示未關閉的項目';
$lang->doc->mail = new stdclass();
$lang->doc->mail->create = new stdclass();
$lang->doc->mail->edit = new stdclass();
$lang->doc->mail->create->title = "%s創建了文檔 #%s:%s";
$lang->doc->mail->edit->title = "%s編輯了文檔 #%s:%s";
$lang->doc->confirmDelete = "您確定刪除該文檔嗎?";
$lang->doc->confirmDeleteLib = "您確定刪除該文檔庫嗎?";
$lang->doc->errorEditSystemDoc = "系統文檔庫無需修改。";
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = 'Rechte kopieren';
$lang->group->copyOptions['copyUser'] = 'Benutzer kopieren';
$lang->group->versions[''] = 'Verlauf';
$lang->group->versions['12_5'] = 'ZenTao12.5';
$lang->group->versions['12_3'] = 'ZenTao12.3';
$lang->group->versions['11_6_2'] = 'ZenTao11.6.2';
$lang->group->versions['10_6'] = 'ZenTao10.6';
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = 'Copy Privileges';
$lang->group->copyOptions['copyUser'] = 'Copy Users';
$lang->group->versions[''] = 'History';
$lang->group->versions['12_5'] = 'ZenTao12.5';
$lang->group->versions['12_3'] = 'ZenTao12.3';
$lang->group->versions['11_6_2'] = 'ZenTao11.6.2';
$lang->group->versions['10_6'] = 'ZenTao10.6';
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = 'Copier Privilèges';
$lang->group->copyOptions['copyUser'] = 'Copier Utilisateurs';
$lang->group->versions[''] = 'History';
$lang->group->versions['12_5'] = 'ZenTao12.5';
$lang->group->versions['12_3'] = 'ZenTao12.3';
$lang->group->versions['11_6_2'] = 'ZenTao11.6.2';
$lang->group->versions['10_6'] = 'ZenTao10.6';
+12 -6
View File
@@ -827,6 +827,8 @@ $lang->mail->methodOrder[65] = 'ztCloud';
$lang->resource->custom = new stdclass();
$lang->resource->custom->index = 'index';
$lang->resource->custom->set = 'set';
$lang->resource->custom->project = 'project';
$lang->resource->custom->product = 'product';
$lang->resource->custom->restore = 'restore';
$lang->resource->custom->flow = 'flow';
$lang->resource->custom->working = 'working';
@@ -835,11 +837,13 @@ $lang->resource->custom->timezone = 'timezone';
$lang->custom->methodOrder[5] = 'index';
$lang->custom->methodOrder[10] = 'set';
$lang->custom->methodOrder[15] = 'restore';
$lang->custom->methodOrder[20] = 'flow';
$lang->custom->methodOrder[25] = 'working';
$lang->custom->methodOrder[30] = 'setPublic';
$lang->custom->methodOrder[35] = 'timezone';
$lang->custom->methodOrder[15] = 'project';
$lang->custom->methodOrder[10] = 'product';
$lang->custom->methodOrder[25] = 'restore';
$lang->custom->methodOrder[30] = 'flow';
$lang->custom->methodOrder[35] = 'working';
$lang->custom->methodOrder[40] = 'setPublic';
$lang->custom->methodOrder[45] = 'timezone';
$lang->resource->datatable = new stdclass();
$lang->resource->datatable->setGlobal = 'setGlobal';
@@ -1479,7 +1483,9 @@ $lang->changelog['12.3'][] = 'testtask-importUnitResult';
$lang->changelog['12.3'][] = 'job-view';
$lang->changelog['12.3'][] = 'ci-commitResult';
$lang->changelog['12.4.5'][] = 'story-batchToTask';
$lang->changelog['12.5'][] = 'story-batchToTask';
$lang->changelog['12.5'][] = 'custom-product';
$lang->changelog['12.5'][] = 'custom-project';
global $config;
if($config->global->flow != 'full')
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = 'Copy Privileges';
$lang->group->copyOptions['copyUser'] = 'Copy người dùng';
$lang->group->versions[''] = 'Lịch sử';
$lang->group->versions['12_5'] = 'ZenTao12.5';
$lang->group->versions['12_3'] = 'ZenTao12.3';
$lang->group->versions['11_6_2'] = 'ZenTao11.6.2';
$lang->group->versions['10_6'] = 'ZenTao10.6';
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = '复制权限';
$lang->group->copyOptions['copyUser'] = '复制用户';
$lang->group->versions[''] = '修改历史';
$lang->group->versions['12_5'] = '禅道12.5';
$lang->group->versions['12_3'] = '禅道12.3';
$lang->group->versions['11_6_2'] = '禅道11.6.2';
$lang->group->versions['10_6'] = '禅道10.6';
+1
View File
@@ -51,6 +51,7 @@ $lang->group->copyOptions['copyPriv'] = '複製權限';
$lang->group->copyOptions['copyUser'] = '複製用戶';
$lang->group->versions[''] = '修改歷史';
$lang->group->versions['12_5'] = '禪道12.5';
$lang->group->versions['12_3'] = '禪道12.3';
$lang->group->versions['11_6_2'] = '禪道11.6.2';
$lang->group->versions['10_6'] = '禪道10.6';
+3
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Letzte Version';
$lang->misc->feature->detailed = 'Details';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,6 +136,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.5.stable'][] = array('title' => 'Fix Bug. Complete high priority story.', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title'=>'Compatible with professional and enterprise editions', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'Fix Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'Fix Bug', 'desc' => '');
+3
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Latest Version';
$lang->misc->feature->detailed = 'Detail';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,6 +136,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.5.stable'][] = array('title' => 'Fix Bug. Complete high priority story.', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title'=>'Compatible with professional and enterprise editions', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'Fix Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'Fix Bug', 'desc' => '');
+3
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Dernière Version';
$lang->misc->feature->detailed = 'Détail';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,6 +136,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.5.stable'][] = array('title' => 'Fix Bug. Complete high priority story.', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title'=>'Compatible with professional and enterprise editions', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'Fix Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'Fix Bug', 'desc' => '');
+3
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Latest Version';
$lang->misc->feature->detailed = 'Chi tiết';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,6 +136,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.5.stable'][] = array('title' => 'Fix Bug. Complete high priority story.', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title'=>'Compatible with professional and enterprise editions', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'Fix Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'Fix Bug', 'desc' => '');
+7 -4
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = '最新版本';
$lang->misc->feature->detailed = '详情';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,10 +136,12 @@ $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.4'][] = array('title'=>'兼容专业版和企业版', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'修复Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'修复Bug', 'desc' => '');
$lang->misc->feature->all['12.4.1'][] = array('title'=>'修复Bug', 'desc' => '');
$lang->misc->feature->all['12.5.stable'][] = array('title' => '解决bug,完成高优先级需求。', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title' => '兼容专业版和企业版', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title' => '修复Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title' => '修复Bug', 'desc' => '');
$lang->misc->feature->all['12.4.1'][] = array('title' => '修复Bug', 'desc' => '');
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'修复Bug', 'desc' => '');
+7 -4
View File
@@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = '最新版本';
$lang->misc->feature->detailed = '詳情';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
@@ -135,10 +136,12 @@ $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.4'][] = array('title'=>'兼容專業版和企業版', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title'=>'修復Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title'=>'修復Bug', 'desc' => '');
$lang->misc->feature->all['12.4.1'][] = array('title'=>'修復Bug', 'desc' => '');
$lang->misc->feature->all['12.5.stable'][] = array('title' => '解決bug,完成高優先順序需求。', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title' => '兼容專業版和企業版', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title' => '修復Bug', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title' => '修復Bug', 'desc' => '');
$lang->misc->feature->all['12.4.1'][] = array('title' => '修復Bug', 'desc' => '');
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'修復Bug', 'desc' => '');
+3
View File
@@ -275,6 +275,9 @@ $lang->project->noweekend = '去除周末';
$lang->project->withweekend = '顯示周末';
$lang->project->interval = '間隔';
$lang->project->fixFirstWithLeft = '修改剩餘工時';
$lang->project->unfinishedProject = "該{$lang->projectCommon}下還有";
$lang->project->unfinishedTask = "[%s]個未完成的任務,";
$lang->project->unresolvedBug = "[%s]個未解決的bug,";
$lang->project->action = new stdclass();
$lang->project->action->opened = '$date, 由 <strong>$actor</strong> 創建。$extra' . "\n";
+61 -45
View File
@@ -9,57 +9,63 @@
* @version $Id: zh-tw.php 5141 2013-07-15 05:57:15Z chencongzhi520@gmail.com $
* @link http://www.zentao.net
*/
$lang->story->create = "提{$lang->storyCommon}";
$lang->story->batchCreate = "批量創建";
$lang->story->change = "變更";
$lang->story->changeAction = "變更{$lang->storyCommon}";
$lang->story->changed = "{$lang->storyCommon}變更";
$lang->story->assignTo = '指派';
$lang->story->assignAction = "指派{$lang->storyCommon}";
$lang->story->review = '評審';
$lang->story->reviewAction = "評審{$lang->storyCommon}";
$lang->story->needReview = '需要評審';
$lang->story->batchReview = '批量評審';
$lang->story->edit = "編輯";
$lang->story->batchEdit = "批量編輯";
$lang->story->subdivide = '細分';
$lang->story->subdivideAction = "細分{$lang->storyCommon}";
$lang->story->splitRequirent = '拆分';
$lang->story->close = '關閉';
$lang->story->closeAction = "關閉{$lang->storyCommon}";
$lang->story->batchClose = '批量關閉';
$lang->story->activate = '激活';
$lang->story->activateAction = "激活{$lang->storyCommon}";
$lang->story->delete = "刪除";
$lang->story->deleteAction = "刪除{$lang->storyCommon}";
$lang->story->view = "{$lang->storyCommon}詳情";
$lang->story->setting = "設置";
$lang->story->tasks = "相關任務";
$lang->story->bugs = "相關Bug";
$lang->story->cases = "相關用例";
$lang->story->taskCount = '任務數';
$lang->story->bugCount = 'Bug數';
$lang->story->caseCount = '用例數';
$lang->story->taskCountAB = 'T';
$lang->story->bugCountAB = 'B';
$lang->story->caseCountAB = 'C';
$lang->story->linkStory = "關聯{$lang->storyCommon}";
$lang->story->unlinkStory = "移除相關{$lang->storyCommon}";
$lang->story->export = "導出數據";
$lang->story->exportAction = "導出{$lang->storyCommon}";
$lang->story->zeroCase = "零用例{$lang->storyCommon}";
$lang->story->zeroTask = "只列零任務{$lang->storyCommon}";
$lang->story->reportChart = "統計報表";
$lang->story->reportAction = "統計報表";
$lang->story->copyTitle = "同{$lang->storyCommon}名稱";
$lang->story->create = "提{$lang->storyCommon}";
$lang->story->batchCreate = "批量創建";
$lang->story->change = "變更";
$lang->story->changeAction = "變更{$lang->storyCommon}";
$lang->story->changed = "{$lang->storyCommon}變更";
$lang->story->assignTo = '指派';
$lang->story->assignAction = "指派{$lang->storyCommon}";
$lang->story->review = '評審';
$lang->story->reviewAction = "評審{$lang->storyCommon}";
$lang->story->needReview = '需要評審';
$lang->story->batchReview = '批量評審';
$lang->story->edit = "編輯";
$lang->story->batchEdit = "批量編輯";
$lang->story->subdivide = '細分';
$lang->story->subdivideAction = "細分{$lang->storyCommon}";
$lang->story->splitRequirent = '拆分';
$lang->story->close = '關閉';
$lang->story->closeAction = "關閉{$lang->storyCommon}";
$lang->story->batchClose = '批量關閉';
$lang->story->activate = '激活';
$lang->story->activateAction = "激活{$lang->storyCommon}";
$lang->story->delete = "刪除";
$lang->story->deleteAction = "刪除{$lang->storyCommon}";
$lang->story->view = "{$lang->storyCommon}詳情";
$lang->story->setting = "設置";
$lang->story->tasks = "相關任務";
$lang->story->bugs = "相關Bug";
$lang->story->cases = "相關用例";
$lang->story->taskCount = '任務數';
$lang->story->bugCount = 'Bug數';
$lang->story->caseCount = '用例數';
$lang->story->taskCountAB = 'T';
$lang->story->bugCountAB = 'B';
$lang->story->caseCountAB = 'C';
$lang->story->linkStory = "關聯{$lang->storyCommon}";
$lang->story->unlinkStory = "移除相關{$lang->storyCommon}";
$lang->story->export = "導出數據";
$lang->story->exportAction = "導出{$lang->storyCommon}";
$lang->story->zeroCase = "零用例{$lang->storyCommon}";
$lang->story->zeroTask = "只列零任務{$lang->storyCommon}";
$lang->story->reportChart = "統計報表";
$lang->story->reportAction = "統計報表";
$lang->story->copyTitle = "同{$lang->storyCommon}名稱";
$lang->story->batchChangePlan = "批量修改計劃";
$lang->story->batchChangeBranch = "批量修改分支";
$lang->story->batchChangeStage = "批量修改階段";
$lang->story->batchAssignTo = "批量指派";
$lang->story->batchChangeModule = "批量修改模組";
$lang->story->viewAll = '查看全部';
$lang->story->skipStory = '需求:%s 為父需求,將不會被關閉。';
$lang->story->closedStory = '需求:%s 已關閉,將不會被關閉。';
$lang->story->toTask = '轉任務';
$lang->story->batchToTask = '批量轉任務';
$lang->story->convertRelations = '換算關係';
$lang->story->skipStory = '需求:%s 為父需求,將不會被關閉。';
$lang->story->closedStory = '需求:%s 已關閉,將不會被關閉。';
$lang->story->batchToTaskTips = "此操作會創建與所選{$lang->storyCommon}同名的任務,並將{$lang->storyCommon}關聯到任務中,已關閉的需求不會轉為任務。";
$lang->story->successToTask = '批量轉任務成功';
$lang->story->common = $lang->storyCommon;
$lang->story->id = '編號';
@@ -121,6 +127,8 @@ $lang->story->allStories = "所有{$lang->storyCommon}";
$lang->story->unclosed = '未關閉';
$lang->story->deleted = '已刪除';
$lang->story->released = "已發佈{$lang->storyCommon}數";
$lang->story->one = '一個';
$lang->story->field = '同步的欄位';
$lang->story->ditto = '同上';
$lang->story->dittoNotice = "該{$lang->storyCommon}與上一{$lang->storyCommon}不屬於同一產品!";
@@ -337,3 +345,11 @@ $lang->story->chosen->reviewedBy = '選擇評審人...';
$lang->story->notice = new stdClass();
$lang->story->notice->closed = "您選擇的{$lang->storyCommon}已經被關閉了!";
$lang->story->convertToTask = new stdClass();
$lang->story->convertToTask->fieldList = array();
$lang->story->convertToTask->fieldList['module'] = '所屬模組';
$lang->story->convertToTask->fieldList['spec'] = "{$lang->storyCommon}描述";
$lang->story->convertToTask->fieldList['pri'] = '優先順序';
$lang->story->convertToTask->fieldList['mailto'] = '抄送給';
$lang->story->convertToTask->fieldList['assignedTo'] = '指派給';
+1
View File
@@ -128,3 +128,4 @@ $lang->upgrade->fromVersions['12_4'] = '12.4';
$lang->upgrade->fromVersions['12_4_1'] = '12.4.1';
$lang->upgrade->fromVersions['12_4_2'] = '12.4.2';
$lang->upgrade->fromVersions['12_4_3'] = '12.4.3';
$lang->upgrade->fromVersions['12_4_4'] = '12.4.4';
+45
View File
@@ -619,6 +619,11 @@ class upgradeModel extends model
case '12_4_3':
$this->saveLogs('Execute 12_4_3');
$this->appendExec('12_4_3');
case '12_4_4':
$this->saveLogs('Execute 12_4_4');
$this->execSQL($this->getUpgradeFile('12.4.4'));
$this->adjustPriv12_5();
$this->appendExec('12_4_4');
}
$this->deletePatch();
@@ -798,6 +803,7 @@ class upgradeModel extends model
case '12_4_1': $confirmContent .= file_get_contents($this->getUpgradeFile('12.4.1'));
case '12_4_2': $confirmContent .= file_get_contents($this->getUpgradeFile('12.4.2'));
case '12_4_3':
case '12_4_4': $confirmContent .= file_get_contents($this->getUpgradeFile('12.4.4'));
}
return str_replace('zt_', $this->config->db->prefix, $confirmContent);
}
@@ -3872,6 +3878,45 @@ class upgradeModel extends model
return true;
}
/**
* Adjust priv 12.5.
*
* @access public
* @return bool
*/
public function adjustPriv12_5()
{
$this->saveLogs('Run Method ' . __FUNCTION__);
$groups = $this->dao->select('*')->from(TABLE_GROUPPRIV)->where('module')->eq('custom')->andWhere('method')->eq('set')->fetchPairs('group', 'group');
foreach($groups as $groupID)
{
$groupPriv = new stdclass();
$groupPriv->group = $groupID;
$groupPriv->module = 'custom';
$groupPriv->method = 'product';
$this->dao->replace(TABLE_GROUPPRIV)->data($groupPriv)->exec();
$this->saveLogs($this->dao->get());
$groupPriv->method = 'project';
$this->dao->replace(TABLE_GROUPPRIV)->data($groupPriv)->exec();
$this->saveLogs($this->dao->get());
}
$groups = $this->dao->select('*')->from(TABLE_GROUPPRIV)->where('module')->eq('task')->andWhere('method')->eq('create')->fetchPairs('group', 'group');
foreach($groups as $groupID)
{
$groupPriv = new stdclass();
$groupPriv->group = $groupID;
$groupPriv->module = 'story';
$groupPriv->method = 'batchToTask';
$this->dao->replace(TABLE_GROUPPRIV)->data($groupPriv)->exec();
$this->saveLogs($this->dao->get());
}
return true;
}
/**
* Save Logs.
*
+2
View File
@@ -63,6 +63,8 @@ $lang->user->unlock = "解鎖用戶";
$lang->user->delete = "刪除用戶";
$lang->user->unbind = "解除ZDOO綁定";
$lang->user->login = "用戶登錄";
$lang->user->bind = "綁定已有賬戶";
$lang->user->oauthRegister = "註冊新賬號";
$lang->user->mobileLogin = "手機訪問";
$lang->user->editProfile = "修改檔案";
$lang->user->deny = "訪問受限";
+1
View File
@@ -51,6 +51,7 @@ $whiteList[] = 'testtask-sendmail';
$whiteList[] = 'user-login';
$whiteList[] = 'im-login';
$whiteList[] = 'im-debug';
$whiteList[] = 'im-sysgetserverinfo';
$whiteList[] = 'user-deny';
$whiteList[] = 'user-logout';
$whiteList[] = 'user-setreferer';