From 65c64de03abdb61452c31bfb5061efcf0b5e4dc5 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 15 May 2020 13:03:14 +0800 Subject: [PATCH] * add new version and upgrade. --- VERSION | 2 +- config/config.php | 2 +- db/standard/zentao12.3.1.sql | 1066 ++++++++++++++++++++++++++++++ doc/CHANGELOG | 49 ++ module/admin/lang/zh-tw.php | 4 +- module/backup/lang/de.php | 13 +- module/backup/lang/en.php | 13 +- module/backup/lang/fr.php | 13 +- module/backup/lang/vi.php | 13 +- module/backup/lang/zh-tw.php | 17 +- module/common/lang/zh-tw.php | 4 +- module/custom/lang/de.php | 8 +- module/custom/lang/en.php | 8 +- module/custom/lang/fr.php | 8 +- module/custom/lang/vi.php | 8 +- module/custom/lang/zh-tw.php | 8 +- module/doc/lang/zh-tw.php | 2 - module/file/lang/de.php | 3 + module/file/lang/en.php | 3 + module/file/lang/fr.php | 3 + module/file/lang/vi.php | 3 + module/file/lang/zh-tw.php | 26 +- module/install/lang/zh-tw.php | 12 +- module/misc/lang/de.php | 2 + module/misc/lang/en.php | 2 + module/misc/lang/fr.php | 2 + module/misc/lang/vi.php | 2 + module/misc/lang/zh-cn.php | 2 + module/misc/lang/zh-tw.php | 6 +- module/my/lang/zh-tw.php | 2 +- module/product/lang/zh-tw.php | 4 +- module/sso/lang/zh-tw.php | 6 +- module/task/lang/de.php | 1 + module/task/lang/en.php | 1 + module/task/lang/fr.php | 1 + module/task/lang/vi.php | 1 + module/testreport/lang/de.php | 1 + module/testreport/lang/en.php | 1 + module/testreport/lang/fr.php | 1 + module/testreport/lang/vi.php | 1 + module/testreport/lang/zh-tw.php | 1 + module/upgrade/lang/version.php | 1 + module/upgrade/model.php | 4 + module/user/lang/zh-tw.php | 6 +- 44 files changed, 1269 insertions(+), 67 deletions(-) create mode 100644 db/standard/zentao12.3.1.sql diff --git a/VERSION b/VERSION index ea35fc166c..9c028e25d4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.3.stable +12.3.1 diff --git a/config/config.php b/config/config.php index 19dfc34543..ba933cad5d 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 = '12.3'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '12.3.1'; // 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.3.1.sql b/db/standard/zentao12.3.1.sql new file mode 100644 index 0000000000..fd371d9d16 --- /dev/null +++ b/db/standard/zentao12.3.1.sql @@ -0,0 +1,1066 @@ +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(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 `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 IF NOT EXISTS `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, + `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 `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', + `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, + `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 IF NOT EXISTS `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, + `atTime` varchar(10) NOT NULL, + `testtask` mediumint(8) unsigned NOT NULL, + `tag` varchar(255) NOT NULL, + `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` 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 IF NOT EXISTS `zt_jenkins` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(30) NOT NULL, + `token` varchar(255) 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 IF NOT EXISTS `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, + `jkHost` mediumint(8) unsigned NOT NULL, + `jkJob` varchar(500) NOT NULL, + `triggerType` varchar(255) NOT NULL, + `svnDir` varchar(255) NOT NULL, + `atDay` varchar(255) DEFAULT NULL, + `atTime` varchar(10) DEFAULT 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 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_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `program` mediumint(8) NOT NULL, + `product` mediumint(8) NOT NULL, + `project` 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, + UNIQUE KEY `relation` (`relation`,`AType`,`BType`, `AID`, `BID`) +) 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, + `desc` text 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, + `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, + `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, + `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, + `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', + `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, + 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 7f960cef18..92807dfe07 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,52 @@ +2020-05-15 12.3.1 +完成的需求: +4827 debug关闭状态网页上不显示任何报错信息 +4807 后台增加对用户需求和软件需求流程的自定义功能 +4771 安装的时候修改session path为空的语言提示 +4767 将然之改为zdoo +4696 备份附件过程中记录文件的数量和文件的大小 +4668 子任务增加批量折叠和记忆功能 +4612 一键安装包默认的php内存改为512M +4545 用例详情页面默认全屏 +修复的Bug +2919 通过计划创建项目保存后页面空白 +2984 解决bug时填写解决版本设为必填项后,无法在解决页面创建版本 +2994 视图维护报错 +3019 解决在php7.4下面的语法兼容问题 +3030 客户端查看需求 - 报表,任务 - 报表 都报错 +3037 还原备份报错 +3048 多人任务转交按钮逻辑问题 +3050 产品视图首页的统计区块高亮的产品和右边的数据对不上 +3054 QQ浏览器支持不是很好 +3058 项目需求按照计划关联会把已经关闭的需求关联上 +3061 文档详情页面点击删除附件无反应 +3062 svn提交注释解析问题 +3066 编辑已关闭bug后指派用户会自动变为当前用户 +3067 任务复制页面比较大渲染时间容易超时 +3073 相关需求设置为必填项运维类型项目无法创建任务 +3074 私有项目修改项目负责人后没有项目访问权限 +3076 集成git库后同步代码库时卡住 +3080 父需求名称过长无法显示展开子需求按钮 +3081 用例关联需求选择弹窗样式问题 +3082 添加模块时填写&符合可以被解析 +3083 需求列表阶段下拉框被遮挡 +3086 在首页点击“然之协同”页面跳转到了禅道官网。 +3087 升级结果页面、首页相关logo需更新为最新logo。 +3092 完成任务时消耗工时检查问题 +3093 用例库用例列表的所属模块无法展示 +3094 开始任务时填写的备注信息无法显示 +3096 产品概况页面的路线图区块展示问题 +3098 无法导入大量测试用例 +3100 用例覆盖率的计算公式问题 +3102 提bug页面设置所属项目必填无效 +3103 创建项目超时 +3104 图片上传xss漏洞 +3107 多人任务关闭后重新激活指派人不生效 +3109 地盘指派给我的用例报错 +3110 软件需求编辑页面父需求下拉需要过滤用户需求 +3112 集成svn库报错 +3114 一个项目还没关联需求,通过创建测试任务的时候勾选“选择测试需求”,会导致该任务无法关联需求 + 2020-04-08 12.3 完成的需求: 4711 地址类型为GET时,导出用例提示没有数据 diff --git a/module/admin/lang/zh-tw.php b/module/admin/lang/zh-tw.php index 0aac8e0be6..8d66fa868d 100644 --- a/module/admin/lang/zh-tw.php +++ b/module/admin/lang/zh-tw.php @@ -12,8 +12,8 @@ $lang->admin->common = '後台管理'; $lang->admin->index = '後台管理首頁'; $lang->admin->checkDB = '檢查資料庫'; -$lang->admin->sso = '然之整合'; -$lang->admin->ssoAction = '然之整合'; +$lang->admin->sso = 'ZDOO整合'; +$lang->admin->ssoAction = 'ZDOO整合'; $lang->admin->safeIndex = '安全'; $lang->admin->checkWeak = '弱口令檢查'; $lang->admin->certifyMobile = '認證手機'; diff --git a/module/backup/lang/de.php b/module/backup/lang/de.php index d07f835311..78e5f84752 100644 --- a/module/backup/lang/de.php +++ b/module/backup/lang/de.php @@ -9,9 +9,15 @@ $lang->backup->change = 'Ablaufdatum'; $lang->backup->changeAB = 'Bearbeiten'; $lang->backup->rmPHPHeader = 'Remove PHP header'; -$lang->backup->time = 'Datum'; -$lang->backup->files = 'Dateien'; -$lang->backup->size = 'Größe'; +$lang->backup->time = 'Datum'; +$lang->backup->files = 'Dateien'; +$lang->backup->allCount = 'All Count'; +$lang->backup->count = 'Backup Count'; +$lang->backup->size = 'Größe'; +$lang->backup->status = 'Status'; + +$lang->backup->statusList['success'] = 'Success'; +$lang->backup->statusList['fail'] = 'Fail'; $lang->backup->setting = 'Settings'; $lang->backup->settingDir = 'Backup Directory'; @@ -25,6 +31,7 @@ $lang->backup->progressCode = '

