From 5088fcc659ef12319908a21bba0df62b978e9082 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Thu, 2 Jan 2020 16:53:24 +0800 Subject: [PATCH] * add new version and upgrade. --- VERSION | 2 +- config/config.php | 2 +- db/standard/zentao12.0.sql | 989 ++++++++++++++++++++++++++++++++ doc/CHANGELOG | 144 +++++ module/block/lang/zh-tw.php | 4 +- module/bug/lang/zh-tw.php | 1 + module/build/lang/zh-tw.php | 3 + module/common/lang/zh-tw.php | 12 +- module/dev/lang/zh-tw.php | 4 + module/doc/lang/de.php | 2 - module/doc/lang/en.php | 2 - module/doc/lang/fr.php | 2 - module/doc/lang/zh-tw.php | 2 - module/install/lang/zh-tw.php | 1 - module/misc/lang/de.php | 7 + module/misc/lang/en.php | 7 + module/misc/lang/fr.php | 7 + module/misc/lang/zh-cn.php | 5 + module/misc/lang/zh-tw.php | 7 + module/project/lang/zh-tw.php | 2 +- module/repo/control.php | 1 + module/report/lang/zh-tw.php | 49 ++ module/story/lang/zh-tw.php | 2 +- module/task/lang/zh-tw.php | 2 +- module/testtask/lang/zh-tw.php | 45 +- module/upgrade/lang/version.php | 1 + module/webhook/lang/zh-tw.php | 1 + www/upgrade.php.tmp | 1 + 28 files changed, 1267 insertions(+), 40 deletions(-) create mode 100644 db/standard/zentao12.0.sql diff --git a/VERSION b/VERSION index 46284abde9..9315b84d58 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -11.7.stable \ No newline at end of file +12.0.stable diff --git a/config/config.php b/config/config.php index 26abb8fa6d..74a3e000b0 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 = '11.7'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '12.0'; // 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/zentao12.0.sql b/db/standard/zentao12.0.sql new file mode 100644 index 0000000000..33d80f8c60 --- /dev/null +++ b/db/standard/zentao12.0.sql @@ -0,0 +1,989 @@ +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(9) NOT NULL, + `actor` varchar(30) 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 `objectID` (`objectID`) +) 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, + `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 `accountModuleOrder` (`account`,`module`,`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, + `order` smallint(5) 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, + `product` mediumint(8) unsigned NOT NULL DEFAULT '0', + `branch` mediumint(8) unsigned NOT NULL DEFAULT '0', + `module` mediumint(8) unsigned NOT NULL DEFAULT '0', + `project` 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, + `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, + `entry` varchar(255) unsigned NOT NULL, + `repo` mediumint(8) unsigned NOT NULL, + `lines` varchar(10) unsigned NOT NULL, + `v1` varchar(40) unsigned NOT NULL, + `v2` varchar(40) unsigned NOT NULL, + `repoType` varchar(30) unsigned NOT NULL, + `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 `project` (`project`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT '0', + `branch` mediumint(8) unsigned NOT NULL DEFAULT '0', + `project` 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 `project` (`project`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_burn` ( + `project` 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, + PRIMARY KEY (`project`,`date`,`task`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL DEFAULT '0', + `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', + `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, + `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 `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_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` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`owner`,`module`,`section`,`key`) +) ENGINE=MyISAM 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 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, + `product` mediumint(8) unsigned NOT NULL, + `project` 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, + `collector` text NOT NULL, + `addedBy` varchar(30) NOT NULL, + `addedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT 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 `project` (`project`), + 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` text 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, + `name` varchar(60) 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, + `order` tinyint(5) unsigned NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `project` (`project`) +) 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 IF NOT EXISTS `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` (`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(100) 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, + `name` char(30) NOT NULL, + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM 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_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 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_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`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `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_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(90) NOT NULL, + `code` varchar(45) NOT NULL, + `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, + `isCat` enum('1','0') NOT NULL DEFAULT '0', + `catID` mediumint(8) unsigned NOT NULL, + `type` varchar(20) NOT NULL DEFAULT 'sprint', + `parent` mediumint(8) unsigned NOT NULL DEFAULT '0', + `name` varchar(90) NOT NULL, + `code` varchar(45) NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + `days` smallint(5) unsigned NOT NULL, + `status` varchar(10) NOT NULL, + `subStatus` varchar(30) NOT NULL DEFAULT '', + `statge` enum('1','2','3','4','5') NOT NULL DEFAULT '1', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` text NOT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime NOT NULL, + `openedVersion` varchar(20) 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` enum('open','private','custom') 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_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`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT '0', + `product` 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_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `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, + `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 IF NOT EXISTS `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `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, + `deleted` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `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 IF NOT EXISTS `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 IF NOT EXISTS `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_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 IF NOT EXISTS `zt_story` ( + `id` mediumint(8) unsigned NOT NULL auto_increment, + `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, + `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 '', + `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, + `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` date NOT NULL, + `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', + `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_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 IF NOT EXISTS `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, + `parent` mediumint(8) NOT NULL DEFAULT '0', + `project` mediumint(8) unsigned NOT NULL DEFAULT '0', + `module` mediumint(8) unsigned NOT NULL DEFAULT '0', + `story` mediumint(8) unsigned NOT NULL DEFAULT '0', + `storyVersion` smallint(6) NOT NULL DEFAULT '1', + `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, + `desc` text 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` date 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, + `closedReason` varchar(30) NOT NULL, + `lastEditedBy` varchar(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `project` (`project`), + KEY `story` (`story`), + 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, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) 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') 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(2,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, + `product` mediumint(8) unsigned NOT NULL, + `project` 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, + `caseResult` char(30) NOT NULL, + `stepResults` text NOT NULL, + `lastRunner` varchar(30) NOT NULL, + `date` datetime 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, + `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, + `name` char(90) NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `project` mediumint(8) unsigned NOT NULL DEFAULT '0', + `build` char(30) NOT NULL, + `owner` varchar(30) NOT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT '0', + `begin` date NOT NULL, + `end` date NOT NULL, + `mailto` text, + `desc` text NOT NULL, + `report` text NOT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `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, + 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, + `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` char(30) NOT NULL DEFAULT '', + `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 '', + `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`) +) 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', + 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, + `products` mediumtext NOT NULL, + `projects` 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(10) 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, + `projects` 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/doc/CHANGELOG b/doc/CHANGELOG index 5367d4c5e8..0fc731e7ab 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,147 @@ +2020-01-02 12.0 +完成的需求: +4438 编辑版本可以修改所属项目 +4437 测试单关联用例的时候显示已经选择的用例数量 +4428 所有迭代里面的检索标签没有高亮 +4425 重复的bug,bug ID增加必填项符号 +4507 将代码功能版本浏览功能转移到开源版 +4529 实现角色为测试人员的各区块数据展示 +4528 实现角色为产品经理的各区块数据展示 +4527 实现角色为研发人员的工时统计区块的数据展示 +4526 实现角色为研发人员的任务与bug数区块的数据展示 +4525 实现角色为研发人员的项目列表区块的数据展示 +4524 实现角色为研发人员的参与项目区块的数据展示 +4523 实现角色为研发人员的基本信息区块的数据展示 +4522 实现五大区块的可视化样式及布局 +4521 实现数据大屏的总体布局样式 +3363 调整创建对象之后的返回的页面 +4520 集成最新版本的喧喧 +修复的Bug +1276 批量编辑任务时,速度过慢 +1334 禅道和第三方系统集成重复连接登录网址跳转链接错误 +2014 已删除测试单详情页,有代码提示 +2029 在需求列表编辑需求所处阶段不生效 +2066 组织-部门如果部门比较多加载时间会比较长 +2075 国际版新手教程创建BUG报错 +2078 批量添加待办不填写信息保存没有提示信息 +2084 文档库维护模块后显示顺序不一致 +2089 没有批量操作权限时不要显示批量操作栏 +2114 bug柱状图报表,项目名称过长时显示不完整 +2184 一个产品下的模块,可以修改到另一个产品下的分支。 +2185 用例生成报表显示数据不全 +2208 项目下批量编辑需求阶段显示异常 +2219 测试bug列表页面表尾固定时出现下方滚动条会遮挡数据 +2225 附件库ppt图标不显示 +2231 任务多的时候,页面错乱 +2237 新建bug后,分页栏数据没有实时更新 +2239 企业版文档库上传附件提示连接超时 +2244 拒绝某一个重复的需求时重复需求的ID没有记录下来 +2250 在已关闭的项目下,设置不显示已关闭的文档库,页面有代码报错。 +2252 搜索表单设置多个查询条件执行搜索后没有保持展开状态 +2253 需求由谁评审,显示有换行。 +2254 批量执行用例执行结果联动问题 +2264 ie11录入bug重现步骤时光标会自动换行 +2277 产品分支下的模块不能修改所属分支 +2281 产品概况页面的路线图顺序反了 +2289 不同页面同样内容及操作形式控件大小及间隔不一致 +2303 一键安装包,界面选项有换行 +2306 测试主页图标显示问题 +2308 bug列表指派人放上后显示的是用户名 +2309 列表页面批量修改需求相应模块时如果使用搜索功能页面会滚动 +2310 产品概况下的路线图名称重叠 +2312 测试用例步骤选择分组后展示不全 +2315 用例步骤预期有特殊符号会影响评审 +2321 关闭需求原因选择重复时窗口缺少必填标识 +2326 项目文档目录视图下访问文档分类提示没有权限 +2327 IE11上传图片兼容问题 +2329 编辑产品线,模块名称应改为产品线名称 +2330 产品计划富文本编辑换行显示问题 +2335 关联用例的指派给检索规则 +2338 直接通过链接访问的页面没有权限确认后会跳转回之前的访问页面 +2342 英文版项目统计区块界面优化 +2343 需求相关信息显示优化 +2349 创建、编辑用例时,分组按钮与后面步骤冲突 +2364 项目没有关联产品下需求,在维护项目模块时可以显示产品下模块 +2405 计划批量编辑描述输入框功能异常 +2422 任务详情页操作栏“+”icon缺少title显示 +2423 进行中的任务无法批量取消 +2428 操作子任务提示没有项目访问权限 +2430 创建子任务不能带父任务的模块 +2431 用例详情弹窗页的操作条显示不对 +2434 用例步骤选择分组会把后续已经录入的步骤变成子步骤 +2436 用户充值密码后登录禅道会跳转会重置密码页面 +2437 产品/项目下拉列表,显示的数据不完整 +2441 产品主页多次刷新后无法显示页面 +2442 bug编辑模块下拉滚动条优化 +2444 项目提测页面创建版本的弹窗样式调整 +2445 项目提测页面,创建版本的弹窗里,点击关联产品后弹窗样式有问题 +2446 文档详情删除图片按钮有问题 +2448 区块列表显示的数量建议做下限制 +2449 bug解决版本可以显示已经停止维护并删除的发布 +2450 项目下拉列表重复显示 +2451 我的地盘创建子任务和任务列表创建子任务按钮不一致 +2453 自定义可用联系方式清空后编辑用户报错 +2477 计划数量统计问题 +2612 markdown遇到html标签会过滤 +2631 英文版bug详情激活次数 时间 换行 +2632 英文版创建文档是 文档名称翻译错误 +2633 英文版记录工时消耗工时和剩余工时无法完全显示 +2634 英文版评审用例库页面日期重叠 +2684 文档设置不显示子分类文档无效 +2736 webhook的bearychat的显示宽度不够 +2759 bug关键词设置必填时,填写0提示不能为空 +2777 文档markdown编辑器中含有http信息报错 +2816 批量添加用户,保存后提示密码不符合条件 +2825 升级执行的SQL中希望对zt_im_client检查删除 +2835 markdown图片链接不能正常显示 +2836 测试单访问权限与设置不符 +2837 svn集成偶尔出现diff缺少行的问题 +2839 周期待办展示类型有误 +2841 备注保存时,加载图标旋转问题 +2843 新手教程提示用户没有权限 +2851 添加备注时,黏贴图片或表格,数据库信息记录不全 +2852 后台设置相关需求为必填项后用例库无法导入用例 +2856 升级过程没有处理超时的情况 +2860 团队维护性能问题 +2861 测试用例下无法同步用例库中用例修改后的名称 +2862 组织-用户查看用户完成的待办没有绿色勾选 +2863 提示名称和界面显示字段名称不一致 +2864 计划列表展示样式问题 +2865 我的地盘--测试--给我的用例无法显示 +2866 受限用户操作权限问题 +2867 增加产品项目页面项目代码列宽 +2868 bug报表统计界面优化显示为interface +2869 变更需求页面切换产品网址跳转错误 +2870 先填写今天的日志再填写昨天的日志,剩余工时会被覆盖。 +2871 简单表格,自定义列添加一个字段,操作栏样式需要优化 +2874 删除用户的周期待办还会自动创建 +2875 搜索表单在特定条件下不符合当前列表类型 +2876 异步发信时,bug重新指派人员,导致bug中的图片不展示 +2877 通过搜索可以看到没有权限访问的bug +2878 bug页面搜索解决日期结果不准确 +2879 详情页面点击右侧下一条用例会显示异常 +2880 通过批量操作关闭父任务,父任务历史记录不准确 +2881 测试单中关联用例的状态为待审核 +2882 自己账号显示别人的待办提醒 +2883 用例左右箭头切换, 用例步骤丢失 +2884 创建项目时选择关联产品,报错报错 +2885 admin设置全局自定义字段没有作用 +2886 用例库用例详情无法切换到用例界面 +2887 权限列表名称和菜单名称不一致 +2889 钉钉个人通知只能@到手机号 +2890 提需求不显示提示信息 +2891 父子任务列表页面, 任务名不全 , 为 ... +2898 分解任务时点击同需求按钮,编辑框文字重叠 +2899 添加项目关联产品和计划页面报错 +2900 设置新建任务预计工时必填无效 +2901 项目--看板页面看板设置后页面显示问题 +2902 升级11.7后自定义bug类型丢失 +2903 视图维护显示允许访问产品不起效 +2905 文档版本显示错误 +2906 title显示错误 +2908 使用翻页查看用例,无法自动跳转下一个用例的最后一个版本 +2911 用例左右切换时版本号有误 + 2019-11-28 11.7 完成的需求: 3699 发布的需求列表增加批量关闭操作 diff --git a/module/block/lang/zh-tw.php b/module/block/lang/zh-tw.php index b227a77f06..245e9068d1 100644 --- a/module/block/lang/zh-tw.php +++ b/module/block/lang/zh-tw.php @@ -40,7 +40,7 @@ $lang->block->leftToday = '今天剩餘工作總計'; $lang->block->myTask = '我的任務'; $lang->block->myStory = "我的{$lang->storyCommon}"; $lang->block->myBug = '我的BUG'; -$lang->block->myProject = '進行中的' . $lang->projectCommon; +$lang->block->myProject = '未關閉的' . $lang->projectCommon; $lang->block->myProduct = '未關閉的' . $lang->productCommon; $lang->block->delayed = '已延期'; $lang->block->noData = '當前統計類型下暫無數據'; @@ -101,7 +101,7 @@ $lang->block->default['project']['2']['title'] = $lang->projectCommon . '總覽' $lang->block->default['project']['2']['block'] = 'overview'; $lang->block->default['project']['2']['grid'] = 4; -$lang->block->default['project']['3']['title'] = '進行中的' . $lang->projectCommon; +$lang->block->default['project']['3']['title'] = '未關閉的' . $lang->projectCommon; $lang->block->default['project']['3']['block'] = 'list'; $lang->block->default['project']['3']['grid'] = 8; diff --git a/module/bug/lang/zh-tw.php b/module/bug/lang/zh-tw.php index bc1cb186f6..e2918ac129 100644 --- a/module/bug/lang/zh-tw.php +++ b/module/bug/lang/zh-tw.php @@ -177,6 +177,7 @@ $lang->bug->confirmChangeProduct = "修改{$lang->productCommon}會導致相應 $lang->bug->confirmDelete = '您確認要刪除該Bug嗎?'; $lang->bug->remindTask = '該Bug已經轉化為任務,是否更新任務(編號:%s)狀態 ?'; $lang->bug->skipClose = 'Bug %s 不是已解決狀態,不能關閉。'; +$lang->bug->projectAccessDenied = "您無權訪問該Bug所屬的{$lang->projectCommon}!"; /* 模板。*/ $lang->bug->tplStep = "

