diff --git a/VERSION b/VERSION index cfac36bbc5..0d68f8a0eb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -16.0.beta1 +16.0 diff --git a/config/config.php b/config/config.php index 89e8e1e0b8..340298ab1b 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 = '16.0.beta1'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->version = '16.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/zentao16.0.sql b/db/standard/zentao16.0.sql new file mode 100644 index 0000000000..f4662e88d5 --- /dev/null +++ b/db/standard/zentao16.0.sql @@ -0,0 +1,1593 @@ +CREATE TABLE `zt_acl` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `objectType` char(30) NOT NULL, + `objectID` mediumint(9) NOT NULL DEFAULT 0, + `type` char(40) NOT NULL DEFAULT 'whitelist', + `source` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_action` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL DEFAULT '', + `objectID` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` varchar(255) NOT NULL, + `project` mediumint(8) unsigned NOT NULL, + `execution` mediumint(8) unsigned NOT NULL, + `actor` varchar(100) NOT NULL DEFAULT '', + `action` varchar(30) NOT NULL DEFAULT '', + `date` datetime NOT NULL, + `comment` text NOT NULL, + `extra` text NOT NULL, + `read` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `date` (`date`), + KEY `actor` (`actor`), + KEY `project` (`project`), + KEY `action` (`action`), + KEY `objectID` (`objectID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_api_lib_release` +( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `lib` int UNSIGNED NOT NULL DEFAULT 0, + `desc` varchar(255) NOT NULL DEFAULT '', + `version` varchar(255) NOT NULL DEFAULT '', + `snap` mediumtext NOT NULL, + `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedDate` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_api` +( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL DEFAULT '', + `lib` int UNSIGNED NOT NULL DEFAULT 0, + `module` int UNSIGNED NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULl DEFAULT 0, + `desc` text NULL, + `version` smallint UNSIGNED NOT NULL DEFAULT 0, + `params` text NULL, + `paramsExample` text NUll, + `responseExample` text NUll, + `response` text NULL, + `commonParams` text NULL, + `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT 0, + `editedDate` datetime NOT NULL, + `deleted` enum ('0', '1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apispec` +( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `doc` int UNSIGNED NOT NULL DEFAULT 0, + `module` int UNSIGNED NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL DEFAULT '', + `path` varchar(255) NOT NULL DEFAULT '', + `protocol` varchar(10) NOT NULL DEFAULT '', + `method` varchar(10) NOT NULL DEFAULT '', + `requestType` varchar(100) NOT NULL DEFAULT '', + `responseType` varchar(100) NOT NULL DEFAULT '', + `status` varchar(20) NOT NULL DEFAULT '', + `owner` varchar(255) NOT NULl DEFAULT 0, + `desc` text NULL, + `version` smallint UNSIGNED NOT NULL DEFAULT 0, + `params` text NULL, + `paramsExample` text NUll, + `responseExample` text NUll, + `response` text NULL, + `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedDate` datetime NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apistruct` +( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `lib` int UNSIGNED NOT NULL DEFAULT 0, + `name` varchar(30) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` text NOT NULL DEFAULT '', + `version` smallint unsigned NOT NULL DEFAULT 0, + `attribute` text NULL, + `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT 0, + `editedDate` datetime NOT NULL, + `deleted` enum ('0', '1') NOT NULL DEFAULT '0', + primary key (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_apistruct_spec` +( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `type` varchar(50) NOT NULL DEFAULT '', + `desc` varchar(255) NOT NULL DEFAULT '', + `attribute` text NULL, + `version` smallint unsigned NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedDate` datetime NOT NULL, + primary key (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_block` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `module` varchar(20) NOT NULL, + `type` char(30) NOT NULL, + `title` varchar(100) NOT NULL, + `source` varchar(20) NOT NULL, + `block` varchar(20) NOT NULL, + `params` text NOT NULL, + `order` tinyint(3) unsigned NOT NULL DEFAULT 0, + `grid` tinyint(3) unsigned NOT NULL DEFAULT 0, + `height` smallint(5) unsigned NOT NULL DEFAULT 0, + `hidden` tinyint(1) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `account_module_type_order` (`account`,`module`,`type`,`order`), + KEY `account` (`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_branch` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `default` enum ('0', '1') NOT NULL DEFAULT '0', + `status` enum ('active', 'closed') NOT NULL DEFAULT 'active', + `desc` varchar(255) NOT NULL, + `createdDate` date NOT NULL, + `closedDate` date NOT NULL, + `order` smallint unsigned NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_bug` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toTask` mediumint(8) unsigned NOT NULL DEFAULT 0, + `toStory` mediumint(8) NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL, + `keywords` varchar(255) NOT NULL, + `severity` tinyint(4) NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL, + `type` varchar(30) NOT NULL DEFAULT '', + `os` varchar(30) NOT NULL DEFAULT '', + `browser` varchar(30) NOT NULL DEFAULT '', + `hardware` varchar(30) NOT NULL, + `found` varchar(30) NOT NULL DEFAULT '', + `steps` text NOT NULL, + `status` enum('active','resolved','closed') NOT NULL DEFAULT 'active', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL, + `confirmed` tinyint(1) NOT NULL DEFAULT 0, + `activatedCount` smallint(6) NOT NULL, + `activatedDate` datetime NOT NULL, + `feedbackBy` varchar(100) NOT NULL, + `notifyEmail` varchar(100) NOT NULL, + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime NOT NULL, + `openedBuild` varchar(255) NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NOT NULL, + `deadline` date NOT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` varchar(30) NOT NULL DEFAULT '', + `resolvedBuild` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime NOT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NOT NULL, + `duplicateBug` mediumint(8) unsigned NOT NULL, + `linkBug` varchar(255) NOT NULL, + `case` mediumint(8) unsigned NOT NULL, + `caseVersion` smallint(6) NOT NULL DEFAULT 1, + `result` mediumint(8) unsigned NOT NULL, + `repo` mediumint(8) unsigned NOT NULL, + `mr` mediumint(8) unsigned NOT NULL, + `entry` varchar(255) NOT NULL, + `lines` varchar(10) NOT NULL, + `v1` varchar(40) NOT NULL, + `v2` varchar(40) NOT NULL, + `repoType` varchar(30) NOT NULL DEFAULT '', + `testtask` mediumint(8) unsigned NOT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `status` (`status`), + KEY `plan` (`plan`), + KEY `story` (`story`), + KEY `case` (`case`), + KEY `toStory` (`toStory`), + KEY `result` (`result`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_build` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(150) NOT NULL, + `scmPath` char(255) NOT NULL, + `filePath` char(255) NOT NULL, + `date` date NOT NULL, + `stories` text NOT NULL, + `bugs` text NOT NULL, + `builder` char(30) NOT NULL DEFAULT '', + `desc` text NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_burn` ( + `execution` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `estimate` float NOT NULL, + `left` float NOT NULL, + `consumed` float NOT NULL, + `storyPoint` float NOT NULL, + PRIMARY KEY (`execution`,`date`,`task`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_case` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `lib` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` mediumint(8) unsigned NOT NULL DEFAULT 0, + `story` mediumint(30) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `title` varchar(255) NOT NULL, + `precondition` text NOT NULL, + `keywords` varchar(255) NOT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `type` char(30) NOT NULL DEFAULT '1', + `auto` varchar(10) NOT NULL DEFAULT 'no', + `frame` varchar(10) NOT NULL, + `stage` varchar(255) NOT NULL, + `howRun` varchar(30) NOT NULL, + `scriptedBy` varchar(30) NOT NULL, + `scriptedDate` date NOT NULL, + `scriptStatus` varchar(30) NOT NULL, + `scriptLocation` varchar(255) NOT NULL, + `status` char(30) NOT NULL DEFAULT '1', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL, + `frequency` enum('1','2','3') NOT NULL DEFAULT '1', + `order` tinyint(30) unsigned NOT NULL DEFAULT 0, + `openedBy` char(30) NOT NULL DEFAULT '', + `openedDate` datetime NOT NULL, + `reviewedBy` varchar(255) NOT NULL, + `reviewedDate` date NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NOT NULL, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `linkCase` varchar(255) NOT NULL, + `fromBug` mediumint(8) unsigned NOT NULL, + `fromCaseID` mediumint(8) unsigned NOT NULL, + `fromCaseVersion` mediumint(8) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `lastRunner` varchar(30) NOT NULL, + `lastRunDate` datetime NOT NULL, + `lastRunResult` char(30) NOT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `story` (`story`), + KEY `fromBug` (`fromBug`), + KEY `module` (`module`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_casestep` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` smallint(3) unsigned NOT NULL DEFAULT 0, + `type` varchar(10) NOT NULL DEFAULT 'step', + `desc` text NOT NULL, + `expect` text NOT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_company` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(120) DEFAULT NULL, + `phone` char(20) DEFAULT NULL, + `fax` char(20) DEFAULT NULL, + `address` char(120) DEFAULT NULL, + `zipcode` char(10) DEFAULT NULL, + `website` char(120) DEFAULT NULL, + `backyard` char(120) DEFAULT NULL, + `guest` enum('1','0') NOT NULL DEFAULT '0', + `admins` char(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_compile` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `job` mediumint(8) unsigned NOT NULL, + `queue` mediumint(8) NOT NULL, + `status` varchar(255) NOT NULL, + `logs` text DEFAULT NULL, + `atTime` varchar(10) NOT NULL, + `testtask` mediumint(8) unsigned NOT NULL, + `tag` varchar(255) NOT NULL, + `times` tinyint(3) unsigned NOT NULL DEFAULT 0, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `updateDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_config` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `owner` char(30) NOT NULL DEFAULT '', + `module` varchar(30) NOT NULL, + `section` char(30) NOT NULL DEFAULT '', + `key` char(30) NOT NULL DEFAULT '', + `value` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique` (`owner`,`module`,`section`,`key`) +) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +CREATE TABLE `zt_cron` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `m` varchar(20) NOT NULL, + `h` varchar(20) NOT NULL, + `dom` varchar(20) NOT NULL, + `mon` varchar(20) NOT NULL, + `dow` varchar(20) NOT NULL, + `command` text NOT NULL, + `remark` varchar(255) NOT NULL, + `type` varchar(20) NOT NULL, + `buildin` tinyint(1) NOT NULL DEFAULT 0, + `status` varchar(20) NOT NULL, + `lastTime` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `lastTime` (`lastTime`) +) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; +CREATE TABLE `zt_dept` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` char(60) NOT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(4) unsigned NOT NULL DEFAULT 0, + `position` char(30) NOT NULL DEFAULT '', + `function` char(255) NOT NULL DEFAULT '', + `manager` char(30) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `path` (`path`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_design` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` varchar(255) NOT NULL, + `product` varchar(255) NOT NULL, + `commit` text NOT NULL, + `commitedBy` varchar(30) NOT NULL, + `execution` mediumint(8) unsigned NOT NULL DEFAULT '0', + `name` varchar(255) NOT NULL, + `status` varchar(30) NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `assignedTo` varchar(30) NOT NULL, + `assignedBy` varchar(30) NOT NULL, + `assignedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `story` char(30) NOT NULL, + `desc` text NOT NULL, + `version` smallint(6) NOT NULL, + `type` char(30) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_designspec` ( + `design` mediumint(8) NOT NULL, + `version` smallint(6) NOT NULL, + `name` varchar(255) NOT NULL, + `desc` text NOT NULL, + `files` varchar(255) NOT NULL, + UNIQUE KEY `design` (`design`,`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doc` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `execution` mediumint(8) unsigned NOT NULL, + `lib` varchar(30) NOT NULL, + `module` varchar(30) NOT NULL, + `title` varchar(255) NOT NULL, + `keywords` varchar(255) NOT NULL, + `type` varchar(30) NOT NULL, + `views` smallint(5) unsigned NOT NULL, + `draft` longtext NOT NULL, + `collector` text NOT NULL, + `addedBy` varchar(30) NOT NULL, + `addedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `mailto` text DEFAULT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL, + `users` text NOT NULL, + `version` smallint(5) unsigned NOT NULL DEFAULT 1, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`), + KEY `lib` (`lib`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doccontent` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `doc` mediumint(8) unsigned NOT NULL, + `title` varchar(255) NOT NULL, + `digest` varchar(255) NOT NULL, + `content` longtext NOT NULL, + `files` text NOT NULL, + `type` varchar(10) NOT NULL, + `version` smallint(5) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `doc_version` (`doc`,`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_doclib` ( + `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(30) NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `project` mediumint(8) unsigned NOT NULL, + `execution` mediumint(8) unsigned NOT NULL, + `name` varchar(60) NOT NULL, + `baseUrl` varchar(255) NOT NULL, + `acl` varchar(10) NOT NULL DEFAULT 'open', + `groups` varchar(255) NOT NULL, + `users` text NOT NULL, + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text NOT NULL, + `desc` text NOT NULL, + `order` tinyint(5) unsigned NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `execution` (`execution`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_effort` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `user` char(30) NOT NULL DEFAULT '', + `todo` enum('1','0') NOT NULL DEFAULT '1', + `date` date NOT NULL, + `begin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `end` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `type` enum('1','2','3') NOT NULL DEFAULT '1', + `idvalue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `status` enum('1','2','3') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + KEY `user` (`user`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_entry` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `account` varchar(30) NOT NULL DEFAULT '', + `code` varchar(20) NOT NULL, + `key` varchar(32) NOT NULL, + `freePasswd` enum('0','1') NOT NULL DEFAULT '0', + `ip` varchar(100) NOT NULL, + `desc` text NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `calledTime` int(10) unsigned NOT NULL DEFAULT 0, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_expect` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `userID` mediumint(8) NOT NULL, + `project` mediumint(8) NOT NULL DEFAULT 0, + `expect` text NOT NULL, + `progress` text NOT NULL, + `createdBy` char(30) NOT NULL, + `createdDate` date NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_extension` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(150) NOT NULL, + `code` varchar(30) NOT NULL, + `version` varchar(50) NOT NULL, + `author` varchar(100) NOT NULL, + `desc` text NOT NULL, + `license` text NOT NULL, + `type` varchar(20) NOT NULL DEFAULT 'extension', + `site` varchar(150) NOT NULL, + `zentaoCompatible` varchar(100) NOT NULL, + `installedTime` datetime NOT NULL, + `depends` varchar(100) NOT NULL, + `dirs` mediumtext NOT NULL, + `files` mediumtext NOT NULL, + `status` varchar(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `code` (`code`), + KEY `name` (`name`), + KEY `installedTime` (`installedTime`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_file` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `pathname` char(50) NOT NULL, + `title` char(255) NOT NULL, + `extension` char(30) NOT NULL, + `size` int(10) unsigned NOT NULL DEFAULT 0, + `objectType` char(30) NOT NULL, + `objectID` mediumint(9) NOT NULL, + `addedBy` char(30) NOT NULL DEFAULT '', + `addedDate` datetime NOT NULL, + `downloads` mediumint(8) unsigned NOT NULL DEFAULT 0, + `extra` varchar(255) NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `objectID` (`objectID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_group` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(30) NOT NULL, + `role` char(30) NOT NULL DEFAULT '', + `desc` char(255) NOT NULL DEFAULT '', + `acl` text DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; +CREATE TABLE `zt_grouppriv` ( + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` char(30) NOT NULL DEFAULT '', + `method` char(30) NOT NULL DEFAULT '', + UNIQUE KEY `group` (`group`,`module`,`method`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_history` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `action` mediumint(8) unsigned NOT NULL DEFAULT 0, + `field` varchar(30) NOT NULL DEFAULT '', + `old` text NOT NULL, + `new` text NOT NULL, + `diff` mediumtext NOT NULL, + PRIMARY KEY (`id`), + KEY `action` (`action`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_holiday` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL DEFAULT '', + `type` enum('holiday', 'working') NOT NULL DEFAULT 'holiday', + `desc` text NOT NULL, + `year` char(4) NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + PRIMARY KEY (`id`), + KEY `year` (`year`), + KEY `name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_job` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `repo` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `frame` varchar(20) NOT NULL, + `engine` varchar(20) NOT NULL, + `server` mediumint(8) unsigned NOT NULL, + `pipeline` varchar(500) NOT NULL, + `triggerType` varchar(255) NOT NULL, + `svnDir` varchar(255) NOT NULL, + `atDay` varchar(255) DEFAULT NULL, + `atTime` varchar(10) DEFAULT NULL, + `customParam` text NOT NULL, + `comment` varchar(255) DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `lastExec` datetime DEFAULT NULL, + `lastStatus` varchar(255) DEFAULT NULL, + `lastTag` varchar(255) DEFAULT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanban` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `owner` varchar(30) NOT NULL, + `team` text NOT NULL, + `desc` text NOT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text NOT NULL, + `archived` enum('0', '1') NOT NULL DEFAULT '0', + `status` enum('active','closed') NOT NULL default 'active', + `order` smallint(6) NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `closedBy` char(30) NOT NULL, + `closedDate` datetime NOT NULL, + `deleted` enum('0', '1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbancard` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL, + `region` mediumint(8) unsigned NOT NULL, + `group` mediumint(8) unsigned NOT NULL, + `lane` mediumint(8) unsigned NOT NULL, + `column` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `pri` mediumint(8) unsigned NOT NULL, + `assignedTo` text NOT NULL, + `desc` text NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + `estimate` float unsigned NOT NULL, + `color` char(7) NOT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text NOT NULL, + `order` smallint(6) NOT NULL DEFAULT '0', + `archived` enum('0', '1') NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `archivedBy` char(30) NOT NULL, + `archivedDate` datetime NOT NULL, + `assignedBy` char(30) NOT NULL, + `assignedDate` 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_kanbancolumn` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `lane` mediumint(8) NOT NULL DEFAULT '0', + `parent` mediumint(8) NOT NULL DEFAULT '0', + `type` char(30) NOT NULL, + `region` mediumint(8) unsigned NOT NULL, + `group` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL, + `limit` smallint(6) NOT NULL DEFAULT '-1', + `order` mediumint(8) NOT NULL DEFAULT '0', + `cards` text NULL, + `archived` enum('0', '1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL default '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbangroup` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `kanban` mediumint(8) unsigned NOT NULL, + `region` mediumint(8) unsigned NOT NULL, + `order` smallint(6) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_kanbanlane` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `execution` mediumint(8) NOT NULL DEFAULT '0', + `type` char(30) NOT NULL, + `region` mediumint(8) unsigned NOT NULL, + `group` mediumint(8) unsigned NOT NULL, + `groupby` char(30) NOT NULL, + `extra` char(30) NOT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `color` char(30) NOT NULL, + `order` smallint(6) NOT NULL DEFAULT '0', + `lastEditedTime` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL default '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbanregion` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `space` mediumint(8) unsigned NOT NULL, + `kanban` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `order` smallint(6) NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `deleted` enum('0', '1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_kanbanspace` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `owner` varchar(30) NOT NULL, + `team` text NOT NULL, + `desc` text NOT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text NOT NULL, + `status` enum('active','closed') NOT NULL default 'active', + `order` smallint(6) NOT NULL DEFAULT '0', + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `closedBy` char(30) NOT NULL, + `closedDate` datetime NOT NULL, + `deleted` enum('0', '1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_lang` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `lang` varchar(30) NOT NULL, + `module` varchar(30) NOT NULL, + `section` varchar(30) NOT NULL, + `key` varchar(60) NOT NULL, + `value` text NOT NULL, + `system` enum('0','1') NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + UNIQUE KEY `lang` (`lang`,`module`,`section`,`key`) +) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; +CREATE TABLE `zt_log` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(30) NOT NULL, + `objectID` mediumint(8) unsigned NOT NULL, + `action` mediumint(8) unsigned NOT NULL, + `date` datetime NOT NULL, + `url` varchar(255) NOT NULL, + `contentType` varchar(30) NOT NULL, + `data` text NOT NULL, + `result` text NOT NULL, + PRIMARY KEY (`id`), + KEY `objectType` (`objectType`), + KEY `obejctID` (`objectID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_module` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` char(60) NOT NULL DEFAULT '', + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` char(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT 0, + `order` smallint(5) unsigned NOT NULL DEFAULT 0, + `type` char(30) NOT NULL, + `owner` varchar(30) NOT NULL, + `collector` text NOT NULL, + `short` varchar(30) NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `root` (`root`), + KEY `type` (`type`), + KEY `path` (`path`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_mr` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `gitlabID` mediumint(8) unsigned NOT NULL, + `sourceProject` int unsigned NOT NULL, + `sourceBranch` varchar(100) NOT NULL, + `targetProject` int unsigned NOT NULL, + `targetBranch` varchar(100) NOT NULL, + `mriid` int unsigned NOT NULL, + `title` varchar(255) NOT NULL, + `description` text NOT NULL, + `assignee` varchar(255) NOT NULL, + `reviewer` varchar(255) NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + `status` char(30) NOT NULL, + `mergeStatus` char(30) NOT NULL, + `approver` varchar(255) NOT NULL, + `approvalStatus` char(30) NOT NULL, + `needApproved` enum('0','1') NOT NULL DEFAULT '0', + `needCI` enum('0','1') NOT NULL DEFAULT '0', + `repoID` mediumint(8) unsigned NOT NULL, + `jobID` mediumint(8) unsigned NOT NULL, + `compileID` mediumint(8) unsigned NOT NULL, + `compileStatus` char(30) NOT NULL, + `removeSourceBranch` ENUM('0','1') NOT NULL DEFAULT '0', + `synced` enum('0','1') COLLATE 'utf8_general_ci' NOT NULL, + `syncError` VARCHAR(255) NOT NULL, + `diffs` longtext COLLATE 'utf8_general_ci' NULL, + `hasNoConflict` enum('0','1') COLLATE 'utf8_general_ci' NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_mrapproval` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `mrID` mediumint(8) unsigned NOT NULL, + `account` varchar(255) NOT NULL, + `date` datetime NOT NULL, + `action` char(30) NOT NULL, + `comment` text NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_notify` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` varchar(50) NOT NULL, + `objectID` mediumint(8) unsigned NOT NULL, + `action` mediumint(9) NOT NULL, + `toList` varchar(255) NOT NULL, + `ccList` text NOT NULL, + `subject` varchar(255) NOT NULL, + `data` text NOT NULL, + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `sendTime` datetime NOT NULL, + `status` varchar(10) NOT NULL DEFAULT 'wait', + `failReason` text NOT NULL, + PRIMARY KEY (`id`), + KEY `objectType_toList_status` (`objectType`,`toList`,`status`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_oauth` ( + `account` varchar(30) NOT NULL, + `openID` varchar(255) NOT NULL, + `providerType` varchar(30) NOT NULL, + `providerID` mediumint(8) unsigned NOT NULL, + KEY `account` (`account`), + KEY `providerType` (`providerType`), + KEY `providerID` (`providerID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_pipeline` ( + `id` smallint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` char(30) NOT NULL, + `name` varchar(50) NOT NULL, + `url` varchar(255) DEFAULT NULL, + `account` varchar(30) DEFAULT NULL, + `password` varchar(255) NOT NULL, + `token` varchar(255) DEFAULT NULL, + `private` char(32) DEFAULT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_planstory` ( + `plan` mediumint(8) unsigned NOT NULL, + `story` mediumint(8) unsigned NOT NULL, + `order` mediumint(9) NOT NULL, + UNIQUE KEY `plan_story` (`plan`,`story`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_product` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `program` mediumint(8) unsigned NOT NULL, + `name` varchar(90) NOT NULL, + `code` varchar(45) NOT NULL, + `bind` enum('0','1') NOT NULL DEFAULT '0', + `line` mediumint(8) NOT NULL, + `type` varchar(30) NOT NULL DEFAULT 'normal', + `status` varchar(30) NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `desc` text NOT NULL, + `PO` varchar(30) NOT NULL, + `QD` varchar(30) NOT NULL, + `RD` varchar(30) NOT NULL, + `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', + `whitelist` text NOT NULL, + `reviewer` varchar(255) NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `createdVersion` varchar(20) NOT NULL, + `order` mediumint(8) unsigned NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_productplan` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `product` mediumint(8) unsigned NOT NULL, + `branch` mediumint(8) unsigned NOT NULL, + `parent` mediumint(9) NOT NULL DEFAULT 0, + `title` varchar(90) NOT NULL, + `desc` text NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + `order` text NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `end` (`end`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_project` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL DEFAULT 0, + `model` char(30) NOT NULL, + `type` char(30) NOT NULL DEFAULT 'sprint', + `lifetime` char(30) NOT NULL DEFAULT '', + `budget` varchar(30) NOT NULL DEFAULT '0', + `budgetUnit` char(30) NOT NULL DEFAULT 'CNY', + `attribute` varchar(30) NOT NULL DEFAULT '', + `percent` float unsigned NOT NULL DEFAULT 0, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `output` text NOT NULL, + `auth` char(30) NOT NULL, + `parent` mediumint(8) unsigned NOT NULL DEFAULT 0, + `path` varchar(255) NOT NULL, + `grade` tinyint(3) unsigned NOT NULL, + `name` varchar(90) NOT NULL, + `code` varchar(45) NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + `realBegan` date NOT NULL, + `realEnd` date NOT NULL, + `days` smallint(5) unsigned NOT NULL, + `status` varchar(10) NOT NULL, + `subStatus` varchar(30) NOT NULL DEFAULT '', + `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', + `desc` text NOT NULL, + `version` smallint(6) NOT NULL, + `parentVersion` smallint(6) NOT NULL, + `planDuration` int(11) NOT NULL, + `realDuration` int(11) NOT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime NOT NULL, + `openedVersion` varchar(20) NOT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NOT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NOT NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime NOT NULL, + `suspendedDate` date NOT NULL, + `PO` varchar(30) NOT NULL DEFAULT '', + `PM` varchar(30) NOT NULL DEFAULT '', + `QD` varchar(30) NOT NULL DEFAULT '', + `RD` varchar(30) NOT NULL DEFAULT '', + `team` varchar(90) NOT NULL, + `acl` char(30) NOT NULL DEFAULT 'open', + `whitelist` text NOT NULL, + `order` mediumint(8) unsigned NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `begin` (`begin`), + KEY `end` (`end`), + KEY `status` (`status`), + KEY `acl` (`acl`), + KEY `order` (`order`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectcase` ( + `project` mediumint(8) unsigned NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `count` mediumint(8) unsigned NOT NULL DEFAULT 1, + `version` smallint(6) NOT NULL DEFAULT 1, + `order` smallint(6) unsigned NOT NULL, + UNIQUE KEY `project` (`project`,`case`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectproduct` ( + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `branch` mediumint(8) unsigned NOT NULL, + `plan` mediumint(8) unsigned NOT NULL, + PRIMARY KEY (`project`, `product`, `branch`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectspec` ( + `project` mediumint(8) NOT NULL, + `version` smallint(6) NOT NULL, + `name` varchar(255) NOT NULL, + `milestone` enum('0','1') NOT NULL DEFAULT '0', + `begin` date NOT NULL, + `end` date NOT NULL, + UNIQUE KEY `project` (`project`,`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_projectstory` ( + `project` mediumint(8) unsigned NOT NULL default '0', + `product` mediumint(8) unsigned NOT NULL, + `branch` mediumint(8) unsigned NOT NULL, + `story` mediumint(8) unsigned NOT NULL default '0', + `version` smallint(6) NOT NULL default '1', + `order` smallint(6) unsigned NOT NULL, + UNIQUE KEY `project` (`project`,`story`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_relation` ( + `id` int(8) NOT NULL AUTO_INCREMENT, + `project` mediumint(8) NOT NULL, + `product` mediumint(8) NOT NULL, + `execution` mediumint(8) NOT NULL, + `AType` char(30) NOT NULL, + `AID` mediumint(8) NOT NULL, + `AVersion` char(30) NOT NULL, + `relation` char(30) NOT NULL, + `BType` char(30) NOT NULL, + `BID` mediumint(8) NOT NULL, + `BVersion` char(30) NOT NULL, + `extra` char(30) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `relation` (`product`,`relation`,`AType`,`BType`,`AID`,`BID`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_release` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL DEFAULT '', + `marker` enum('0','1') NOT NULL DEFAULT '0', + `date` date NOT NULL, + `stories` text NOT NULL, + `bugs` text NOT NULL, + `leftBugs` text NOT NULL, + `desc` text NOT NULL, + `mailto` text, + `notify` varchar(255), + `status` varchar(20) NOT NULL DEFAULT 'normal', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repo` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `product` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `path` varchar(255) NOT NULL, + `prefix` varchar(100) NOT NULL, + `encoding` varchar(20) NOT NULL, + `SCM` varchar(10) NOT NULL, + `client` varchar(100) NOT NULL, + `commits` mediumint(8) unsigned NOT NULL, + `account` varchar(30) NOT NULL, + `password` varchar(30) NOT NULL, + `encrypt` varchar(30) NOT NULL DEFAULT 'plain', + `acl` text NOT NULL, + `synced` tinyint(1) NOT NULL DEFAULT 0, + `lastSync` datetime NOT NULL, + `desc` text NOT NULL, + `extra` char(30) NOT NULL, + `preMerge` enum('0','1') COLLATE 'utf8_general_ci' NOT NULL DEFAULT '0', + `job` mediumint(8) unsigned NOT NULL, + `fileServerUrl` text COLLATE 'utf8_general_ci' NULL, + `fileServerAccount` varchar(40) NOT NULL default '', + `fileServerPassword` varchar(100) NOT NULL default '', + `deleted` tinyint(1) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repobranch` ( + `repo` mediumint(8) unsigned NOT NULL, + `revision` mediumint(8) unsigned NOT NULL, + `branch` varchar(255) NOT NULL, + UNIQUE KEY `repo_revision_branch` (`repo`,`revision`,`branch`), + KEY `branch` (`branch`), + KEY `revision` (`revision`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repofiles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `repo` mediumint(8) unsigned NOT NULL, + `revision` mediumint(8) unsigned NOT NULL, + `path` varchar(255) NOT NULL, + `parent` varchar(255) NOT NULL, + `type` varchar(20) NOT NULL, + `action` char(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `path` (`path`), + KEY `parent` (`parent`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_repohistory` ( + `id` mediumint(9) NOT NULL AUTO_INCREMENT, + `repo` mediumint(9) NOT NULL, + `revision` varchar(40) NOT NULL, + `commit` mediumint(8) unsigned NOT NULL, + `comment` text NOT NULL, + `committer` varchar(100) NOT NULL, + `time` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `repo` (`repo`), + KEY `revision` (`revision`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_score` ( + `id` bigint(12) unsigned NOT NULL AUTO_INCREMENT, + `account` varchar(30) NOT NULL, + `module` varchar(30) NOT NULL DEFAULT '', + `method` varchar(30) NOT NULL, + `desc` varchar(250) NOT NULL DEFAULT '', + `before` int(11) NOT NULL DEFAULT 0, + `score` int(11) NOT NULL DEFAULT 0, + `after` int(11) NOT NULL DEFAULT 0, + `time` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `model` (`module`), + KEY `method` (`method`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_searchdict` ( + `key` smallint(5) unsigned NOT NULL, + `value` char(3) NOT NULL, + PRIMARY KEY (`key`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_searchindex` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `objectType` char(20) NOT NULL, + `objectID` mediumint(9) NOT NULL, + `title` text NOT NULL, + `content` text NOT NULL, + `addedDate` datetime NOT NULL, + `editedDate` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `object` (`objectType`,`objectID`), + KEY `addedDate` (`addedDate`), + FULLTEXT KEY `content` (`content`), + FULLTEXT KEY `title` (`title`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_stage` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `percent` varchar(255) NOT NULL, + `type` varchar(255) NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_stakeholder` ( + `id` mediumint(8) NOT NULL AUTO_INCREMENT, + `objectID` mediumint(8) NOT NULL, + `objectType` char(30) NOT NULL, + `user` char(30) NOT NULL, + `type` char(30) NOT NULL, + `key` enum('0','1') NOT NULL, + `from` char(30) NOT NULL, + `createdBy` char(30) NOT NULL, + `createdDate` date NOT NULL, + `editedBy` char(30) NOT NULL, + `editedDate` date NOT NULL, + `deleted` enum('0','1') NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_story` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `parent` mediumint(9) NOT NULL DEFAULT 0, + `product` mediumint(8) unsigned NOT NULL DEFAULT 0, + `branch` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `plan` text DEFAULT NULL, + `source` varchar(20) NOT NULL, + `sourceNote` varchar(255) NOT NULL, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `title` varchar(255) NOT NULL, + `keywords` varchar(255) NOT NULL, + `type` varchar(30) NOT NULL DEFAULT 'story', + `category` varchar(30) NOT NULL DEFAULT 'feature', + `pri` tinyint(3) unsigned NOT NULL DEFAULT 3, + `estimate` float unsigned NOT NULL, + `status` enum('','changed','active','draft','closed') NOT NULL DEFAULT '', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL, + `stage` enum('','wait','planned','projected','developing','developed','testing','tested','verified','released','closed') NOT NULL DEFAULT 'wait', + `stagedBy` char(30) NOT NULL, + `mailto` text DEFAULT NULL, + `openedBy` varchar(30) NOT NULL DEFAULT '', + `openedDate` datetime NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NOT NULL, + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NOT NULL, + `reviewedBy` varchar(255) NOT NULL, + `reviewedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NOT NULL, + `closedReason` varchar(30) NOT NULL, + `toBug` mediumint(8) unsigned NOT NULL, + `childStories` varchar(255) NOT NULL, + `linkStories` varchar(255) NOT NULL, + `duplicateStory` mediumint(8) unsigned NOT NULL, + `version` smallint(6) NOT NULL DEFAULT 1, + `feedbackBy` varchar(100) NOT NULL, + `notifyEmail` varchar(100) NOT NULL, + `URChanged` enum('0','1') NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `status` (`status`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyestimate` ( + `story` mediumint(9) NOT NULL, + `round` smallint(6) NOT NULL, + `estimate` text NOT NULL, + `average` float NOT NULL, + `openedBy` varchar(30) NOT NULL, + `openedDate` datetime NOT NULL, + UNIQUE KEY `story` (`story`,`round`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyreview` ( + `story` mediumint(9) NOT NULL, + `version` smallint(6) NOT NULL, + `reviewer` varchar(30) NOT NULL, + `result` varchar(30) NOT NULL, + `reviewDate` datetime NOT NULL, + UNIQUE KEY `story` (`story`,`version`,`reviewer`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storyspec` ( + `story` mediumint(9) NOT NULL, + `version` smallint(6) NOT NULL, + `title` varchar(255) NOT NULL, + `spec` text NOT NULL, + `verify` text NOT NULL, + UNIQUE KEY `story` (`story`,`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_storystage` ( + `story` mediumint(8) unsigned NOT NULL, + `branch` mediumint(8) unsigned NOT NULL, + `stage` varchar(50) NOT NULL, + `stagedBy` char(30) NOT NULL, + UNIQUE KEY `story_branch` (`story`,`branch`), + KEY `story` (`story`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_suitecase` ( + `suite` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `case` mediumint(8) unsigned NOT NULL, + `version` smallint(5) unsigned NOT NULL, + UNIQUE KEY `suitecase` (`suite`,`case`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_task` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `parent` mediumint(8) NOT NULL DEFAULT 0, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `module` mediumint(8) unsigned NOT NULL DEFAULT 0, + `design` mediumint(8) unsigned NOT NULL, + `story` mediumint(8) unsigned NOT NULL DEFAULT 0, + `storyVersion` smallint(6) NOT NULL DEFAULT 1, + `designVersion` smallint(6) unsigned NOT NULL, + `fromBug` mediumint(8) unsigned NOT NULL DEFAULT 0, + `name` varchar(255) NOT NULL, + `type` varchar(20) NOT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `estimate` float unsigned NOT NULL, + `consumed` float unsigned NOT NULL, + `left` float unsigned NOT NULL, + `deadline` date NOT NULL, + `status` enum('wait','doing','done','pause','cancel','closed') NOT NULL DEFAULT 'wait', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `color` char(7) NOT NULL, + `mailto` text DEFAULT NULL, + `desc` text NOT NULL, + `version` smallint(6) NOT NULL, + `openedBy` varchar(30) NOT NULL, + `openedDate` datetime NOT NULL, + `assignedTo` varchar(30) NOT NULL, + `assignedDate` datetime NOT NULL, + `estStarted` date NOT NULL, + `realStarted` datetime NOT NULL, + `finishedBy` varchar(30) NOT NULL, + `finishedDate` datetime NOT NULL, + `finishedList` text NOT NULL, + `canceledBy` varchar(30) NOT NULL, + `canceledDate` datetime NOT NULL, + `closedBy` varchar(30) NOT NULL, + `closedDate` datetime NOT NULL, + `planDuration` int(11) NOT NULL, + `realDuration` int(11) NOT NULL, + `closedReason` varchar(30) NOT NULL, + `lastEditedBy` varchar(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `activatedDate` date NOT NULL, + `repo` mediumint unsigned NOT NULL, + `mr` 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, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `execution` (`execution`), + KEY `story` (`story`), + KEY `parent` (`parent`), + KEY `assignedTo` (`assignedTo`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_taskestimate` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `date` date NOT NULL, + `left` float unsigned NOT NULL DEFAULT 0, + `consumed` float unsigned NOT NULL, + `account` char(30) NOT NULL DEFAULT '', + `work` text DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `task` (`task`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_taskspec` ( + `task` mediumint(8) NOT NULL, + `version` smallint(6) NOT NULL, + `name` varchar(255) NOT NULL, + `estStarted` date NOT NULL, + `deadline` date NOT NULL, + UNIQUE KEY `task` (`task`,`version`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_team` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `root` mediumint(8) unsigned NOT NULL DEFAULT 0, + `type` enum('project','task','execution') NOT NULL DEFAULT 'project', + `account` char(30) NOT NULL DEFAULT '', + `role` char(30) NOT NULL DEFAULT '', + `limited` char(8) NOT NULL DEFAULT 'no', + `join` date NOT NULL DEFAULT '0000-00-00', + `days` smallint(5) unsigned NOT NULL, + `hours` float(3,1) unsigned NOT NULL DEFAULT 0.0, + `estimate` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `consumed` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `left` decimal(12,2) unsigned NOT NULL DEFAULT 0.00, + `order` tinyint(3) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `team` (`root`,`type`,`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testreport` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `execution` mediumint(8) unsigned NOT NULL, + `tasks` varchar(255) NOT NULL, + `builds` varchar(255) NOT NULL, + `title` varchar(255) NOT NULL, + `begin` date NOT NULL, + `end` date NOT NULL, + `owner` char(30) NOT NULL, + `members` text NOT NULL, + `stories` text NOT NULL, + `bugs` text NOT NULL, + `cases` text NOT NULL, + `report` text NOT NULL, + `objectType` varchar(20) NOT NULL, + `objectID` mediumint(8) unsigned NOT NULL, + `createdBy` char(30) NOT NULL, + `createdDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testresult` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `run` mediumint(8) unsigned NOT NULL, + `case` mediumint(8) unsigned NOT NULL, + `version` smallint(5) unsigned NOT NULL, + `job` mediumint(8) unsigned NOT NULL, + `compile` mediumint(8) unsigned NOT NULL, + `caseResult` char(30) NOT NULL, + `stepResults` text NOT NULL, + `lastRunner` varchar(30) NOT NULL, + `date` datetime NOT NULL, + `duration` float NOT NULL, + `xml` text NOT NULL, + PRIMARY KEY (`id`), + KEY `case` (`case`), + KEY `version` (`version`), + KEY `run` (`run`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testrun` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `task` mediumint(8) unsigned NOT NULL DEFAULT 0, + `case` mediumint(8) unsigned NOT NULL DEFAULT 0, + `version` tinyint(3) unsigned NOT NULL DEFAULT 0, + `assignedTo` char(30) NOT NULL DEFAULT '', + `lastRunner` varchar(30) NOT NULL, + `lastRunDate` datetime NOT NULL, + `lastRunResult` char(30) NOT NULL, + `status` char(30) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `task` (`task`,`case`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testsuite` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `name` varchar(255) NOT NULL, + `desc` text NOT NULL, + `type` varchar(20) NOT NULL, + `addedBy` char(30) NOT NULL, + `addedDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL, + `lastEditedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL, + PRIMARY KEY (`id`), + KEY `product` (`product`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_testtask` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL, + `name` char(90) NOT NULL, + `execution` mediumint(8) unsigned NOT NULL DEFAULT 0, + `build` char(30) NOT NULL, + `type` varchar(255) NOT NULL DEFAULT '', + `owner` varchar(30) NOT NULL, + `pri` tinyint(3) unsigned NOT NULL DEFAULT 0, + `begin` date NOT NULL, + `end` date NOT NULL, + `realFinishedDate` datetime NOT NULL, + `mailto` text DEFAULT NULL, + `desc` text NOT NULL, + `report` text NOT NULL, + `status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait', + `testreport` mediumint(8) unsigned NOT NULL, + `auto` varchar(10) NOT NULL DEFAULT 'no', + `subStatus` varchar(30) NOT NULL DEFAULT '', + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `product` (`product`), + KEY `build` (`build`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_todo` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `date` date NOT NULL, + `begin` smallint(4) unsigned zerofill NOT NULL, + `end` smallint(4) unsigned zerofill NOT NULL, + `type` char(10) NOT NULL, + `cycle` tinyint(3) unsigned NOT NULL DEFAULT 0, + `idvalue` mediumint(8) unsigned NOT NULL DEFAULT 0, + `pri` tinyint(3) unsigned NOT NULL, + `name` char(150) NOT NULL, + `desc` text NOT NULL, + `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', + `private` tinyint(1) NOT NULL, + `config` varchar(255) NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NOT NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime NOT NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `assignedTo` (`assignedTo`), + KEY `finishedBy` (`finishedBy`), + KEY `date` (`date`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_user` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `company` mediumint(8) unsigned NOT NULL, + `type` char(30) NOT NULL DEFAULT 'inside', + `dept` mediumint(8) unsigned NOT NULL DEFAULT 0, + `account` char(30) NOT NULL DEFAULT '', + `password` char(32) NOT NULL DEFAULT '', + `role` char(10) NOT NULL DEFAULT '', + `realname` varchar(100) NOT NULL DEFAULT '', + `nickname` char(60) NOT NULL DEFAULT '', + `commiter` varchar(100) NOT NULL, + `avatar` text NOT NULL, + `birthday` date NOT NULL DEFAULT '0000-00-00', + `gender` enum('f','m') NOT NULL DEFAULT 'f', + `email` char(90) NOT NULL DEFAULT '', + `skype` char(90) NOT NULL DEFAULT '', + `qq` char(20) NOT NULL DEFAULT '', + `mobile` char(11) NOT NULL DEFAULT '', + `phone` char(20) NOT NULL DEFAULT '', + `weixin` varchar(90) NOT NULL DEFAULT '', + `dingding` varchar(90) NOT NULL DEFAULT '', + `slack` varchar(90) NOT NULL DEFAULT '', + `whatsapp` varchar(90) NOT NULL DEFAULT '', + `address` char(120) NOT NULL DEFAULT '', + `zipcode` char(10) NOT NULL DEFAULT '', + `nature` text NOT NULL, + `analysis` text NOT NULL, + `strategy` text NOT NULL, + `join` date NOT NULL DEFAULT '0000-00-00', + `visits` mediumint(8) unsigned NOT NULL DEFAULT 0, + `ip` char(15) NOT NULL DEFAULT '', + `last` int(10) unsigned NOT NULL DEFAULT 0, + `fails` tinyint(5) NOT NULL DEFAULT 0, + `locked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `ranzhi` char(30) NOT NULL DEFAULT '', + `score` int(11) NOT NULL DEFAULT 0, + `scoreLevel` int(11) NOT NULL DEFAULT 0, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `account` (`account`), + KEY `dept` (`dept`), + KEY `email` (`email`), + KEY `commiter` (`commiter`), + KEY `deleted` (`deleted`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usercontact` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `listName` varchar(60) NOT NULL, + `userList` text NOT NULL, + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usergroup` ( + `account` char(30) NOT NULL DEFAULT '', + `group` mediumint(8) unsigned NOT NULL DEFAULT 0, + `project` text NOT NULL, + UNIQUE KEY `account` (`account`,`group`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_userquery` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `module` varchar(30) NOT NULL, + `title` varchar(90) NOT NULL, + `form` text NOT NULL, + `sql` text NOT NULL, + `shortcut` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`), + KEY `module` (`module`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_usertpl` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `account` char(30) NOT NULL, + `type` char(30) NOT NULL, + `title` varchar(150) NOT NULL, + `content` text NOT NULL, + `public` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `account` (`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_userview` ( + `account` char(30) NOT NULL, + `programs` mediumtext NOT NULL, + `products` mediumtext NOT NULL, + `projects` mediumtext NOT NULL, + `sprints` mediumtext NOT NULL, + UNIQUE KEY `account` (`account`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE `zt_webhook` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `type` varchar(15) NOT NULL DEFAULT 'default', + `name` varchar(50) NOT NULL, + `url` varchar(255) NOT NULL, + `domain` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `contentType` varchar(30) NOT NULL DEFAULT 'application/json', + `sendType` enum('sync','async') NOT NULL DEFAULT 'sync', + `products` text NOT NULL, + `executions` text NOT NULL, + `params` varchar(100) NOT NULL, + `actions` text NOT NULL, + `desc` text NOT NULL, + `createdBy` varchar(30) NOT NULL, + `createdDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL, + `editedDate` datetime NOT NULL, + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `zt_weeklyreport`( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `project` mediumint(8) unsigned NOT NULL, + `weekStart` date NOT NULL, + `pv` float(9,2) NOT NULL, + `ev` float(9,2) NOT NULL, + `ac` float(9,2) NOT NULL, + `sv` float(9,2) NOT NULL, + `cv` float(9,2) NOT NULL, + `staff` smallint(5) unsigned NOT NULL, + `progress` varchar(255) NOT NULL, + `workload` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `week` (`project`,`weekStart`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/db/zentao.sql b/db/zentao.sql index 8d819b8877..5aab29f9f2 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -759,10 +759,10 @@ CREATE TABLE IF NOT EXISTS `zt_kanbanlane` ( CREATE TABLE IF NOT EXISTS `zt_kanbancolumn` ( `id` int(8) NOT NULL AUTO_INCREMENT, `lane` mediumint(8) NOT NULL DEFAULT '0', - `group` mediumint(8) NOT NULL DEFAULT '0', `parent` mediumint(8) NOT NULL DEFAULT '0', `type` char(30) NOT NULL, `region` mediumint(8) unsigned NOT NULL, + `group` mediumint(8) NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '', `color` char(30) NOT NULL, `limit` smallint(6) NOT NULL DEFAULT '-1', diff --git a/doc/CHANGELOG b/doc/CHANGELOG index f458ce49eb..c8ec55ce3f 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,3 +1,60 @@ +2021-12-24 16.0 +完成的需求 +29649 实现禅道VS Code集成时判断所连接禅道版本兼容性功能 +29644 VS Code下无法列出项目和执行下关联的需求 +29643 命令面板输入story #列出了当前产品下第一页需求 +29642 VS Code中未显示子需求和子任务 +29641 VS Code中未筛选任务状态 +29640 VS Code中列出了当前产品下所有Bug +29639 禅道经典模式下VS Code切换项目未列出 +29609 实现Z工具的帮助功能 +29601 实现Z工具触发指定流水线/构建任务执行的功能 +29597 实现更新禅道合并请求的接口 +29573 实现Z工具对指定源分支、目标分支代码进行本地合并的功能 +29544 实现在禅道中合并代码后设置自动删除源分支功能 +29531 实现在禅道中创建GitLab标签功能 +29528 实现在禅道中删除GitLab标签功能 +29439 实现配置Z工具开关的禅道插件 +29303 实现在禅道中查看GitLab标签列表功能 +29637 合并markdown解析功能 +29182 分支下拉菜单中显示已关闭的分支状态 +28736 执行列表增加所属项目字段 +25209 发布保存时提示用户是否将版本中研发完毕的需求和已解决的bug关联到发布下 +15471 对已延期的任务增加提醒 +14777 提供分支的合并功能 +14773 计划修改所属分支时将冲突的需求列出提醒修改分支之后会从计划里面移除 +29608 Bug泳道中解决中列和测试列可以拖入和展示Bug卡片 +29606 需求泳道中准备好列可以拖入拖出卡片 +29526 实现卡片的展示样式 +29525 实现区域的展开/收起功能 +29501 实现区域中已归档信息查看功能 +29500 全局添加下拉菜单中增加添加看板和空间按钮 +29492 实现泳道组拖动排序功能 +29491 实现删除泳道功能 +29490 实现列的拖动排序功能 +29488 实现泳道拖动排序功能 +29486 实现区域拖动排序功能 +29485 实现设置卡片颜色功能 +29484 实现移动卡片功能 +29483 实现删除卡片功能 +29481 实现归档卡片功能 +29478 实现卡片排序功能 +29477 实现删除列功能 +29476 实现归档列功能 +29474 实现列拆分子列功能 +29469 实现查看已归档卡片功能 +29468 实现查看已归档列功能 +29462 实现删除区域功能 +29460 实现区域的编辑功能 +29459 打印区域更多设置下拉菜单 +29458 实现新增区域功能 +29454 实现看板的全屏查看功能 +29451 实现看板卡片的更多设置操作 +修复的BUG +17015 个性化设置中和跳转页面不一致 +16949 项目集负责人访问不了项目集内公开的项目 +16292 修改项目负责人后,新的负责人无法访问到项目主库 + 2021-12-06 16.0.beat1 完成的需求 14005 能够按照平台分支浏览用户需求 diff --git a/module/action/lang/zh-tw.php b/module/action/lang/zh-tw.php index 9793937b3a..675e78c19d 100755 --- a/module/action/lang/zh-tw.php +++ b/module/action/lang/zh-tw.php @@ -11,27 +11,29 @@ */ global $config; -$lang->action->common = '系統日誌'; -$lang->action->id = '編號'; -$lang->action->product = $lang->productCommon; -$lang->action->project = '項目'; -$lang->action->execution = $lang->execution->common; -$lang->action->objectType = '對象類型'; -$lang->action->objectID = '對象ID'; -$lang->action->objectName = '對象名稱'; -$lang->action->actor = '操作者'; -$lang->action->action = '動作'; -$lang->action->actionID = '記錄ID'; -$lang->action->date = '日期'; -$lang->action->extra = '附加值'; -$lang->action->system = '系統'; -$lang->action->url = '網址'; -$lang->action->contentType = '內容類型'; -$lang->action->data = '數據'; -$lang->action->result = '結果'; -$lang->action->modified = '修改了'; -$lang->action->old = '舊值為'; -$lang->action->new = '新值為'; +$lang->action->common = '系統日誌'; +$lang->action->id = '編號'; +$lang->action->product = $lang->productCommon; +$lang->action->project = '項目'; +$lang->action->execution = $lang->execution->common; +$lang->action->objectType = '對象類型'; +$lang->action->objectID = '對象ID'; +$lang->action->objectName = '對象名稱'; +$lang->action->actor = '操作者'; +$lang->action->action = '動作'; +$lang->action->actionID = '記錄ID'; +$lang->action->date = '日期'; +$lang->action->extra = '附加值'; +$lang->action->system = '系統'; +$lang->action->url = '網址'; +$lang->action->contentType = '內容類型'; +$lang->action->data = '數據'; +$lang->action->result = '結果'; +$lang->action->modified = '修改了'; +$lang->action->old = '舊值為'; +$lang->action->new = '新值為'; +$lang->action->to = '到'; +$lang->action->superReviewer = '超級評審人'; $lang->action->trash = '資源回收筒'; $lang->action->undelete = '還原'; @@ -79,101 +81,113 @@ $lang->action->periods['lastweek'] = $lang->action->dynamic->lastWeek; $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth; $lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth; -$lang->action->objectTypes['product'] = $lang->productCommon; -$lang->action->objectTypes['branch'] = '分支'; -$lang->action->objectTypes['story'] = $lang->SRCommon; -$lang->action->objectTypes['design'] = '設計'; -$lang->action->objectTypes['productplan'] = '計劃'; -$lang->action->objectTypes['release'] = '發佈'; -$lang->action->objectTypes['program'] = '項目集'; -$lang->action->objectTypes['project'] = '項目'; -$lang->action->objectTypes['execution'] = $config->systemMode == 'new' ? '執行' : $lang->executionCommon; -$lang->action->objectTypes['task'] = '任務'; -$lang->action->objectTypes['build'] = '版本'; -$lang->action->objectTypes['job'] = '構建'; -$lang->action->objectTypes['bug'] = 'Bug'; -$lang->action->objectTypes['case'] = '用例'; -$lang->action->objectTypes['caseresult'] = '用例結果'; -$lang->action->objectTypes['stepresult'] = '用例步驟'; -$lang->action->objectTypes['caselib'] = '用例庫'; -$lang->action->objectTypes['testsuite'] = '套件'; -$lang->action->objectTypes['testtask'] = '測試單'; -$lang->action->objectTypes['testreport'] = '報告'; -$lang->action->objectTypes['doc'] = '文檔'; -$lang->action->objectTypes['api'] = '介面'; -$lang->action->objectTypes['doclib'] = '文檔庫'; -$lang->action->objectTypes['apistruct'] = '資料結構'; -$lang->action->objectTypes['todo'] = '待辦'; -$lang->action->objectTypes['risk'] = '風險'; -$lang->action->objectTypes['issue'] = '問題'; -$lang->action->objectTypes['module'] = '模組'; -$lang->action->objectTypes['user'] = '用戶'; -$lang->action->objectTypes['stakeholder'] = '干係人'; -$lang->action->objectTypes['budget'] = '費用估算'; -$lang->action->objectTypes['entry'] = '應用'; -$lang->action->objectTypes['webhook'] = 'Webhook'; -$lang->action->objectTypes['team'] = '團隊'; -$lang->action->objectTypes['whitelist'] = '白名單'; -$lang->action->objectTypes['pipeline'] = 'GitLab'; -$lang->action->objectTypes['gitlab'] = 'GitLab'; -$lang->action->objectTypes['jenkins'] = 'Jenkins'; -$lang->action->objectTypes['mr'] = '合併請求'; -$lang->action->objectTypes['gitlabproject'] = 'GitLab項目'; -$lang->action->objectTypes['gitlabuser'] = 'GitLab用戶'; -$lang->action->objectTypes['gitlabgroup'] = 'GitLab群組'; +$lang->action->objectTypes['product'] = $lang->productCommon; +$lang->action->objectTypes['branch'] = '分支'; +$lang->action->objectTypes['story'] = $lang->SRCommon; +$lang->action->objectTypes['design'] = '設計'; +$lang->action->objectTypes['productplan'] = '計劃'; +$lang->action->objectTypes['release'] = '發佈'; +$lang->action->objectTypes['program'] = '項目集'; +$lang->action->objectTypes['project'] = '項目'; +$lang->action->objectTypes['execution'] = $config->systemMode == 'new' ? '執行' : $lang->executionCommon; +$lang->action->objectTypes['task'] = '任務'; +$lang->action->objectTypes['build'] = '版本'; +$lang->action->objectTypes['job'] = '構建'; +$lang->action->objectTypes['bug'] = 'Bug'; +$lang->action->objectTypes['case'] = '用例'; +$lang->action->objectTypes['caseresult'] = '用例結果'; +$lang->action->objectTypes['stepresult'] = '用例步驟'; +$lang->action->objectTypes['caselib'] = '用例庫'; +$lang->action->objectTypes['testsuite'] = '套件'; +$lang->action->objectTypes['testtask'] = '測試單'; +$lang->action->objectTypes['testreport'] = '報告'; +$lang->action->objectTypes['doc'] = '文檔'; +$lang->action->objectTypes['api'] = '介面'; +$lang->action->objectTypes['doclib'] = '文檔庫'; +$lang->action->objectTypes['apistruct'] = '資料結構'; +$lang->action->objectTypes['todo'] = '待辦'; +$lang->action->objectTypes['risk'] = '風險'; +$lang->action->objectTypes['issue'] = '問題'; +$lang->action->objectTypes['module'] = '模組'; +$lang->action->objectTypes['user'] = '用戶'; +$lang->action->objectTypes['stakeholder'] = '干係人'; +$lang->action->objectTypes['budget'] = '費用估算'; +$lang->action->objectTypes['entry'] = '應用'; +$lang->action->objectTypes['webhook'] = 'Webhook'; +$lang->action->objectTypes['team'] = '團隊'; +$lang->action->objectTypes['whitelist'] = '白名單'; +$lang->action->objectTypes['pipeline'] = 'GitLab'; +$lang->action->objectTypes['gitlab'] = 'GitLab'; +$lang->action->objectTypes['jenkins'] = 'Jenkins'; +$lang->action->objectTypes['mr'] = '合併請求'; +$lang->action->objectTypes['gitlabproject'] = 'GitLab項目'; +$lang->action->objectTypes['gitlabuser'] = 'GitLab用戶'; +$lang->action->objectTypes['gitlabgroup'] = 'GitLab群組'; +$lang->action->objectTypes['gitlabbranch'] = 'GitLab分支'; +$lang->action->objectTypes['gitlabbranchpriv'] = 'GitLab保護分支'; +$lang->action->objectTypes['gitlabtag'] = 'GitLab標籤'; +$lang->action->objectTypes['kanbanspace'] = '看板空間'; +$lang->action->objectTypes['kanban'] = '看板'; +$lang->action->objectTypes['kanbanregion'] = '看板區域'; +$lang->action->objectTypes['kanbanlane'] = '看板泳道'; +$lang->action->objectTypes['kanbancolumn'] = '看板列'; +$lang->action->objectTypes['kanbancard'] = '看板卡片'; /* 用來描述操作歷史記錄。*/ $lang->action->desc = new stdclass(); -$lang->action->desc->common = '$date, $action by $actor。' . "\n"; -$lang->action->desc->extra = '$date, $action as $extra by $actor。' . "\n"; -$lang->action->desc->opened = '$date, 由 $actor 創建。' . "\n"; -$lang->action->desc->openedbysystem = '$date, 由系統創建。' . "\n"; -$lang->action->desc->created = '$date, 由 $actor 創建。' . "\n"; -$lang->action->desc->added = '$date, 由 $actor 添加。' . "\n"; -$lang->action->desc->changed = '$date, 由 $actor 變更。' . "\n"; -$lang->action->desc->edited = '$date, 由 $actor 編輯。' . "\n"; -$lang->action->desc->assigned = '$date, 由 $actor 指派給 $extra。' . "\n"; -$lang->action->desc->closed = '$date, 由 $actor 關閉。' . "\n"; -$lang->action->desc->closedbysystem = '$date, 由系統關閉。' . "\n"; -$lang->action->desc->deleted = '$date, 由 $actor 刪除。' . "\n"; -$lang->action->desc->deletedfile = '$date, 由 $actor 刪除了附件:$extra。' . "\n"; -$lang->action->desc->editfile = '$date, 由 $actor 編輯了附件:$extra。' . "\n"; -$lang->action->desc->erased = '$date, 由 $actor 刪除。' . "\n"; -$lang->action->desc->undeleted = '$date, 由 $actor 還原。' . "\n"; -$lang->action->desc->hidden = '$date, 由 $actor 隱藏。' . "\n"; -$lang->action->desc->commented = '$date, 由 $actor 添加備註。' . "\n"; -$lang->action->desc->activated = '$date, 由 $actor 激活。' . "\n"; -$lang->action->desc->blocked = '$date, 由 $actor 阻塞。' . "\n"; -$lang->action->desc->moved = '$date, 由 $actor 移動,之前為 "$extra"。' . "\n"; -$lang->action->desc->confirmed = '$date, 由 $actor 確認' . $lang->SRCommon . '變動,最新版本為#$extra。' . "\n"; -$lang->action->desc->caseconfirmed = '$date, 由 $actor 確認用例變動,最新版本為#$extra。' . "\n"; -$lang->action->desc->bugconfirmed = '$date, 由 $actor 確認Bug。' . "\n"; -$lang->action->desc->frombug = '$date, 由 $actor Bug轉化而來,Bug編號為 $extra。'; -$lang->action->desc->started = '$date, 由 $actor 啟動。' . "\n"; -$lang->action->desc->restarted = '$date, 由 $actor 繼續。' . "\n"; -$lang->action->desc->delayed = '$date, 由 $actor 延期。' . "\n"; -$lang->action->desc->suspended = '$date, 由 $actor 掛起。' . "\n"; -$lang->action->desc->recordestimate = '$date, 由 $actor 記錄工時,消耗 $extra 小時。'; -$lang->action->desc->editestimate = '$date, 由 $actor 編輯工時。'; -$lang->action->desc->deleteestimate = '$date, 由 $actor 刪除工時。'; -$lang->action->desc->canceled = '$date, 由 $actor 取消。' . "\n"; -$lang->action->desc->svncommited = '$date, 由 $actor 提交代碼,版本為#$extra。' . "\n"; -$lang->action->desc->gitcommited = '$date, 由 $actor 提交代碼,版本為#$extra。' . "\n"; -$lang->action->desc->finished = '$date, 由 $actor 完成。' . "\n"; -$lang->action->desc->paused = '$date, 由 $actor 暫停。' . "\n"; -$lang->action->desc->verified = '$date, 由 $actor 驗收。' . "\n"; -$lang->action->desc->diff1 = '修改了 %s,舊值為 "%s",新值為 "%s"。
' . "\n"; -$lang->action->desc->diff2 = '修改了 %s,區別為:' . "\n" . "
%s
" . "\n
%s
"; -$lang->action->desc->diff3 = '將檔案名 %s 改為 %s 。' . "\n"; -$lang->action->desc->linked2bug = '$date 由 $actor 關聯到版本 $extra'; -$lang->action->desc->linked2testtask = '$date 由 $actor 關聯到測試單 $extra'; -$lang->action->desc->resolved = '$date, 由 $actor 解決。' . "\n"; -$lang->action->desc->managed = '$date, 由 $actor 維護。' . "\n"; -$lang->action->desc->estimated = '$date, 由 $actor 估算。' . "\n"; -$lang->action->desc->run = '$date, 由 $actor 執行。' . "\n"; -$lang->action->desc->syncprogram = '$date, 由 $actor 啟動(因項目開始而啟動項目集)。' . "\n"; -$lang->action->desc->syncproject = '$date, 系統判斷由於執行開始,將項目狀態置為進行中。' . "\n"; -$lang->action->desc->syncexecution = '$date, 系統判斷由於任務開始,將執行狀態置為進行中。' . "\n"; +$lang->action->desc->common = '$date, $action by $actor。' . "\n"; +$lang->action->desc->extra = '$date, $action as $extra by $actor。' . "\n"; +$lang->action->desc->opened = '$date, 由 $actor 創建。' . "\n"; +$lang->action->desc->openedbysystem = '$date, 由系統創建。' . "\n"; +$lang->action->desc->created = '$date, 由 $actor 創建。' . "\n"; +$lang->action->desc->added = '$date, 由 $actor 添加。' . "\n"; +$lang->action->desc->changed = '$date, 由 $actor 變更。' . "\n"; +$lang->action->desc->edited = '$date, 由 $actor 編輯。' . "\n"; +$lang->action->desc->assigned = '$date, 由 $actor 指派給 $extra。' . "\n"; +$lang->action->desc->closed = '$date, 由 $actor 關閉。' . "\n"; +$lang->action->desc->closedbysystem = '$date, 由系統關閉。' . "\n"; +$lang->action->desc->deleted = '$date, 由 $actor 刪除。' . "\n"; +$lang->action->desc->deletedfile = '$date, 由 $actor 刪除了附件:$extra。' . "\n"; +$lang->action->desc->editfile = '$date, 由 $actor 編輯了附件:$extra。' . "\n"; +$lang->action->desc->erased = '$date, 由 $actor 刪除。' . "\n"; +$lang->action->desc->undeleted = '$date, 由 $actor 還原。' . "\n"; +$lang->action->desc->hidden = '$date, 由 $actor 隱藏。' . "\n"; +$lang->action->desc->commented = '$date, 由 $actor 添加備註。' . "\n"; +$lang->action->desc->activated = '$date, 由 $actor 激活。' . "\n"; +$lang->action->desc->blocked = '$date, 由 $actor 阻塞。' . "\n"; +$lang->action->desc->moved = '$date, 由 $actor 移動,之前為 "$extra"。' . "\n"; +$lang->action->desc->confirmed = '$date, 由 $actor 確認' . $lang->SRCommon . '變動,最新版本為#$extra。' . "\n"; +$lang->action->desc->caseconfirmed = '$date, 由 $actor 確認用例變動,最新版本為#$extra。' . "\n"; +$lang->action->desc->bugconfirmed = '$date, 由 $actor 確認Bug。' . "\n"; +$lang->action->desc->frombug = '$date, 由 $actor Bug轉化而來,Bug編號為 $extra。'; +$lang->action->desc->started = '$date, 由 $actor 啟動。' . "\n"; +$lang->action->desc->restarted = '$date, 由 $actor 繼續。' . "\n"; +$lang->action->desc->delayed = '$date, 由 $actor 延期。' . "\n"; +$lang->action->desc->suspended = '$date, 由 $actor 掛起。' . "\n"; +$lang->action->desc->recordestimate = '$date, 由 $actor 記錄工時,消耗 $extra 小時。'; +$lang->action->desc->editestimate = '$date, 由 $actor 編輯工時。'; +$lang->action->desc->deleteestimate = '$date, 由 $actor 刪除工時。'; +$lang->action->desc->canceled = '$date, 由 $actor 取消。' . "\n"; +$lang->action->desc->svncommited = '$date, 由 $actor 提交代碼,版本為#$extra。' . "\n"; +$lang->action->desc->gitcommited = '$date, 由 $actor 提交代碼,版本為#$extra。' . "\n"; +$lang->action->desc->finished = '$date, 由 $actor 完成。' . "\n"; +$lang->action->desc->paused = '$date, 由 $actor 暫停。' . "\n"; +$lang->action->desc->verified = '$date, 由 $actor 驗收。' . "\n"; +$lang->action->desc->diff1 = '修改了 %s,舊值為 "%s",新值為 "%s"。
' . "\n"; +$lang->action->desc->diff2 = '修改了 %s,區別為:' . "\n" . "
%s
" . "\n
%s
"; +$lang->action->desc->diff3 = '將檔案名 %s 改為 %s 。' . "\n"; +$lang->action->desc->linked2bug = '$date 由 $actor 關聯到版本 $extra'; +$lang->action->desc->linked2testtask = '$date 由 $actor 關聯到測試單 $extra'; +$lang->action->desc->resolved = '$date, 由 $actor 解決。' . "\n"; +$lang->action->desc->managed = '$date, 由 $actor 維護。' . "\n"; +$lang->action->desc->estimated = '$date, 由 $actor 估算。' . "\n"; +$lang->action->desc->run = '$date, 由 $actor 執行。' . "\n"; +$lang->action->desc->syncprogram = '$date, 由 $actor 啟動(因項目開始而啟動項目集)。' . "\n"; +$lang->action->desc->syncproject = '$date, 系統判斷由於執行開始,將項目狀態置為進行中。' . "\n"; +$lang->action->desc->syncexecution = '$date, 系統判斷由於任務開始,將執行狀態置為進行中。' . "\n"; +$lang->action->desc->importfromgitlab = '$date, 由 $actor 從Gitlab的Issue關聯創建。' . "\n"; +$lang->action->desc->archived = '$date, 由 $actor 歸檔。' . "\n"; +$lang->action->desc->restore = '$date, 由 $actor 還原。' . "\n"; /* 用來描述和父子任務相關的操作歷史記錄。*/ $lang->action->desc->createchildren = '$date, 由 $actor 創建子任務 $extra。' . "\n"; @@ -303,6 +317,10 @@ $lang->action->label->compilefail = '構建失敗'; $lang->action->label->reopen = '重新打開'; $lang->action->label->approve = '通過了'; $lang->action->label->reject = '拒絶了'; +$lang->action->label->importfromgitlab = '從Gitlab關聯創建了'; +$lang->action->label->archived = '歸檔了'; +$lang->action->label->restore = '還原了'; +$lang->action->label->mergedbranch = '合併分支'; /* 動態信息按照對象分組 */ $lang->action->dynamicAction = new stdclass(); @@ -341,6 +359,7 @@ $lang->action->dynamicAction->branch['edited'] = '編輯分支'; $lang->action->dynamicAction->branch['closed'] = '關閉分支'; $lang->action->dynamicAction->branch['activated'] = '激活分支'; $lang->action->dynamicAction->branch['setdefaultbranch'] = '設置預設分支'; +$lang->action->dynamicAction->branch['mergebranch'] = '合併分支'; $lang->action->dynamicAction->productplan['opened'] = "創建計劃"; $lang->action->dynamicAction->productplan['edited'] = "編輯計劃"; @@ -353,6 +372,7 @@ $lang->action->dynamicAction->release['notified'] = '通知發佈'; $lang->action->dynamicAction->release['hidden'] = '隱藏發佈'; $lang->action->dynamicAction->story['opened'] = "創建{$lang->SRCommon}"; +$lang->action->dynamicAction->story['importfromgitlab'] = "從Gitlab關聯創建{$lang->SRCommon}"; $lang->action->dynamicAction->story['edited'] = "編輯{$lang->SRCommon}"; $lang->action->dynamicAction->story['activated'] = "激活{$lang->SRCommon}"; $lang->action->dynamicAction->story['reviewed'] = "評審{$lang->SRCommon}"; @@ -386,13 +406,42 @@ $lang->action->dynamicAction->execution['undeleted'] = '還原' . $lang->executi $lang->action->dynamicAction->execution['hidden'] = '隱藏' . $lang->executionCommon; $lang->action->dynamicAction->execution['moved'] = '導入任務'; -$lang->action->dynamicAction->kanbancolumn['edited'] = '設置看板列'; -$lang->action->dynamicAction->kanbanlane['edited'] = '設置泳道'; -$lang->action->dynamicAction->kanbanlane['moved'] = '移動泳道'; +$lang->action->dynamicAction->kanban['created'] = '創建看板'; +$lang->action->dynamicAction->kanban['edited'] = '設置看板'; +$lang->action->dynamicAction->kanban['closed'] = '關閉看板'; +$lang->action->dynamicAction->kanban['deleted'] = '刪除看板'; + +$lang->action->dynamicAction->kanbanspace['created'] = '創建看板空間'; +$lang->action->dynamicAction->kanbanspace['edited'] = '設置看板空間'; +$lang->action->dynamicAction->kanbanspace['closed'] = '關閉看板空間'; +$lang->action->dynamicAction->kanbanspace['deleted'] = '刪除看板空間'; + +$lang->action->dynamicAction->kanbanregion['created'] = '創建看板區域'; +$lang->action->dynamicAction->kanbanregion['edited'] = '編輯看板區域'; +$lang->action->dynamicAction->kanbanregion['deleted'] = '刪除看板區域'; + +$lang->action->dynamicAction->kanbancolumn['created'] = '創建看板列'; +$lang->action->dynamicAction->kanbancolumn['edited'] = '設置看板列'; +$lang->action->dynamicAction->kanbancolumn['archived'] = '歸檔看板列'; +$lang->action->dynamicAction->kanbancolumn['restore'] = '還原看板列'; +$lang->action->dynamicAction->kanbancolumn['deleted'] = '刪除看板列'; + +$lang->action->dynamicAction->kanbanlane['created'] = '創建泳道'; +$lang->action->dynamicAction->kanbanlane['edited'] = '設置泳道'; +$lang->action->dynamicAction->kanbanlane['moved'] = '移動泳道'; +$lang->action->dynamicAction->kanbanlane['deleted'] = '刪除泳道'; + +$lang->action->dynamicAction->kanbancard['created'] = '創建看板卡片'; +$lang->action->dynamicAction->kanbancard['edited'] = '編輯看板卡片'; +$lang->action->dynamicAction->kanbancard['commented'] = '備註看板卡片'; +$lang->action->dynamicAction->kanbancard['archived'] = '歸檔看板卡片'; +$lang->action->dynamicAction->kanbancard['restore'] = '還原看板卡片'; +$lang->action->dynamicAction->kanbancard['deleted'] = '刪除看板卡片'; $lang->action->dynamicAction->team['managedTeam'] = '維護團隊'; $lang->action->dynamicAction->task['opened'] = '創建任務'; +$lang->action->dynamicAction->task['importfromgitlab'] = "從Gitlab關聯創建任務"; $lang->action->dynamicAction->task['edited'] = '編輯任務'; $lang->action->dynamicAction->task['commented'] = '備註任務'; $lang->action->dynamicAction->task['assigned'] = '指派任務'; @@ -426,6 +475,7 @@ $lang->action->dynamicAction->build['edited'] = '編輯版本'; $lang->action->dynamicAction->build['deleted'] = '刪除版本'; $lang->action->dynamicAction->bug['opened'] = '創建Bug'; +$lang->action->dynamicAction->bug['importfromgitlab'] = "從Gitlab關聯創建Bug"; $lang->action->dynamicAction->bug['edited'] = '編輯Bug'; $lang->action->dynamicAction->bug['activated'] = '激活Bug'; $lang->action->dynamicAction->bug['assigned'] = '指派Bug'; @@ -541,8 +591,12 @@ $lang->action->label->issue = '問題|issue|view|issueID=%s'; $lang->action->label->design = '設計|design|view|designID=%s'; $lang->action->label->stakeholder = '干係人|stakeholder|view|userID=%s'; $lang->action->label->api = '介面|api|index|libID=%s&moduleID=%s&apiID=%s'; +$lang->action->label->kanbanspace = '看板空間|kanban|space|browseType=all'; +$lang->action->label->kanbanregion = '看板區域|kanban|view|kanbanID=%s'; +$lang->action->label->kanban = '看板|kanban|view|kanbanID=%s'; $lang->action->label->kanbancolumn = '看板列|execution|kanban|execution=%s'; $lang->action->label->kanbanlane = '看板泳道|execution|kanban|execution=%s&type=all'; +$lang->action->label->kanbancard = '看板卡片|kanban|view|kanbanID=%s'; $lang->action->label->mr = '合併請求|mr|view|id=%s'; /* Object type. */ @@ -614,6 +668,7 @@ $lang->action->search->label['canceled'] = $lang->action->label->ca $lang->action->search->label['finished'] = $lang->action->label->finished; $lang->action->search->label['paused'] = $lang->action->label->paused; $lang->action->search->label['verified'] = $lang->action->label->verified; +$lang->action->search->label['importfromgitlab'] = $lang->action->label->importfromgitlab; $lang->action->search->label['login'] = $lang->action->label->login; $lang->action->search->label['logout'] = $lang->action->label->logout; diff --git a/module/api/lang/zh-tw.php b/module/api/lang/zh-tw.php index b3952ebb31..6e33b20062 100644 --- a/module/api/lang/zh-tw.php +++ b/module/api/lang/zh-tw.php @@ -23,6 +23,7 @@ $lang->api->createRelease = '發佈介面'; $lang->api->createLib = '創建介面庫'; $lang->api->createApi = '創建介面'; $lang->api->createAB = '創建'; +$lang->api->createDemo = '導入禪道API'; $lang->api->edit = '編輯介面'; $lang->api->delete = '刪除介面'; $lang->api->position = '位置'; @@ -41,7 +42,7 @@ $lang->api->noUniqueName = '介面庫名已存在。'; $lang->api->noUniqueVersion = '版本已存在。'; $lang->api->version = '版本'; $lang->api->createStruct = '創建資料結構'; -$lang->api->editStruct = '修改資料結構'; +$lang->api->editStruct = '編輯資料結構'; $lang->api->deleteStruct = '刪除資料結構'; $lang->api->create = '創建介面'; $lang->api->title = '介面名稱'; @@ -58,6 +59,7 @@ $lang->api->confirmDelete = "您確定刪除該介面嗎?"; $lang->api->confirmDeleteLib = "您確定刪除該介面庫嗎?"; $lang->api->filterStruct = "使用資料結構填充"; $lang->api->defaultVersion = "當前版本"; +$lang->api->zentaoAPI = "禪道API文檔v1"; /* Common access control lang. */ $lang->api->whiteList = '白名單'; diff --git a/module/block/lang/zh-tw.php b/module/block/lang/zh-tw.php index b66ae77fe2..421aeb9ac0 100644 --- a/module/block/lang/zh-tw.php +++ b/module/block/lang/zh-tw.php @@ -91,6 +91,7 @@ $lang->block->refresh = '刷新'; $lang->block->nbsp = ''; $lang->block->hidden = '隱藏'; $lang->block->dynamicInfo = "%s %s %s %s %s"; +$lang->block->noLinkDynamic = "%s %s %s %s %s"; $lang->block->cannotPlaceInLeft = '此區塊無法放置在左側。'; $lang->block->cannotPlaceInRight = '此區塊無法放置在右側。'; diff --git a/module/branch/lang/zh-tw.php b/module/branch/lang/zh-tw.php index f9c0468a67..a7ddf4a964 100644 --- a/module/branch/lang/zh-tw.php +++ b/module/branch/lang/zh-tw.php @@ -9,19 +9,22 @@ $lang->branch->manageTitle = '%s管理'; $lang->branch->all = '所有'; $lang->branch->main = '主幹'; -$lang->branch->edit = '編輯%s'; -$lang->branch->editAction = '編輯分支'; -$lang->branch->activate = '激活'; -$lang->branch->activateAction = '激活分支'; -$lang->branch->close = '關閉'; -$lang->branch->closeAction = '關閉分支'; -$lang->branch->create = '新增%s'; -$lang->branch->createAction = '新增分支'; -$lang->branch->merge = '合併'; -$lang->branch->batchEdit = '批量編輯'; -$lang->branch->defaultBranch = '預設分支'; -$lang->branch->setDefault = '設為預設分支'; -$lang->branch->setDefaultAction = '設置預設分支'; +$lang->branch->edit = '編輯%s'; +$lang->branch->editAction = '編輯分支'; +$lang->branch->activate = '激活'; +$lang->branch->activateAction = '激活分支'; +$lang->branch->close = '關閉'; +$lang->branch->closeAction = '關閉分支'; +$lang->branch->create = '新建%s'; +$lang->branch->createAction = '新建分支'; +$lang->branch->merge = '合併'; +$lang->branch->batchEdit = '批量編輯'; +$lang->branch->defaultBranch = '預設分支'; +$lang->branch->setDefault = '設為預設分支'; +$lang->branch->setDefaultAction = '設置預設分支'; +$lang->branch->mergeTo = '合併@branch@到'; +$lang->branch->mergeBranch = '合併@branch@'; +$lang->branch->mergeBranchAction = '合併分支'; $lang->branch->id = 'ID'; $lang->branch->product = '所屬產品'; @@ -42,6 +45,10 @@ $lang->branch->nameNotEmpty = '名稱不能為空!'; $lang->branch->confirmClose = '是否關閉該@branch@?'; $lang->branch->confirmActivate = '是否激活該@branch@?'; $lang->branch->existName = '@branch@名稱已存在'; +$lang->branch->mergedMain = '主幹不支持被合併。'; +$lang->branch->mergeTips = '合併@branch@後,會將@branch@下面對應的發佈、計劃、模組、需求、Bug、用例都合併到新的@branch@下。'; +$lang->branch->targetBranchTips = '您可以將其合併到已有的一個@branch@,也可以合併到主幹,也可以新創建一個@branch@。'; +$lang->branch->confirmMerge = '"mergedBranch"的數據將被合併到"targetBranch",請確認是否要執行分支合併操作,合併後數據將不可再恢復!'; $lang->branch->noData = '暫時沒有分支。'; $lang->branch->mainBranch = '產品預設主幹%s。'; diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index 46c7deea84..afc0203f2b 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -77,6 +77,7 @@ $lang->whitelist = '訪問白名單'; $lang->globalSetting = '全局設置'; $lang->waterfallModel = '瀑布模型'; $lang->all = '所有'; +$lang->viewDetails = '查看詳情'; $lang->actions = '操作'; $lang->restore = '恢復預設'; @@ -178,6 +179,7 @@ $lang->design->ADS = '介面設計'; $lang->stage->common = '階段'; $lang->stage->list = '階段列表'; $lang->execution->list = "{$lang->executionCommon}列表"; +$lang->kanban->common = '看板'; $lang->personnel->common = '人員'; $lang->personnel->invest = '投入人員'; @@ -311,17 +313,19 @@ $lang->exportFileTypeList['html'] = 'html'; $lang->exportTypeList['all'] = '全部記錄'; $lang->exportTypeList['selected'] = '選中記錄'; -$lang->createObjects['todo'] = '待辦'; -$lang->createObjects['effort'] = '日誌'; -$lang->createObjects['bug'] = 'Bug'; -$lang->createObjects['story'] = '需求'; -$lang->createObjects['task'] = '任務'; -$lang->createObjects['testcase'] = '用例'; -$lang->createObjects['execution'] = $lang->execution->common; -$lang->createObjects['project'] = '項目'; -$lang->createObjects['product'] = '產品'; -$lang->createObjects['program'] = '項目集'; -$lang->createObjects['doc'] = '文檔'; +$lang->createObjects['todo'] = '待辦'; +$lang->createObjects['effort'] = '日誌'; +$lang->createObjects['bug'] = 'Bug'; +$lang->createObjects['story'] = '需求'; +$lang->createObjects['task'] = '任務'; +$lang->createObjects['testcase'] = '用例'; +$lang->createObjects['execution'] = $lang->execution->common; +$lang->createObjects['project'] = '項目'; +$lang->createObjects['product'] = '產品'; +$lang->createObjects['program'] = '項目集'; +$lang->createObjects['doc'] = '文檔'; +$lang->createObjects['kanbanspace'] = '空間'; +$lang->createObjects['kanban'] = '看板'; /* 語言 */ $lang->lang = 'Language'; diff --git a/module/custom/lang/zh-tw.php b/module/custom/lang/zh-tw.php index 0089af9cba..c2d5504302 100644 --- a/module/custom/lang/zh-tw.php +++ b/module/custom/lang/zh-tw.php @@ -48,6 +48,7 @@ $lang->custom->reviewRule = "評審規則"; $lang->custom->switch = "切換"; $lang->custom->oneUnit = "一個{$lang->hourCommon}"; $lang->custom->convertRelationTitle = "請先設置{$lang->hourCommon}轉換為%s的換算係數"; +$lang->custom->superReviewers = "超級評審人"; if($config->systemMode == 'new') $lang->custom->execution = '執行'; if($config->systemMode == 'classic' || !$config->systemMode) $lang->custom->execution = $lang->executionCommon; diff --git a/module/gitlab/lang/en.php b/module/gitlab/lang/en.php index ad94dfa823..6449725eb1 100644 --- a/module/gitlab/lang/en.php +++ b/module/gitlab/lang/en.php @@ -209,10 +209,10 @@ $lang->gitlab->branch->issetPrivNameError = "The protection branch alre $lang->gitlab->tag = new stdclass(); $lang->gitlab->tag->name = 'Tag name'; $lang->gitlab->tag->ref = 'Create from'; -$lang->gitlab->tag->message = 'Message'; $lang->gitlab->tag->lastCommitter = 'Last Committer'; $lang->gitlab->tag->lastCommittedDate = 'Last Committed Date'; $lang->gitlab->tag->placeholderSearch = "Enter branch tag"; +$lang->gitlab->tag->message = 'Message'; $lang->gitlab->tag->emptyNameError = "Name cannot be empty."; $lang->gitlab->tag->emptyRefError = "Create from cannot be empty."; $lang->gitlab->tag->issetNameError = "The tag already exists"; diff --git a/module/gitlab/lang/zh-tw.php b/module/gitlab/lang/zh-tw.php index 43b56f3cb1..b183b01247 100644 --- a/module/gitlab/lang/zh-tw.php +++ b/module/gitlab/lang/zh-tw.php @@ -30,6 +30,8 @@ $lang->gitlab->gitlabProject = "{$lang->gitlab->common}項目"; $lang->gitlab->browseProject = "{$lang->gitlab->common}項目列表"; $lang->gitlab->browseUser = "用戶列表"; $lang->gitlab->browseGroup = "群組列表"; +$lang->gitlab->browseBranch = "GitLab分支列表"; +$lang->gitlab->browseTag = "GitLab標籤列表"; $lang->gitlab->gitlabIssue = "{$lang->gitlab->common} issue"; $lang->gitlab->zentaoProduct = '禪道產品'; $lang->gitlab->objectType = '類型'; // task, bug, story @@ -43,8 +45,15 @@ $lang->gitlab->deleteGroup = '刪除群組'; $lang->gitlab->createUser = '添加用戶'; $lang->gitlab->editUser = '編輯用戶'; $lang->gitlab->deleteUser = '刪除用戶'; +$lang->gitlab->createBranch = '添加分支'; $lang->gitlab->manageGroupMembers = '群組成員管理'; $lang->gitlab->createWebhook = '創建Webhook'; +$lang->gitlab->browseBranchPriv = '分支保護管理'; +$lang->gitlab->createBranchPriv = '創建分支保護'; +$lang->gitlab->editBranchPriv = '編輯分支保護'; +$lang->gitlab->deleteBranchPriv = '刪除分支保護'; +$lang->gitlab->createTag = '創建標籤'; +$lang->gitlab->deleteTag = '刪除標籤'; $lang->gitlab->id = 'ID'; $lang->gitlab->name = "{$lang->gitlab->common}名稱"; @@ -53,10 +62,12 @@ $lang->gitlab->token = 'Token'; $lang->gitlab->defaultProject = '預設項目'; $lang->gitlab->private = 'MD5驗證'; -$lang->gitlab->lblCreate = '添加GitLab伺服器'; -$lang->gitlab->desc = '描述'; -$lang->gitlab->tokenFirst = 'Token不為空時,優先使用Token。'; -$lang->gitlab->tips = '使用密碼時,請在GitLab全局安全設置中禁用"防止跨站點請求偽造"選項。'; +$lang->gitlab->lblCreate = '添加GitLab伺服器'; +$lang->gitlab->desc = '描述'; +$lang->gitlab->tokenFirst = 'Token不為空時,優先使用Token。'; +$lang->gitlab->tips = '使用密碼時,請在GitLab全局安全設置中禁用"防止跨站點請求偽造"選項。'; +$lang->gitlab->emptyError = "不能為空"; +$lang->gitlab->createSuccess = "創建成功"; $lang->gitlab->placeholder = new stdclass; $lang->gitlab->placeholder->name = ''; @@ -82,11 +93,15 @@ $lang->gitlab->apiError[0] = 'internal is not allowed in a private group.'; $lang->gitlab->apiError[1] = 'public is not allowed in a private group.'; $lang->gitlab->apiError[2] = 'is too short (minimum is 8 characters)'; $lang->gitlab->apiError[3] = "can contain only letters, digits, '_', '-' and '.'. Cannot start with '-', end in '.git' or end in '.atom'"; +$lang->gitlab->apiError[4] = 'Branch already exists'; +$lang->gitlab->apiError[5] = 'Failed to save group {:path=>["has already been taken"]}'; $lang->gitlab->errorLang[0] = '私有分組的項目,可見性級別不能設為內部。'; $lang->gitlab->errorLang[1] = '私有分組的項目,可見性級別不能設為公開。'; $lang->gitlab->errorLang[2] = '密碼太短(最少8個字元)'; $lang->gitlab->errorLang[3] = "只能包含字母、數字、'.'-'和'.'。不能以'-'開頭、以'.git'結尾或以'.atom'結尾。"; +$lang->gitlab->errorLang[4] = '分支名已存在。'; +$lang->gitlab->errorLang[5] = '保存失敗,群組URL路徑已經被使用。'; $lang->gitlab->project = new stdclass; $lang->gitlab->project->id = "項目ID"; @@ -122,7 +137,7 @@ $lang->gitlab->user->projectsLimit = "限制項目"; $lang->gitlab->user->canCreateGroup = "可創建組"; $lang->gitlab->user->external = "外部人員"; $lang->gitlab->user->externalTip = "除非明確授予訪問權限,否則外部用戶無法查看內部或私有項目。另外,外部用戶無法創建項目,群組或個人代碼片段。"; -$lang->gitlab->user->bind = "綁定禪道用戶"; +$lang->gitlab->user->bind = "禪道用戶"; $lang->gitlab->user->avatar = "頭像"; $lang->gitlab->user->skype = "Skype"; $lang->gitlab->user->linkedin = "Linkedin"; @@ -150,6 +165,7 @@ $lang->gitlab->group->visibility = "可見性級別 $lang->gitlab->group->visibilityList['private'] = "私有(群組及其項目只能由成員查看)"; $lang->gitlab->group->visibilityList['internal'] = "內部(除外部用戶外,任何登錄用戶均可查看該組和任何內部項目)"; $lang->gitlab->group->visibilityList['public'] = "公開(群組和任何公共項目可以在沒有任何身份驗證的情況下查看)"; +$lang->gitlab->group->permission = '許可'; $lang->gitlab->group->requestAccessEnabledTip = "允許用戶請求訪問(如果可見性是公開或內部的)"; $lang->gitlab->group->lfsEnabled = '大檔案存儲'; $lang->gitlab->group->lfsEnabledTip = "允許該組內的項目使用 Git LFS(可以在每個項目中覆蓋此設置)"; @@ -171,3 +187,34 @@ $lang->gitlab->group->memberName = '賬號'; $lang->gitlab->group->memberAccessLevel = '角色權限'; $lang->gitlab->group->memberExpiresAt = '過期時間'; $lang->gitlab->group->repeatError = "群組成員不能重複添加"; + +$lang->gitlab->branch = new stdclass(); +$lang->gitlab->branch->name = '分支名'; +$lang->gitlab->branch->from = '創建自'; +$lang->gitlab->branch->create = '創建'; +$lang->gitlab->branch->lastCommitter = '最後提交'; +$lang->gitlab->branch->lastCommittedDate = '最後修改時間'; +$lang->gitlab->branch->accessLevel = "分支保護列表"; +$lang->gitlab->branch->mergeAllowed = "允許合併到"; +$lang->gitlab->branch->pushAllowed = "允許推送到"; +$lang->gitlab->branch->placeholderSearch = "請輸入分支名稱"; +$lang->gitlab->branch->placeholderSelect = "請選擇分支"; +$lang->gitlab->branch->confirmDelete = '確定刪除分支保護?'; +$lang->gitlab->branch->branchCreationLevelList[40] = "維護者"; +$lang->gitlab->branch->branchCreationLevelList[30] = "開發者 + 維護者"; +$lang->gitlab->branch->branchCreationLevelList[0] = "禁止"; +$lang->gitlab->branch->emptyPrivNameError = "分支不能為空"; +$lang->gitlab->branch->issetPrivNameError = "已存在該保護分支"; + +$lang->gitlab->tag = new stdclass(); +$lang->gitlab->tag->name = '標籤名'; +$lang->gitlab->tag->ref = '創建自'; +$lang->gitlab->tag->lastCommitter = '最後提交'; +$lang->gitlab->tag->lastCommittedDate = '最後修改時間'; +$lang->gitlab->tag->placeholderSearch = "請輸入標籤名稱"; +$lang->gitlab->tag->message = '信息'; +$lang->gitlab->tag->emptyNameError = "標籤名不能為空"; +$lang->gitlab->tag->emptyRefError = "創建自不能為空"; +$lang->gitlab->tag->issetNameError = "已存在該標籤"; +$lang->gitlab->tag->confirmDelete = '確認刪除該GitLab標籤嗎?'; +$lang->gitlab->tag->protected = '受保護'; diff --git a/module/kanban/lang/zh-tw.php b/module/kanban/lang/zh-tw.php index c9a36fc2a7..39b6d9b56f 100644 --- a/module/kanban/lang/zh-tw.php +++ b/module/kanban/lang/zh-tw.php @@ -1,4 +1,94 @@ kanban->create = '創建看板'; +$lang->kanban->createSpace = '創建空間'; +$lang->kanban->editSpace = '設置空間'; +$lang->kanban->closeSpace = '關閉空間'; +$lang->kanban->deleteSpace = '刪除空間'; +$lang->kanban->sortSpace = '空間排序'; +$lang->kanban->edit = '看板設置'; +$lang->kanban->view = '查看看板'; +$lang->kanban->close = '關閉看板'; +$lang->kanban->delete = '刪除看板'; +$lang->kanban->createRegion = '新增區域'; +$lang->kanban->editRegion = '編輯區域'; +$lang->kanban->sortRegion = '區域排序'; +$lang->kanban->sortGroup = '泳道組排序'; +$lang->kanban->deleteRegion = '刪除區域'; +$lang->kanban->createLane = '創建泳道'; +$lang->kanban->editLane = '泳道設置'; +$lang->kanban->sortLane = '泳道排序'; +$lang->kanban->deleteLane = '刪除泳道'; +$lang->kanban->createColumn = '創建看板列'; +$lang->kanban->editColumn = '編輯看板列'; +$lang->kanban->sortColumn = '看板列排序'; +$lang->kanban->deleteColumn = '刪除看板列'; +$lang->kanban->createCard = '創建卡片'; +$lang->kanban->editCard = '編輯卡片'; +$lang->kanban->viewCard = '查看卡片'; +$lang->kanban->archiveCard = '歸檔卡片'; +$lang->kanban->sortCard = '卡片排序'; +$lang->kanban->copyCard = '複製卡片'; +$lang->kanban->moveCard = '移動卡片'; +$lang->kanban->cardColor = '卡片顏色'; +$lang->kanban->setCardColor = '設置卡片顏色'; +$lang->kanban->deleteCard = '刪除卡片'; +$lang->kanban->assigntoCard = '指派'; +$lang->kanban->setting = '設置'; +$lang->kanban->splitColumn = '新增子看板列'; +$lang->kanban->createColumnOnLeft = '左側新增看板列'; +$lang->kanban->createColumnOnRight = '右側新增看板列'; +$lang->kanban->copyColumn = '複製看板列'; +$lang->kanban->archiveColumn = '歸檔看板列'; +$lang->kanban->spaceCommon = '看板空間'; +$lang->kanban->styleCommon = '樣式'; +$lang->kanban->copy = '複製'; +$lang->kanban->custom = '自定義'; +$lang->kanban->archived = '已歸檔'; +$lang->kanban->viewArchivedCard = '查看已歸檔卡片'; +$lang->kanban->viewArchivedColumn = '查看已歸檔列'; +$lang->kanban->archivedColumn = '已歸檔的看板列'; +$lang->kanban->archivedCard = '已歸檔的卡片'; +$lang->kanban->restoreColumn = '還原看板列'; +$lang->kanban->restoreCard = '還原卡片'; +$lang->kanban->restore = '還原'; +$lang->kanban->child = '子'; + +/* Fields. */ +$lang->kanban->space = '所屬空間'; +$lang->kanban->name = '看板名稱'; +$lang->kanban->archived = '歸檔功能'; +$lang->kanban->owner = '負責人'; +$lang->kanban->team = '團隊'; +$lang->kanban->desc = '看板描述'; +$lang->kanban->acl = '訪問控制'; +$lang->kanban->whitelist = '白名單'; +$lang->kanban->status = '狀態'; +$lang->kanban->createdBy = '由誰創建'; +$lang->kanban->createdDate = '創建日期'; +$lang->kanban->lastEditedBy = '最後修改'; +$lang->kanban->lastEditedDate = '最後修改日期'; +$lang->kanban->closed = '已關閉'; +$lang->kanban->closedBy = '由誰關閉'; +$lang->kanban->closedDate = '關閉日期'; +$lang->kanban->empty = '暫時沒有看板'; +$lang->kanban->teamSumCount = '共%s人'; + +$lang->kanban->createColumnOnLeft = '在左側添加看板列'; +$lang->kanban->createColumnOnRight = '在右側添加看板列'; + +$lang->kanban->accessDenied = '您無權訪問該看板'; +$lang->kanban->confirmDelete = '您確認刪除嗎?'; + +$lang->kanban->aclGroup['open'] = '公開'; +$lang->kanban->aclGroup['private'] = '私有'; + +$lang->kanban->aclList['extend'] = '繼承空間訪問權限(能訪問當前空間,即可訪問)'; +$lang->kanban->aclList['private'] = '私有(看板團隊成員、白名單、空間負責人可訪問)'; + +$lang->kanban->enableArchived['0'] = '不啟用'; +$lang->kanban->enableArchived['1'] = '啟用'; + $lang->kanban->type = array(); $lang->kanban->type['all'] = "綜合看板"; $lang->kanban->type['story'] = "{$lang->SRCommon}看板"; @@ -48,17 +138,25 @@ $lang->kanban->columnColor = '看板列顏色'; $lang->kanban->noColumnUniqueName = '看板列名稱已存在'; $lang->kanban->moveUp = '泳道上移'; $lang->kanban->moveDown = '泳道下移'; -$lang->kanban->laneMove = '泳道排序'; +$lang->kanban->laneMove = '泳道移動'; $lang->kanban->laneGroup = '泳道分組'; $lang->kanban->cardsSort = '卡片排序'; +$lang->kanban->more = '更多'; $lang->kanban->moreAction = '更多操作'; $lang->kanban->noGroup = '無'; +$lang->kanban->limitExceeded = '超出在製品限制'; +$lang->kanban->fullScreen = '全屏'; +$lang->kanban->setting = '設置'; +$lang->kanban->my = '我的看板'; +$lang->kanban->other = '其他'; $lang->kanban->error = new stdclass(); $lang->kanban->error->mustBeInt = '在製品數量必須是正整數。'; $lang->kanban->error->parentLimitNote = '父列的在製品數量不能小於子列在製品數量之和'; $lang->kanban->error->childLimitNote = '子列在製品數量之和不能大於父列的在製品數量'; +$lang->kanban->defaultColumn = array('未開始', '進行中', '已完成', '已關閉'); + $this->lang->kanban->laneTypeList = array(); $this->lang->kanban->laneTypeList['story'] = $lang->SRCommon; $this->lang->kanban->laneTypeList['bug'] = 'Bug'; @@ -97,9 +195,116 @@ $lang->kanban->taskColumn['pause'] = '已暫停'; $lang->kanban->taskColumn['canceled'] = '已取消'; $lang->kanban->taskColumn['closed'] = '已關閉'; +$lang->kanbanspace = new stdclass(); +$lang->kanbanspace->common = '看板空間'; +$lang->kanbanspace->name = '空間名稱'; +$lang->kanbanspace->owner = '負責人'; +$lang->kanbanspace->team = '團隊'; +$lang->kanbanspace->desc = '空間描述'; +$lang->kanbanspace->acl = '訪問控制'; +$lang->kanbanspace->whitelist = '白名單'; +$lang->kanbanspace->status = '狀態'; +$lang->kanbanspace->createdBy = '由誰創建'; +$lang->kanbanspace->createdDate = '創建日期'; +$lang->kanbanspace->lastEditedBy = '最後修改'; +$lang->kanbanspace->lastEditedDate = '最後修改日期'; +$lang->kanbanspace->closedBy = '由誰關閉'; +$lang->kanbanspace->closedDate = '關閉日期'; + +$lang->kanbanspace->empty = '暫時沒有空間'; + +$lang->kanbanspace->aclList['open'] = '公開(有看板空間視圖權限即可訪問)'; +$lang->kanbanspace->aclList['private'] = '私有(只有看板空間負責人、團隊成員、白名單可訪問)'; + +$lang->kanbanspace->featureBar['all'] = '所有'; +$lang->kanbanspace->featureBar['my'] = '我的空間'; +$lang->kanbanspace->featureBar['other'] = '其他空間'; +$lang->kanbanspace->featureBar['closed'] = '已關閉'; + $lang->kanbancolumn = new stdclass(); -$lang->kanbancolumn->name = $lang->kanban->columnName; -$lang->kanbancolumn->limit = $lang->kanban->WIPCount; +$lang->kanbancolumn->name = $lang->kanban->columnName; +$lang->kanbancolumn->limit = $lang->kanban->WIPCount; +$lang->kanbancolumn->color = '看板列顏色'; +$lang->kanbancolumn->childName = '子列名稱'; +$lang->kanbancolumn->childColor = '子狀態顏色'; +$lang->kanbancolumn->empty = '暫時沒有看板列'; + +$lang->kanbancolumn->confirmArchive = '您確認歸檔該列嗎?歸檔列後,該列和列中所有卡片將被隱藏,您可以在區域-已歸檔中查看已歸檔的列。'; +$lang->kanbancolumn->confirmDelete = '您確認刪除該列嗎?刪除列後,該列中所有卡片也會被刪除。'; +$lang->kanbancolumn->confirmRestore = '您確定要還原該看板列嗎?還原看板列後,該看板列和看板列中所有的任務將同時還原到之前的位置。'; $lang->kanbanlane = new stdclass(); -$lang->kanbanlane->name = $lang->kanban->laneName; +$lang->kanbanlane->name = $lang->kanban->laneName; +$lang->kanbanlane->common = '泳道'; +$lang->kanbanlane->default = '預設泳道'; +$lang->kanbanlane->column = '泳道看板列'; +$lang->kanbanlane->otherlane = '選擇共享看板列的泳道'; +$lang->kanbanlane->color = '泳道顏色'; + +$lang->kanbanlane->confirmDelete = '您確認刪除該泳道嗎?刪除泳道後,該泳道中所有數據(列、卡片)也會被刪除。'; + +$lang->kanbanlane->modeList['sameAsOther'] = '與其他泳道使用相同看板列'; +$lang->kanbanlane->modeList['independent'] = '採用獨立的看板列'; + +$lang->kanbanregion = new stdclass(); +$lang->kanbanregion->name = '區域名稱'; +$lang->kanbanregion->default = '預設區域'; +$lang->kanbanregion->style = '區域樣式'; + +$lang->kanbanregion->confirmDelete = '您確認刪除該區域嗎?刪除該區域後,該區域中所有數據將會被刪除。'; + +$lang->kanbancard = new stdclass(); +$lang->kanbancard->create = '創建卡片'; +$lang->kanbancard->edit = '編輯卡片'; +$lang->kanbancard->view = '查看卡片'; +$lang->kanbancard->archive = '歸檔'; +$lang->kanbancard->assign = '指派'; +$lang->kanbancard->copy = '複製'; +$lang->kanbancard->delete = '刪除'; + +$lang->kanbancard->name = '卡片名稱'; +$lang->kanbancard->legendBasicInfo = '基本信息'; +$lang->kanbancard->legendLifeTime = '卡片的一生'; +$lang->kanbancard->space = '所屬空間'; +$lang->kanbancard->kanban = '所屬看板'; +$lang->kanbancard->lane = '所屬泳道'; +$lang->kanbancard->column = '所屬看板列'; +$lang->kanbancard->assignedTo = '指派給'; +$lang->kanbancard->beginAndEnd = '起止日期'; +$lang->kanbancard->begin = '預計開始'; +$lang->kanbancard->end = '截止日期'; +$lang->kanbancard->pri = '優先順序'; +$lang->kanbancard->desc = '描述'; +$lang->kanbancard->estimate = '預計'; +$lang->kanbancard->createdBy = '由誰創建'; +$lang->kanbancard->createdDate = '由誰創建'; +$lang->kanbancard->lastEditedBy = '由誰編輯'; +$lang->kanbancard->lastEditedDate = '最後編輯時間'; +$lang->kanbancard->archivedBy = '由誰歸檔'; +$lang->kanbancard->archivedDate = '歸檔時間'; +$lang->kanbancard->lblHour = 'h'; +$lang->kanbancard->noAssigned = '未指派'; +$lang->kanbancard->deadlineAB = '截止'; +$lang->kanbancard->beginAB = '開始'; +$lang->kanbancard->to = '~'; +$lang->kanbancard->archived = '已歸檔'; +$lang->kanbancard->empty = '暫時沒有卡片'; + +$lang->kanbancard->confirmArchive = '您確認歸檔該卡片嗎?歸檔卡片後,該卡片將從列中隱藏,您可以在區域-已歸檔中查看。'; +$lang->kanbancard->confirmDelete = '您確認刪除該卡片嗎?刪除卡片後,該卡片將從看板中刪除,您只能通過系統資源回收筒查看。'; +$lang->kanbancard->confirmRestore = '您確定要還原該卡片嗎?還原卡片後,該卡片將還原到“%s”看板列中。'; +$lang->kanbancard->confirmRestoreTip = '該卡片所屬的看板列已被歸檔或刪除,請先還原“%s”看板列。'; + +$lang->kanbancard->priList[1] = 1; +$lang->kanbancard->priList[2] = 2; +$lang->kanbancard->priList[3] = 3; +$lang->kanbancard->priList[4] = 4; + +$lang->kanbancard->colorList['#fff'] = '預設'; +$lang->kanbancard->colorList['#b10b0b'] = '阻塞'; +$lang->kanbancard->colorList['#cfa227'] = '警告'; +$lang->kanbancard->colorList['#2a5f29'] = '加急'; + +$lang->kanbancard->error = new stdClass(); +$lang->kanbancard->error->recordMinus = '預計不能為負數!'; +$lang->kanbancard->error->endSmall = '"截止日期"不能小於"預計開始"!'; diff --git a/module/misc/lang/en.php b/module/misc/lang/en.php index b34ce0bee2..5c8307f44a 100644 --- a/module/misc/lang/en.php +++ b/module/misc/lang/en.php @@ -94,6 +94,7 @@ $lang->misc->feature->downloadFile = 'Download introduction'; $lang->misc->feature->tutorialDesc = '

ZenTao 15.0 has new functions, and you know how to use it through the "Tutorial".

Click your [Avatar-Theme-Young Blue] to set it.

'; $lang->misc->feature->themeDesc = '

ZenTao 15.0+ a new "Youth Blue" theme, the pages are more beautiful and the experience is more friendly.

Click your [Avatar-Theme-Young Blue] to set it.

'; +$lang->misc->releaseDate['16.0'] = '2021-12-24'; $lang->misc->releaseDate['16.0.beta1'] = '2021-12-06'; $lang->misc->releaseDate['15.7.1'] = '2021-11-02'; $lang->misc->releaseDate['15.7'] = '2021-10-18'; @@ -163,6 +164,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['16.0'][] = array('title' => 'New general board, improve branch management, fix bugs.', 'desc' => ''); $lang->misc->feature->all['16.0.beta1'][] = array('title' => 'Add waterfall model project, add task kanban, improved branch management, and fixed bugs.', 'desc' => ''); $lang->misc->feature->all['15.7.1'][] = array('title' => 'Fix bug.', 'desc' => ''); $lang->misc->feature->all['15.7'][] = array('title' => 'Add API Lib. Fix bug.', 'desc' => ''); diff --git a/module/misc/lang/zh-cn.php b/module/misc/lang/zh-cn.php index d635055797..6d5c7de54b 100644 --- a/module/misc/lang/zh-cn.php +++ b/module/misc/lang/zh-cn.php @@ -94,6 +94,7 @@ $lang->misc->feature->downloadFile = '下载新版本功能介绍文档'; $lang->misc->feature->tutorialDesc = "

禅道15系列新增了多项功能,您可以通过“新手引导教程”快速了解禅道的基本使用方法。

通过鼠标经过 [头像-新手引导],点击新手引导,即可进入新手引导教程。

"; $lang->misc->feature->themeDesc = "

禅道15系列上线了全新的“青春蓝”主题,页面呈现更加美观,体验更加友好。

通过鼠标经过 [头像-主题-青春蓝],点击青春蓝,即可设置成功。

"; +$lang->misc->releaseDate['16.0'] = '2021-12-24'; $lang->misc->releaseDate['16.0.beta1'] = '2021-12-06'; $lang->misc->releaseDate['15.7.1'] = '2021-11-02'; $lang->misc->releaseDate['15.7'] = '2021-10-18'; @@ -163,6 +164,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['16.0'][] = array('title' => '新增通用看板,完善分支管理,修复Bug。', 'desc' => ''); $lang->misc->feature->all['16.0.beta1'][] = array('title' => '新增瀑布模型项目,新增任务看板,完善分支管理和细节,修复Bug。', 'desc' => ''); $lang->misc->feature->all['15.7.1'][] = array('title' => '修复Bug。', 'desc' => ''); $lang->misc->feature->all['15.7'][] = array('title' => '新增接口库。修复Bug。', 'desc' => ''); diff --git a/module/misc/lang/zh-tw.php b/module/misc/lang/zh-tw.php index bafaee4f56..349912c577 100644 --- a/module/misc/lang/zh-tw.php +++ b/module/misc/lang/zh-tw.php @@ -94,6 +94,7 @@ $lang->misc->feature->downloadFile = '下載新版本功能介紹文檔'; $lang->misc->feature->tutorialDesc = "

禪道15系列新增了多項功能,您可以通過“新手引導教程”快速瞭解禪道的基本使用方法。

通過滑鼠經過 [頭像-新手引導],點擊新手引導,即可進入新手引導教程。

"; $lang->misc->feature->themeDesc = "

禪道15系列上線了全新的“青春藍”主題,頁面呈現更加美觀,體驗更加友好。

通過滑鼠經過 [頭像-主題-青春藍],點擊青春藍,即可設置成功。

"; +$lang->misc->releaseDate['16.0'] = '2021-12-24'; $lang->misc->releaseDate['16.0.beta1'] = '2021-12-06'; $lang->misc->releaseDate['15.7.1'] = '2021-11-02'; $lang->misc->releaseDate['15.7'] = '2021-10-18'; @@ -163,6 +164,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['16.0'][] = array('title' => '新增通用看板,完善分支管理,修復Bug。', 'desc' => ''); $lang->misc->feature->all['16.0.beta1'][] = array('title' => '新增瀑布模型項目,新增任務看板,完善分支管理和細節,修復Bug。', 'desc' => ''); $lang->misc->feature->all['15.7.1'][] = array('title' => '修復Bug。', 'desc' => ''); $lang->misc->feature->all['15.7'][] = array('title' => '新增介面庫。修復Bug。', 'desc' => ''); diff --git a/module/mr/lang/zh-tw.php b/module/mr/lang/zh-tw.php index 9347a94cf0..a2397abf3f 100644 --- a/module/mr/lang/zh-tw.php +++ b/module/mr/lang/zh-tw.php @@ -3,6 +3,7 @@ $lang->mr = new stdclass; $lang->mr->common = "合併請求"; $lang->mr->overview = "概況"; $lang->mr->create = "創建{$lang->mr->common}"; +$lang->mr->apiCreate = "介面:創建{$lang->mr->common}"; $lang->mr->browse = "瀏覽{$lang->mr->common}"; $lang->mr->list = $lang->mr->browse; $lang->mr->edit = "編輯{$lang->mr->common}"; @@ -21,7 +22,7 @@ $lang->mr->linkStory = '關聯需求'; $lang->mr->linkBug = '關聯Bug'; $lang->mr->linkTask = '關聯任務'; $lang->mr->unlink = '取消關聯需求、Bug、任務'; -$lang->mr->addBug = '添加評審'; +$lang->mr->addReview = '添加評審'; $lang->mr->id = 'ID'; $lang->mr->mriid = "MR原始ID"; @@ -46,13 +47,19 @@ $lang->mr->reject = '拒絶'; $lang->mr->close = '關閉'; $lang->mr->reopen = '重新打開'; -$lang->mr->approvalResult = '評審意見'; +$lang->mr->reviewType = '評審類型'; +$lang->mr->reviewTypeList = array(); +$lang->mr->reviewTypeList['bug'] = 'Bug'; +$lang->mr->reviewTypeList['task'] = '任務'; + +$lang->mr->approvalResult = '評審意見'; $lang->mr->approvalResultList = array(); $lang->mr->approvalResultList['approve'] = '通過'; $lang->mr->approvalResultList['reject'] = '拒絶'; -$lang->mr->needApproved = '需要通過評審才能合併'; -$lang->mr->needCI = '需要通過構建才能合併'; +$lang->mr->needApproved = '需要通過評審才能合併'; +$lang->mr->needCI = '需要通過構建才能合併'; +$lang->mr->removeSourceBranch = '合併後刪除源分支'; $lang->mr->repeatedOperation = '請勿重複操作'; @@ -73,9 +80,10 @@ $lang->mr->statusList['merged'] = '已合併'; $lang->mr->statusList['closed'] = '已關閉'; $lang->mr->mergeStatusList = array(); -$lang->mr->mergeStatusList['checking'] = '檢查中'; -$lang->mr->mergeStatusList['can_be_merged'] = '可合併'; -$lang->mr->mergeStatusList['cannot_be_merged'] = '不可自動合併'; +$lang->mr->mergeStatusList['checking'] = '檢查中'; +$lang->mr->mergeStatusList['can_be_merged'] = '可合併'; +$lang->mr->mergeStatusList['cannot_be_merged'] = '不可自動合併'; +$lang->mr->mergeStatusList['cannot_merge_by_fail'] = '不可合併,檢查未通過'; $lang->mr->description = '描述'; $lang->mr->confirmDelete = '確認刪除該合併請求嗎?'; @@ -90,6 +98,7 @@ $lang->mr->notFound = "此{$lang->mr->common}不存在。"; $lang->mr->toCreatedMessage = "您提交的合併請求:%s 構建任務執行通過。"; $lang->mr->toReviewerMessage = "有一個合併請求:%s 待審核。"; $lang->mr->failMessage = "您提交的合併請求:%s 構建任務執行失敗,查看執行結果。"; +$lang->mr->storySummary = "本頁共 %s 個" . $lang->SRCommon; $lang->mr->apiError = new stdclass; $lang->mr->apiError->createMR = "通過API創建合併請求失敗,失敗原因:%s"; @@ -100,6 +109,12 @@ $lang->mr->accessGitlabFailed = "當前無法連接到GitLab伺服器。"; $lang->mr->reopenSuccess = "已重新打開合併請求。"; $lang->mr->closeSuccess = "已關閉合併請求。"; +$lang->mr->apiErrorMap[1] = "You can't use same project/branch for source and target"; +$lang->mr->apiErrorMap[2] = "/Another open merge request already exists for this source branch: !([0-9]+)/"; + +$lang->mr->errorLang[1] = '源項目分支與目標項目分支不能相同'; +$lang->mr->errorLang[2] = '存在另外一個同樣的合併請求在源項目分支中: !%u'; + $lang->mr->from = "從"; $lang->mr->to = "合併到"; $lang->mr->at = "于"; diff --git a/module/product/lang/zh-tw.php b/module/product/lang/zh-tw.php index 1e590e3d2a..fc98f4df7a 100644 --- a/module/product/lang/zh-tw.php +++ b/module/product/lang/zh-tw.php @@ -24,7 +24,7 @@ $lang->product->mine = '我負責'; $lang->product->other = '其他'; $lang->product->closed = '已關閉'; $lang->product->updateOrder = '排序'; -$lang->product->all = "{$lang->productCommon}列表"; +$lang->product->all = "所有{$lang->productCommon}"; $lang->product->manageLine = "維護{$lang->productCommon}綫"; $lang->product->newLine = "新建{$lang->productCommon}綫"; $lang->product->export = '導出數據'; @@ -88,6 +88,7 @@ $lang->product->programChangeTip = "如下項目只關聯了該{$lang->produ $lang->product->notChangeProgramTip = "該{$lang->productCommon}的{$lang->SRCommon}已經關聯到如下項目,請取消關聯後再操作"; $lang->product->confirmChangeProgram = "如下項目既關聯了該{$lang->productCommon}又關聯了其他{$lang->productCommon},請確認是否繼續關聯該{$lang->productCommon},勾選後將取消與其他{$lang->productCommon}的關聯關係,同時轉移至新項目集下。"; $lang->product->changeProgramError = "該{$lang->productCommon}的{$lang->SRCommon}已經關聯到項目,請取消關聯後再操作"; +$lang->product->programEmpty = '項目集不能為空'; $lang->product->id = '編號'; $lang->product->program = "所屬項目集"; @@ -129,6 +130,7 @@ $lang->product->searchStory = '搜索'; $lang->product->assignedToMe = '指給我'; $lang->product->openedByMe = '我創建'; $lang->product->reviewedByMe = '我評審'; +$lang->product->reviewByMe = '待我評審'; $lang->product->closedByMe = '我關閉'; $lang->product->draftStory = '草稿'; $lang->product->activeStory = '激活'; @@ -201,6 +203,7 @@ $lang->product->featureBar['browse']['unclosed'] = $lang->product->unclosed; $lang->product->featureBar['browse']['assignedtome'] = $lang->product->assignedToMe; $lang->product->featureBar['browse']['openedbyme'] = $lang->product->openedByMe; $lang->product->featureBar['browse']['reviewedbyme'] = $lang->product->reviewedByMe; +$lang->product->featureBar['browse']['reviewbyme'] = $lang->product->reviewByMe; $lang->product->featureBar['browse']['draftstory'] = $lang->product->draftStory; $lang->product->featureBar['browse']['more'] = $lang->more; diff --git a/module/productplan/lang/zh-tw.php b/module/productplan/lang/zh-tw.php index d5ce368991..36feac7ab2 100644 --- a/module/productplan/lang/zh-tw.php +++ b/module/productplan/lang/zh-tw.php @@ -32,7 +32,7 @@ $lang->productplan->linkedStories = $lang->SRCommon; $lang->productplan->unlinkedStories = "未關聯{$lang->SRCommon}"; $lang->productplan->updateOrder = '排序'; $lang->productplan->createChildren = "創建子計劃"; -$lang->productplan->createExecution = "創建{$lang->executionCommon}"; +$lang->productplan->createExecution = "創建{$lang->execution->common}"; $lang->productplan->linkBug = "關聯Bug"; $lang->productplan->unlinkBug = "移除Bug"; @@ -48,6 +48,7 @@ $lang->productplan->confirmUnlinkBug = "您確認移除該Bug嗎?"; $lang->productplan->noPlan = "暫時沒有計劃。"; $lang->productplan->cannotDeleteParent = "不能刪除父計劃"; $lang->productplan->selectProjects = "請選擇所屬項目"; +$lang->productplan->projectNotEmpty = '所屬項目不能為空。'; $lang->productplan->nextStep = "下一步"; $lang->productplan->id = '編號'; @@ -62,7 +63,7 @@ $lang->productplan->future = '待定'; $lang->productplan->stories = "{$lang->SRCommon}數"; $lang->productplan->bugs = 'Bug數'; $lang->productplan->hour = $lang->hourCommon; -$lang->productplan->execution = $lang->executionCommon; +$lang->productplan->execution = $lang->execution->common; $lang->productplan->parent = "父計劃"; $lang->productplan->parentAB = "父"; $lang->productplan->children = "子計劃"; @@ -85,6 +86,8 @@ $lang->productplan->errorNoEnd = 'ID %s 結束時間不能為空'; $lang->productplan->beginGeEnd = 'ID %s 開始時間不能大於結束時間'; $lang->productplan->beginLetterParent = "父計劃的開始日期:%s,開始日期不能小於父計劃的開始日期"; $lang->productplan->endGreaterParent = "父計劃的完成日期:%s,完成日期不能大於父計劃的完成日期"; +$lang->productplan->noLinkedProject = "當前產品還未關聯項目,請進入產品的項目列表關聯或創建一個項目"; +$lang->productplan->enterProjectList = "進入產品的項目列表"; $lang->productplan->featureBar['browse']['all'] = '全部'; $lang->productplan->featureBar['browse']['unexpired'] = '未過期'; diff --git a/module/programplan/lang/zh-tw.php b/module/programplan/lang/zh-tw.php index 40d587ff0a..3a638b8c2c 100644 --- a/module/programplan/lang/zh-tw.php +++ b/module/programplan/lang/zh-tw.php @@ -10,7 +10,7 @@ * @link http://www.zentao.net */ $lang->programplan->common = '項目階段'; -$lang->programplan->browse = '瀏覽階段計劃'; +$lang->programplan->browse = '瀏覽甘特圖'; $lang->programplan->gantt = '甘特圖'; $lang->programplan->list = '階段列表'; $lang->programplan->create = '設置階段'; diff --git a/module/project/lang/zh-tw.php b/module/project/lang/zh-tw.php index f9c7d798ae..da49a6d435 100644 --- a/module/project/lang/zh-tw.php +++ b/module/project/lang/zh-tw.php @@ -172,7 +172,7 @@ $lang->project->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26' $lang->project->productNotEmpty = '請關聯產品或創建產品。'; $lang->project->existProductName = '產品名稱已存在。'; $lang->project->changeProgram = '%s > 修改項目集'; -$lang->project->changeProgramTip = '修改項目集後,該項目關聯的產品也會同時修改所屬項目集,請確認是否修改。'; +$lang->project->changeProgramTip = '修改項目集後,該項目關聯產品的項目集也會被修改,請確認是否修改。'; $lang->project->linkedProjectsTip = '關聯的項目如下'; $lang->project->multiLinkedProductsTip = '該項目關聯的如下產品還關聯了其他項目,請取消關聯後再操作'; $lang->project->linkStoryByPlanTips = "此操作會將所選計划下面的{$lang->SRCommon}全部關聯到此項目中"; diff --git a/module/release/lang/zh-tw.php b/module/release/lang/zh-tw.php index f8bda6dd0d..a6243c3f1b 100644 --- a/module/release/lang/zh-tw.php +++ b/module/release/lang/zh-tw.php @@ -24,6 +24,7 @@ $lang->release->batchUnlinkStory = "批量移除{$lang->SRCommon}"; $lang->release->batchUnlinkBug = "批量移除Bug"; $lang->release->confirmDelete = "您確認刪除該發佈嗎?"; +$lang->release->confirmLink = "是否將版本中完成的{$lang->SRCommon}和已解決的bug關聯到發佈下?"; $lang->release->confirmUnlinkStory = "您確認移除該{$lang->SRCommon}嗎?"; $lang->release->confirmUnlinkBug = "您確認移除該Bug嗎?"; $lang->release->existBuild = '『版本』已經有『%s』這條記錄了。您可以更改『發佈名稱』或者選擇一個『版本』。'; diff --git a/module/repo/lang/zh-tw.php b/module/repo/lang/zh-tw.php index 9860500f94..ab6bbd8fbe 100644 --- a/module/repo/lang/zh-tw.php +++ b/module/repo/lang/zh-tw.php @@ -24,6 +24,7 @@ $lang->repo->repo = '代碼庫'; $lang->repo->parent = '父檔案夾'; $lang->repo->branch = '分支'; $lang->repo->addWebHook = '添加Webhook'; +$lang->repo->apiGetRepoByUrl = '介面:通過URL獲取版本庫'; $lang->repo->browseAction = '瀏覽版本庫'; $lang->repo->createAction = '創建版本庫'; @@ -48,48 +49,52 @@ $lang->repo->line = '行'; $lang->repo->expand = '點擊展開'; $lang->repo->collapse = '點擊摺疊'; -$lang->repo->id = 'ID'; -$lang->repo->SCM = '類型'; -$lang->repo->name = '名稱'; -$lang->repo->path = '地址'; -$lang->repo->prefix = '地址擴展'; -$lang->repo->config = '配置目錄'; -$lang->repo->desc = '描述'; -$lang->repo->account = '用戶名'; -$lang->repo->password = '密碼'; -$lang->repo->encoding = '編碼'; -$lang->repo->client = '客戶端'; -$lang->repo->size = '大小'; -$lang->repo->revision = '查看版本'; -$lang->repo->revisionA = '版本'; -$lang->repo->revisions = '版本'; -$lang->repo->time = '提交時間'; -$lang->repo->committer = '作者'; -$lang->repo->commits = '提交數'; -$lang->repo->synced = '初始化同步'; -$lang->repo->lastSync = '最後同步時間'; -$lang->repo->deleted = '已刪除'; -$lang->repo->commit = '提交'; -$lang->repo->comment = '註釋'; -$lang->repo->view = '查看檔案'; -$lang->repo->viewA = '查看'; -$lang->repo->log = '版本歷史'; -$lang->repo->blame = '追溯'; -$lang->repo->date = '日期'; -$lang->repo->diff = '比較差異'; -$lang->repo->diffAB = '比較'; -$lang->repo->diffAll = '全部比較'; -$lang->repo->viewDiff = '查看差異'; -$lang->repo->allLog = '所有版本'; -$lang->repo->location = '位置'; -$lang->repo->file = '檔案'; -$lang->repo->action = '操作'; -$lang->repo->code = '代碼'; -$lang->repo->review = '評審'; -$lang->repo->acl = '權限'; -$lang->repo->group = '分組'; -$lang->repo->user = '用戶'; -$lang->repo->info = '版本信息'; +$lang->repo->id = 'ID'; +$lang->repo->SCM = '類型'; +$lang->repo->name = '名稱'; +$lang->repo->path = '地址'; +$lang->repo->prefix = '地址擴展'; +$lang->repo->config = '配置目錄'; +$lang->repo->desc = '描述'; +$lang->repo->account = '用戶名'; +$lang->repo->password = '密碼'; +$lang->repo->encoding = '編碼'; +$lang->repo->client = '客戶端'; +$lang->repo->size = '大小'; +$lang->repo->revision = '查看版本'; +$lang->repo->revisionA = '版本'; +$lang->repo->revisions = '版本'; +$lang->repo->time = '提交時間'; +$lang->repo->committer = '作者'; +$lang->repo->commits = '提交數'; +$lang->repo->synced = '初始化同步'; +$lang->repo->lastSync = '最後同步時間'; +$lang->repo->deleted = '已刪除'; +$lang->repo->commit = '提交'; +$lang->repo->comment = '註釋'; +$lang->repo->view = '查看檔案'; +$lang->repo->viewA = '查看'; +$lang->repo->log = '版本歷史'; +$lang->repo->blame = '追溯'; +$lang->repo->date = '日期'; +$lang->repo->diff = '比較差異'; +$lang->repo->diffAB = '比較'; +$lang->repo->diffAll = '全部比較'; +$lang->repo->viewDiff = '查看差異'; +$lang->repo->allLog = '所有版本'; +$lang->repo->location = '位置'; +$lang->repo->file = '檔案'; +$lang->repo->action = '操作'; +$lang->repo->code = '代碼'; +$lang->repo->review = '評審'; +$lang->repo->acl = '權限'; +$lang->repo->group = '分組'; +$lang->repo->user = '用戶'; +$lang->repo->info = '版本信息'; +$lang->repo->job = '構建任務'; +$lang->repo->fileServerUrl = '預合併後上傳伺服器目錄'; +$lang->repo->fileServerAccount = '檔案伺服器登錄用戶名'; +$lang->repo->fileServerPassword = '檔案伺服器登錄密碼'; $lang->repo->title = '標題'; $lang->repo->status = '狀態'; @@ -146,6 +151,7 @@ $lang->repo->notice->syncedCount = '已經同步記錄條數'; $lang->repo->notice->delete = '是否要刪除該版本庫?'; $lang->repo->notice->successDelete = '已經成功刪除版本庫。'; $lang->repo->notice->commentContent = '輸入回覆內容'; +$lang->repo->notice->deleteReview = '確認刪除該評審?'; $lang->repo->notice->deleteBug = '確認刪除該Bug?'; $lang->repo->notice->deleteComment = '確認刪除該回覆?'; $lang->repo->notice->lastSyncTime = '最後更新于:'; diff --git a/module/story/lang/zh-tw.php b/module/story/lang/zh-tw.php index 6537bbc27d..48b40ffcdc 100644 --- a/module/story/lang/zh-tw.php +++ b/module/story/lang/zh-tw.php @@ -280,7 +280,8 @@ $lang->story->moveChildrenTips = "修改父{$lang->SRCommon}的所屬產品 $lang->story->changeTips = '該軟件需求關聯的用戶需求有變更,點擊“不變更”忽略此條變更,點擊“變更”來進行該軟件需求的變更。'; $lang->story->estimateMustBeNumber = '估算值必須是數字'; $lang->story->estimateMustBePlus = '估算值不能是負數'; -$lang->story->confirmChangeBranch = $lang->SRCommon . '%s已關聯在之前所屬分支的計劃中,調整分支後,' . $lang->SRCommon . '將從之前所屬分支的計劃中移除,請確認是否繼續修改上述' . $lang->SRCommon . '的分支。'; +$lang->story->confirmChangeBranch = $lang->SRCommon . '%s已關聯在之前所屬分支的計劃中,調整分支後,' . $lang->SRCommon . '將從之前所屬分支的計劃中移除,請確認是否繼續修改上述' . $lang->SRCommon . '的分支。'; +$lang->story->confirmChangePlan = $lang->SRCommon . '%s已關聯在之前計劃的所屬分支中,調整分支後,' . $lang->SRCommon . '將會從計劃中移除,請確認是否繼續修改計劃的所屬分支。'; $lang->story->form = new stdclass(); $lang->story->form->area = "該{$lang->SRCommon}所屬範圍"; diff --git a/module/testreport/lang/zh-tw.php b/module/testreport/lang/zh-tw.php index 1a2fc60d67..30ca4e3eef 100644 --- a/module/testreport/lang/zh-tw.php +++ b/module/testreport/lang/zh-tw.php @@ -84,6 +84,7 @@ $lang->testreport->noTestTask = "該{$lang->productCommon}下還沒有關聯 $lang->testreport->noObjectID = "沒有選定測試單或{$lang->executionCommon},無法創建測試報告!"; $lang->testreport->moreProduct = "只能對同一個{$lang->productCommon}生成測試報告。"; $lang->testreport->hiddenCase = "隱藏 %s 個用例"; +$lang->testreport->goalTip = "該版本所屬{$lang->execution->common}的描述信息"; $lang->testreport->bugSummary = <<%s個Bug , diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 60f5422cb2..99885670b0 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -947,6 +947,7 @@ class upgradeModel extends model case '15_6': $confirmContent .= file_get_contents($this->getUpgradeFile('15.6')); case '15_7': $confirmContent .= file_get_contents($this->getUpgradeFile('15.7')); case '15_7_1': $confirmContent .= file_get_contents($this->getUpgradeFile('15.7.1')); + case '16_0_beta1': $confirmContent .= file_get_contents($this->getUpgradeFile('16_0_beta1')); } return str_replace('zt_', $this->config->db->prefix, $confirmContent); }