SQL backup is completed.

Attachment ba $lang->backup->confirmDelete = 'Möchten Sie das Backup löschen?'; $lang->backup->confirmRestore = 'Möchten Sie das Backup wiederherstellen?'; $lang->backup->holdDays = 'Behalten der letzen %s Tage der Backups'; +$lang->backup->copiedFail = 'Copy failed files: '; $lang->backup->restoreTip = 'Nur Dateien und Datenbanken können wiederhergestellt werden. Code kann manuell wieder hergestellt werden.'; $lang->backup->success = new stdclass(); diff --git a/module/backup/lang/en.php b/module/backup/lang/en.php index d9ea65e77b..230cf42c20 100644 --- a/module/backup/lang/en.php +++ b/module/backup/lang/en.php @@ -9,9 +9,15 @@ $lang->backup->change = 'Edit Expiration'; $lang->backup->changeAB = 'Edit'; $lang->backup->rmPHPHeader = 'Remove PHP header'; -$lang->backup->time = 'Date'; -$lang->backup->files = 'Files'; -$lang->backup->size = 'Size'; +$lang->backup->time = 'Date'; +$lang->backup->files = 'Files'; +$lang->backup->allCount = 'All Count'; +$lang->backup->count = 'Backup Count'; +$lang->backup->size = 'Size'; +$lang->backup->status = 'Status'; + +$lang->backup->statusList['success'] = 'Success'; +$lang->backup->statusList['fail'] = 'Fail'; $lang->backup->setting = 'Settings'; $lang->backup->settingDir = 'Backup Directory'; @@ -25,6 +31,7 @@ $lang->backup->progressCode = '

SQL backup is completed.

Attachment ba $lang->backup->confirmDelete = 'Do you want to delete the backup?'; $lang->backup->confirmRestore = 'Do you want to restore the backup?'; $lang->backup->holdDays = 'Hold last %s days of backup'; +$lang->backup->copiedFail = 'Copy failed files: '; $lang->backup->restoreTip = 'Only files and databases can be restored by clicking Restore. Code can be restored manually.'; $lang->backup->success = new stdclass(); diff --git a/module/backup/lang/fr.php b/module/backup/lang/fr.php index a70c0afa9e..e9ff3c6adc 100644 --- a/module/backup/lang/fr.php +++ b/module/backup/lang/fr.php @@ -9,9 +9,15 @@ $lang->backup->change = 'Editer Expiration'; $lang->backup->changeAB = 'Editer'; $lang->backup->rmPHPHeader = 'Enlever PHP header'; -$lang->backup->time = 'Date'; -$lang->backup->files = 'Fichiers'; -$lang->backup->size = 'Taille'; +$lang->backup->time = 'Date'; +$lang->backup->files = 'Fichiers'; +$lang->backup->allCount = 'All Count'; +$lang->backup->count = 'Backup Count'; +$lang->backup->size = 'Taille'; +$lang->backup->status = 'Status'; + +$lang->backup->statusList['success'] = 'Success'; +$lang->backup->statusList['fail'] = 'Fail'; $lang->backup->setting = 'Paramétrage'; $lang->backup->settingDir = 'Répertoire Backup'; @@ -25,6 +31,7 @@ $lang->backup->progressCode = '

SQL backup est terminé.

Attachment ba $lang->backup->confirmDelete = 'Voulez-vous supprimer la sauvegarde ?'; $lang->backup->confirmRestore = 'Voulez-vous restaurer la sauvegarde ?'; $lang->backup->holdDays = 'conserver les derniers %s jours de backup'; +$lang->backup->copiedFail = 'Copy failed files: '; $lang->backup->restoreTip = 'Seulement les fichiers et les bases peuvent être restaurées en cliquant sur Restaurer. Le code doit être restauré manuellement.'; $lang->backup->success = new stdclass(); diff --git a/module/backup/lang/vi.php b/module/backup/lang/vi.php index 1e497c8c55..095b3f6454 100644 --- a/module/backup/lang/vi.php +++ b/module/backup/lang/vi.php @@ -9,9 +9,15 @@ $lang->backup->change = 'Sửa Expiration'; $lang->backup->changeAB = 'Sửa'; $lang->backup->rmPHPHeader = 'Xóa PHP header'; -$lang->backup->time = 'Ngày'; -$lang->backup->files = 'Files'; -$lang->backup->size = 'Size'; +$lang->backup->time = 'Ngày'; +$lang->backup->files = 'Files'; +$lang->backup->allCount = 'All Count'; +$lang->backup->count = 'Backup Count'; +$lang->backup->size = 'Size'; +$lang->backup->status = 'Status'; + +$lang->backup->statusList['success'] = 'Success'; +$lang->backup->statusList['fail'] = 'Fail'; $lang->backup->setting = 'Thiết lập'; $lang->backup->settingDir = 'Thư mục sao lưu'; @@ -25,6 +31,7 @@ $lang->backup->progressCode = '

Sao lưu SQL đã hoàn thành.