[步驟]


"; diff --git a/module/build/lang/zh-tw.php b/module/build/lang/zh-tw.php index 8cbffe46b5..03d5daddbb 100644 --- a/module/build/lang/zh-tw.php +++ b/module/build/lang/zh-tw.php @@ -48,6 +48,9 @@ $lang->build->generatedBugs = '產生的Bug'; $lang->build->noProduct = " 該{$lang->projectCommon}沒有關聯{$lang->productCommon},無法創建版本,請先關聯{$lang->productCommon}"; $lang->build->noBuild = '暫時沒有版本。'; +$lang->build->notice = new stdclass(); +$lang->build->notice->changeProduct = "已經關聯{$lang->storyCommon}或Bug的版本,不能修改其所屬產品"; + $lang->build->finishStories = " 本次共完成 %s 個{$lang->storyCommon}"; $lang->build->resolvedBugs = ' 本次共解決 %s 個Bug'; $lang->build->createdBugs = ' 本次共產生 %s 個Bug'; diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index 96040885d2..b2d05da27b 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -99,7 +99,7 @@ $lang->selectAll = '全選'; $lang->selectReverse = '反選'; $lang->loading = '稍候...'; $lang->notFound = '抱歉,您訪問的對象並不存在!'; -$lang->notPage = '抱歉,您訪問的功能正在開發中!'; +$lang->notPage = '抱歉,您訪問的功能正在開發中!'; $lang->showAll = '[[全部顯示]]'; $lang->future = '未來'; @@ -122,6 +122,7 @@ $lang->menu->my = ' 我的地盤|my|index'; $lang->menu->product = $lang->productCommon . '|product|index|locate=no'; $lang->menu->project = $lang->projectCommon . '|project|index|locate=no'; $lang->menu->qa = '測試|qa|index'; +$lang->menu->repo = '代碼|repo|log'; $lang->menu->doc = '文檔|doc|index'; $lang->menu->report = '統計|report|index'; $lang->menu->company = '組織|company|index'; @@ -328,7 +329,13 @@ $lang->caselib->menu->testcase = array('link' => '用例|testcase|browse|'); $lang->caselib->menu->testtask = array('link' => '測試單|testtask|browse|'); $lang->caselib->menu->testsuite = array('link' => '套件|testsuite|browse|'); $lang->caselib->menu->report = array('link' => '報告|testreport|browse|'); -$lang->caselib->menu->caselib = array('link' => '用例庫|caselib|browse', 'alias' => 'create,createcase,view,edit,batchcreatecase,showimport', 'subModule' => 'tree,testcase'); +$lang->caselib->menu->caselib = array('link' => '用例庫|caselib|browse|libID=%s', 'alias' => 'create,createcase,view,edit,batchcreatecase,showimport', 'subModule' => 'tree,testcase'); + +$lang->repo = new stdclass(); +$lang->repo->menu = new stdclass(); +$lang->repo->menu->browse = array('link' =>'瀏覽|repo|log|repoID=%s&entry=', 'alias' => 'diff,view,revision,showsynccomment'); +$lang->repo->menu->settings = '設置|repo|settings|repoID=%s'; +$lang->repo->menu->delete = array('link' => '刪除|repo|delete|repoID=%s', 'target' => 'hiddenwin'); /* 文檔視圖菜單設置。*/ $lang->doc = new stdclass(); @@ -342,6 +349,7 @@ $lang->git = new stdclass(); $lang->report = new stdclass(); $lang->report->menu = new stdclass(); +$lang->report->menu->annual = array('link' => '年度總結|report|annualData', 'target' => '_blank'); $lang->report->menu->product = array('link' => $lang->productCommon . '|report|productsummary'); $lang->report->menu->prj = array('link' => $lang->projectCommon . '|report|projectdeviation'); $lang->report->menu->test = array('link' => '測試|report|bugcreate', 'alias' => 'bugassign'); diff --git a/module/dev/lang/zh-tw.php b/module/dev/lang/zh-tw.php index 4853705aa8..5ce8a90da6 100644 --- a/module/dev/lang/zh-tw.php +++ b/module/dev/lang/zh-tw.php @@ -108,6 +108,10 @@ $lang->dev->tableList['userview'] = '可訪問權限'; $lang->dev->tableList['im_chatuser'] = '客戶端用戶'; $lang->dev->tableList['im_message'] = '客戶端消息'; $lang->dev->tableList['im_messagestatus'] = '客戶端狀態'; +$lang->dev->tableList['repo'] = '代碼'; +$lang->dev->tableList['repohistory'] = '版本歷史'; +$lang->dev->tableList['repofiles'] = '代碼檔案'; +$lang->dev->tableList['repobranch'] = '代碼分支'; $lang->dev->groupList['my'] = '我的地盤'; $lang->dev->groupList['product'] = $lang->productCommon; diff --git a/module/doc/lang/de.php b/module/doc/lang/de.php index b59a444006..bcdc41af51 100644 --- a/module/doc/lang/de.php +++ b/module/doc/lang/de.php @@ -78,8 +78,6 @@ $lang->doc->editType = 'Bearbeiten'; $lang->doc->deleteType = 'Löschen'; $lang->doc->addType = 'Hinzufügen'; $lang->doc->childType = 'Child'; -$lang->doc->editType = 'Manage Category'; -$lang->doc->deleteType = 'Delete Category'; $lang->doc->collect = 'Favorit hinzufügen'; $lang->doc->cancelCollection = 'Favorit entfernen'; $lang->doc->deleteFile = 'Delete File'; diff --git a/module/doc/lang/en.php b/module/doc/lang/en.php index 3c42b4b086..d5c9516d3a 100644 --- a/module/doc/lang/en.php +++ b/module/doc/lang/en.php @@ -78,8 +78,6 @@ $lang->doc->editType = 'Edit'; $lang->doc->deleteType = 'Delete'; $lang->doc->addType = 'Add'; $lang->doc->childType = 'Categories'; -$lang->doc->editType = 'Manage Category'; -$lang->doc->deleteType = 'Delete Category'; $lang->doc->collect = 'Add Favorite'; $lang->doc->cancelCollection = 'Remove Favorite'; $lang->doc->deleteFile = 'Delete File'; diff --git a/module/doc/lang/fr.php b/module/doc/lang/fr.php index 4724fc9ac0..7fb5c0059d 100644 --- a/module/doc/lang/fr.php +++ b/module/doc/lang/fr.php @@ -78,8 +78,6 @@ $lang->doc->editType = 'Editer'; $lang->doc->deleteType = 'Supprimer'; $lang->doc->addType = 'Ajouter'; $lang->doc->childType = 'Catégories'; -$lang->doc->editType = 'Manage Category'; -$lang->doc->deleteType = 'Delete Category'; $lang->doc->collect = 'Ajouter aux Favoris'; $lang->doc->cancelCollection = 'Retirer des Favoris'; $lang->doc->deleteFile = 'Supprimer Fichier'; diff --git a/module/doc/lang/zh-tw.php b/module/doc/lang/zh-tw.php index 7cfd4790ea..c1b8ab910a 100644 --- a/module/doc/lang/zh-tw.php +++ b/module/doc/lang/zh-tw.php @@ -78,8 +78,6 @@ $lang->doc->editType = '編輯分類'; $lang->doc->deleteType = '刪除分類'; $lang->doc->addType = '增加分類'; $lang->doc->childType = '子分類'; -$lang->doc->editType = '維護分類'; -$lang->doc->deleteType = '刪除分類'; $lang->doc->collect = '收藏'; $lang->doc->cancelCollection = '取消收藏'; $lang->doc->deleteFile = '刪除附件'; diff --git a/module/install/lang/zh-tw.php b/module/install/lang/zh-tw.php index 1283d04cea..130a33090c 100644 --- a/module/install/lang/zh-tw.php +++ b/module/install/lang/zh-tw.php @@ -37,7 +37,6 @@ $lang->install->links = <<%s。 EOT; diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index 50e25df32d..64453fc1c2 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -70,6 +70,8 @@ $lang->misc->connectFail = "Failed to connect to the database. Error: %s,
$lang->misc->tableName = "Tabellenname"; $lang->misc->tableStatus = "Status"; $lang->misc->novice = "Erstes mal bei ZenTao? Möchten Sie den Beginner Modus starten?"; +$lang->misc->showAnnual = 'Add annual summary'; +$lang->misc->annualDesc = 'After version 12.0, the new annual report function can be viewed on the 『Report->Annual Summary』 page. See now.'; $lang->misc->noticeRepair = "
Wenn Sie kein Administrator sind, konaktieren Sie bitte den Administrator um die Tabelle zu reparieren.
Wenn Sie Administrtor sind, melden Sie sich bitte am Host an und erstellen Sie eine Datei mit dem Namen %s.
@@ -83,6 +85,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Letzte Version'; $lang->misc->feature->detailed = 'Details'; +$lang->misc->releaseDate['12.0'] = '2020-01-03'; $lang->misc->releaseDate['11.7'] = '2019-11-28'; $lang->misc->releaseDate['11.6.5'] = '2019-11-08'; $lang->misc->releaseDate['11.6.4'] = '2019-10-17'; @@ -119,6 +122,10 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22'; $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; +$lang->misc->feature->all['12.0'][] = array('title'=>'Move repo function to zentao', 'desc' => ''); +$lang->misc->feature->all['12.0'][] = array('title'=>'Add annual summary', 'desc' => 'Show annual summary by role.'); +$lang->misc->feature->all['12.0'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); + $lang->misc->feature->all['11.7'][] = array('title'=>'Optimize details and fix bug.', 'desc' => '

Added choices for users to choose agile or not.

Added WeChat Enterprise to the types of webhook

Added the notifier of Dingding personal messages

'); $lang->misc->feature->all['11.6.5'][] = array('title'=>'Fix bug.', 'desc' => ''); $lang->misc->feature->all['11.6.4'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index 91856d6989..143589e321 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -70,6 +70,8 @@ $lang->misc->connectFail = "Failed to connect to the database. Error: %s,
$lang->misc->tableName = "Table Name"; $lang->misc->tableStatus = "Status"; $lang->misc->novice = "New to ZenTao? Do you want to start ZenTao Tutorial?"; +$lang->misc->showAnnual = 'Add annual summary'; +$lang->misc->annualDesc = 'After version 12.0, the new annual report function can be viewed on the 『Report->Annual Summary』 page. See now.'; $lang->misc->noticeRepair = "
If you are not Administrator, contact your ZenTao Administrator to repair tables.
If you are the Administrator, login your ZenTao host and create a file named %s.
@@ -83,6 +85,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Latest Version'; $lang->misc->feature->detailed = 'Detail'; +$lang->misc->releaseDate['12.0'] = '2020-01-03'; $lang->misc->releaseDate['11.7'] = '2019-11-28'; $lang->misc->releaseDate['11.6.5'] = '2019-11-08'; $lang->misc->releaseDate['11.6.4'] = '2019-10-17'; @@ -119,6 +122,10 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22'; $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; +$lang->misc->feature->all['12.0'][] = array('title'=>'Move repo function to zentao', 'desc' => ''); +$lang->misc->feature->all['12.0'][] = array('title'=>'Add annual summary', 'desc' => 'Show annual summary by role.'); +$lang->misc->feature->all['12.0'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); + $lang->misc->feature->all['11.7'][] = array('title'=>'Optimize details and fix bug.', 'desc' => '

Added choices for users to choose agile or not.

Added WeChat Enterprise to the types of webhook

Added the notifier of Dingding personal messages

'); $lang->misc->feature->all['11.6.5'][] = array('title'=>'Fix bug.', 'desc' => ''); $lang->misc->feature->all['11.6.4'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 811f28779d..178c461b27 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -70,6 +70,8 @@ $lang->misc->connectFail = "Echec de connexion à la Base de données. Erreur: % $lang->misc->tableName = "Nom de la Table"; $lang->misc->tableStatus = "Statut"; $lang->misc->novice = "Nouveau dans ZenTao ? Voulez-vous commencer le Tutoriel ?"; +$lang->misc->showAnnual = 'Add annual summary'; +$lang->misc->annualDesc = 'After version 12.0, the new annual report function can be viewed on the 『Report->Annual Summary』 page. See now.'; $lang->misc->noticeRepair = "
Si vous n'êtes pas l'administrateur, contactez votre administrateur ZenTao pour réparer les tables.
Si vous êtes l'administrateur, connectez-vous à votre serveur ZenTao et créez un fichier vide dont le nom est %s.
@@ -83,6 +85,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Dernière Version'; $lang->misc->feature->detailed = 'Détail'; +$lang->misc->releaseDate['12.0'] = '2020-01-03'; $lang->misc->releaseDate['11.7'] = '2019-11-28'; $lang->misc->releaseDate['11.6.5'] = '2019-11-08'; $lang->misc->releaseDate['11.6.4'] = '2019-10-17'; @@ -119,6 +122,10 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22'; $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; +$lang->misc->feature->all['12.0'][] = array('title'=>'Move repo function to zentao', 'desc' => ''); +$lang->misc->feature->all['12.0'][] = array('title'=>'Add annual summary', 'desc' => 'Show annual summary by role.'); +$lang->misc->feature->all['12.0'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); + $lang->misc->feature->all['11.7'][] = array('title'=>'Optimize details and fix bug.', 'desc' => '

Added choices for users to choose agile or not.

Added WeChat Enterprise to the types of webhook

Added the notifier of Dingding personal messages

'); $lang->misc->feature->all['11.6.5'][] = array('title'=>'Fix bug.', 'desc' => ''); $lang->misc->feature->all['11.6.4'][] = array('title'=>'Optimize details and fix bug.', 'desc' => ''); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index e165db0e83..6feac55f29 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -85,6 +85,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = '最新版本'; $lang->misc->feature->detailed = '详情'; +$lang->misc->releaseDate['12.0'] = '2020-01-03'; $lang->misc->releaseDate['11.7'] = '2019-11-28'; $lang->misc->releaseDate['11.6.5'] = '2019-11-08'; $lang->misc->releaseDate['11.6.4'] = '2019-10-17'; @@ -121,6 +122,10 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22'; $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; +$lang->misc->feature->all['12.0'][] = array('title'=>'将代码功能版本浏览功能转移到开源版', 'desc' => ''); +$lang->misc->feature->all['12.0'][] = array('title'=>'增加年度总结', 'desc' => '根据角色显示年度总结。'); +$lang->misc->feature->all['12.0'][] = array('title'=>'完善细节,修复Bug', 'desc' => ''); + $lang->misc->feature->all['11.7'][] = array('title'=>'完善细节,修复Bug', 'desc' => '

增加用户是否使用敏捷概念的选择

webhook类型中增加企业微信

实现到钉钉个人消息的通知

'); $lang->misc->feature->all['11.6.5'][] = array('title'=>'修复Bug', 'desc' => ''); $lang->misc->feature->all['11.6.4'][] = array('title'=>'完善细节,修复Bug', 'desc' => ''); diff --git a/module/misc/lang/zh-tw.php b/module/misc/lang/zh-tw.php index 48a886ce68..9046209c7b 100644 --- a/module/misc/lang/zh-tw.php +++ b/module/misc/lang/zh-tw.php @@ -70,6 +70,8 @@ $lang->misc->connectFail = "連接資料庫失敗,錯誤:%s,
請檢 $lang->misc->tableName = "表名"; $lang->misc->tableStatus = "狀態"; $lang->misc->novice = "您可能初次使用禪道,是否進入新手模式?"; +$lang->misc->showAnnual = '新增年度報表功能'; +$lang->misc->annualDesc = '12.0版本後,新增年度報表功能,可以到『統計->年度報表』頁面查看。 是否現在查看'; $lang->misc->noticeRepair = "
普通用戶請聯繫管理員進行修復
管理員請登錄禪道所在的伺服器,創建%s檔案。
@@ -83,6 +85,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = '最新版本'; $lang->misc->feature->detailed = '詳情'; +$lang->misc->releaseDate['12.0'] = '2020-01-03'; $lang->misc->releaseDate['11.7'] = '2019-11-28'; $lang->misc->releaseDate['11.6.5'] = '2019-11-08'; $lang->misc->releaseDate['11.6.4'] = '2019-10-17'; @@ -119,6 +122,10 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22'; $lang->misc->releaseDate['7.1.stable'] = '2015-03-07'; $lang->misc->releaseDate['6.3.stable'] = '2014-11-07'; +$lang->misc->feature->all['12.0'][] = array('title'=>'將代碼功能版本瀏覽功能轉移到開源版', 'desc' => ''); +$lang->misc->feature->all['12.0'][] = array('title'=>'增加年度總結', 'desc' => '根據角色顯示年度總結。'); +$lang->misc->feature->all['12.0'][] = array('title'=>'完善細節,修復Bug', 'desc' => ''); + $lang->misc->feature->all['11.7'][] = array('title'=>'完善細節,修復Bug', 'desc' => '

增加用戶是否使用敏捷概念的選擇

webhook類型中增加企業微信

實現到釘釘個人消息的通知

'); $lang->misc->feature->all['11.6.5'][] = array('title'=>'修復Bug', 'desc' => ''); $lang->misc->feature->all['11.6.4'][] = array('title'=>'完善細節,修復Bug', 'desc' => ''); diff --git a/module/project/lang/zh-tw.php b/module/project/lang/zh-tw.php index 1493254b17..7a9a75d2f5 100644 --- a/module/project/lang/zh-tw.php +++ b/module/project/lang/zh-tw.php @@ -176,7 +176,7 @@ $lang->project->treeOnlyTask = '樹狀圖只看任務'; $lang->project->treeOnlyStory = "樹狀圖只看{$lang->storyCommon}"; $lang->project->storyKanban = "{$lang->storyCommon}看板"; $lang->project->storySort = "{$lang->storyCommon}排序"; -$lang->project->importPlanStory = "創建" . $lang->projectCommon . "成功!\n是否導入計劃關聯的相關{$lang->storyCommon}?"; +$lang->project->importPlanStory = '創建' . $lang->projectCommon . '成功!\n是否導入計劃關聯的相關' . $lang->storyCommon . '?'; $lang->project->iteration = '版本迭代'; $lang->project->iterationInfo = '迭代%s次'; $lang->project->viewAll = '查看所有'; diff --git a/module/repo/control.php b/module/repo/control.php index 9d674b97ec..90ea0d003f 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -625,5 +625,6 @@ class repo extends control $commits = $this->repo->updateLatestCommit($repo); if($commits > 0) die('finished'); } + die('finished'); } } diff --git a/module/report/lang/zh-tw.php b/module/report/lang/zh-tw.php index 91c5676cc6..f738c9d66a 100644 --- a/module/report/lang/zh-tw.php +++ b/module/report/lang/zh-tw.php @@ -17,6 +17,7 @@ $lang->report->value = '值'; $lang->report->percent = '百分比'; $lang->report->undefined = '未設定'; $lang->report->query = '查詢'; +$lang->report->annual = '年度總結'; $lang->report->colors[] = 'AFD8F8'; $lang->report->colors[] = 'F6BD0F'; @@ -100,3 +101,51 @@ $lang->report->mailTitle->testTask = " 測試版本(%s),"; $lang->report->proVersion = '更多精彩,盡在專業版!'; $lang->report->proVersionEn = 'Try ZenTao Pro for more!'; + +$lang->report->annualData = new stdclass(); +$lang->report->annualData->title = "%s年工作內容統計一覽表 —— %s"; +$lang->report->annualData->baseInfo = "基本數據信息"; +$lang->report->annualData->logins = "累計登錄次數"; +$lang->report->annualData->actions = "累計動態數"; +$lang->report->annualData->efforts = "累計日誌數"; +$lang->report->annualData->consumed = "累計工時數"; +$lang->report->annualData->foundBugs = "累計創建Bug數"; +$lang->report->annualData->createdCases = "累計創建用例數"; +$lang->report->annualData->involvedProducts = "累計參與{$lang->productCommon}數"; +$lang->report->annualData->createdPlans = "累計創建計劃數"; +$lang->report->annualData->createdStories = "累計創建{$lang->storyCommon}數"; + +$lang->report->annualData->productOverview = "{$lang->productCommon}創建{$lang->storyCommon}數及占比"; +$lang->report->annualData->qaOverview = "{$lang->productCommon}創建Bug數及占比"; +$lang->report->annualData->projectOverview = "參與{$lang->projectCommon}概覽"; +$lang->report->annualData->doneProject = "已完成的{$lang->projectCommon}"; +$lang->report->annualData->doingProject = "正在進行的{$lang->projectCommon}"; +$lang->report->annualData->suspendProject = "已掛起的{$lang->projectCommon}"; + +$lang->report->annualData->projectName = "{$lang->projectCommon}名稱"; +$lang->report->annualData->finishedStory = "完成{$lang->storyCommon}數"; +$lang->report->annualData->finishedTask = '完成任務數'; +$lang->report->annualData->foundBug = '創建Bug數'; +$lang->report->annualData->resolvedBug = '解決Bug數'; +$lang->report->annualData->productName = "{$lang->productCommon}名稱"; +$lang->report->annualData->planCount = '計劃數'; +$lang->report->annualData->storyCount = "{$lang->storyCommon}數"; + +$lang->report->annualData->qaData = "累計創建Bug數和創建用例數"; +$lang->report->annualData->totalCreatedBug = '累計創建Bug數'; +$lang->report->annualData->totalCreatedCase = '累計創建用例數'; + +$lang->report->annualData->devData = "完成任務數和解決Bug數"; +$lang->report->annualData->totalFinishedTask = '完成任務數'; +$lang->report->annualData->totalResolvedBug = '解決Bug數'; +$lang->report->annualData->totalConsumed = '累計工時'; + +$lang->report->annualData->poData = "所創建{$lang->storyCommon}數和對應的優先順序及狀態"; +$lang->report->annualData->totalStoryPri = "創建{$lang->storyCommon}優先順序分佈"; +$lang->report->annualData->totalStoryStage = "創建{$lang->storyCommon}階段分佈"; + +$lang->report->annualData->qaStatistics = "月創建Bug數和創建用例數"; +$lang->report->annualData->poStatistics = "月創建{$lang->storyCommon}數"; +$lang->report->annualData->devStatistics = "月完成任務數及累計工時和解決Bug數"; + +$lang->report->annualData->unit = "個"; diff --git a/module/story/lang/zh-tw.php b/module/story/lang/zh-tw.php index b0540e3dc6..a52af802df 100644 --- a/module/story/lang/zh-tw.php +++ b/module/story/lang/zh-tw.php @@ -102,7 +102,7 @@ $lang->story->planAB = '計劃'; $lang->story->comment = '備註'; $lang->story->linkStories = "相關{$lang->storyCommon}"; $lang->story->childStories = "細分{$lang->storyCommon}"; -$lang->story->duplicateStory = "重複{$lang->storyCommon}"; +$lang->story->duplicateStory = "重複{$lang->storyCommon}ID"; $lang->story->reviewResult = '評審結果'; $lang->story->preVersion = '之前版本'; $lang->story->keywords = '關鍵詞'; diff --git a/module/task/lang/zh-tw.php b/module/task/lang/zh-tw.php index d891f9547f..7000161da3 100644 --- a/module/task/lang/zh-tw.php +++ b/module/task/lang/zh-tw.php @@ -201,7 +201,7 @@ $lang->task->error = new stdclass(); $lang->task->error->consumedNumber = '"本次消耗"必須為數字'; $lang->task->error->estimateNumber = '"預計剩餘"必須為數字'; $lang->task->error->recordMinus = '工時不能為負數'; -$lang->task->error->consumedSmall = '"已經消耗"必須大於之前消耗'; +$lang->task->error->consumedSmall = '"總計消耗"必須大於之前消耗'; $lang->task->error->consumedThisTime = '請填寫"工時"'; $lang->task->error->left = '請填寫"剩餘"'; $lang->task->error->work = '"備註"必須小於%d個字元'; diff --git a/module/testtask/lang/zh-tw.php b/module/testtask/lang/zh-tw.php index 18e0482583..83fea7542e 100644 --- a/module/testtask/lang/zh-tw.php +++ b/module/testtask/lang/zh-tw.php @@ -9,16 +9,16 @@ * @version $Id: zh-tw.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $ * @link http://www.zentao.net */ -$lang->testtask->index = "版本首頁"; +$lang->testtask->index = "測試單首頁"; $lang->testtask->create = "提交測試"; $lang->testtask->reportChart = '報表統計'; $lang->testtask->reportAction = '用例報表統計'; -$lang->testtask->delete = "刪除版本"; +$lang->testtask->delete = "刪除測試單"; $lang->testtask->view = "概況"; $lang->testtask->edit = "編輯測試單"; -$lang->testtask->browse = "版本列表"; +$lang->testtask->browse = "測試單列表"; $lang->testtask->linkCase = "關聯用例"; -$lang->testtask->selectVersion = "選擇版本"; +$lang->testtask->selectVersion = "選擇測試單"; $lang->testtask->unlinkCase = "移除"; $lang->testtask->batchUnlinkCases = "批量移除用例"; $lang->testtask->batchAssign = "批量指派"; @@ -33,17 +33,17 @@ $lang->testtask->groupCase = "分組瀏覽用例"; $lang->testtask->pre = '上一個'; $lang->testtask->next = '下一個'; $lang->testtask->start = "開始"; -$lang->testtask->startAction = "開始版本"; +$lang->testtask->startAction = "開始測試單"; $lang->testtask->close = "關閉"; -$lang->testtask->closeAction = "關閉版本"; -$lang->testtask->wait = "待測版本"; +$lang->testtask->closeAction = "關閉測試單"; +$lang->testtask->wait = "待測測試單"; $lang->testtask->block = "阻塞"; -$lang->testtask->blockAction = "阻塞版本"; +$lang->testtask->blockAction = "阻塞測試單"; $lang->testtask->activate = "激活"; -$lang->testtask->activateAction = "激活版本"; -$lang->testtask->testing = "測試中版本"; -$lang->testtask->blocked = "被阻塞版本"; -$lang->testtask->done = "已測版本"; +$lang->testtask->activateAction = "激活測試單"; +$lang->testtask->testing = "測試中測試單"; +$lang->testtask->blocked = "被阻塞測試單"; +$lang->testtask->done = "已測測試單"; $lang->testtask->totalStatus = "全部"; $lang->testtask->all = "全部" . $lang->productCommon; $lang->testtask->allTasks = '所有測試'; @@ -78,11 +78,12 @@ $lang->testtask->stepResults = '步驟結果'; $lang->testtask->lastRunner = '最後執行人'; $lang->testtask->lastRunDate = '最後執行時間'; $lang->testtask->date = '測試時間'; +$lang->testtask->deleted = "已刪除"; $lang->testtask->beginAndEnd = '起止時間'; $lang->testtask->to = '至'; -$lang->testtask->legendDesc = '版本描述'; +$lang->testtask->legendDesc = '測試單描述'; $lang->testtask->legendReport = '測試總結'; $lang->testtask->legendBasicInfo = '基本信息'; @@ -98,7 +99,7 @@ $lang->testtask->priList[2] = '2'; $lang->testtask->priList[4] = '4'; $lang->testtask->unlinkedCases = '未關聯'; -$lang->testtask->linkByBuild = '複製版本'; +$lang->testtask->linkByBuild = '複製測試單'; $lang->testtask->linkByStory = "按{$lang->storyCommon}關聯"; $lang->testtask->linkByBug = '按Bug關聯'; $lang->testtask->linkBySuite = '按套件關聯'; @@ -110,8 +111,8 @@ $lang->testtask->showFail = '失敗%s次'; $lang->testtask->confirmDelete = '您確認要刪除該測試單嗎?'; $lang->testtask->confirmUnlinkCase = '您確認要移除該用例嗎?'; -$lang->testtask->noticeNoOther = '該產品還沒有其他測試版本'; -$lang->testtask->noTesttask = '暫時沒有測試版本。'; +$lang->testtask->noticeNoOther = '該產品還沒有其他測試單'; +$lang->testtask->noTesttask = '暫時沒有測試單'; $lang->testtask->checkLinked = '請檢查測試單的產品是否與項目相關聯'; $lang->testtask->assignedToMe = '指派給我'; @@ -130,14 +131,14 @@ $lang->testtask->mail = new stdclass(); $lang->testtask->mail->create = new stdclass(); $lang->testtask->mail->edit = new stdclass(); $lang->testtask->mail->close = new stdclass(); -$lang->testtask->mail->create->title = "%s創建了版本 #%s:%s"; -$lang->testtask->mail->edit->title = "%s編輯了版本 #%s:%s"; -$lang->testtask->mail->close->title = "%s關閉了版本 #%s:%s"; +$lang->testtask->mail->create->title = "%s創建了測試單 #%s:%s"; +$lang->testtask->mail->edit->title = "%s編輯了測試單 #%s:%s"; +$lang->testtask->mail->close->title = "%s關閉了測試單 #%s:%s"; $lang->testtask->action = new stdclass(); -$lang->testtask->action->testtaskopened = '$date, 由 $actor 創建版本 $extra。' . "\n"; -$lang->testtask->action->testtaskstarted = '$date, 由 $actor 啟動版本 $extra。' . "\n"; -$lang->testtask->action->testtaskclosed = '$date, 由 $actor 完成版本 $extra。' . "\n"; +$lang->testtask->action->testtaskopened = '$date, 由 $actor 創建測試單 $extra。' . "\n"; +$lang->testtask->action->testtaskstarted = '$date, 由 $actor 啟動測試單 $extra。' . "\n"; +$lang->testtask->action->testtaskclosed = '$date, 由 $actor 完成測試單 $extra。' . "\n"; $lang->testtask->unexecuted = '未執行'; diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index 920d010f23..028cead3b1 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -115,3 +115,4 @@ $lang->upgrade->fromVersions['11_6_2'] = '11.6.2'; $lang->upgrade->fromVersions['11_6_3'] = '11.6.3'; $lang->upgrade->fromVersions['11_6_4'] = '11.6.4'; $lang->upgrade->fromVersions['11_6_5'] = '11.6.5'; +$lang->upgrade->fromVersions['11_7'] = '11.7'; diff --git a/module/webhook/lang/zh-tw.php b/module/webhook/lang/zh-tw.php index 2a6935531e..1b1d706afe 100644 --- a/module/webhook/lang/zh-tw.php +++ b/module/webhook/lang/zh-tw.php @@ -75,6 +75,7 @@ $lang->webhook->note->dingKey = " webhook->note->typeList['dingding'] = '請在釘釘中添加一個自定義機器人,並將其webhook填寫到此處。'; +$lang->webhook->note->typeList['weixin'] = '請在企業微信中添加一個自定義機器人,並將其webhook填寫到此處。'; $lang->webhook->note->typeList['default'] = '從第三方系統獲取webhook並填寫到此處。'; $lang->webhook->error = new stdclass(); diff --git a/www/upgrade.php.tmp b/www/upgrade.php.tmp index 177afe6620..13abaab89e 100644 --- a/www/upgrade.php.tmp +++ b/www/upgrade.php.tmp @@ -61,3 +61,4 @@ if(($config->version{0} == $config->installedVersion{0} or (is_numeric($config-> /* Run it. */ $app->parseRequest(); $common->checkUpgradeStatus(); +$app->loadModule();