From 6d03387d4b43f2f95d70cc77d587e5e531dc099d Mon Sep 17 00:00:00 2001
From: hufangzhou
Date: Mon, 22 Nov 2021 16:48:28 +0800
Subject: [PATCH] * Add the new version.
---
VERSION | 2 +-
config/config.php | 2 +-
db/standard/zentao15.8.sql | 1362 +++++++++++++++++++++++++++++++
db/zentao.sql | 2 +-
doc/CHANGELOG | 70 ++
module/action/lang/zh-cn.php | 1 -
module/action/lang/zh-tw.php | 7 +
module/api/lang/zh-tw.php | 29 +-
module/block/lang/zh-tw.php | 17 +
module/branch/lang/zh-tw.php | 52 +-
module/bug/lang/en.php | 16 +-
module/bug/lang/zh-tw.php | 17 +-
module/common/lang/en.php | 11 +-
module/common/lang/zh-tw.php | 32 +-
module/datatable/lang/zh-tw.php | 5 +-
module/execution/lang/zh-tw.php | 2 +
module/misc/lang/en.php | 2 +
module/misc/lang/zh-cn.php | 2 +
module/misc/lang/zh-tw.php | 4 +
module/my/lang/en.php | 1 +
module/my/lang/zh-tw.php | 1 +
module/project/lang/zh-tw.php | 3 +-
module/report/lang/en.php | 3 +
module/report/lang/zh-tw.php | 24 +-
module/sso/lang/en.php | 7 +
module/sso/lang/zh-tw.php | 7 +
module/story/lang/zh-tw.php | 1 +
module/todo/lang/en.php | 13 +-
module/todo/lang/zh-cn.php | 12 +-
module/todo/lang/zh-tw.php | 13 +-
module/upgrade/lang/version.php | 1 +
module/upgrade/model.php | 1 +
module/user/lang/en.php | 11 +-
module/user/lang/zh-tw.php | 30 +-
34 files changed, 1661 insertions(+), 102 deletions(-)
create mode 100644 db/standard/zentao15.8.sql
diff --git a/VERSION b/VERSION
index 38256ab5a0..563f2f6bc4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-15.7.1
+15.8
diff --git a/config/config.php b/config/config.php
index 7b3e49956b..07a836a83c 100644
--- a/config/config.php
+++ b/config/config.php
@@ -16,7 +16,7 @@ if(!class_exists('config')){class config{}}
if(!function_exists('getWebRoot')){function getWebRoot(){}}
/* 基本设置。Basic settings. */
-$config->version = '15.7.1'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it.
+$config->version = '15.8'; // 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.
diff --git a/db/standard/zentao15.8.sql b/db/standard/zentao15.8.sql
new file mode 100644
index 0000000000..15fd6015a3
--- /dev/null
+++ b/db/standard/zentao15.8.sql
@@ -0,0 +1,1362 @@
+CREATE TABLE `zt_acl` (
+ `id` mediumint(9) NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `objectType` char(30) NOT NULL,
+ `objectID` mediumint(9) NOT NULL DEFAULT 0,
+ `type` char(40) NOT NULL DEFAULT 'whitelist',
+ `source` char(30) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_action` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `objectType` varchar(30) NOT NULL DEFAULT '',
+ `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `product` varchar(255) NOT NULL,
+ `project` mediumint(8) unsigned NOT NULL,
+ `execution` mediumint(8) unsigned NOT NULL,
+ `actor` varchar(100) NOT NULL DEFAULT '',
+ `action` varchar(30) NOT NULL DEFAULT '',
+ `date` datetime NOT NULL,
+ `comment` text NOT NULL,
+ `extra` text NOT NULL,
+ `read` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `date` (`date`),
+ KEY `actor` (`actor`),
+ KEY `project` (`project`),
+ KEY `action` (`action`),
+ KEY `objectID` (`objectID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_api_lib_release`
+(
+ `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
+ `lib` int UNSIGNED NOT NULL DEFAULT 0,
+ `desc` varchar(255) NOT NULL DEFAULT '',
+ `version` varchar(255) NOT NULL DEFAULT '',
+ `snap` mediumtext NOT NULL,
+ `addedBy` varchar(30) NOT NULL DEFAULT 0,
+ `addedDate` datetime NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_api`
+(
+ `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
+ `product` varchar(255) NOT NULL DEFAULT '',
+ `lib` int UNSIGNED NOT NULL DEFAULT 0,
+ `module` int UNSIGNED NOT NULL DEFAULT 0,
+ `title` varchar(100) NOT NULL DEFAULT '',
+ `path` varchar(255) NOT NULL DEFAULT '',
+ `protocol` varchar(10) NOT NULL DEFAULT '',
+ `method` varchar(10) NOT NULL DEFAULT '',
+ `requestType` varchar(100) NOT NULL DEFAULT '',
+ `responseType` varchar(100) NOT NULL DEFAULT '',
+ `status` varchar(20) NOT NULL DEFAULT '',
+ `owner` varchar(30) NOT NULl DEFAULT 0,
+ `desc` text NULL,
+ `version` smallint UNSIGNED NOT NULL DEFAULT 0,
+ `params` text NULL,
+ `paramsExample` text NUll,
+ `responseExample` text NUll,
+ `response` text NULL,
+ `commonParams` text NULL,
+ `addedBy` varchar(30) NOT NULL DEFAULT 0,
+ `addedDate` datetime NOT NULL,
+ `editedBy` varchar(30) NOT NULL DEFAULT 0,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum ('0', '1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_apispec`
+(
+ `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
+ `doc` int UNSIGNED NOT NULL DEFAULT 0,
+ `module` int UNSIGNED NOT NULL DEFAULT 0,
+ `title` varchar(100) NOT NULL DEFAULT '',
+ `path` varchar(255) NOT NULL DEFAULT '',
+ `protocol` varchar(10) NOT NULL DEFAULT '',
+ `method` varchar(10) NOT NULL DEFAULT '',
+ `requestType` varchar(100) NOT NULL DEFAULT '',
+ `responseType` varchar(100) NOT NULL DEFAULT '',
+ `status` varchar(20) NOT NULL DEFAULT '',
+ `owner` varchar(255) NOT NULl DEFAULT 0,
+ `desc` text NULL,
+ `version` smallint UNSIGNED NOT NULL DEFAULT 0,
+ `params` text NULL,
+ `paramsExample` text NUll,
+ `responseExample` text NUll,
+ `response` text NULL,
+ `addedBy` varchar(30) NOT NULL DEFAULT 0,
+ `addedDate` datetime NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_apistruct`
+(
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `lib` int UNSIGNED NOT NULL DEFAULT 0,
+ `name` varchar(30) NOT NULL DEFAULT '',
+ `type` varchar(50) NOT NULL DEFAULT '',
+ `desc` text NOT NULL DEFAULT '',
+ `version` smallint unsigned NOT NULL DEFAULT 0,
+ `attribute` text NULL,
+ `addedBy` varchar(30) NOT NULL DEFAULT 0,
+ `addedDate` datetime NOT NULL,
+ `editEdBy` varchar(30) NOT NULL DEFAULT 0,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum ('0', '1') NOT NULL DEFAULT '0',
+ primary key (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_apistruct_spec`
+(
+ `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `type` varchar(50) NOT NULL DEFAULT '',
+ `desc` varchar(255) NOT NULL DEFAULT '',
+ `attribute` text NULL,
+ `version` smallint unsigned NOT NULL DEFAULT 0,
+ `addedBy` varchar(30) NOT NULL DEFAULT 0,
+ `addedDate` datetime NOT NULL,
+ primary key (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_block` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `module` varchar(20) NOT NULL,
+ `type` char(30) NOT NULL,
+ `title` varchar(100) NOT NULL,
+ `source` varchar(20) NOT NULL,
+ `block` varchar(20) NOT NULL,
+ `params` text NOT NULL,
+ `order` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `grid` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `height` smallint(5) unsigned NOT NULL DEFAULT 0,
+ `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `account_module_type_order` (`account`,`module`,`type`,`order`),
+ KEY `account` (`account`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_branch` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `product` mediumint(8) unsigned NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `default` enum ('0', '1') NOT NULL DEFAULT '0',
+ `status` enum ('active', 'closed') NOT NULL DEFAULT 'active',
+ `desc` varchar(255) NOT NULL,
+ `createdDate` date NOT NULL,
+ `closedDate` date NOT NULL,
+ `order` smallint unsigned NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_bug` (
+ `id` mediumint(8) NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `module` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `execution` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `plan` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `story` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `storyVersion` smallint(6) NOT NULL DEFAULT 1,
+ `task` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `toStory` mediumint(8) NOT NULL DEFAULT 0,
+ `title` varchar(255) NOT NULL,
+ `keywords` varchar(255) NOT NULL,
+ `severity` tinyint(4) NOT NULL DEFAULT 0,
+ `pri` tinyint(3) unsigned NOT NULL,
+ `type` varchar(30) NOT NULL DEFAULT '',
+ `os` varchar(30) NOT NULL DEFAULT '',
+ `browser` varchar(30) NOT NULL DEFAULT '',
+ `hardware` varchar(30) NOT NULL,
+ `found` varchar(30) NOT NULL DEFAULT '',
+ `steps` text NOT NULL,
+ `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `color` char(7) NOT NULL,
+ `confirmed` tinyint(1) NOT NULL DEFAULT 0,
+ `activatedCount` smallint(6) NOT NULL,
+ `activatedDate` datetime NOT NULL,
+ `mailto` text DEFAULT NULL,
+ `openedBy` varchar(30) NOT NULL DEFAULT '',
+ `openedDate` datetime NOT NULL,
+ `openedBuild` varchar(255) NOT NULL,
+ `assignedTo` varchar(30) NOT NULL DEFAULT '',
+ `assignedDate` datetime NOT NULL,
+ `deadline` date NOT NULL,
+ `resolvedBy` varchar(30) NOT NULL DEFAULT '',
+ `resolution` varchar(30) NOT NULL DEFAULT '',
+ `resolvedBuild` varchar(30) NOT NULL DEFAULT '',
+ `resolvedDate` datetime NOT NULL,
+ `closedBy` varchar(30) NOT NULL DEFAULT '',
+ `closedDate` datetime NOT NULL,
+ `duplicateBug` mediumint(8) unsigned NOT NULL,
+ `linkBug` varchar(255) NOT NULL,
+ `case` mediumint(8) unsigned NOT NULL,
+ `caseVersion` smallint(6) NOT NULL DEFAULT 1,
+ `result` mediumint(8) unsigned NOT NULL,
+ `repo` mediumint(8) unsigned NOT NULL,
+ `entry` varchar(255) NOT NULL,
+ `lines` varchar(10) NOT NULL,
+ `v1` varchar(40) NOT NULL,
+ `v2` varchar(40) NOT NULL,
+ `repoType` varchar(30) NOT NULL DEFAULT '',
+ `testtask` mediumint(8) unsigned NOT NULL,
+ `lastEditedBy` varchar(30) NOT NULL DEFAULT '',
+ `lastEditedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `execution` (`execution`),
+ KEY `status` (`status`),
+ KEY `plan` (`plan`),
+ KEY `story` (`story`),
+ KEY `case` (`case`),
+ KEY `toStory` (`toStory`),
+ KEY `result` (`result`),
+ KEY `assignedTo` (`assignedTo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_build` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `execution` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `name` char(150) NOT NULL,
+ `scmPath` char(255) NOT NULL,
+ `filePath` char(255) NOT NULL,
+ `date` date NOT NULL,
+ `stories` text NOT NULL,
+ `bugs` text NOT NULL,
+ `builder` char(30) NOT NULL DEFAULT '',
+ `desc` text NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `execution` (`execution`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_burn` (
+ `execution` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `task` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `date` date NOT NULL,
+ `estimate` float NOT NULL,
+ `left` float NOT NULL,
+ `consumed` float NOT NULL,
+ `storyPoint` float NOT NULL,
+ PRIMARY KEY (`execution`,`date`,`task`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_case` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `execution` mediumint(8) unsigned NOT NULL,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `lib` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `module` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `path` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `story` mediumint(30) unsigned NOT NULL DEFAULT 0,
+ `storyVersion` smallint(6) NOT NULL DEFAULT 1,
+ `title` varchar(255) NOT NULL,
+ `precondition` text NOT NULL,
+ `keywords` varchar(255) NOT NULL,
+ `pri` tinyint(3) unsigned NOT NULL DEFAULT 3,
+ `type` char(30) NOT NULL DEFAULT '1',
+ `auto` varchar(10) NOT NULL DEFAULT 'no',
+ `frame` varchar(10) NOT NULL,
+ `stage` varchar(255) NOT NULL,
+ `howRun` varchar(30) NOT NULL,
+ `scriptedBy` varchar(30) NOT NULL,
+ `scriptedDate` date NOT NULL,
+ `scriptStatus` varchar(30) NOT NULL,
+ `scriptLocation` varchar(255) NOT NULL,
+ `status` char(30) NOT NULL DEFAULT '1',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `color` char(7) NOT NULL,
+ `frequency` enum('1','2','3') NOT NULL DEFAULT '1',
+ `order` tinyint(30) unsigned NOT NULL DEFAULT 0,
+ `openedBy` char(30) NOT NULL DEFAULT '',
+ `openedDate` datetime NOT NULL,
+ `reviewedBy` varchar(255) NOT NULL,
+ `reviewedDate` date NOT NULL,
+ `lastEditedBy` char(30) NOT NULL DEFAULT '',
+ `lastEditedDate` datetime NOT NULL,
+ `version` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `linkCase` varchar(255) NOT NULL,
+ `fromBug` mediumint(8) unsigned NOT NULL,
+ `fromCaseID` mediumint(8) unsigned NOT NULL,
+ `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ `lastRunner` varchar(30) NOT NULL,
+ `lastRunDate` datetime NOT NULL,
+ `lastRunResult` char(30) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `story` (`story`),
+ KEY `fromBug` (`fromBug`),
+ KEY `module` (`module`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_casestep` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `case` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `version` smallint(3) unsigned NOT NULL DEFAULT 0,
+ `type` varchar(10) NOT NULL DEFAULT 'step',
+ `desc` text NOT NULL,
+ `expect` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `case` (`case`),
+ KEY `version` (`version`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_company` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` char(120) DEFAULT NULL,
+ `phone` char(20) DEFAULT NULL,
+ `fax` char(20) DEFAULT NULL,
+ `address` char(120) DEFAULT NULL,
+ `zipcode` char(10) DEFAULT NULL,
+ `website` char(120) DEFAULT NULL,
+ `backyard` char(120) DEFAULT NULL,
+ `guest` enum('1','0') NOT NULL DEFAULT '0',
+ `admins` char(255) DEFAULT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_compile` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) NOT NULL,
+ `job` mediumint(8) unsigned NOT NULL,
+ `queue` mediumint(8) NOT NULL,
+ `status` varchar(255) NOT NULL,
+ `logs` text DEFAULT NULL,
+ `atTime` varchar(10) NOT NULL,
+ `testtask` mediumint(8) unsigned NOT NULL,
+ `tag` varchar(255) NOT NULL,
+ `times` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `updateDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_config` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `owner` char(30) NOT NULL DEFAULT '',
+ `module` varchar(30) NOT NULL,
+ `section` char(30) NOT NULL DEFAULT '',
+ `key` char(30) NOT NULL DEFAULT '',
+ `value` longtext NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unique` (`owner`,`module`,`section`,`key`)
+) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_cron` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `m` varchar(20) NOT NULL,
+ `h` varchar(20) NOT NULL,
+ `dom` varchar(20) NOT NULL,
+ `mon` varchar(20) NOT NULL,
+ `dow` varchar(20) NOT NULL,
+ `command` text NOT NULL,
+ `remark` varchar(255) NOT NULL,
+ `type` varchar(20) NOT NULL,
+ `buildin` tinyint(1) NOT NULL DEFAULT 0,
+ `status` varchar(20) NOT NULL,
+ `lastTime` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `lastTime` (`lastTime`)
+) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_dept` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` char(60) NOT NULL,
+ `parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `path` char(255) NOT NULL DEFAULT '',
+ `grade` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `order` smallint(4) unsigned NOT NULL DEFAULT 0,
+ `position` char(30) NOT NULL DEFAULT '',
+ `function` char(255) NOT NULL DEFAULT '',
+ `manager` char(30) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `parent` (`parent`),
+ KEY `path` (`path`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_doc` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `execution` mediumint(8) unsigned NOT NULL,
+ `lib` varchar(30) NOT NULL,
+ `module` varchar(30) NOT NULL,
+ `title` varchar(255) NOT NULL,
+ `keywords` varchar(255) NOT NULL,
+ `type` varchar(30) NOT NULL,
+ `views` smallint(5) unsigned NOT NULL,
+ `draft` longtext NOT NULL,
+ `collector` text NOT NULL,
+ `addedBy` varchar(30) NOT NULL,
+ `addedDate` datetime NOT NULL,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `mailto` text DEFAULT NULL,
+ `acl` varchar(10) NOT NULL DEFAULT 'open',
+ `groups` varchar(255) NOT NULL,
+ `users` text NOT NULL,
+ `version` smallint(5) unsigned NOT NULL DEFAULT 1,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `execution` (`execution`),
+ KEY `lib` (`lib`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_doccontent` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `doc` mediumint(8) unsigned NOT NULL,
+ `title` varchar(255) NOT NULL,
+ `digest` varchar(255) NOT NULL,
+ `content` longtext NOT NULL,
+ `files` text NOT NULL,
+ `type` varchar(10) NOT NULL,
+ `version` smallint(5) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `doc_version` (`doc`,`version`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_doclib` (
+ `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
+ `type` varchar(30) NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `project` mediumint(8) unsigned NOT NULL,
+ `execution` mediumint(8) unsigned NOT NULL,
+ `name` varchar(60) NOT NULL,
+ `baseUrl` varchar(255) NOT NULL,
+ `acl` varchar(10) NOT NULL DEFAULT 'open',
+ `groups` varchar(255) NOT NULL,
+ `users` text NOT NULL,
+ `main` enum('0','1') NOT NULL DEFAULT '0',
+ `collector` text NOT NULL,
+ `desc` text NOT NULL,
+ `order` tinyint(5) unsigned NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `execution` (`execution`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_effort` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `user` char(30) NOT NULL DEFAULT '',
+ `todo` enum('1','0') NOT NULL DEFAULT '1',
+ `date` date NOT NULL,
+ `begin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `end` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `type` enum('1','2','3') NOT NULL DEFAULT '1',
+ `idvalue` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `name` char(30) NOT NULL DEFAULT '',
+ `desc` char(255) NOT NULL DEFAULT '',
+ `status` enum('1','2','3') NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ KEY `user` (`user`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_entry` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) NOT NULL,
+ `account` varchar(30) NOT NULL DEFAULT '',
+ `code` varchar(20) NOT NULL,
+ `key` varchar(32) NOT NULL,
+ `freePasswd` enum('0','1') NOT NULL DEFAULT '0',
+ `ip` varchar(100) NOT NULL,
+ `desc` text NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `calledTime` int(10) unsigned NOT NULL DEFAULT 0,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_expect` (
+ `id` mediumint(8) NOT NULL AUTO_INCREMENT,
+ `userID` mediumint(8) NOT NULL,
+ `project` mediumint(8) NOT NULL DEFAULT 0,
+ `expect` text NOT NULL,
+ `progress` text NOT NULL,
+ `createdBy` char(30) NOT NULL,
+ `createdDate` date NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_extension` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(150) NOT NULL,
+ `code` varchar(30) NOT NULL,
+ `version` varchar(50) NOT NULL,
+ `author` varchar(100) NOT NULL,
+ `desc` text NOT NULL,
+ `license` text NOT NULL,
+ `type` varchar(20) NOT NULL DEFAULT 'extension',
+ `site` varchar(150) NOT NULL,
+ `zentaoCompatible` varchar(100) NOT NULL,
+ `installedTime` datetime NOT NULL,
+ `depends` varchar(100) NOT NULL,
+ `dirs` mediumtext NOT NULL,
+ `files` mediumtext NOT NULL,
+ `status` varchar(20) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `code` (`code`),
+ KEY `name` (`name`),
+ KEY `installedTime` (`installedTime`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_file` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `pathname` char(50) NOT NULL,
+ `title` char(255) NOT NULL,
+ `extension` char(30) NOT NULL,
+ `size` int(10) unsigned NOT NULL DEFAULT 0,
+ `objectType` char(30) NOT NULL,
+ `objectID` mediumint(9) NOT NULL,
+ `addedBy` char(30) NOT NULL DEFAULT '',
+ `addedDate` datetime NOT NULL,
+ `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `extra` varchar(255) NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `objectType` (`objectType`),
+ KEY `objectID` (`objectID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_group` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `name` char(30) NOT NULL,
+ `role` char(30) NOT NULL DEFAULT '',
+ `desc` char(255) NOT NULL DEFAULT '',
+ `acl` text DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_grouppriv` (
+ `group` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `module` char(30) NOT NULL DEFAULT '',
+ `method` char(30) NOT NULL DEFAULT '',
+ UNIQUE KEY `group` (`group`,`module`,`method`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_history` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `action` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `field` varchar(30) NOT NULL DEFAULT '',
+ `old` text NOT NULL,
+ `new` text NOT NULL,
+ `diff` mediumtext NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `action` (`action`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_job` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(50) NOT NULL,
+ `repo` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `frame` varchar(20) NOT NULL,
+ `engine` varchar(20) NOT NULL,
+ `server` mediumint(8) unsigned NOT NULL,
+ `pipeline` varchar(500) NOT NULL,
+ `triggerType` varchar(255) NOT NULL,
+ `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,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `lastExec` datetime DEFAULT NULL,
+ `lastStatus` varchar(255) DEFAULT NULL,
+ `lastTag` varchar(255) DEFAULT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_lang` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `lang` varchar(30) NOT NULL,
+ `module` varchar(30) NOT NULL,
+ `section` varchar(30) NOT NULL,
+ `key` varchar(60) NOT NULL,
+ `value` text NOT NULL,
+ `system` enum('0','1') NOT NULL DEFAULT '1',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`)
+) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_log` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `objectType` varchar(30) NOT NULL,
+ `objectID` mediumint(8) unsigned NOT NULL,
+ `action` mediumint(8) unsigned NOT NULL,
+ `date` datetime NOT NULL,
+ `url` varchar(255) NOT NULL,
+ `contentType` varchar(30) NOT NULL,
+ `data` text NOT NULL,
+ `result` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `objectType` (`objectType`),
+ KEY `obejctID` (`objectID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_module` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `root` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `name` char(60) NOT NULL DEFAULT '',
+ `parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `path` char(255) NOT NULL DEFAULT '',
+ `grade` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `order` smallint(5) unsigned NOT NULL DEFAULT 0,
+ `type` char(30) NOT NULL,
+ `owner` varchar(30) NOT NULL,
+ `collector` text NOT NULL,
+ `short` varchar(30) NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `root` (`root`),
+ KEY `type` (`type`),
+ KEY `path` (`path`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_mr` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `gitlabID` mediumint(8) unsigned NOT NULL,
+ `sourceProject` int unsigned NOT NULL,
+ `sourceBranch` varchar(100) NOT NULL,
+ `targetProject` int unsigned NOT NULL,
+ `targetBranch` varchar(100) NOT NULL,
+ `mriid` int unsigned NOT NULL,
+ `title` varchar(255) NOT NULL,
+ `description` text NOT NULL,
+ `assignee` varchar(255) NOT NULL,
+ `reviewer` varchar(255) NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ `status` char(30) NOT NULL,
+ `mergeStatus` char(30) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_notify` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `objectType` varchar(50) NOT NULL,
+ `objectID` mediumint(8) unsigned NOT NULL,
+ `action` mediumint(9) NOT NULL,
+ `toList` varchar(255) NOT NULL,
+ `ccList` text NOT NULL,
+ `subject` varchar(255) NOT NULL,
+ `data` text NOT NULL,
+ `createdBy` char(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `sendTime` datetime NOT NULL,
+ `status` varchar(10) NOT NULL DEFAULT 'wait',
+ `failReason` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `objectType_toList_status` (`objectType`,`toList`,`status`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_oauth` (
+ `account` varchar(30) NOT NULL,
+ `openID` varchar(255) NOT NULL,
+ `providerType` varchar(30) NOT NULL,
+ `providerID` mediumint(8) unsigned NOT NULL,
+ KEY `account` (`account`),
+ KEY `providerType` (`providerType`),
+ KEY `providerID` (`providerID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_pipeline` (
+ `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `type` char(30) NOT NULL,
+ `name` varchar(50) NOT NULL,
+ `url` varchar(255) DEFAULT NULL,
+ `account` varchar(30) DEFAULT NULL,
+ `password` varchar(255) NOT NULL,
+ `token` varchar(255) DEFAULT NULL,
+ `private` char(32) DEFAULT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_planstory` (
+ `plan` mediumint(8) unsigned NOT NULL,
+ `story` mediumint(8) unsigned NOT NULL,
+ `order` mediumint(9) NOT NULL,
+ UNIQUE KEY `plan_story` (`plan`,`story`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_product` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `program` mediumint(8) unsigned NOT NULL,
+ `name` varchar(90) NOT NULL,
+ `code` varchar(45) NOT NULL,
+ `bind` enum('0','1') NOT NULL DEFAULT '0',
+ `line` mediumint(8) NOT NULL,
+ `type` varchar(30) NOT NULL DEFAULT 'normal',
+ `status` varchar(30) NOT NULL DEFAULT '',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `desc` text NOT NULL,
+ `PO` varchar(30) NOT NULL,
+ `QD` varchar(30) NOT NULL,
+ `RD` varchar(30) NOT NULL,
+ `acl` enum('open','private','custom') NOT NULL DEFAULT 'open',
+ `whitelist` text NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `createdVersion` varchar(20) NOT NULL,
+ `order` mediumint(8) unsigned NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `acl` (`acl`),
+ KEY `order` (`order`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_productplan` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `product` mediumint(8) unsigned NOT NULL,
+ `branch` mediumint(8) unsigned NOT NULL,
+ `parent` mediumint(9) NOT NULL DEFAULT 0,
+ `title` varchar(90) NOT NULL,
+ `desc` text NOT NULL,
+ `begin` date NOT NULL,
+ `end` date NOT NULL,
+ `order` text NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `end` (`end`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_project` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) NOT NULL DEFAULT 0,
+ `model` char(30) NOT NULL,
+ `type` char(30) NOT NULL DEFAULT 'sprint',
+ `lifetime` char(30) NOT NULL DEFAULT '',
+ `budget` varchar(30) NOT NULL DEFAULT '0',
+ `budgetUnit` char(30) NOT NULL DEFAULT 'CNY',
+ `attribute` varchar(30) NOT NULL DEFAULT '',
+ `percent` float unsigned NOT NULL DEFAULT 0,
+ `milestone` enum('0','1') NOT NULL DEFAULT '0',
+ `output` text NOT NULL,
+ `auth` char(30) NOT NULL,
+ `parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `path` varchar(255) NOT NULL,
+ `grade` tinyint(3) unsigned NOT NULL,
+ `name` varchar(90) NOT NULL,
+ `code` varchar(45) NOT NULL,
+ `begin` date NOT NULL,
+ `end` date NOT NULL,
+ `realBegan` date NOT NULL,
+ `realEnd` date NOT NULL,
+ `days` smallint(5) unsigned NOT NULL,
+ `status` varchar(10) NOT NULL,
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `pri` enum('1','2','3','4') NOT NULL DEFAULT '1',
+ `desc` text NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `parentVersion` smallint(6) NOT NULL,
+ `planDuration` int(11) NOT NULL,
+ `realDuration` int(11) NOT NULL,
+ `openedBy` varchar(30) NOT NULL DEFAULT '',
+ `openedDate` datetime NOT NULL,
+ `openedVersion` varchar(20) NOT NULL,
+ `lastEditedBy` varchar(30) NOT NULL DEFAULT '',
+ `lastEditedDate` datetime NOT NULL,
+ `closedBy` varchar(30) NOT NULL DEFAULT '',
+ `closedDate` datetime NOT NULL,
+ `canceledBy` varchar(30) NOT NULL DEFAULT '',
+ `canceledDate` datetime NOT NULL,
+ `PO` varchar(30) NOT NULL DEFAULT '',
+ `PM` varchar(30) NOT NULL DEFAULT '',
+ `QD` varchar(30) NOT NULL DEFAULT '',
+ `RD` varchar(30) NOT NULL DEFAULT '',
+ `team` varchar(90) NOT NULL,
+ `acl` char(30) NOT NULL DEFAULT 'open',
+ `whitelist` text NOT NULL,
+ `order` mediumint(8) unsigned NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `parent` (`parent`),
+ KEY `begin` (`begin`),
+ KEY `end` (`end`),
+ KEY `status` (`status`),
+ KEY `acl` (`acl`),
+ KEY `order` (`order`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_projectcase` (
+ `project` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `case` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `count` mediumint(8) unsigned NOT NULL DEFAULT 1,
+ `version` smallint(6) NOT NULL DEFAULT 1,
+ `order` smallint(6) unsigned NOT NULL,
+ UNIQUE KEY `project` (`project`,`case`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_projectproduct` (
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `branch` mediumint(8) unsigned NOT NULL,
+ `plan` mediumint(8) unsigned NOT NULL,
+ PRIMARY KEY (`project`, `product`, `branch`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_projectspec` (
+ `project` mediumint(8) NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `milestone` enum('0','1') NOT NULL DEFAULT '0',
+ `begin` date NOT NULL,
+ `end` date NOT NULL,
+ UNIQUE KEY `project` (`project`,`version`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_projectstory` (
+ `project` mediumint(8) unsigned NOT NULL default '0',
+ `product` mediumint(8) unsigned NOT NULL,
+ `branch` mediumint(8) unsigned NOT NULL,
+ `story` mediumint(8) unsigned NOT NULL default '0',
+ `version` smallint(6) NOT NULL default '1',
+ `order` smallint(6) unsigned NOT NULL,
+ UNIQUE KEY `project` (`project`,`story`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_relation` (
+ `id` int(8) NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) NOT NULL,
+ `product` mediumint(8) NOT NULL,
+ `execution` mediumint(8) NOT NULL,
+ `AType` char(30) NOT NULL,
+ `AID` mediumint(8) NOT NULL,
+ `AVersion` char(30) NOT NULL,
+ `relation` char(30) NOT NULL,
+ `BType` char(30) NOT NULL,
+ `BID` mediumint(8) NOT NULL,
+ `BVersion` char(30) NOT NULL,
+ `extra` char(30) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_release` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `build` mediumint(8) unsigned NOT NULL,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `marker` enum('0','1') NOT NULL DEFAULT '0',
+ `date` date NOT NULL,
+ `stories` text NOT NULL,
+ `bugs` text NOT NULL,
+ `leftBugs` text NOT NULL,
+ `desc` text NOT NULL,
+ `mailto` text,
+ `notify` varchar(255),
+ `status` varchar(20) NOT NULL DEFAULT 'normal',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `build` (`build`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_repo` (
+ `id` mediumint(9) NOT NULL AUTO_INCREMENT,
+ `product` varchar(255) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `path` varchar(255) NOT NULL,
+ `prefix` varchar(100) NOT NULL,
+ `encoding` varchar(20) NOT NULL,
+ `SCM` varchar(10) NOT NULL,
+ `client` varchar(100) NOT NULL,
+ `commits` mediumint(8) unsigned NOT NULL,
+ `account` varchar(30) NOT NULL,
+ `password` varchar(30) NOT NULL,
+ `encrypt` varchar(30) NOT NULL DEFAULT 'plain',
+ `acl` text NOT NULL,
+ `synced` tinyint(1) NOT NULL DEFAULT 0,
+ `lastSync` datetime NOT NULL,
+ `desc` text NOT NULL,
+ `extra` char(30) NOT NULL,
+ `deleted` tinyint(1) NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_repobranch` (
+ `repo` mediumint(8) unsigned NOT NULL,
+ `revision` mediumint(8) unsigned NOT NULL,
+ `branch` varchar(255) NOT NULL,
+ UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`),
+ KEY `branch` (`branch`),
+ KEY `revision` (`revision`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_repofiles` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `repo` mediumint(8) unsigned NOT NULL,
+ `revision` mediumint(8) unsigned NOT NULL,
+ `path` varchar(255) NOT NULL,
+ `parent` varchar(255) NOT NULL,
+ `type` varchar(20) NOT NULL,
+ `action` char(1) NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `path` (`path`),
+ KEY `parent` (`parent`),
+ KEY `repo` (`repo`),
+ KEY `revision` (`revision`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_repohistory` (
+ `id` mediumint(9) NOT NULL AUTO_INCREMENT,
+ `repo` mediumint(9) NOT NULL,
+ `revision` varchar(40) NOT NULL,
+ `commit` mediumint(8) unsigned NOT NULL,
+ `comment` text NOT NULL,
+ `committer` varchar(100) NOT NULL,
+ `time` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `repo` (`repo`),
+ KEY `revision` (`revision`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_score` (
+ `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT,
+ `account` varchar(30) NOT NULL,
+ `module` varchar(30) NOT NULL DEFAULT '',
+ `method` varchar(30) NOT NULL,
+ `desc` varchar(250) NOT NULL DEFAULT '',
+ `before` int(11) NOT NULL DEFAULT 0,
+ `score` int(11) NOT NULL DEFAULT 0,
+ `after` int(11) NOT NULL DEFAULT 0,
+ `time` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `account` (`account`),
+ KEY `model` (`module`),
+ KEY `method` (`method`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_searchdict` (
+ `key` smallint(5) unsigned NOT NULL,
+ `value` char(3) NOT NULL,
+ PRIMARY KEY (`key`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_searchindex` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `objectType` char(20) NOT NULL,
+ `objectID` mediumint(9) NOT NULL,
+ `title` text NOT NULL,
+ `content` text NOT NULL,
+ `addedDate` datetime NOT NULL,
+ `editedDate` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `object` (`objectType`,`objectID`),
+ KEY `addedDate` (`addedDate`),
+ FULLTEXT KEY `content` (`content`),
+ FULLTEXT KEY `title` (`title`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_stakeholder` (
+ `id` mediumint(8) NOT NULL AUTO_INCREMENT,
+ `objectID` mediumint(8) NOT NULL,
+ `objectType` char(30) NOT NULL,
+ `user` char(30) NOT NULL,
+ `type` char(30) NOT NULL,
+ `key` enum('0','1') NOT NULL,
+ `from` char(30) NOT NULL,
+ `createdBy` char(30) NOT NULL,
+ `createdDate` date NOT NULL,
+ `editedBy` char(30) NOT NULL,
+ `editedDate` date NOT NULL,
+ `deleted` enum('0','1') NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_story` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `parent` mediumint(9) NOT NULL DEFAULT 0,
+ `product` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `branch` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `module` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `plan` text DEFAULT NULL,
+ `source` varchar(20) NOT NULL,
+ `sourceNote` varchar(255) NOT NULL,
+ `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `title` varchar(255) NOT NULL,
+ `keywords` varchar(255) NOT NULL,
+ `type` varchar(30) NOT NULL DEFAULT 'story',
+ `category` varchar(30) NOT NULL DEFAULT 'feature',
+ `pri` tinyint(3) unsigned NOT NULL DEFAULT 3,
+ `estimate` float unsigned NOT NULL,
+ `status` enum('','changed','active','draft','closed') NOT NULL DEFAULT '',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `color` char(7) NOT NULL,
+ `stage` enum('','wait','planned','projected','developing','developed','testing','tested','verified','released','closed') NOT NULL DEFAULT 'wait',
+ `stagedBy` char(30) NOT NULL,
+ `mailto` text DEFAULT NULL,
+ `openedBy` varchar(30) NOT NULL DEFAULT '',
+ `openedDate` datetime NOT NULL,
+ `assignedTo` varchar(30) NOT NULL DEFAULT '',
+ `assignedDate` datetime NOT NULL,
+ `lastEditedBy` varchar(30) NOT NULL DEFAULT '',
+ `lastEditedDate` datetime NOT NULL,
+ `reviewedBy` varchar(255) NOT NULL,
+ `reviewedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `closedBy` varchar(30) NOT NULL DEFAULT '',
+ `closedDate` datetime NOT NULL,
+ `closedReason` varchar(30) NOT NULL,
+ `toBug` mediumint(8) unsigned NOT NULL,
+ `childStories` varchar(255) NOT NULL,
+ `linkStories` varchar(255) NOT NULL,
+ `duplicateStory` mediumint(8) unsigned NOT NULL,
+ `version` smallint(6) NOT NULL DEFAULT 1,
+ `URChanged` enum('0','1') NOT NULL DEFAULT '0',
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `status` (`status`),
+ KEY `assignedTo` (`assignedTo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_storyestimate` (
+ `story` mediumint(9) NOT NULL,
+ `round` smallint(6) NOT NULL,
+ `estimate` text NOT NULL,
+ `average` float NOT NULL,
+ `openedBy` varchar(30) NOT NULL,
+ `openedDate` datetime NOT NULL,
+ UNIQUE KEY `story` (`story`,`round`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_storyreview` (
+ `story` mediumint(9) NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `reviewer` varchar(30) NOT NULL,
+ `result` varchar(30) NOT NULL,
+ `reviewDate` datetime NOT NULL,
+ UNIQUE KEY `story` (`story`,`version`,`reviewer`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_storyspec` (
+ `story` mediumint(9) NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `title` varchar(255) NOT NULL,
+ `spec` text NOT NULL,
+ `verify` text NOT NULL,
+ UNIQUE KEY `story` (`story`,`version`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_storystage` (
+ `story` mediumint(8) unsigned NOT NULL,
+ `branch` mediumint(8) unsigned NOT NULL,
+ `stage` varchar(50) NOT NULL,
+ `stagedBy` char(30) NOT NULL,
+ UNIQUE KEY `story_branch` (`story`,`branch`),
+ KEY `story` (`story`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_suitecase` (
+ `suite` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `case` mediumint(8) unsigned NOT NULL,
+ `version` smallint(5) unsigned NOT NULL,
+ UNIQUE KEY `suitecase` (`suite`,`case`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_task` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `parent` mediumint(8) NOT NULL DEFAULT 0,
+ `execution` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `module` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `design` mediumint(8) unsigned NOT NULL,
+ `story` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `storyVersion` smallint(6) NOT NULL DEFAULT 1,
+ `designVersion` smallint(6) unsigned NOT NULL,
+ `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `name` varchar(255) NOT NULL,
+ `type` varchar(20) NOT NULL,
+ `pri` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `estimate` float unsigned NOT NULL,
+ `consumed` float unsigned NOT NULL,
+ `left` float unsigned NOT NULL,
+ `deadline` date NOT NULL,
+ `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `color` char(7) NOT NULL,
+ `mailto` text DEFAULT NULL,
+ `desc` text NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `openedBy` varchar(30) NOT NULL,
+ `openedDate` datetime NOT NULL,
+ `assignedTo` varchar(30) NOT NULL,
+ `assignedDate` datetime NOT NULL,
+ `estStarted` date NOT NULL,
+ `realStarted` datetime NOT NULL,
+ `finishedBy` varchar(30) NOT NULL,
+ `finishedDate` datetime NOT NULL,
+ `finishedList` text NOT NULL,
+ `canceledBy` varchar(30) NOT NULL,
+ `canceledDate` datetime NOT NULL,
+ `closedBy` varchar(30) NOT NULL,
+ `closedDate` datetime NOT NULL,
+ `planDuration` int(11) NOT NULL,
+ `realDuration` int(11) NOT NULL,
+ `closedReason` varchar(30) NOT NULL,
+ `lastEditedBy` varchar(30) NOT NULL,
+ `lastEditedDate` datetime NOT NULL,
+ `activatedDate` date NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `execution` (`execution`),
+ KEY `story` (`story`),
+ KEY `parent` (`parent`),
+ KEY `assignedTo` (`assignedTo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_taskestimate` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `task` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `date` date NOT NULL,
+ `left` float unsigned NOT NULL DEFAULT 0,
+ `consumed` float unsigned NOT NULL,
+ `account` char(30) NOT NULL DEFAULT '',
+ `work` text DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `task` (`task`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_taskspec` (
+ `task` mediumint(8) NOT NULL,
+ `version` smallint(6) NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `estStarted` date NOT NULL,
+ `deadline` date NOT NULL,
+ UNIQUE KEY `task` (`task`,`version`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_team` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `root` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `type` enum('project','task','execution') NOT NULL DEFAULT 'project',
+ `account` char(30) NOT NULL DEFAULT '',
+ `role` char(30) NOT NULL DEFAULT '',
+ `limited` char(8) NOT NULL DEFAULT 'no',
+ `join` date NOT NULL DEFAULT '0000-00-00',
+ `days` smallint(5) unsigned NOT NULL,
+ `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0,
+ `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00,
+ `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00,
+ `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00,
+ `order` tinyint(3) NOT NULL DEFAULT 0,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `team` (`root`,`type`,`account`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_testreport` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `execution` mediumint(8) unsigned NOT NULL,
+ `tasks` varchar(255) NOT NULL,
+ `builds` varchar(255) NOT NULL,
+ `title` varchar(255) NOT NULL,
+ `begin` date NOT NULL,
+ `end` date NOT NULL,
+ `owner` char(30) NOT NULL,
+ `members` text NOT NULL,
+ `stories` text NOT NULL,
+ `bugs` text NOT NULL,
+ `cases` text NOT NULL,
+ `report` text NOT NULL,
+ `objectType` varchar(20) NOT NULL,
+ `objectID` mediumint(8) unsigned NOT NULL,
+ `createdBy` char(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_testresult` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `run` mediumint(8) unsigned NOT NULL,
+ `case` mediumint(8) unsigned NOT NULL,
+ `version` smallint(5) unsigned NOT NULL,
+ `job` mediumint(8) unsigned NOT NULL,
+ `compile` mediumint(8) unsigned NOT NULL,
+ `caseResult` char(30) NOT NULL,
+ `stepResults` text NOT NULL,
+ `lastRunner` varchar(30) NOT NULL,
+ `date` datetime NOT NULL,
+ `duration` float NOT NULL,
+ `xml` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `case` (`case`),
+ KEY `version` (`version`),
+ KEY `run` (`run`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_testrun` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `task` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `case` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `version` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `assignedTo` char(30) NOT NULL DEFAULT '',
+ `lastRunner` varchar(30) NOT NULL,
+ `lastRunDate` datetime NOT NULL,
+ `lastRunResult` char(30) NOT NULL,
+ `status` char(30) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `task` (`task`,`case`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_testsuite` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `name` varchar(255) NOT NULL,
+ `desc` text NOT NULL,
+ `type` varchar(20) NOT NULL,
+ `addedBy` char(30) NOT NULL,
+ `addedDate` datetime NOT NULL,
+ `lastEditedBy` char(30) NOT NULL,
+ `lastEditedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_testtask` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `project` mediumint(8) unsigned NOT NULL,
+ `product` mediumint(8) unsigned NOT NULL,
+ `name` char(90) NOT NULL,
+ `execution` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `build` char(30) NOT NULL,
+ `type` varchar(255) NOT NULL DEFAULT '',
+ `owner` varchar(30) NOT NULL,
+ `pri` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `begin` date NOT NULL,
+ `end` date NOT NULL,
+ `realFinishedDate` datetime NOT NULL,
+ `mailto` text DEFAULT NULL,
+ `desc` text NOT NULL,
+ `report` text NOT NULL,
+ `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait',
+ `testreport` mediumint(8) unsigned NOT NULL,
+ `auto` varchar(10) NOT NULL DEFAULT 'no',
+ `subStatus` varchar(30) NOT NULL DEFAULT '',
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `product` (`product`),
+ KEY `build` (`build`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_todo` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `date` date NOT NULL,
+ `begin` smallint(4) unsigned zerofill NOT NULL,
+ `end` smallint(4) unsigned zerofill NOT NULL,
+ `type` char(10) NOT NULL,
+ `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0,
+ `idvalue` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `pri` tinyint(3) unsigned NOT NULL,
+ `name` char(150) NOT NULL,
+ `desc` text NOT NULL,
+ `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait',
+ `private` tinyint(1) NOT NULL,
+ `config` varchar(255) NOT NULL,
+ `assignedTo` varchar(30) NOT NULL DEFAULT '',
+ `assignedBy` varchar(30) NOT NULL DEFAULT '',
+ `assignedDate` datetime NOT NULL,
+ `finishedBy` varchar(30) NOT NULL DEFAULT '',
+ `finishedDate` datetime NOT NULL,
+ `closedBy` varchar(30) NOT NULL DEFAULT '',
+ `closedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `account` (`account`),
+ KEY `assignedTo` (`assignedTo`),
+ KEY `finishedBy` (`finishedBy`),
+ KEY `date` (`date`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_user` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `company` mediumint(8) unsigned NOT NULL,
+ `type` char(30) NOT NULL DEFAULT 'inside',
+ `dept` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `account` char(30) NOT NULL DEFAULT '',
+ `password` char(32) NOT NULL DEFAULT '',
+ `role` char(10) NOT NULL DEFAULT '',
+ `realname` varchar(100) NOT NULL DEFAULT '',
+ `nickname` char(60) NOT NULL DEFAULT '',
+ `commiter` varchar(100) NOT NULL,
+ `avatar` text NOT NULL,
+ `birthday` date NOT NULL DEFAULT '0000-00-00',
+ `gender` enum('f','m') NOT NULL DEFAULT 'f',
+ `email` char(90) NOT NULL DEFAULT '',
+ `skype` char(90) NOT NULL DEFAULT '',
+ `qq` char(20) NOT NULL DEFAULT '',
+ `mobile` char(11) NOT NULL DEFAULT '',
+ `phone` char(20) NOT NULL DEFAULT '',
+ `weixin` varchar(90) NOT NULL DEFAULT '',
+ `dingding` varchar(90) NOT NULL DEFAULT '',
+ `slack` varchar(90) NOT NULL DEFAULT '',
+ `whatsapp` varchar(90) NOT NULL DEFAULT '',
+ `address` char(120) NOT NULL DEFAULT '',
+ `zipcode` char(10) NOT NULL DEFAULT '',
+ `nature` text NOT NULL,
+ `analysis` text NOT NULL,
+ `strategy` text NOT NULL,
+ `join` date NOT NULL DEFAULT '0000-00-00',
+ `visits` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `ip` char(15) NOT NULL DEFAULT '',
+ `last` int(10) unsigned NOT NULL DEFAULT 0,
+ `fails` tinyint(5) NOT NULL DEFAULT 0,
+ `locked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `ranzhi` char(30) NOT NULL DEFAULT '',
+ `score` int(11) NOT NULL DEFAULT 0,
+ `scoreLevel` int(11) NOT NULL DEFAULT 0,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `account` (`account`),
+ KEY `dept` (`dept`),
+ KEY `email` (`email`),
+ KEY `commiter` (`commiter`),
+ KEY `deleted` (`deleted`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_usercontact` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `listName` varchar(60) NOT NULL,
+ `userList` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `account` (`account`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_usergroup` (
+ `account` char(30) NOT NULL DEFAULT '',
+ `group` mediumint(8) unsigned NOT NULL DEFAULT 0,
+ `project` text NOT NULL,
+ UNIQUE KEY `account` (`account`,`group`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_userquery` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `module` varchar(30) NOT NULL,
+ `title` varchar(90) NOT NULL,
+ `form` text NOT NULL,
+ `sql` text NOT NULL,
+ `shortcut` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `account` (`account`),
+ KEY `module` (`module`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_usertpl` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `account` char(30) NOT NULL,
+ `type` char(30) NOT NULL,
+ `title` varchar(150) NOT NULL,
+ `content` text NOT NULL,
+ `public` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ KEY `account` (`account`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_userview` (
+ `account` char(30) NOT NULL,
+ `programs` mediumtext NOT NULL,
+ `products` mediumtext NOT NULL,
+ `projects` mediumtext NOT NULL,
+ `sprints` mediumtext NOT NULL,
+ UNIQUE KEY `account` (`account`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE `zt_webhook` (
+ `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
+ `type` varchar(15) NOT NULL DEFAULT 'default',
+ `name` varchar(50) NOT NULL,
+ `url` varchar(255) NOT NULL,
+ `domain` varchar(255) NOT NULL,
+ `secret` varchar(255) NOT NULL,
+ `contentType` varchar(30) NOT NULL DEFAULT 'application/json',
+ `sendType` enum('sync','async') NOT NULL DEFAULT 'sync',
+ `products` text NOT NULL,
+ `executions` text NOT NULL,
+ `params` varchar(100) NOT NULL,
+ `actions` text NOT NULL,
+ `desc` text NOT NULL,
+ `createdBy` varchar(30) NOT NULL,
+ `createdDate` datetime NOT NULL,
+ `editedBy` varchar(30) NOT NULL,
+ `editedDate` datetime NOT NULL,
+ `deleted` enum('0','1') NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/db/zentao.sql b/db/zentao.sql
index ca974e649e..e113ddc7dc 100644
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -837,7 +837,7 @@ CREATE TABLE IF NOT EXISTS `zt_projectproduct` (
`product` mediumint(8) unsigned NOT NULL,
`branch` mediumint(8) unsigned NOT NULL,
`plan` mediumint(8) unsigned NOT NULL,
- PRIMARY KEY (`project`,`product`, `branch`)
+ PRIMARY KEY (`project`, `product`, `branch`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_projectspec`;
CREATE TABLE IF NOT EXISTS `zt_projectspec` (
diff --git a/doc/CHANGELOG b/doc/CHANGELOG
index 0526c57547..04b9c75f2c 100644
--- a/doc/CHANGELOG
+++ b/doc/CHANGELOG
@@ -1,3 +1,73 @@
+2021-11-19 15.8
+完成的需求
+28965 实现分支的新增/编辑操作
+28941 重新登陆系统后产品下拉菜单应当保持上次选中的产品名称
+28932 实现分支的批量操作
+28931 调整分支管理功能
+28904 优化项目列表“我参与的”筛选结果
+28833 创建执行页面可以直接维护相关负责人信息
+28819 调整项目集/产品/项目/执行重名规则
+28510 项目列表中增加项目代号字段显示
+28509 项目概况中增加项目代号的显示
+28466 测试Bug列表中增加按所属项目的搜索条件
+28138 员工负载表中增加项目名称信息
+28131 待处理任务列表中子任务名称前显示父任务
+28098 需求批量转任务时对已经转换过任务的需求进行提示
+25673 分支增加排序功能
+25670 多分支产品浏览需求的时候将所有和主干区分开
+25667 将所有分支概念改为主干并处理历史数据
+25666 可以将某一个分支关闭
+25665 梳理项目和执行关联产品分支的逻辑
+15478 我的地盘bug列表增加确认字段
+14877 根据分支提示上次版本计划名称
+14778 分支设置默认分支功能
+14772 需求修改所属分支时如果有冲突给出提示
+14771 启用多分支功能后增加分支字样显示的控制
+14761 选择某一个分支之后点击其他菜单希望能够保持分支下拉菜单状态
+14005 能够按照平台分支浏览用户需求
+29147 产品下软件需求列表需求名称前显示主干的分支名
+29145 项目和执行关联了产品的多个分支及计划时调整概况页面显示方式
+29144 所有分支下批量编辑需求/BUG/用例,所属模块数据默认为所有分支的模块时,需要处理分支与模块不一致的问题
+29143 批量创建需求/BUG/用例时所属模块选择同上,需要检测上一行数据的所属分支和当前行的所属分支是否一致
+29142 启用多分支功能后要Bug增加分支字样显示的控制
+29141 启用多分支功能后要用例增加分支字样显示的控制
+29059 多分支产品批量创建需求时分支字段设为默认项
+28974 产品列表批量调整计划时在计划名称前显示分支信息
+28973 提交Bug时分支与影响版本要跟着联动
+28972 产品列表左侧的模块设置调整为显示设置
+28310 未开始的项目集有项目开始的时候自动将项目集状态设置为开始
+28309 未开始的项目有执行开始的时候自动将项目状态设置为开始
+28308 未开始的执行有任务开始的时候自动将执行状态设置为开始
+修复的BUG
+15826 后台评审流程开启后产品中批量创建研发需求没有默认需要评审
+15798 报告导出之后不展示饼状图
+15780 更改项目集的父项目集时,下面的产品线不能变更到顶层项目集
+15695 建用例,有默认所属模块可选择所有需求
+15694 执行下创建用例,可以选择产品所有的模块和需求
+15693 卡片展示项目时,项目状态显示不正确
+15691 套件的用例列表右上角的操作按钮样式不一致
+15690 切换产品后,新建用例未显示在用例列表中
+15689 测试单的报表百分比换行
+15688 新建用例,模块和需求对应错误
+15687 自定义任务优先级展示问题
+15686 创建项目填充数据后,再选择项目集数据被清空
+15665 维护目录和版本管理前的icon图标一样
+12023 产品下分支页面建议优化
+11290 邮件列表中主题字段内容部分遮挡
+16302 项目软件需求下搜索下拉列中所属分支显示为%s
+16257 创建执行的时候已经关闭的项目仍然可以选择
+16139 设为分支为默认分支icon没有显示完全
+16130 项目下创建测试用例时相关需求列出的数据不对
+16018 项目-测试-BUG界面提交BUG不显示多分支/平台
+16000 执行测试用例下用例标题换行显示
+15828 项目集列表中删除顶级项目,跳转错误
+15781 项目创建版本时选择不到产品分支
+15675 版本下解决又激活的bug,重新解决的时候,应该带有之前版本信息
+14101 青春蓝-引导页国际版配图为中文
+13756 提bug页面没有正常显示所属产品分支的控件
+6978 多分支产品bug搜索影响版本不太清晰
+6917 用例转bug编号会变化
+
2021-11-02 15.7.1
修复的BUG
15835 创建产品选择产品线选中样式不对
diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php
index e8873fc3b1..11744bc835 100755
--- a/module/action/lang/zh-cn.php
+++ b/module/action/lang/zh-cn.php
@@ -168,7 +168,6 @@ $lang->action->desc->syncprogram = '$date, 由 $actor 启
$lang->action->desc->syncproject = '$date, 系统判断由于执行开始,将项目状态置为进行中。' . "\n";
$lang->action->desc->syncexecution = '$date, 系统判断由于任务开始,将执行状态置为进行中。' . "\n";
-
/* 用来描述和父子任务相关的操作历史记录。*/
$lang->action->desc->createchildren = '$date, 由 $actor 创建子任务 $extra。' . "\n";
$lang->action->desc->linkchildtask = '$date, 由 $actor 关联子任务 $extra。' . "\n";
diff --git a/module/action/lang/zh-tw.php b/module/action/lang/zh-tw.php
index a12cf989c6..b33ac8d1f5 100755
--- a/module/action/lang/zh-tw.php
+++ b/module/action/lang/zh-tw.php
@@ -282,6 +282,7 @@ $lang->action->label->reviewrejected = '拒絶';
$lang->action->label->reviewclarified = '有待明確';
$lang->action->label->commitsummary = '提交培訓總結';
$lang->action->label->updatetrainee = '更新培訓人員';
+$lang->action->label->setdefaultbranch = '設置了預設分支';
$lang->action->label->syncprogram = '開始了';
$lang->action->label->syncproject = '開始了';
$lang->action->label->syncexecution = '開始了';
@@ -319,6 +320,12 @@ $lang->action->dynamicAction->product['closed'] = '關閉' . $lang->productCo
$lang->action->dynamicAction->product['undeleted'] = '還原' . $lang->productCommon;
$lang->action->dynamicAction->product['hidden'] = '隱藏' . $lang->productCommon;
+$lang->action->dynamicAction->branch['opened'] = '創建分支';
+$lang->action->dynamicAction->branch['edited'] = '編輯分支';
+$lang->action->dynamicAction->branch['closed'] = '關閉分支';
+$lang->action->dynamicAction->branch['activated'] = '激活分支';
+$lang->action->dynamicAction->branch['setdefaultbranch'] = '設置預設分支';
+
$lang->action->dynamicAction->productplan['opened'] = "創建計劃";
$lang->action->dynamicAction->productplan['edited'] = "編輯計劃";
diff --git a/module/api/lang/zh-tw.php b/module/api/lang/zh-tw.php
index 860652c6c9..d08741fd90 100644
--- a/module/api/lang/zh-tw.php
+++ b/module/api/lang/zh-tw.php
@@ -148,15 +148,18 @@ $lang->api->methodOptions = array(
'OPTIONS' => 'OPTIONS',
'HEAD' => 'HEAD'
);
-$lang->api->protocalOptions = array(
- 'HTTP' => 'HTTP',
- 'HTTPS' => 'HTTPS',
-);
-$lang->api->requestTypeOptions = array(
- 'application/json' => 'application/json',
- 'application/x-www-form-urlencoded' => 'application/x-www-form-urlencoded',
- 'multipart/form-data' => 'multipart/form-data'
-);
+
+$lang->api->protocalOptions = array();
+$lang->api->protocalOptions['HTTP'] = 'HTTP';
+$lang->api->protocalOptions['HTTPS'] = 'HTTPS';
+$lang->api->protocalOptions['WS'] = 'WS';
+$lang->api->protocalOptions['WSS'] = 'WSS';
+
+$lang->api->requestTypeOptions = array();
+$lang->api->requestTypeOptions['application/json'] = 'application/json';
+$lang->api->requestTypeOptions['application/x-www-form-urlencoded'] = 'application/x-www-form-urlencoded';
+$lang->api->requestTypeOptions['multipart/form-data'] = 'multipart/form-data';
+
$lang->api->statusOptions = array(
'done' => '開發完成',
'doing' => '開發中',
@@ -173,6 +176,7 @@ $lang->api->paramsScopeOptions = array(
/* Api global common params */
$lang->api->paramsTypeOptions = array(
'object' => 'object',
+ 'array' => 'array',
'string' => 'string',
'date' => 'date',
'datetime' => 'datetime',
@@ -184,11 +188,10 @@ $lang->api->paramsTypeOptions = array(
'decimal' => 'decimal'
);
+$lang->api->boolList = array(false => '否', true => '是', '' => '否');
+
/* Api params */
-$lang->api->paramsTypeCustomOptions = array(
- 'file' => 'file',
- 'ref' => 'ref',
-);
+$lang->api->paramsTypeCustomOptions = array('file' => 'file', 'ref' => 'ref');
$lang->api->structParamsOptons = array_merge($lang->api->paramsTypeOptions, array('file' => 'file', 'ref' => 'ref'));
$lang->api->allParamsTypeOptions = array_merge($lang->api->paramsTypeOptions, $lang->api->paramsTypeCustomOptions);
diff --git a/module/block/lang/zh-tw.php b/module/block/lang/zh-tw.php
index 7350ddb8c9..d8269557e5 100644
--- a/module/block/lang/zh-tw.php
+++ b/module/block/lang/zh-tw.php
@@ -585,3 +585,20 @@ $lang->block->flowchart['project'] = array('項目經理', '創建' . $lang->exe
if($config->systemMode == 'new') $lang->block->flowchart['project'] = array('項目經理', '創建項目、' . $lang->executionCommon, '維護團隊', "關聯需求", '分解任務', '跟蹤進度');
$lang->block->flowchart['dev'] = array('研發人員', '領取任務和Bug', '設計實現方案', '更新狀態', '完成任務和Bug', '提交代碼');
$lang->block->flowchart['tester'] = array('測試人員', '撰寫用例', '執行用例', '提交Bug', '驗證Bug', '關閉Bug');
+
+$lang->block->zentaoapp = new stdclass();
+$lang->block->zentaoapp->thisYearInvestment = '今年投入';
+$lang->block->zentaoapp->sinceTotalInvestment = '從使用至今,總投入';
+$lang->block->zentaoapp->myStory = '我的需求';
+$lang->block->zentaoapp->allStorySum = '需求總數';
+$lang->block->zentaoapp->storyCompleteRate = '需求完成率';
+$lang->block->zentaoapp->latestExecution = '近期執行';
+$lang->block->zentaoapp->involvedExecution = '我參與的執行';
+$lang->block->zentaoapp->mangedProduct = '負責產品';
+$lang->block->zentaoapp->involvedProject = '參與項目';
+$lang->block->zentaoapp->customIndexCard = '定製首頁卡片';
+$lang->block->zentaoapp->createStory = '提需求';
+$lang->block->zentaoapp->createEffort = '記日誌';
+$lang->block->zentaoapp->createDoc = '建文檔';
+$lang->block->zentaoapp->createTodo = '建待辦';
+$lang->block->zentaoapp->workbench = '工作台';
diff --git a/module/branch/lang/zh-tw.php b/module/branch/lang/zh-tw.php
index 679c34eb1a..f9c0468a67 100644
--- a/module/branch/lang/zh-tw.php
+++ b/module/branch/lang/zh-tw.php
@@ -7,39 +7,49 @@ $lang->branch->add = '添加';
$lang->branch->manageTitle = '%s管理';
$lang->branch->all = '所有';
+$lang->branch->main = '主幹';
-$lang->branch->edit = '編輯';
-$lang->branch->editAction = '編輯分支';
-$lang->branch->activate = '啟動';
-$lang->branch->activateAction = '啟動分支';
-$lang->branch->close = '關閉';
-$lang->branch->closeAction = '關閉分支';
-$lang->branch->create = '新增分支';
-$lang->branch->merge = '合併';
+$lang->branch->edit = '編輯%s';
+$lang->branch->editAction = '編輯分支';
+$lang->branch->activate = '激活';
+$lang->branch->activateAction = '激活分支';
+$lang->branch->close = '關閉';
+$lang->branch->closeAction = '關閉分支';
+$lang->branch->create = '新增%s';
+$lang->branch->createAction = '新增分支';
+$lang->branch->merge = '合併';
+$lang->branch->batchEdit = '批量編輯';
+$lang->branch->defaultBranch = '預設分支';
+$lang->branch->setDefault = '設為預設分支';
+$lang->branch->setDefaultAction = '設置預設分支';
-$lang->branch->id = '編號';
+$lang->branch->id = 'ID';
$lang->branch->product = '所屬產品';
-$lang->branch->name = '名稱';
+$lang->branch->name = '%s名稱';
$lang->branch->status = '狀態';
$lang->branch->createdDate = '創建時間';
$lang->branch->closedDate = '關閉時間';
-$lang->branch->desc = '分支描述';
+$lang->branch->desc = '%s描述';
$lang->branch->order = '排序';
$lang->branch->deleted = '已刪除';
+$lang->branch->closed = '已關閉';
+$lang->branch->default = '預設';
-$lang->branch->confirmDelete = '是否刪除該@branch@?';
-$lang->branch->canNotDelete = '該@branch@下已經有數據,不能刪除!';
-$lang->branch->nameNotEmpty = '名稱不能為空!';
-$lang->branch->confirmClose = '是否關閉该@branch@?';
-$lang->branch->confirmActivate = '是否啟動该@branch@?';
+$lang->branch->confirmDelete = '是否刪除該@branch@?';
+$lang->branch->confirmSetDefault = '請確認是否需要將該@branch@設置為預設@branch@,設置成功後計劃和發佈列表將預設選中預設@branch@。';
+$lang->branch->canNotDelete = '該@branch@下已經有數據,不能刪除!';
+$lang->branch->nameNotEmpty = '名稱不能為空!';
+$lang->branch->confirmClose = '是否關閉該@branch@?';
+$lang->branch->confirmActivate = '是否激活該@branch@?';
+$lang->branch->existName = '@branch@名稱已存在';
$lang->branch->noData = '暫時沒有分支。';
-$lang->branch->mainBranch = '產品默認主幹分支。';
+$lang->branch->mainBranch = '產品預設主幹%s。';
$lang->branch->statusList = array();
-$lang->branch->statusList['active'] = '啟動';
-$lang->branch->statusList['closed'] = '關閉';
+$lang->branch->statusList['active'] = '激活';
+$lang->branch->statusList['closed'] = '已關閉';
$lang->branch->featureBar['manage']['all'] = '所有';
-$lang->branch->featureBar['manage']['active'] = '啟動';
-$lang->branch->featureBar['manage']['closed'] = '關閉';
+$lang->branch->featureBar['manage']['active'] = '激活';
+$lang->branch->featureBar['manage']['closed'] = '已關閉';
diff --git a/module/bug/lang/en.php b/module/bug/lang/en.php
index 1a37219fd3..0155f909ba 100644
--- a/module/bug/lang/en.php
+++ b/module/bug/lang/en.php
@@ -151,12 +151,16 @@ $lang->bug->assignToMeAB = 'AssignedToMe';
$lang->bug->openedByMeAB = 'ReportedByMe';
$lang->bug->resolvedByMeAB = 'ResolvedByMe';
-$lang->bug->ditto = 'Ditto';
-$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one is!';
-$lang->bug->noAssigned = 'Unassigned';
-$lang->bug->noBug = 'No bugs yet.';
-$lang->bug->noModule = 'You have no modules.
Manage now
';
-$lang->bug->delayWarning = " Delay %s days ";
+$lang->bug->ditto = 'Ditto';
+$lang->bug->dittoNotice = 'This bug is not linked to the same product as the last one is!';
+$lang->bug->noAssigned = 'Unassigned';
+$lang->bug->noBug = 'No bugs yet.';
+$lang->bug->noModule = 'You have no modules.
Manage now
';
+$lang->bug->delayWarning = " Delay %s days ";
+$lang->bug->labelConfirmed = 'Confirmed';
+$lang->bug->labelPostponed = 'Postponed';
+$lang->bug->changed = 'Changed';
+$lang->bug->storyChanged = 'Story Changed';
/* Page tags. */
$lang->bug->lblAssignedTo = 'AssignTo';
diff --git a/module/bug/lang/zh-tw.php b/module/bug/lang/zh-tw.php
index 2534098a79..e67518485c 100644
--- a/module/bug/lang/zh-tw.php
+++ b/module/bug/lang/zh-tw.php
@@ -151,12 +151,16 @@ $lang->bug->assignToMeAB = '指派給我';
$lang->bug->openedByMeAB = '由我創建';
$lang->bug->resolvedByMeAB = '由我解決';
-$lang->bug->ditto = '同上';
-$lang->bug->dittoNotice = '該bug與上一bug不屬於同一產品!';
-$lang->bug->noAssigned = '未指派';
-$lang->bug->noBug = '暫時沒有Bug。';
-$lang->bug->noModule = '您現在還沒有模組信息
請維護測試模組
';
-$lang->bug->delayWarning = " 延期%s天 ";
+$lang->bug->ditto = '同上';
+$lang->bug->dittoNotice = '該bug與上一bug不屬於同一產品!';
+$lang->bug->noAssigned = '未指派';
+$lang->bug->noBug = '暫時沒有Bug。';
+$lang->bug->noModule = '您現在還沒有模組信息
請維護測試模組
';
+$lang->bug->delayWarning = " 延期%s天 ";
+$lang->bug->labelConfirmed = '已確認';
+$lang->bug->labelPostponed = '被延期';
+$lang->bug->changed = '已變動';
+$lang->bug->storyChanged = '需求變動';
/* 頁面標籤。*/
$lang->bug->lblAssignedTo = '當前指派';
@@ -192,6 +196,7 @@ $lang->bug->skipClose = 'Bug %s 不是已解決狀態,不能關閉
$lang->bug->executionAccessDenied = "您無權訪問該Bug所屬的{$lang->executionCommon}!";
$lang->bug->stepsNotEmpty = "重現步驟不能為空。";
$lang->bug->confirmUnlinkBuild = "更換解決版本將取消與舊版本的關聯,您確定取消該bug與%s的關聯嗎?";
+$lang->bug->noSwitchBranch = 'Bug%s所屬模組不在當前分支下,將自動忽略。';
/* 模板。*/
$lang->bug->tplStep = "[步驟]
";
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index 07325531e5..adc6163ad9 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -34,6 +34,7 @@ $lang->logout = 'Logout';
$lang->login = 'Login';
$lang->help = 'Help';
$lang->aboutZenTao = 'About';
+$lang->ztWebsite = 'ZenTao Address';
$lang->profile = 'Profile';
$lang->changePassword = 'Password';
$lang->unfoldMenu = 'Unfold';
@@ -104,9 +105,10 @@ $lang->customField = 'Custom Field';
$lang->lineNumber = 'Line No.';
$lang->tutorialConfirm = 'You are using ZenTao tutorial. Do you want to quit right now?';
-$lang->preShortcutKey = '[Shortcut:←]';
-$lang->nextShortcutKey = '[Shortcut:→]';
-$lang->backShortcutKey = '[Shortcut:Alt+↑]';
+$lang->preShortcutKey = '[Shortcut:←]';
+$lang->nextShortcutKey = '[Shortcut:→]';
+$lang->backShortcutKey = '[Shortcut:Alt+↑]';
+$lang->shortcutOperation = 'Quick Start';
$lang->select = 'Select';
$lang->selectAll = 'Select All';
@@ -307,7 +309,8 @@ $lang->createObjects['program'] = 'Program';
$lang->createObjects['doc'] = 'Doc';
/* Language. */
-$lang->lang = 'Language';
+$lang->lang = 'Language';
+$lang->setLang = 'Language Setting';
/* Theme style. */
$lang->theme = 'Theme';
diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php
index c155a317a0..bde2294f99 100644
--- a/module/common/lang/zh-tw.php
+++ b/module/common/lang/zh-tw.php
@@ -34,6 +34,7 @@ $lang->logout = '退出';
$lang->login = '登錄';
$lang->help = '幫助';
$lang->aboutZenTao = '關於禪道';
+$lang->ztWebsite = '禪道系統網址';
$lang->profile = '個人檔案';
$lang->changePassword = '修改密碼';
$lang->unfoldMenu = '展開導航';
@@ -104,9 +105,10 @@ $lang->customField = '自定義表單項';
$lang->lineNumber = '行號';
$lang->tutorialConfirm = '檢測到你尚未退出新手教程模式,是否現在退出?';
-$lang->preShortcutKey = '[快捷鍵:←]';
-$lang->nextShortcutKey = '[快捷鍵:→]';
-$lang->backShortcutKey = '[快捷鍵:Alt+↑]';
+$lang->preShortcutKey = '[快捷鍵:←]';
+$lang->nextShortcutKey = '[快捷鍵:→]';
+$lang->backShortcutKey = '[快捷鍵:Alt+↑]';
+$lang->shortcutOperation = '快捷操作';
$lang->select = '選擇';
$lang->selectAll = '全選';
@@ -307,7 +309,8 @@ $lang->createObjects['program'] = '項目集';
$lang->createObjects['doc'] = '文檔';
/* 語言 */
-$lang->lang = 'Language';
+$lang->lang = 'Language';
+$lang->setLang = '語言設置';
/* 風格列表。*/
$lang->theme = '主題';
@@ -402,18 +405,19 @@ $lang->pasteImgFail = "貼圖失敗,請稍後重試。";
$lang->pasteImgUploading = "正在上傳圖片,請稍後...";
/* 時間格式設置。*/
-if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
-if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
+if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
+if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
if(!defined('DT_MONTHTIME1')) define('DT_MONTHTIME1', 'n/d H:i');
if(!defined('DT_MONTHTIME2')) define('DT_MONTHTIME2', 'n月d日 H:i');
-if(!defined('DT_DATE1')) define('DT_DATE1', 'Y-m-d');
-if(!defined('DT_DATE2')) define('DT_DATE2', 'Ymd');
-if(!defined('DT_DATE3')) define('DT_DATE3', 'Y年m月d日');
-if(!defined('DT_DATE4')) define('DT_DATE4', 'n月j日');
-if(!defined('DT_DATE5')) define('DT_DATE5', 'j/n');
-if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
-if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
-if(!defined('LONG_TIME')) define('LONG_TIME', '2059-12-31');
+if(!defined('DT_DATE1')) define('DT_DATE1', 'Y-m-d');
+if(!defined('DT_DATE2')) define('DT_DATE2', 'Ymd');
+if(!defined('DT_DATE3')) define('DT_DATE3', 'Y年m月d日');
+if(!defined('DT_DATE4')) define('DT_DATE4', 'n月j日');
+if(!defined('DT_DATE5')) define('DT_DATE5', 'j/n');
+if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
+if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
+if(!defined('LONG_TIME')) define('LONG_TIME', '2059-12-31');
+if(!defined('BRANCH_MAIN')) define('BRANCH_MAIN', '0');
/* datepicker 時間*/
$lang->datepicker = new stdclass();
diff --git a/module/datatable/lang/zh-tw.php b/module/datatable/lang/zh-tw.php
index 1b2cb048de..57578b67bd 100644
--- a/module/datatable/lang/zh-tw.php
+++ b/module/datatable/lang/zh-tw.php
@@ -18,12 +18,15 @@ $lang->datatable->resetGlobal = '全局恢復預設';
$lang->datatable->branch = '分支';
$lang->datatable->platform = '平台';
-$lang->datatable->displaySetting = '顯示設定';
$lang->datatable->moduleSetting = '模組設置';
+$lang->datatable->displaySetting = '顯示設置';
$lang->datatable->showModule = '列表頁是否顯示模組名';
+$lang->datatable->showBranch = '列表頁是否顯示%s名';
$lang->datatable->showAllModule = '是否顯示完整產品模組';
$lang->datatable->showModuleList[] = '不顯示';
$lang->datatable->showModuleList['base'] = '只顯示一級模組';
$lang->datatable->showModuleList['end'] = '只顯示最後一級模組';
$lang->datatable->showAllModuleList[0] = '不顯示';
$lang->datatable->showAllModuleList[1] = '顯示';
+$lang->datatable->showBranchList[0] = '不顯示';
+$lang->datatable->showBranchList[1] = '顯示';
diff --git a/module/execution/lang/zh-tw.php b/module/execution/lang/zh-tw.php
index 2098d883d7..306f90abe3 100644
--- a/module/execution/lang/zh-tw.php
+++ b/module/execution/lang/zh-tw.php
@@ -328,6 +328,7 @@ $lang->execution->notAllowedUnlinkStory = "該{$lang->SRCommon}已經與
$lang->execution->notAllowRemoveProducts = "該{$lang->productCommon}中的{$lang->SRCommon}已與該{$lang->executionCommon}進行了關聯,請取消關聯後再操作。";
$lang->execution->errorNoLinkedProducts = "該{$lang->executionCommon}沒有關聯的{$lang->productCommon},系統將轉到{$lang->productCommon}關聯頁面";
$lang->execution->errorSameProducts = "{$lang->executionCommon}不能關聯多個相同的{$lang->productCommon}。";
+$lang->execution->errorSameBranches = "{$lang->executionCommon}不能關聯多個相同的分支。";
$lang->execution->errorBegin = "{$lang->executionCommon}的開始時間不能小於所屬項目的開始時間%s。";
$lang->execution->errorEnd = "{$lang->executionCommon}的截止時間不能大於所屬項目的結束時間%s。";
$lang->execution->accessDenied = "您無權訪問該{$lang->executionCommon}!";
@@ -345,6 +346,7 @@ $lang->execution->unfinishedExecution = "該{$lang->executionCommon}下
$lang->execution->unfinishedTask = "[%s]個未完成的任務,";
$lang->execution->unresolvedBug = "[%s]個未解決的bug,";
$lang->execution->projectNotEmpty = '所屬項目不能為空。';
+$lang->execution->confirmStoryToTask = '%s' . $lang->SRCommon . '已經在當前' . $lang->execution->common . '中轉了任務,請確認是否重複轉任務。';
/* 統計。*/
$lang->execution->charts = new stdclass();
diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php
index 90afaf6003..1608e7f6d3 100644
--- a/module/misc/lang/en.php
+++ b/module/misc/lang/en.php
@@ -94,6 +94,7 @@ $lang->misc->feature->downloadFile = 'Download introduction';
$lang->misc->feature->tutorialDesc = 'ZenTao 15.0 has new functions, and you know how to use it through the "Tutorial".
Click your [Avatar-Theme-Young Blue] to set it.
';
$lang->misc->feature->themeDesc = 'ZenTao 15.0+ a new "Youth Blue" theme, the pages are more beautiful and the experience is more friendly.
Click your [Avatar-Theme-Young Blue] to set it.
';
+$lang->misc->releaseDate['15.8'] = '2021-11-19';
$lang->misc->releaseDate['15.7.1'] = '2021-11-02';
$lang->misc->releaseDate['15.7'] = '2021-10-18';
$lang->misc->releaseDate['15.6'] = '2021-10-12';
@@ -162,6 +163,7 @@ $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['15.8'][] = array('title' => 'Optimize the branch management and its details. Fix bug.', 'desc' => '');
$lang->misc->feature->all['15.7.1'][] = array('title' => 'Fix bug.', 'desc' => '');
$lang->misc->feature->all['15.7'][] = array('title' => 'Add API Lib. Fix bug.', 'desc' => '');
$lang->misc->feature->all['15.6'][] = array('title' => 'Fix bug.', 'desc' => '');
diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php
index bd15484124..ca0b6feaec 100644
--- a/module/misc/lang/zh-cn.php
+++ b/module/misc/lang/zh-cn.php
@@ -94,6 +94,7 @@ $lang->misc->feature->downloadFile = '下载新版本功能介绍文档';
$lang->misc->feature->tutorialDesc = "禅道15系列新增了多项功能,您可以通过“新手引导教程”快速了解禅道的基本使用方法。
通过鼠标经过 [头像-新手引导],点击新手引导,即可进入新手引导教程。
";
$lang->misc->feature->themeDesc = "禅道15系列上线了全新的“青春蓝”主题,页面呈现更加美观,体验更加友好。
通过鼠标经过 [头像-主题-青春蓝],点击青春蓝,即可设置成功。
";
+$lang->misc->releaseDate['15.8'] = '2021-11-19';
$lang->misc->releaseDate['15.7.1'] = '2021-11-02';
$lang->misc->releaseDate['15.7'] = '2021-10-18';
$lang->misc->releaseDate['15.6'] = '2021-10-12';
@@ -162,6 +163,7 @@ $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['15.8'][] = array('title' => '完善分支管理和细节。修复Bug。', 'desc' => '');
$lang->misc->feature->all['15.7.1'][] = array('title' => '修复Bug。', 'desc' => '');
$lang->misc->feature->all['15.7'][] = array('title' => '新增接口库。修复Bug。', 'desc' => '');
$lang->misc->feature->all['15.6'][] = array('title' => '修复Bug。', 'desc' => '');
diff --git a/module/misc/lang/zh-tw.php b/module/misc/lang/zh-tw.php
index 94a70e0c2b..83b07b053b 100644
--- a/module/misc/lang/zh-tw.php
+++ b/module/misc/lang/zh-tw.php
@@ -85,13 +85,16 @@ $lang->misc->feature->lastest = '最新版本';
$lang->misc->feature->detailed = '詳情';
$lang->misc->feature->introduction = '新功能介紹';
$lang->misc->feature->tutorial = '新手引導教程';
+$lang->misc->feature->tutorialImage = 'theme/default/images/main/tutorial.png';
$lang->misc->feature->youngBlueTheme = '全新青春藍主題';
+$lang->misc->feature->youngBlueImage = 'theme/default/images/main/new_theme.png';
$lang->misc->feature->nextStep = '下一步';
$lang->misc->feature->close = '關閉';
$lang->misc->feature->downloadFile = '下載新版本功能介紹文檔';
$lang->misc->feature->tutorialDesc = "禪道15系列新增了多項功能,您可以通過“新手引導教程”快速瞭解禪道的基本使用方法。
通過滑鼠經過 [頭像-新手引導],點擊新手引導,即可進入新手引導教程。
";
$lang->misc->feature->themeDesc = "禪道15系列上線了全新的“青春藍”主題,頁面呈現更加美觀,體驗更加友好。
通過滑鼠經過 [頭像-主題-青春藍],點擊青春藍,即可設置成功。
";
+$lang->misc->releaseDate['15.8'] = '2021-11-19';
$lang->misc->releaseDate['15.7.1'] = '2021-11-02';
$lang->misc->releaseDate['15.7'] = '2021-10-18';
$lang->misc->releaseDate['15.6'] = '2021-10-12';
@@ -160,6 +163,7 @@ $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['15.8'][] = array('title' => '完善分支管理和細節。修復Bug。', 'desc' => '');
$lang->misc->feature->all['15.7.1'][] = array('title' => '修復Bug。', 'desc' => '');
$lang->misc->feature->all['15.7'][] = array('title' => '新增介面庫。修復Bug。', 'desc' => '');
$lang->misc->feature->all['15.6'][] = array('title' => '修復Bug。', 'desc' => '');
diff --git a/module/my/lang/en.php b/module/my/lang/en.php
index 97b83bca18..27c0de437d 100644
--- a/module/my/lang/en.php
+++ b/module/my/lang/en.php
@@ -3,6 +3,7 @@ global $config;
/* Method List。*/
$lang->my->index = 'Home';
+$lang->my->data = 'My Data';
$lang->my->todo = 'My Todos';
$lang->my->calendar = 'Schedule';
$lang->my->work = 'Work';
diff --git a/module/my/lang/zh-tw.php b/module/my/lang/zh-tw.php
index 2f738aaa95..9bbe89a5ba 100644
--- a/module/my/lang/zh-tw.php
+++ b/module/my/lang/zh-tw.php
@@ -3,6 +3,7 @@ global $config;
/* 方法列表。*/
$lang->my->index = '首頁';
+$lang->my->data = '我的數據';
$lang->my->todo = '我的待辦';
$lang->my->calendar = '日程';
$lang->my->work = '待處理';
diff --git a/module/project/lang/zh-tw.php b/module/project/lang/zh-tw.php
index c16d3e81a6..e71dfdccaa 100644
--- a/module/project/lang/zh-tw.php
+++ b/module/project/lang/zh-tw.php
@@ -43,6 +43,7 @@ $lang->project->unbindWhitelist = '項目刪除白名單';
$lang->project->manageProducts = '關聯產品';
$lang->project->copyTitle = '請選擇要複製的項目';
$lang->project->errorSameProducts = '項目不能關聯多個相同的產品。';
+$lang->project->errorSameBranches = '項目不能關聯多個相同的分支。';
$lang->project->errorNoProducts = '最少關聯一個產品';
$lang->project->copyNoProject = '沒有可用的項目來複制';
$lang->project->searchByName = '輸入項目名稱進行檢索';
@@ -266,7 +267,7 @@ $lang->project->cannotCancelCat = "該項目下已經有子項目,無
$lang->project->parentBeginEnd = "父項目起止時間:%s ~ %s";
$lang->project->childLongTime = "子項目中有長期項目,父項目也應該是長期項目";
$lang->project->readjustTime = '重新調整項目起止時間';
-$lang->project->notAllowRemoveProducts = '該產品中的需求已與項目進行了關聯,請取消關聯後再操作。';
+$lang->project->notAllowRemoveProducts = "該產品中的需求與項目進行了關聯或者項目下的{$lang->execution->common}關聯了該產品,請取消關聯後再操作。";
$lang->project->programTitle['0'] = '不顯示';
$lang->project->programTitle['base'] = '只顯示一級項目集';
diff --git a/module/report/lang/en.php b/module/report/lang/en.php
index 5123d3893a..337a4eb07c 100644
--- a/module/report/lang/en.php
+++ b/module/report/lang/en.php
@@ -193,6 +193,9 @@ $lang->report->annualData->actionList['assign'] = 'Assigned';
$lang->report->annualData->actionList['activate'] = 'Activated';
$lang->report->annualData->actionList['resolve'] = 'Resolved';
$lang->report->annualData->actionList['run'] = 'Execute';
+$lang->report->annualData->actionList['stop'] = 'Stop Maintenance';
+$lang->report->annualData->actionList['putoff'] = 'Postponed ';
+$lang->report->annualData->actionList['suspend'] = 'Suspended';
$lang->report->annualData->actionList['change'] = 'Changed';
$lang->report->annualData->actionList['pause'] = 'Paused';
$lang->report->annualData->actionList['cancel'] = 'Canceled';
diff --git a/module/report/lang/zh-tw.php b/module/report/lang/zh-tw.php
index 18839172aa..8bd704578d 100644
--- a/module/report/lang/zh-tw.php
+++ b/module/report/lang/zh-tw.php
@@ -193,6 +193,9 @@ $lang->report->annualData->actionList['assign'] = '指派';
$lang->report->annualData->actionList['activate'] = '激活';
$lang->report->annualData->actionList['resolve'] = '解決';
$lang->report->annualData->actionList['run'] = '執行';
+$lang->report->annualData->actionList['stop'] = '停止維護';
+$lang->report->annualData->actionList['putoff'] = '延期';
+$lang->report->annualData->actionList['suspend'] = '掛起';
$lang->report->annualData->actionList['change'] = '變更';
$lang->report->annualData->actionList['pause'] = '暫停';
$lang->report->annualData->actionList['cancel'] = '取消';
@@ -203,8 +206,25 @@ $lang->report->annualData->todoStatus['all'] = '所有待辦';
$lang->report->annualData->todoStatus['undone'] = '未完成';
$lang->report->annualData->todoStatus['done'] = '已完成';
-$lang->report->annualData->radarItems['product'] = '產品';
-$lang->report->annualData->radarItems['execution'] = $lang->executionCommon;
+$lang->report->annualData->radarItems['product'] = '產品管理';
+$lang->report->annualData->radarItems['execution'] = '項目管理';
$lang->report->annualData->radarItems['devel'] = "研發";
$lang->report->annualData->radarItems['qa'] = "測試";
$lang->report->annualData->radarItems['other'] = "其他";
+
+$lang->report->companyRadar = "公司能力雷達圖";
+$lang->report->outputData = "產出數據";
+$lang->report->outputTotal = "產出總數";
+$lang->report->storyOutput = "需求產出";
+$lang->report->planOutput = "計劃產出";
+$lang->report->releaseOutput = "發佈產出";
+$lang->report->executionOutput = "執行產出";
+$lang->report->taskOutput = "任務產出";
+$lang->report->bugOutput = "Bug產出";
+$lang->report->caseOutput = "用例產出";
+$lang->report->bugProgress = "Bug進展";
+$lang->report->productProgress = "產品進展";
+$lang->report->executionProgress = "執行進展";
+$lang->report->projectProgress = "項目進展";
+$lang->report->yearProjectOverview = "年度項目總覽";
+$lang->report->projectOverview = "截止目前項目總覽";
diff --git a/module/sso/lang/en.php b/module/sso/lang/en.php
index 40e96a2a77..4e6dbd5754 100644
--- a/module/sso/lang/en.php
+++ b/module/sso/lang/en.php
@@ -33,7 +33,14 @@ $lang->sso->help = <<1. Zdoo address is required. If use PATH_INFO, it is http://YOUR ZDOO ADDRESS/sys/sso-check.html If GET, it is http://YOUR ZDOO ADDRESS/sys/index.php?m=sso&f=check
2. Code and Secret Key must be the same as set in Zdoo.
EOD;
+$lang->sso->deny = 'Access Limited';
$lang->sso->bindNotice = 'User that is just added has no permissions. You have to ask ZenTao Admin to grant permissions to the User.';
$lang->sso->bindNoPassword = 'Password should not be empty.';
$lang->sso->bindNoUser = 'Password is wrong/User cannot be found!';
$lang->sso->bindHasAccount = 'This username already exists. Change your username or bind to it.';
+
+$lang->sso->homeURL = 'Feishu Page Config URL:';
+$lang->sso->redirectURL = 'Feishu Redirect URL:';
+$lang->sso->feishuConfigEmpty = 'Go to [Admin]-[Notification]-[Webhook] to set ( Feishu Work Notification)';
+$lang->sso->feishuResponseEmpty = 'Request response is empty';
+$lang->sso->unbound = 'Current Feishu user is not bound in ZenTao-Wwebhook.';
diff --git a/module/sso/lang/zh-tw.php b/module/sso/lang/zh-tw.php
index 49ae9aac99..16c485b13d 100644
--- a/module/sso/lang/zh-tw.php
+++ b/module/sso/lang/zh-tw.php
@@ -33,7 +33,14 @@ $lang->sso->help = <<1、介面地址的填寫,如果是PATH_INFO :http://ZDOO網址/sys/sso-check.html,如果是GET:http://ZDOO網址/sys/index.php?m=sso&f=check
2、代號和密鑰必須與ZDOO後台設置的一致。
EOD;
+$lang->sso->deny = '訪問受限';
$lang->sso->bindNotice = '添加的新用戶暫時沒有權限,需要聯繫禪道管理員,給該用戶分配權限。';
$lang->sso->bindNoPassword = '密碼不能為空';
$lang->sso->bindNoUser = '該用戶的登錄密碼錯誤,或該用戶不存在!';
$lang->sso->bindHasAccount = '該用戶名已經存在,請更換用戶名,或直接綁定到該用戶。';
+
+$lang->sso->homeURL = '飛書主頁配置URL:';
+$lang->sso->redirectURL = '飛書重定向配置URL:';
+$lang->sso->feishuConfigEmpty = '請在[後台][通知][Webhook]功能中配置(飛書工作消息通知)';
+$lang->sso->feishuResponseEmpty = '請求響應信息為空';
+$lang->sso->unbound = '當前飛書用戶未在禪道webhook功能中進行用戶關係綁定';
diff --git a/module/story/lang/zh-tw.php b/module/story/lang/zh-tw.php
index c443da0a19..7f2e07f097 100644
--- a/module/story/lang/zh-tw.php
+++ b/module/story/lang/zh-tw.php
@@ -277,6 +277,7 @@ $lang->story->moveChildrenTips = "修改父{$lang->SRCommon}的所屬產品
$lang->story->changeTips = '該軟件需求關聯的用戶需求有變更,點擊“不變更”忽略此條變更,點擊“變更”來進行該軟件需求的變更。';
$lang->story->estimateMustBeNumber = '估算值必須是數字';
$lang->story->estimateMustBePlus = '估算值不能是負數';
+$lang->story->confirmChangeBranch = $lang->SRCommon . '%s已關聯在之前所屬分支的計劃中,調整分支後,' . $lang->SRCommon . '將從之前所屬分支的計劃中移除,請確認是否繼續修改上述' . $lang->SRCommon . '的分支。';
$lang->story->form = new stdclass();
$lang->story->form->area = "該{$lang->SRCommon}所屬範圍";
diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php
index 82dee1fbe0..3763a184f2 100644
--- a/module/todo/lang/en.php
+++ b/module/todo/lang/en.php
@@ -97,12 +97,12 @@ $lang->todo->priList[2] = 'Important';
$lang->todo->priList[3] = 'Normal';
$lang->todo->priList[4] = 'Low';
-$lang->todo->typeList['custom'] = 'Custom';
-$lang->todo->typeList['cycle'] = 'Recur';
-$lang->todo->typeList['bug'] = 'Bug';
-$lang->todo->typeList['task'] = 'Task';
-$lang->todo->typeList['story'] = 'Story';
-$lang->todo->typeList['testtask'] = 'Testtask';
+$lang->todo->typeList['custom'] = 'Custom';
+$lang->todo->typeList['cycle'] = 'Recur';
+$lang->todo->typeList['bug'] = 'Bug';
+$lang->todo->typeList['task'] = 'Task';
+$lang->todo->typeList['story'] = 'Story';
+$lang->todo->typeList['testtask'] = 'Testtask';
$lang->todo->confirmDelete = "Do you want to delete this todo?";
$lang->todo->thisIsPrivate = 'This is a private todo';
@@ -112,6 +112,7 @@ $lang->todo->lblClickCreate = "Click to Add Todo";
$lang->todo->noTodo = 'No todos of this type.';
$lang->todo->noAssignedTo = "The AssignedTo should not be empty.";
$lang->todo->unfinishedTodo = 'The todos of ID %s are not finished, and can not close.';
+$lang->todo->today = 'Todo Today';
$lang->todo->periods['all'] = 'All Todos';
$lang->todo->periods['before'] = 'Unfinished';
diff --git a/module/todo/lang/zh-cn.php b/module/todo/lang/zh-cn.php
index 400422870f..dd875c35b1 100644
--- a/module/todo/lang/zh-cn.php
+++ b/module/todo/lang/zh-cn.php
@@ -97,12 +97,12 @@ $lang->todo->priList[2] = 2;
$lang->todo->priList[3] = 3;
$lang->todo->priList[4] = 4;
-$lang->todo->typeList['custom'] = '自定义';
-$lang->todo->typeList['cycle'] = '周期';
-$lang->todo->typeList['bug'] = 'Bug';
-$lang->todo->typeList['task'] = '任务';
-$lang->todo->typeList['story'] = $lang->SRCommon;
-$lang->todo->typeList['testtask'] = '测试单';
+$lang->todo->typeList['custom'] = '自定义';
+$lang->todo->typeList['cycle'] = '周期';
+$lang->todo->typeList['bug'] = 'Bug';
+$lang->todo->typeList['task'] = '任务';
+$lang->todo->typeList['story'] = $lang->SRCommon;
+$lang->todo->typeList['testtask'] = '测试单';
$lang->todo->confirmDelete = "您确定要删除这条待办吗?";
$lang->todo->thisIsPrivate = '这是一条私人事务。:)';
diff --git a/module/todo/lang/zh-tw.php b/module/todo/lang/zh-tw.php
index ae09ab15b9..ca4777a325 100644
--- a/module/todo/lang/zh-tw.php
+++ b/module/todo/lang/zh-tw.php
@@ -97,12 +97,12 @@ $lang->todo->priList[2] = 2;
$lang->todo->priList[3] = 3;
$lang->todo->priList[4] = 4;
-$lang->todo->typeList['custom'] = '自定義';
-$lang->todo->typeList['cycle'] = '周期';
-$lang->todo->typeList['bug'] = 'Bug';
-$lang->todo->typeList['task'] = '任務';
-$lang->todo->typeList['story'] = $lang->SRCommon;
-$lang->todo->typeList['testtask'] = '測試單';
+$lang->todo->typeList['custom'] = '自定義';
+$lang->todo->typeList['cycle'] = '周期';
+$lang->todo->typeList['bug'] = 'Bug';
+$lang->todo->typeList['task'] = '任務';
+$lang->todo->typeList['story'] = $lang->SRCommon;
+$lang->todo->typeList['testtask'] = '測試單';
$lang->todo->confirmDelete = "您確定要刪除這條待辦嗎?";
$lang->todo->thisIsPrivate = '這是一條私人事務。:)';
@@ -112,6 +112,7 @@ $lang->todo->lblClickCreate = "點擊添加待辦";
$lang->todo->noTodo = '該類型沒有待辦事務';
$lang->todo->noAssignedTo = '被指派人不能為空';
$lang->todo->unfinishedTodo = '待辦ID %s 不是完成狀態,不能關閉。';
+$lang->todo->today = '今日待辦';
$lang->todo->periods['all'] = '所有';
$lang->todo->periods['before'] = '未完';
diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php
index 6e8a47a9af..6b05bfaf8a 100644
--- a/module/upgrade/lang/version.php
+++ b/module/upgrade/lang/version.php
@@ -146,3 +146,4 @@ $lang->upgrade->fromVersions['15_4'] = '15.4';
$lang->upgrade->fromVersions['15_5'] = '15.5';
$lang->upgrade->fromVersions['15_6'] = '15.6';
$lang->upgrade->fromVersions['15_7'] = '15.7';
+$lang->upgrade->fromVersions['15_7_1'] = '15.7.1';
diff --git a/module/upgrade/model.php b/module/upgrade/model.php
index 045570de02..22aaeede23 100644
--- a/module/upgrade/model.php
+++ b/module/upgrade/model.php
@@ -940,6 +940,7 @@ class upgradeModel extends model
case '15_5': $confirmContent .= file_get_contents($this->getUpgradeFile('15.5'));
case '15_6': $confirmContent .= file_get_contents($this->getUpgradeFile('15.6'));
case '15_7': $confirmContent .= file_get_contents($this->getUpgradeFile('15.7'));
+ case '15_7_1': $confirmContent .= file_get_contents($this->getUpgradeFile('15.7.1'));
}
return str_replace('zt_', $this->config->db->prefix, $confirmContent);
}
diff --git a/module/user/lang/en.php b/module/user/lang/en.php
index f964a41a94..55751b0aee 100644
--- a/module/user/lang/en.php
+++ b/module/user/lang/en.php
@@ -186,8 +186,9 @@ $lang->user->personalData['createdIssues'] = 'Issues Created';
$lang->user->personalData['resolvedIssues'] = 'Issues Resolved';
$lang->user->personalData['createdDocs'] = 'Docs Created';
-$lang->user->keepLogin['on'] = 'Keep Login';
-$lang->user->loginWithDemoUser = 'Login as Demo User:';
+$lang->user->keepLogin['on'] = 'Keep Login';
+$lang->user->loginWithDemoUser = 'Login as Demo User:';
+$lang->user->scanToLogin = 'Scan QR Code';
$lang->user->tpl = new stdclass();
$lang->user->tpl->type = 'Type';
@@ -206,6 +207,10 @@ $lang->user->placeholder->group = "Group is related to user privileges.";
$lang->user->placeholder->commiter = 'SVN/Git account';
$lang->user->placeholder->verify = 'Please enter your ZenTao login password to verify..';
+$lang->user->placeholder->loginPassword = 'Enter your password';
+$lang->user->placeholder->loginAccount = 'Enter your account';
+$lang->user->placeholder->loginUrl = 'Enter your ZenTao address';
+
$lang->user->placeholder->passwordStrength[1] = '>= 6 letters and numbers';
$lang->user->placeholder->passwordStrength[2] = '>= 10 letters, numbers and special characters';
@@ -219,6 +224,8 @@ $lang->user->error->reserved = "ID %s,account is reserved.";
$lang->user->error->weakPassword = "ID %s,the password strength is less than the system setting.";
$lang->user->error->dangerPassword = "ID %s,passwords cannot be used with [%s] these commonly used if-passwords.";
+$lang->user->error->url = "Invalid address. Please contact your ZenTao Admin.";
+$lang->user->error->verify = "Wrong account or password.";
$lang->user->error->verifyPassword = "Verification failed. Please enter your Login Password.";
$lang->user->error->originalPassword = "Old password is incorrect.";
$lang->user->error->companyEmpty = "Company name must be not empty.";
diff --git a/module/user/lang/zh-tw.php b/module/user/lang/zh-tw.php
index 2172e95219..c721a5f308 100644
--- a/module/user/lang/zh-tw.php
+++ b/module/user/lang/zh-tw.php
@@ -186,8 +186,9 @@ $lang->user->personalData['createdIssues'] = '創建的問題數';
$lang->user->personalData['resolvedIssues'] = '解決的問題數';
$lang->user->personalData['createdDocs'] = '創建的文檔數';
-$lang->user->keepLogin['on'] = '保持登錄';
-$lang->user->loginWithDemoUser = '使用demo帳號登錄:';
+$lang->user->keepLogin['on'] = '保持登錄';
+$lang->user->loginWithDemoUser = '使用demo帳號登錄:';
+$lang->user->scanToLogin = '掃一掃登錄';
$lang->user->tpl = new stdclass();
$lang->user->tpl->type = '類型';
@@ -199,12 +200,16 @@ $lang->usertpl = new stdclass();
$lang->usertpl->title = '模板名稱';
$lang->user->placeholder = new stdclass();
-$lang->user->placeholder->account = '英文、數字和下劃線的組合,三位以上';
-$lang->user->placeholder->password1 = '六位以上';
-$lang->user->placeholder->role = '職位影響內容和用戶列表的順序。';
-$lang->user->placeholder->group = '分組決定用戶的權限列表。';
-$lang->user->placeholder->commiter = '版本控制系統(subversion)中的帳號';
-$lang->user->placeholder->verify = '請輸入您的系統登錄密碼';
+$lang->user->placeholder->account = '英文、數字和下劃線的組合,三位以上';
+$lang->user->placeholder->password1 = '六位以上';
+$lang->user->placeholder->role = '職位影響內容和用戶列表的順序。';
+$lang->user->placeholder->group = '分組決定用戶的權限列表。';
+$lang->user->placeholder->commiter = '版本控制系統(subversion)中的帳號';
+$lang->user->placeholder->verify = '請輸入您的系統登錄密碼';
+
+$lang->user->placeholder->loginPassword = '請輸入密碼';
+$lang->user->placeholder->loginAccount = '請輸入用戶名';
+$lang->user->placeholder->loginUrl = '請輸入禪道系統網址';
$lang->user->placeholder->passwordStrength[1] = '6位以上,包含大小寫字母,數字。';
$lang->user->placeholder->passwordStrength[2] = '10位以上,包含大小寫字母,數字,特殊字元。';
@@ -219,6 +224,8 @@ $lang->user->error->reserved = "【ID %s】的用戶名已被系統預留"
$lang->user->error->weakPassword = "【ID %s】的密碼強度小於系統設定。";
$lang->user->error->dangerPassword = "【ID %s】的密碼不能使用【%s】這些常用若口令。";
+$lang->user->error->url = "網址不正確,請聯繫管理員";
+$lang->user->error->verify = "用戶名或密碼錯誤";
$lang->user->error->verifyPassword = "驗證失敗,請檢查您的系統登錄密碼是否正確";
$lang->user->error->originalPassword = "原密碼不正確";
$lang->user->error->companyEmpty = "公司名稱不能為空!";
@@ -267,16 +274,19 @@ $lang->user->process4DB = "檢測到您可能在使用一鍵安裝包環境,
$lang->user->mkdirWin = <<
|
- 不能創建臨時目錄,請確認目錄%s是否存在並有操作權限。
+ 不能創建臨時目錄,請確認目錄%s是否存在並有操作權限。
Can't create tmp directory, make sure the directory %s exists and has permission to operate.
|