Sao l $lang->backup->confirmDelete = 'Bạn có muốn xóa sao lưu này?'; $lang->backup->confirmRestore = 'Bạn có muốn khôi phục sao lưu này?'; $lang->backup->holdDays = 'Giữ ít nhất %s ngày sao lưu'; +$lang->backup->copiedFail = 'Copy failed files: '; $lang->backup->restoreTip = 'Chỉ tập tin và CSDL có thể được khôi phục bằng cách Click Khôi phục. Mã nguồn có thể khôi phục thủ công.'; $lang->backup->success = new stdclass(); diff --git a/module/backup/lang/zh-tw.php b/module/backup/lang/zh-tw.php index 9104eff58a..6eb3443ae3 100644 --- a/module/backup/lang/zh-tw.php +++ b/module/backup/lang/zh-tw.php @@ -9,9 +9,15 @@ $lang->backup->change = '保留時間'; $lang->backup->changeAB = '修改'; $lang->backup->rmPHPHeader = '去除安全設置'; -$lang->backup->time = '備份時間'; -$lang->backup->files = '備份檔案'; -$lang->backup->size = '大小'; +$lang->backup->time = '備份時間'; +$lang->backup->files = '備份檔案'; +$lang->backup->allCount = '總檔案數'; +$lang->backup->count = '備份檔案數'; +$lang->backup->size = '大小'; +$lang->backup->status = '狀態'; + +$lang->backup->statusList['success'] = '成功'; +$lang->backup->statusList['fail'] = '失敗'; $lang->backup->setting = '設置'; $lang->backup->settingDir = '備份目錄'; @@ -20,11 +26,12 @@ $lang->backup->settingList['nosafe'] = '不需要防下載PHP檔案頭'; $lang->backup->waitting = '正在進行中,請稍候...'; $lang->backup->progressSQL = '

SQL備份中,已備份%s

'; -$lang->backup->progressAttach = '

SQL備份完成

附件備份中,已備份%s

'; -$lang->backup->progressCode = '

SQL備份完成

附件備份完成

代碼備份中,已備份%s

'; +$lang->backup->progressAttach = '

SQL備份完成

附件備份中,共有%s個檔案,已經備份%s個

'; +$lang->backup->progressCode = '

SQL備份完成

附件備份完成

代碼備份中,共有%s個檔案,已經備份%s個

'; $lang->backup->confirmDelete = '是否刪除備份?'; $lang->backup->confirmRestore = '是否還原該備份?'; $lang->backup->holdDays = '備份保留最近 %s 天'; +$lang->backup->copiedFail = '複製失敗的檔案:'; $lang->backup->restoreTip = '還原功能只還原附件和資料庫,如果需要還原代碼,可以手動還原。'; $lang->backup->success = new stdclass(); diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index 251e27eb44..1599e01c53 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -58,6 +58,8 @@ $lang->trunk = '主幹'; $lang->sort = '排序'; $lang->required = '必填'; $lang->noData = '暫無'; +$lang->fullscreen = '全屏'; +$lang->retrack = '收起'; $lang->actions = '操作'; $lang->restore = '恢復預設'; @@ -420,7 +422,7 @@ $lang->admin->subMenu->message->browser = array('link' => '瀏覽器|message|bro $lang->admin->subMenu->message->setting = array('link' => '設置|message|setting'); $lang->admin->subMenu->sso = new stdclass(); -$lang->admin->subMenu->sso->ranzhi = '然之協同|admin|sso'; +$lang->admin->subMenu->sso->ranzhi = 'ZDOO|admin|sso'; $lang->admin->subMenu->dev = new stdclass(); $lang->admin->subMenu->dev->api = array('link' => 'API|dev|api'); diff --git a/module/custom/lang/de.php b/module/custom/lang/de.php index 2eaf322bc8..747116ced6 100644 --- a/module/custom/lang/de.php +++ b/module/custom/lang/de.php @@ -149,9 +149,10 @@ $lang->custom->moduleName['product'] = $lang->productCommon; $lang->custom->moduleName['productplan'] = 'Plan'; $lang->custom->moduleName['project'] = $lang->projectCommon; -$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; -$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; -$lang->custom->conceptQuestions['storypoint'] = "2. Do you use hours or story points to make estimations in your company?"; +$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; +$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; +$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?"; +$lang->custom->conceptQuestions['storypoint'] = "3. Do you use hours or story points to make estimations in your company?"; $lang->custom->conceptOptions = new stdclass; @@ -162,3 +163,4 @@ $lang->custom->conceptOptions->story['1'] = 'Story'; $lang->custom->conceptOptions->hourPoint = array(); $lang->custom->conceptOptions->hourPoint['0'] = 'Hour'; $lang->custom->conceptOptions->hourPoint['1'] = 'Story Point'; +$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point'; diff --git a/module/custom/lang/en.php b/module/custom/lang/en.php index 09a344ff86..f652d76368 100644 --- a/module/custom/lang/en.php +++ b/module/custom/lang/en.php @@ -149,9 +149,10 @@ $lang->custom->moduleName['product'] = $lang->productCommon; $lang->custom->moduleName['productplan'] = 'Plan'; $lang->custom->moduleName['project'] = $lang->projectCommon; -$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; -$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; -$lang->custom->conceptQuestions['storypoint'] = "2. Do you use hours or story points to make estimations in your company?"; +$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; +$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; +$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?"; +$lang->custom->conceptQuestions['storypoint'] = "3. Do you use hours or story points to make estimations in your company?"; $lang->custom->conceptOptions = new stdclass; @@ -162,3 +163,4 @@ $lang->custom->conceptOptions->story['1'] = 'Story'; $lang->custom->conceptOptions->hourPoint = array(); $lang->custom->conceptOptions->hourPoint['0'] = 'Hour'; $lang->custom->conceptOptions->hourPoint['1'] = 'Story Point'; +$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point'; diff --git a/module/custom/lang/fr.php b/module/custom/lang/fr.php index 71f1d1cc11..3e8bf37d13 100644 --- a/module/custom/lang/fr.php +++ b/module/custom/lang/fr.php @@ -149,9 +149,10 @@ $lang->custom->moduleName['product'] = $lang->productCommon; $lang->custom->moduleName['productplan'] = 'Plan'; $lang->custom->moduleName['project'] = $lang->projectCommon; -$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; -$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; -$lang->custom->conceptQuestions['storypoint'] = "2. Do you use hours or story points to make estimations in your company?"; +$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?"; +$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?"; +$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?"; +$lang->custom->conceptQuestions['storypoint'] = "3. Do you use hours or story points to make estimations in your company?"; $lang->custom->conceptOptions = new stdclass; @@ -162,3 +163,4 @@ $lang->custom->conceptOptions->story['1'] = 'Story'; $lang->custom->conceptOptions->hourPoint = array(); $lang->custom->conceptOptions->hourPoint['0'] = 'Hour'; $lang->custom->conceptOptions->hourPoint['1'] = 'Story Point'; +$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point'; diff --git a/module/custom/lang/vi.php b/module/custom/lang/vi.php index 0ce6cfd1c9..7496e2dac1 100644 --- a/module/custom/lang/vi.php +++ b/module/custom/lang/vi.php @@ -149,9 +149,10 @@ $lang->custom->moduleName['product'] = $lang->productCommon; $lang->custom->moduleName['productplan'] = 'Kế hoạch'; $lang->custom->moduleName['project'] = $lang->projectCommon; -$lang->custom->conceptQuestions['overview'] = "1. Sự kết hợp quản lý nào phù hợp với công ty của bạn?"; -$lang->custom->conceptQuestions['story'] = "2. Bạn có sử dụng mô hình điều kiện hay câu chuyện người dùng trong doanh nghiệp của bạn?"; -$lang->custom->conceptQuestions['storypoint'] = "2. Bạn có dùng giờ hoặc điểm để tạo dự kiến trong doanh nghiệp của bạn ?"; +$lang->custom->conceptQuestions['overview'] = "1. Sự kết hợp quản lý nào phù hợp với công ty của bạn?"; +$lang->custom->conceptQuestions['story'] = "2. Bạn có sử dụng mô hình điều kiện hay câu chuyện người dùng trong doanh nghiệp của bạn?"; +$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?"; +$lang->custom->conceptQuestions['storypoint'] = "3. Bạn có dùng giờ hoặc điểm để tạo dự kiến trong doanh nghiệp của bạn ?"; $lang->custom->conceptOptions = new stdclass; @@ -162,3 +163,4 @@ $lang->custom->conceptOptions->story['1'] = 'Câu chuyện'; $lang->custom->conceptOptions->hourPoint = array(); $lang->custom->conceptOptions->hourPoint['0'] = 'Giờ'; $lang->custom->conceptOptions->hourPoint['1'] = 'Điểm'; +$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point'; diff --git a/module/custom/lang/zh-tw.php b/module/custom/lang/zh-tw.php index 77c8e82e38..5c1bcd16c4 100644 --- a/module/custom/lang/zh-tw.php +++ b/module/custom/lang/zh-tw.php @@ -149,9 +149,10 @@ $lang->custom->moduleName['product'] = $lang->productCommon; $lang->custom->moduleName['productplan'] = '計劃'; $lang->custom->moduleName['project'] = $lang->projectCommon; -$lang->custom->conceptQuestions['overview'] = "1. 下述哪種組合方式更適合您公司的管理現狀?"; -$lang->custom->conceptQuestions['story'] = "2. 您公司是在使用需求概念還是用戶故事概念?"; -$lang->custom->conceptQuestions['storypoint'] = "3. 您公司是在使用工時還是故事點來做規模估算?"; +$lang->custom->conceptQuestions['overview'] = "1. 下述哪種組合方式更適合您公司的管理現狀?"; +$lang->custom->conceptQuestions['story'] = "2. 您公司是在使用需求概念還是用戶故事概念?"; +$lang->custom->conceptQuestions['requirementpoint'] = "3. 您公司是在使用工時還是功能點來做規模估算?"; +$lang->custom->conceptQuestions['storypoint'] = "3. 您公司是在使用工時還是故事點來做規模估算?"; $lang->custom->conceptOptions = new stdclass; @@ -162,3 +163,4 @@ $lang->custom->conceptOptions->story['1'] = '故事'; $lang->custom->conceptOptions->hourPoint = array(); $lang->custom->conceptOptions->hourPoint['0'] = '工時'; $lang->custom->conceptOptions->hourPoint['1'] = '故事點'; +$lang->custom->conceptOptions->hourPoint['2'] = '功能點'; diff --git a/module/doc/lang/zh-tw.php b/module/doc/lang/zh-tw.php index c1b8ab910a..8768b99325 100644 --- a/module/doc/lang/zh-tw.php +++ b/module/doc/lang/zh-tw.php @@ -47,8 +47,6 @@ $lang->doc->users = '用戶'; $lang->doc->item = '項'; $lang->doc->num = '文檔數量'; $lang->doc->searchResult = '搜索結果'; -$lang->doc->fullscreen = '全屏'; -$lang->doc->retrack = '收起'; $lang->doc->moduleDoc = '按模組瀏覽'; $lang->doc->searchDoc = '搜索'; diff --git a/module/file/lang/de.php b/module/file/lang/de.php index 11b3d186a8..b96450de99 100644 --- a/module/file/lang/de.php +++ b/module/file/lang/de.php @@ -47,6 +47,9 @@ $lang->file->extra = 'Extra'; $lang->file->dragFile = 'Bitte hier ablegen.'; $lang->file->childTaskTips = 'It\'s a child task if there is a \'>\' before the name.'; $lang->file->uploadImagesExplain = 'Hinweis: Beim Upload von .jpg, .jpeg, .gif, und .png Dateien. Der Dateiname wird als Titel der Story genutzt und das Bild als der Inhalt.'; +$lang->file->saveAndNext = 'Save and Next'; +$lang->file->importPager = 'Total: %s. Page %s of %s'; +$lang->file->importSummary = "Import %s items You can %s items/page, so you have to import %s times."; $lang->file->errorNotExists = "'%s' wurde nicht gefunden."; $lang->file->errorCanNotWrite = "'%s' ist nicht beschreibbar. Bitte passen Sie die Berechtigungen an. Befehl sudo chmod -R 777 '%s' in Linux."; diff --git a/module/file/lang/en.php b/module/file/lang/en.php index 1bc14734df..615b0dd7a2 100644 --- a/module/file/lang/en.php +++ b/module/file/lang/en.php @@ -47,6 +47,9 @@ $lang->file->extra = 'Comment'; $lang->file->dragFile = 'Drag images here.'; $lang->file->childTaskTips = 'It\'s a child task if there is a \'>\' before the name.'; $lang->file->uploadImagesExplain = 'Note: upload .jpg, .jpeg, .gif, or .png images. The image name will be the name of the story and the image will be the description.'; +$lang->file->saveAndNext = 'Save and Next'; +$lang->file->importPager = 'Total: %s. Page %s of %s'; +$lang->file->importSummary = "Import %s items You can %s items/page, so you have to import %s times."; $lang->file->errorNotExists = "'%s' is not found."; $lang->file->errorCanNotWrite = "'%s' is not writable. Please change its permission. Enter sudo chmod -R 777 '%s' in Linux."; diff --git a/module/file/lang/fr.php b/module/file/lang/fr.php index c982c46d48..03e03faae1 100644 --- a/module/file/lang/fr.php +++ b/module/file/lang/fr.php @@ -47,6 +47,9 @@ $lang->file->extra = 'Commentaires'; $lang->file->dragFile = 'Faites glisser images ici.'; $lang->file->childTaskTips = 'Il s\'agit d\'une sous-tâche s\'il y a un \'>\' devant le nom.'; $lang->file->uploadImagesExplain = "Note : Chargez images au format .jpg, .jpeg, .gif, ou .png. Le nom de l'image sera le nom de la Story et l'image en sera sa description."; +$lang->file->saveAndNext = 'Save and Next'; +$lang->file->importPager = 'Total: %s. Page %s of %s'; +$lang->file->importSummary = "Import %s items You can %s items/page, so you have to import %s times."; $lang->file->errorNotExists = "'%s' non trouvé."; $lang->file->errorCanNotWrite = "'%s' non inscriptible. Changez les permissions. Entre sudo chmod -R 777 '%s' dans Linux."; diff --git a/module/file/lang/vi.php b/module/file/lang/vi.php index 75f06ec90e..9d52749081 100644 --- a/module/file/lang/vi.php +++ b/module/file/lang/vi.php @@ -47,6 +47,9 @@ $lang->file->extra = 'Nhận xét'; $lang->file->dragFile = 'Drag images here.'; $lang->file->childTaskTips = 'It\'s a child task if there is a \'>\' before the name.'; $lang->file->uploadImagesExplain = 'Ghi chú: upload .jpg, .jpeg, .gif, or .png images. The image name will be the name of the story and the image will be the description.'; +$lang->file->saveAndNext = 'Save and Next'; +$lang->file->importPager = 'Total: %s. Page %s of %s'; +$lang->file->importSummary = "Import %s items You can %s items/page, so you have to import %s times."; $lang->file->errorNotExists = "'%s' không là found."; $lang->file->errorCanNotWrite = "'%s' không thể ghi. Vui lòng change its permission. Enter sudo chmod -R 777 '%s' in Linux."; diff --git a/module/file/lang/zh-tw.php b/module/file/lang/zh-tw.php index 3c6386a434..9ca24199d5 100644 --- a/module/file/lang/zh-tw.php +++ b/module/file/lang/zh-tw.php @@ -46,15 +46,19 @@ $lang->file->extra = '備註'; $lang->file->dragFile = '請拖拽檔案到此處'; $lang->file->childTaskTips = "任務名稱前有'>'標記的為子任務"; -$lang->file->errorNotExists = "檔案夾 '%s' 不存在"; -$lang->file->errorCanNotWrite = "檔案夾 '%s' 不可寫,請改變檔案夾的權限。在linux中輸入指令: sudo chmod -R 777 %s"; -$lang->file->confirmDelete = " 您確定刪除該附件嗎?"; -$lang->file->errorFileSize = " 檔案大小已經超過%s,可能不能成功上傳!"; -$lang->file->errorFileUpload = " 檔案上傳失敗,檔案大小可能超出限制"; -$lang->file->errorFileFormate = " 檔案上傳失敗,檔案格式不在規定範圍內"; -$lang->file->errorFileMove = " 檔案上傳失敗,移動檔案時出錯"; -$lang->file->dangerFile = " 您選擇的檔案存在安全風險,系統將不予上傳。"; -$lang->file->errorSuffix = '壓縮包格式錯誤,只能上傳zip壓縮包!'; -$lang->file->errorExtract = '解壓縮失敗!可能檔案已經損壞,或壓縮包裡含有非法上傳檔案。'; $lang->file->uploadImagesExplain = '註:請上傳"jpg, jpeg, gif, png"格式的圖片,程序會以檔案名作為標題,以圖片作為內容。'; -$lang->file->fileNotFound = '未找到該檔案,可能物理檔案已被刪除!'; +$lang->file->saveAndNext = '保存並跳轉下一頁'; +$lang->file->importPager = '共有%s條記錄,當前第%s頁,共有%s頁'; +$lang->file->importSummary = "本次導入共有%s條記錄,每頁導入%s條,需要導入%s次"; + +$lang->file->errorNotExists = "檔案夾 '%s' 不存在"; +$lang->file->errorCanNotWrite = "檔案夾 '%s' 不可寫,請改變檔案夾的權限。在linux中輸入指令: sudo chmod -R 777 %s"; +$lang->file->confirmDelete = " 您確定刪除該附件嗎?"; +$lang->file->errorFileSize = " 檔案大小已經超過%s,可能不能成功上傳!"; +$lang->file->errorFileUpload = " 檔案上傳失敗,檔案大小可能超出限制"; +$lang->file->errorFileFormate = " 檔案上傳失敗,檔案格式不在規定範圍內"; +$lang->file->errorFileMove = " 檔案上傳失敗,移動檔案時出錯"; +$lang->file->dangerFile = " 您選擇的檔案存在安全風險,系統將不予上傳。"; +$lang->file->errorSuffix = '壓縮包格式錯誤,只能上傳zip壓縮包!'; +$lang->file->errorExtract = '解壓縮失敗!可能檔案已經損壞,或壓縮包裡含有非法上傳檔案。'; +$lang->file->fileNotFound = '未找到該檔案,可能物理檔案已被刪除!'; diff --git a/module/install/lang/zh-tw.php b/module/install/lang/zh-tw.php index e36c629094..bc15a379fe 100644 --- a/module/install/lang/zh-tw.php +++ b/module/install/lang/zh-tw.php @@ -177,7 +177,7 @@ $lang->install->joinZentao = <<您已經成功安裝禪道管理系統%s,請及時刪除install.php

友情提示:為了您及時獲得禪道的最新動態,請在禪道社區(www.zentao.net)進行登記。

EOT; -$lang->install->product = array('chanzhi', 'ranzhi', 'xuanxuan', 'ydisk', 'meshiot'); +$lang->install->product = array('chanzhi', 'zdoo', 'xuanxuan', 'ydisk', 'meshiot'); $lang->install->promotion = "為您推薦易軟天創旗下其他產品:"; $lang->install->chanzhi = new stdclass(); @@ -193,11 +193,11 @@ $lang->install->chanzhi->desc = << EOD; -$lang->install->ranzhi = new stdclass(); -$lang->install->ranzhi->name = '然之協同'; -$lang->install->ranzhi->logo = 'images/main/ranzhi.ico'; -$lang->install->ranzhi->url = 'http://www.ranzhi.org'; -$lang->install->ranzhi->desc = <<install->zdoo = new stdclass(); +$lang->install->zdoo->name = 'ZDOO'; +$lang->install->zdoo->logo = 'images/main/zdoo.ico'; +$lang->install->zdoo->url = 'http://www.zdoo.com'; +$lang->install->zdoo->desc = <<
  • 客戶管理,訂單跟蹤
  • 項目任務,公告文檔
  • diff --git a/module/misc/lang/de.php b/module/misc/lang/de.php index 8f970a5f1c..6f7b2b820b 100644 --- a/module/misc/lang/de.php +++ b/module/misc/lang/de.php @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Letzte Version'; $lang->misc->feature->detailed = 'Details'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'Integrate unit test, open the continuous integration closed-loop.', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'Add parent-child story, compatible xuanxuan.', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'Add Integration.', 'desc' => '

    Add integration, and build in Jenkins

    '); diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index ae36338aae..990a378f87 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Latest Version'; $lang->misc->feature->detailed = 'Detail'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'Integrate unit test, open the continuous integration closed-loop.', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'Add parent-child story, compatible Xuanxuan IM.', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'Add Integration.', 'desc' => '

    Add integration, and build in Jenkins

    '); diff --git a/module/misc/lang/fr.php b/module/misc/lang/fr.php index 918e607cfd..c615a0d1b9 100644 --- a/module/misc/lang/fr.php +++ b/module/misc/lang/fr.php @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Dernière Version'; $lang->misc->feature->detailed = 'Détail'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'Integrate unit test, open the continuous integration closed-loop.', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'Add parent-child story, compatible xuanxuan.', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'Add Integration.', 'desc' => '

    Add integration, and build in Jenkins

    '); diff --git a/module/misc/lang/vi.php b/module/misc/lang/vi.php index 4e741f65e9..ddba24b33b 100644 --- a/module/misc/lang/vi.php +++ b/module/misc/lang/vi.php @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = 'Latest Version'; $lang->misc->feature->detailed = 'Chi tiết'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'Fix bugs of high severity.', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'Integrate unit test, open the continuous integration closed-loop.', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'Thêm parent-child story, compatible xuanxuan.', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'Thêm Integration.', 'desc' => '

    Add integration, and build in Jenkins

    '); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index c2ce9dc77c..abe70738ef 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = '最新版本'; $lang->misc->feature->detailed = '详情'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'修复重要程度高的Bug。', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'集成单元测试,打通持续集成闭环。', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'增加父子需求,兼容最新喧喧。', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'增加构建功能', 'desc' => '

    增加构建功能,集成Jenkins进行构建

    '); diff --git a/module/misc/lang/zh-tw.php b/module/misc/lang/zh-tw.php index c3dfe4fe95..6a7313243f 100644 --- a/module/misc/lang/zh-tw.php +++ b/module/misc/lang/zh-tw.php @@ -54,7 +54,7 @@ $lang->misc->zentao->service['servicemore']= '更多服務...'; global $config; $lang->misc->zentao->others['chanzhi'] = " 蟬知門戶"; -$lang->misc->zentao->others['ranzhi'] = " 然之協同"; +$lang->misc->zentao->others['zdoo'] = " ZDOO"; $lang->misc->zentao->others['xuanxuan'] = " 喧喧聊天"; $lang->misc->zentao->others['ydisk'] = " 悅庫網盤"; $lang->misc->zentao->others['meshiot' ] = " 易天物聯"; @@ -86,6 +86,7 @@ $lang->misc->feature = new stdclass(); $lang->misc->feature->lastest = '最新版本'; $lang->misc->feature->detailed = '詳情'; +$lang->misc->releaseDate['12.3.1'] = '2020-05-15'; $lang->misc->releaseDate['12.3'] = '2020-04-08'; $lang->misc->releaseDate['12.2'] = '2020-03-25'; $lang->misc->releaseDate['12.1'] = '2020-03-10'; @@ -127,6 +128,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['12.3.1'][] = array('title'=>'修復重要程度高的Bug。', 'desc' => ''); $lang->misc->feature->all['12.3'][] = array('title'=>'整合單元測試,打通持續整合閉環。', 'desc' => ''); $lang->misc->feature->all['12.2'][] = array('title'=>'增加父子需求,兼容最新喧喧。', 'desc' => ''); $lang->misc->feature->all['12.1'][] = array('title'=>'增加構建功能', 'desc' => '

    增加構建功能,整合Jenkins進行構建

    '); @@ -180,7 +182,7 @@ $lang->misc->feature->all['10.2.stable'][] = array('title'=>'整合喧喧IM', 'd $lang->misc->feature->all['10.0.stable'][] = array('title'=>'全新的界面和交互體驗', 'desc' => '
    1. 全新的我的地盤
    2. 全新的動態頁面
    3. 全新的產品主頁
    4. 全新的產品概況
    5. 全新的路線圖
    6. 全新的項目主頁
    7. 全新的項目概況
    8. 全新的測試主頁
    9. 全新的文檔主頁
    10. 我的地盤新增工作統計區塊
    11. 我的地盤待辦區塊可以直接添加、編輯、完成待辦
    12. 產品主頁新增產品統計區塊
    13. 產品主頁新增產品總覽區塊
    14. 項目主頁新增項目統計區塊
    15. 項目主頁新增項目總覽區塊
    16. 測試主頁新增測試統計區塊
    17. 所有產品、產品主頁、所有項目、項目主頁、測試主頁等按鈕從二級導航右側移動到了左側
    18. 項目任務列表看板、燃盡圖、樹狀圖、分組查看等按鈕從三級導航中移動到二級導航中,樹狀圖、分組查看和任務列表整合到一個下拉列表中
    19. 項目下二級導航中Bug、版本、測試單三個跟測試相關的導航整合到一個下拉列表中
    20. 版本、測試單列表按照產品分組展示,佈局更加合理
    21. 文檔左側增加樹狀圖顯示
    22. 文檔增加快速訪問功能,包括最近更新、我的文檔、我的收藏三個入口
    23. 文檔增加收藏功能
      1. '); -$lang->misc->feature->all['9.8.stable'][] = array('title'=>'實現集中的消息處理機制', 'desc' => '

        郵件,短信,webhook都放統一的消息發送

        移植然之裡面的消息通知功能

        '); +$lang->misc->feature->all['9.8.stable'][] = array('title'=>'實現集中的消息處理機制', 'desc' => '

        郵件,短信,webhook都放統一的消息發送

        移植ZDOO裡面的消息通知功能

        '); $lang->misc->feature->all['9.8.stable'][] = array('title'=>'實現周期性待辦功能', 'desc' => ''); $lang->misc->feature->all['9.8.stable'][] = array('title'=>'增加指派給我的區塊', 'desc' => ''); $lang->misc->feature->all['9.8.stable'][] = array('title'=>'項目可以選擇多個測試單生成報告', 'desc' => ''); diff --git a/module/my/lang/zh-tw.php b/module/my/lang/zh-tw.php index 4f1ef4924e..50aff514be 100644 --- a/module/my/lang/zh-tw.php +++ b/module/my/lang/zh-tw.php @@ -16,7 +16,7 @@ $lang->my->profile = '我的檔案'; $lang->my->dynamic = '我的動態'; $lang->my->editProfile = '修改檔案'; $lang->my->changePassword = '修改密碼'; -$lang->my->unbind = '解除然之綁定'; +$lang->my->unbind = '解除ZDOO綁定'; $lang->my->manageContacts = '維護聯繫人'; $lang->my->deleteContacts = '刪除聯繫人'; $lang->my->shareContacts = '共享聯繫人列表'; diff --git a/module/product/lang/zh-tw.php b/module/product/lang/zh-tw.php index 4538e940bf..56475e98cc 100644 --- a/module/product/lang/zh-tw.php +++ b/module/product/lang/zh-tw.php @@ -133,8 +133,8 @@ $lang->product->aclList['open'] = "預設設置(有{$lang->productCommon}視 $lang->product->aclList['private'] = "私有{$lang->productCommon}(只有{$lang->productCommon}相關負責人和{$lang->projectCommon}團隊成員才能訪問)"; $lang->product->aclList['custom'] = '自定義白名單(團隊成員和白名單的成員可以訪問)'; -$lang->product->storySummary = "本頁共 %s 個{$lang->storyCommon},預計 %s 個{$lang->hourCommon},用例覆蓋率 %s。"; -$lang->product->checkedSummary = "選中 %total% 個{$lang->storyCommon},預計 %estimate% 個{$lang->hourCommon},用例覆蓋率 %rate%。"; +$lang->product->storySummary = "本頁共 %s 個%s,預計 %s 個{$lang->hourCommon},用例覆蓋率 %s。"; +$lang->product->checkedSummary = "選中 %total% 個%storyCommon%,預計 %estimate% 個{$lang->hourCommon},用例覆蓋率 %rate%。"; $lang->product->noModule = "
        您現在還沒有模組信息
        請維護{$lang->productCommon}模組
        "; $lang->product->noProduct = "暫時沒有{$lang->productCommon}。"; $lang->product->noMatched = '找不到包含"%s"的' . $lang->productCommon; diff --git a/module/sso/lang/zh-tw.php b/module/sso/lang/zh-tw.php index 94cc6b6345..49ae9aac99 100644 --- a/module/sso/lang/zh-tw.php +++ b/module/sso/lang/zh-tw.php @@ -12,7 +12,7 @@ $lang->sso = new stdclass(); $lang->sso->settings = '配置'; $lang->sso->turnon = '是否打開'; -$lang->sso->redirect = '自動跳迥然之'; +$lang->sso->redirect = '自動跳回ZDOO'; $lang->sso->code = '代號'; $lang->sso->key = '密鑰'; $lang->sso->addr = '介面地址'; @@ -30,8 +30,8 @@ $lang->sso->bindTypeList['bind'] = '綁定已有用戶'; $lang->sso->bindTypeList['add'] = '添加新用戶'; $lang->sso->help = <<1、介面地址的填寫,如果是PATH_INFO :http://然之網址/sys/sso-check.html,如果是GET:http://然之網址/sys/index.php?m=sso&f=check

        -

        2、代號和密鑰必須與然之後台設置的一致。

        +

        1、介面地址的填寫,如果是PATH_INFO :http://ZDOO網址/sys/sso-check.html,如果是GET:http://ZDOO網址/sys/index.php?m=sso&f=check

        +

        2、代號和密鑰必須與ZDOO後台設置的一致。

        EOD; $lang->sso->bindNotice = '添加的新用戶暫時沒有權限,需要聯繫禪道管理員,給該用戶分配權限。'; $lang->sso->bindNoPassword = '密碼不能為空'; diff --git a/module/task/lang/de.php b/module/task/lang/de.php index cb08f062cc..f1d09af03a 100644 --- a/module/task/lang/de.php +++ b/module/task/lang/de.php @@ -198,6 +198,7 @@ $lang->task->createDenied = 'Aufgben erstellen it in diesem Projekt ges $lang->task->cannotDeleteParent = 'Cannot delete parent task'; $lang->task->error = new stdclass(); +$lang->task->error->totalNumber = '"Total Cost" must be numbers.'; $lang->task->error->consumedNumber = '"Verbraucht" muss eine Zahl sein.'; $lang->task->error->estimateNumber = '"Stunden" müss eine Zahl sein.'; $lang->task->error->recordMinus = 'Work hours should not be negative number.'; diff --git a/module/task/lang/en.php b/module/task/lang/en.php index eed50c8a96..d646b9e83d 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -198,6 +198,7 @@ $lang->task->createDenied = 'Create Task is denied in this project'; $lang->task->cannotDeleteParent = 'Cannot delete parent task'; $lang->task->error = new stdclass(); +$lang->task->error->totalNumber = '"Total Cost" must be numbers.'; $lang->task->error->consumedNumber = '"Current Cost" must be numbers.'; $lang->task->error->estimateNumber = '"Estimates" must be numbers.'; $lang->task->error->recordMinus = 'Work hours should not be negative number.'; diff --git a/module/task/lang/fr.php b/module/task/lang/fr.php index 5ddf7a1042..2f424052e4 100644 --- a/module/task/lang/fr.php +++ b/module/task/lang/fr.php @@ -198,6 +198,7 @@ $lang->task->createDenied = 'La création de tâches est interdite dans $lang->task->cannotDeleteParent = 'Cannot delete parent task'; $lang->task->error = new stdclass(); +$lang->task->error->totalNumber = '"Total Cost" must be numbers.'; $lang->task->error->consumedNumber = '"Coût" doit être numérique.'; $lang->task->error->estimateNumber = '"Estimé" doit être numérique.'; $lang->task->error->recordMinus = 'Work hours should not be negative number.'; diff --git a/module/task/lang/vi.php b/module/task/lang/vi.php index 48f18fee62..575a36f394 100644 --- a/module/task/lang/vi.php +++ b/module/task/lang/vi.php @@ -198,6 +198,7 @@ $lang->task->createDenied = 'Tạo nhiệm vụ bị từ chối trong $lang->task->cannotDeleteParent = 'Không thể xóa nhiệm vụ cha'; $lang->task->error = new stdclass(); +$lang->task->error->totalNumber = '"Total Cost" must be numbers.'; $lang->task->error->consumedNumber = '"Giờ làm" phải là số.'; $lang->task->error->estimateNumber = '"Dự tính" phải là số.'; $lang->task->error->recordMinus = 'Giờ làm không nên là số âm'; diff --git a/module/testreport/lang/de.php b/module/testreport/lang/de.php index c8e84d6303..21bb93c174 100644 --- a/module/testreport/lang/de.php +++ b/module/testreport/lang/de.php @@ -73,6 +73,7 @@ $lang->testreport->errorTrunk = "Die Trunk Version kann kein Testbericht ers $lang->testreport->noTestTask = "No test requests for this {$lang->productCommon}, so no reports can be generated. Please go to {$lang->productCommon} which has test requests and then generate the report."; $lang->testreport->noObjectID = "No test request or {$lang->projectCommon} is selected, so no report can be generated."; $lang->testreport->moreProduct = "Ein Testbericht kann nur innerhalb des selben Produkts erstellt werden."; +$lang->testreport->hiddenCase = "Hide %s use cases"; $lang->testreport->bugSummary = <<%s Bug(s) in Summe erstellt , diff --git a/module/testreport/lang/en.php b/module/testreport/lang/en.php index 749f9b6bcd..847877a52c 100644 --- a/module/testreport/lang/en.php +++ b/module/testreport/lang/en.php @@ -73,6 +73,7 @@ $lang->testreport->errorTrunk = "You cannot create a Testing report for the $lang->testreport->noTestTask = "No test requests for this {$lang->productCommon}, so no reports can be generated. Please go to {$lang->productCommon} which has test requests and then generate the report."; $lang->testreport->noObjectID = "No test request or {$lang->projectCommon} is selected, so no report can be generated."; $lang->testreport->moreProduct = "Testing reports can only be generated for the same {$lang->productCommon}."; +$lang->testreport->hiddenCase = "Hide %s use cases"; $lang->testreport->bugSummary = <<%s Bugs reported , diff --git a/module/testreport/lang/fr.php b/module/testreport/lang/fr.php index 4cffaee2b9..d59f036596 100644 --- a/module/testreport/lang/fr.php +++ b/module/testreport/lang/fr.php @@ -73,6 +73,7 @@ $lang->testreport->errorTrunk = "Vous ne pouvez pas créer un rapport de tes $lang->testreport->noTestTask = "Pas de campagne de test pour ce {$lang->productCommon}, aucun rapport ne peut être généré. Choisissez un {$lang->productCommon} avec des campagnes de recette et vous pourrez produire des rapports."; $lang->testreport->noObjectID = "Pas de campagne de test ou un {$lang->projectCommon} est sélectionné, aucun rapport ne peut être généré."; $lang->testreport->moreProduct = "Les rapports de test ne peuvent être produits que pour le même {$lang->productCommon}."; +$lang->testreport->hiddenCase = "Hide %s use cases"; $lang->testreport->bugSummary = <<%s Bugs signalés , diff --git a/module/testreport/lang/vi.php b/module/testreport/lang/vi.php index 27cc3866e7..16305c9adf 100644 --- a/module/testreport/lang/vi.php +++ b/module/testreport/lang/vi.php @@ -73,6 +73,7 @@ $lang->testreport->errorTrunk = "Bạn không thể tạo một báo cáo th $lang->testreport->noTestTask = "Không có yêu cầu thử nghiệm {$lang->productCommon} này, so no reports can be generated. Vui lòng go to {$lang->productCommon} which has test requests and then generate the report."; $lang->testreport->noObjectID = "Không có yêu cầu test hoặc {$lang->projectCommon} được chọn, bởi vậy không có báo cáo có thể được tạo."; $lang->testreport->moreProduct = "Báo cáo Test chỉ có thể được tạo cho cùng {$lang->productCommon}."; +$lang->testreport->hiddenCase = "Hide %s use cases"; $lang->testreport->bugSummary = <<%s Bugs reported , diff --git a/module/testreport/lang/zh-tw.php b/module/testreport/lang/zh-tw.php index 4123123c65..4b2f18b35f 100644 --- a/module/testreport/lang/zh-tw.php +++ b/module/testreport/lang/zh-tw.php @@ -73,6 +73,7 @@ $lang->testreport->errorTrunk = "主幹版本不能創建測試報告,請 $lang->testreport->noTestTask = "該{$lang->productCommon}下還沒有關聯非Trunk的測試單,不能創建報告。請先創建測試單,再創建。"; $lang->testreport->noObjectID = "沒有選定測試單或{$lang->projectCommon},無法創建測試報告!"; $lang->testreport->moreProduct = "只能對同一個{$lang->productCommon}生成測試報告。"; +$lang->testreport->hiddenCase = "隱藏 %s 個用例"; $lang->testreport->bugSummary = <<%s個Bug , diff --git a/module/upgrade/lang/version.php b/module/upgrade/lang/version.php index e2c5abbc74..b07e083f35 100644 --- a/module/upgrade/lang/version.php +++ b/module/upgrade/lang/version.php @@ -120,3 +120,4 @@ $lang->upgrade->fromVersions['12_0'] = '12.0'; $lang->upgrade->fromVersions['12_0_1'] = '12.0.1'; $lang->upgrade->fromVersions['12_1'] = '12.1'; $lang->upgrade->fromVersions['12_2'] = '12.2'; +$lang->upgrade->fromVersions['12_3'] = '12.3'; diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 0895c9f043..9f21afd292 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -586,6 +586,9 @@ class upgradeModel extends model $this->saveLogs('Execute 12_2'); $this->execSQL($this->getUpgradeFile('12.2')); $this->appendExec('12_2'); + case '12_3': + $this->saveLogs('Execute 12_3'); + $this->appendExec('12_3'); } $this->deletePatch(); @@ -757,6 +760,7 @@ class upgradeModel extends model $confirmContent .= file_get_contents($xuanxuanSql); } case '12_2': $confirmContent .= file_get_contents($this->getUpgradeFile('12.2')); + case '12_3': } return str_replace('zt_', $this->config->db->prefix, $confirmContent); } diff --git a/module/user/lang/zh-tw.php b/module/user/lang/zh-tw.php index dadf4ed61a..f50429dba5 100644 --- a/module/user/lang/zh-tw.php +++ b/module/user/lang/zh-tw.php @@ -42,7 +42,7 @@ $lang->user->join = '入職日期'; $lang->user->visits = '訪問次數'; $lang->user->ip = '最後IP'; $lang->user->last = '最後登錄'; -$lang->user->ranzhi = '然之帳號'; +$lang->user->ranzhi = 'ZDOO帳號'; $lang->user->ditto = '同上'; $lang->user->originalPassword = '原密碼'; $lang->user->newPassword = '新密碼'; @@ -61,14 +61,14 @@ $lang->user->edit = "編輯用戶"; $lang->user->batchEdit = "批量編輯"; $lang->user->unlock = "解鎖用戶"; $lang->user->delete = "刪除用戶"; -$lang->user->unbind = "解除然之綁定"; +$lang->user->unbind = "解除ZDOO綁定"; $lang->user->login = "用戶登錄"; $lang->user->mobileLogin = "手機訪問"; $lang->user->editProfile = "修改檔案"; $lang->user->deny = "訪問受限"; $lang->user->confirmDelete = "您確定刪除該用戶嗎?"; $lang->user->confirmUnlock = "您確定解除該用戶的鎖定狀態嗎?"; -$lang->user->confirmUnbind = "您確定解除該用戶跟然之的綁定嗎?"; +$lang->user->confirmUnbind = "您確定解除該用戶跟ZDOO的綁定嗎?"; $lang->user->relogin = "重新登錄"; $lang->user->asGuest = "遊客訪問"; $lang->user->goback = "返回前一頁";