* change for upgrade.

This commit is contained in:
wangyidong
2016-05-04 17:13:09 +08:00
parent b2651517b9
commit 48aa11d4e5
19 changed files with 180 additions and 38 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ if(!function_exists('getWebRoot')){function getWebRoot(){}}
/* Basic settings. */
$config = new config();
$config->version = '8.1.3'; // The version of zentaopms. Don't change it.
$config->version = '8.2.beta'; // The version of zentaopms. Don't change it.
$config->charset = 'UTF-8'; // The charset of zentaopms.
$config->cookieLife = time() + 2592000; // The cookie life time.
$config->timezone = 'Asia/Shanghai'; // The time zone setting, for more see http://www.php.net/manual/en/timezones.php
+105 -1
View File
@@ -14,7 +14,22 @@ CREATE TABLE IF NOT EXISTS `zt_action` (
PRIMARY KEY (`id`),
KEY `action` (`objectID`,`product`,`project`,`action`,`date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_block`;
CREATE TABLE IF NOT EXISTS `zt_block` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`account` char(30) NOT NULL,
`module` varchar(20) NOT NULL,
`title` varchar(100) NOT NULL,
`source` varchar(20) NOT NULL,
`block` varchar(20) NOT NULL,
`params` text NOT NULL,
`order` tinyint(3) unsigned NOT NULL DEFAULT '0',
`grid` tinyint(3) unsigned NOT NULL DEFAULT '0',
`hidden` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `accountModuleOrder` (`account`,`module`,`order`),
KEY `block` (`account`,`module`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_branch`;
CREATE TABLE IF NOT EXISTS `zt_branch` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
@@ -48,6 +63,7 @@ CREATE TABLE IF NOT EXISTS `zt_bug` (
`found` varchar(30) NOT NULL default '',
`steps` text NOT NULL,
`status` enum('active','resolved','closed') NOT NULL default 'active',
`color` char(7) NOT NULL,
`confirmed` tinyint(1) NOT NULL default '0',
`activatedCount` smallint(6) NOT NULL,
`mailto` varchar(255) NOT NULL default '',
@@ -121,6 +137,7 @@ CREATE TABLE IF NOT EXISTS `zt_case` (
`scriptStatus` varchar(30) NOT NULL,
`scriptLocation` varchar(255) NOT NULL,
`status` char(30) NOT NULL default '1',
`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 '',
@@ -353,6 +370,7 @@ CREATE TABLE IF NOT EXISTS `zt_module` (
`order` smallint(5) unsigned NOT NULL default '0',
`type` char(30) NOT NULL,
`owner` varchar(30) NOT NULL,
`short` varchar(30) NOT NULL,
PRIMARY KEY (`id`),
KEY `module` (`root`,`type`,`path`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@@ -472,6 +490,7 @@ CREATE TABLE IF NOT EXISTS `zt_story` (
`pri` tinyint(3) unsigned NOT NULL default '3',
`estimate` float unsigned NOT NULL,
`status` enum('','changed','active','draft','closed') NOT NULL default '',
`color` char(7) NOT NULL,
`stage` enum('','wait','planned','projected','developing','developed','testing','tested','verified','released') NOT NULL DEFAULT 'wait',
`mailto` varchar(255) NOT NULL default '',
`openedBy` varchar(30) NOT NULL default '',
@@ -526,6 +545,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
`left` float unsigned NOT NULL,
`deadline` date NOT NULL,
`status` enum('wait','doing','done','pause','cancel','closed') NOT NULL default 'wait',
`color` char(7) NOT NULL,
`mailto` varchar(255) NOT NULL default '',
`desc` text NOT NULL,
`openedBy` varchar(30) NOT NULL,
@@ -700,6 +720,7 @@ CREATE TABLE IF NOT EXISTS `zt_usertpl` (
`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;
@@ -760,6 +781,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'bug', 'delete'),
(1, 'bug', 'deleteTemplate'),
(1, 'bug', 'edit'),
(1, 'bug', 'batchChangeModule'),
(1, 'bug', 'linkBugs'),
(1, 'bug', 'unlinkBug'),
(1, 'bug', 'export'),
@@ -875,6 +897,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'my', 'testTask'),
(1, 'my', 'todo'),
(1, 'my', 'unbind'),
(1, 'my', 'manageContacts'),
(1, 'my', 'deleteContacts'),
(1, 'product', 'batchEdit'),
(1, 'product', 'browse'),
(1, 'product', 'close'),
@@ -884,6 +908,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'product', 'dynamic'),
(1, 'product', 'edit'),
(1, 'product', 'index'),
(1, 'product', 'all'),
(1, 'product', 'order'),
(1, 'product', 'project'),
(1, 'product', 'roadmap'),
@@ -921,6 +946,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'project', 'importBug'),
(1, 'project', 'importtask'),
(1, 'project', 'index'),
(1, 'project', 'all'),
(1, 'project', 'linkStory'),
(1, 'project', 'manageMembers'),
(1, 'project', 'manageProducts'),
@@ -930,6 +956,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'project', 'story'),
(1, 'project', 'suspend'),
(1, 'project', 'task'),
(1, 'project', 'kanban'),
(1, 'project', 'tree'),
(1, 'project', 'team'),
(1, 'project', 'testtask'),
(1, 'project', 'unlinkMember'),
@@ -975,6 +1003,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'story', 'create'),
(1, 'story', 'delete'),
(1, 'story', 'edit'),
(1, 'story', 'batchChangeModule'),
(1, 'story', 'linkStory'),
(1, 'story', 'unlinkStory'),
(1, 'story', 'export'),
@@ -999,6 +1028,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'task', 'delete'),
(1, 'task', 'deleteEstimate'),
(1, 'task', 'edit'),
(1, 'task', 'batchChangeModule'),
(1, 'task', 'editEstimate'),
(1, 'task', 'export'),
(1, 'task', 'finish'),
@@ -1018,6 +1048,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'testcase', 'createBug'),
(1, 'testcase', 'delete'),
(1, 'testcase', 'edit'),
(1, 'testcase', 'batchChangeModule'),
(1, 'testcase', 'linkCases'),
(1, 'testcase', 'unlinkCase'),
(1, 'testcase', 'export'),
@@ -1096,6 +1127,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'bug', 'create'),
(2, 'bug', 'deleteTemplate'),
(2, 'bug', 'edit'),
(2, 'bug', 'batchChangeModule'),
(2, 'bug', 'linkBugs'),
(2, 'bug', 'unlinkBug'),
(2, 'bug', 'export'),
@@ -1136,10 +1168,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'my', 'task'),
(2, 'my', 'todo'),
(2, 'my', 'unbind'),
(2, 'my', 'manageContacts'),
(2, 'my', 'deleteContacts'),
(2, 'product', 'browse'),
(2, 'product', 'doc'),
(2, 'product', 'dynamic'),
(2, 'product', 'index'),
(2, 'product', 'all'),
(2, 'product', 'project'),
(2, 'product', 'roadmap'),
(2, 'product', 'view'),
@@ -1157,8 +1192,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'project', 'importBug'),
(2, 'project', 'importtask'),
(2, 'project', 'index'),
(2, 'project', 'all'),
(2, 'project', 'story'),
(2, 'project', 'task'),
(2, 'project', 'kanban'),
(2, 'project', 'tree'),
(2, 'project', 'team'),
(2, 'project', 'testtask'),
(2, 'project', 'view'),
@@ -1196,6 +1234,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'task', 'create'),
(2, 'task', 'deleteEstimate'),
(2, 'task', 'edit'),
(2, 'task', 'batchChangeModule'),
(2, 'task', 'editEstimate'),
(2, 'task', 'export'),
(2, 'task', 'finish'),
@@ -1256,6 +1295,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'bug', 'create'),
(3, 'bug', 'deleteTemplate'),
(3, 'bug', 'edit'),
(3, 'bug', 'batchChangeModule'),
(3, 'bug', 'linkBugs'),
(3, 'bug', 'unlinkBug'),
(3, 'bug', 'export'),
@@ -1297,10 +1337,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'my', 'testTask'),
(3, 'my', 'todo'),
(3, 'my', 'unbind'),
(3, 'my', 'manageContacts'),
(3, 'my', 'deleteContacts'),
(3, 'product', 'browse'),
(3, 'product', 'doc'),
(3, 'product', 'dynamic'),
(3, 'product', 'index'),
(3, 'product', 'all'),
(3, 'product', 'project'),
(3, 'product', 'roadmap'),
(3, 'product', 'view'),
@@ -1318,8 +1361,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'project', 'importBug'),
(3, 'project', 'importtask'),
(3, 'project', 'index'),
(3, 'project', 'all'),
(3, 'project', 'story'),
(3, 'project', 'task'),
(3, 'project', 'kanban'),
(3, 'project', 'tree'),
(3, 'project', 'team'),
(3, 'project', 'testtask'),
(3, 'project', 'view'),
@@ -1358,6 +1404,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'task', 'create'),
(3, 'task', 'deleteEstimate'),
(3, 'task', 'edit'),
(3, 'task', 'batchChangeModule'),
(3, 'task', 'editEstimate'),
(3, 'task', 'export'),
(3, 'task', 'finish'),
@@ -1375,6 +1422,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'testcase', 'create'),
(3, 'testcase', 'createBug'),
(3, 'testcase', 'edit'),
(3, 'testcase', 'batchChangeModule'),
(3, 'testcase', 'linkCases'),
(3, 'testcase', 'unlinkCase'),
(3, 'testcase', 'export'),
@@ -1444,6 +1492,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'bug', 'delete'),
(4, 'bug', 'deleteTemplate'),
(4, 'bug', 'edit'),
(4, 'bug', 'batchChangeModule'),
(4, 'bug', 'linkBugs'),
(4, 'bug', 'unlinkBug'),
(4, 'bug', 'export'),
@@ -1501,10 +1550,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'my', 'testTask'),
(4, 'my', 'todo'),
(4, 'my', 'unbind'),
(4, 'my', 'manageContacts'),
(4, 'my', 'deleteContacts'),
(4, 'product', 'browse'),
(4, 'product', 'doc'),
(4, 'product', 'dynamic'),
(4, 'product', 'index'),
(4, 'product', 'all'),
(4, 'product', 'project'),
(4, 'product', 'roadmap'),
(4, 'product', 'view'),
@@ -1529,6 +1581,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'project', 'importBug'),
(4, 'project', 'importtask'),
(4, 'project', 'index'),
(4, 'project', 'all'),
(4, 'project', 'linkStory'),
(4, 'project', 'manageMembers'),
(4, 'project', 'manageProducts'),
@@ -1538,6 +1591,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'project', 'story'),
(4, 'project', 'suspend'),
(4, 'project', 'task'),
(4, 'project', 'kanban'),
(4, 'project', 'tree'),
(4, 'project', 'team'),
(4, 'project', 'testtask'),
(4, 'project', 'unlinkMember'),
@@ -1580,6 +1635,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'task', 'delete'),
(4, 'task', 'deleteEstimate'),
(4, 'task', 'edit'),
(4, 'task', 'batchChangeModule'),
(4, 'task', 'editEstimate'),
(4, 'task', 'export'),
(4, 'task', 'finish'),
@@ -1655,6 +1711,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'bug', 'create'),
(5, 'bug', 'deleteTemplate'),
(5, 'bug', 'edit'),
(5, 'bug', 'batchChangeModule'),
(5, 'bug', 'linkBugs'),
(5, 'bug', 'unlinkBug'),
(5, 'bug', 'export'),
@@ -1703,6 +1760,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'my', 'testTask'),
(5, 'my', 'todo'),
(5, 'my', 'unbind'),
(5, 'my', 'manageContacts'),
(5, 'my', 'deleteContacts'),
(5, 'product', 'batchEdit'),
(5, 'product', 'browse'),
(5, 'product', 'close'),
@@ -1712,6 +1771,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'product', 'dynamic'),
(5, 'product', 'edit'),
(5, 'product', 'index'),
(5, 'product', 'all'),
(5, 'product', 'order'),
(5, 'product', 'project'),
(5, 'product', 'roadmap'),
@@ -1749,6 +1809,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'project', 'importBug'),
(5, 'project', 'importtask'),
(5, 'project', 'index'),
(5, 'project', 'all'),
(5, 'project', 'linkStory'),
(5, 'project', 'manageMembers'),
(5, 'project', 'manageProducts'),
@@ -1758,6 +1819,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'project', 'story'),
(5, 'project', 'suspend'),
(5, 'project', 'task'),
(5, 'project', 'kanban'),
(5, 'project', 'tree'),
(5, 'project', 'team'),
(5, 'project', 'testtask'),
(5, 'project', 'unlinkMember'),
@@ -1802,6 +1865,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'story', 'create'),
(5, 'story', 'delete'),
(5, 'story', 'edit'),
(5, 'story', 'batchChangeModule'),
(5, 'story', 'linkStory'),
(5, 'story', 'unlinkStory'),
(5, 'story', 'export'),
@@ -1884,6 +1948,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'bug', 'delete'),
(6, 'bug', 'deleteTemplate'),
(6, 'bug', 'edit'),
(6, 'bug', 'batchChangeModule'),
(6, 'bug', 'linkBugs'),
(6, 'bug', 'unlinkBug'),
(6, 'bug', 'export'),
@@ -1941,10 +2006,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'my', 'testTask'),
(6, 'my', 'todo'),
(6, 'my', 'unbind'),
(6, 'my', 'manageContacts'),
(6, 'my', 'deleteContacts'),
(6, 'product', 'browse'),
(6, 'product', 'doc'),
(6, 'product', 'dynamic'),
(6, 'product', 'index'),
(6, 'product', 'all'),
(6, 'product', 'project'),
(6, 'product', 'roadmap'),
(6, 'product', 'view'),
@@ -1969,6 +2037,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'project', 'importBug'),
(6, 'project', 'importtask'),
(6, 'project', 'index'),
(6, 'project', 'all'),
(6, 'project', 'linkStory'),
(6, 'project', 'manageMembers'),
(6, 'project', 'manageProducts'),
@@ -1978,6 +2047,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'project', 'story'),
(6, 'project', 'suspend'),
(6, 'project', 'task'),
(6, 'project', 'kanban'),
(6, 'project', 'tree'),
(6, 'project', 'team'),
(6, 'project', 'testtask'),
(6, 'project', 'unlinkMember'),
@@ -2020,6 +2091,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'task', 'delete'),
(6, 'task', 'deleteEstimate'),
(6, 'task', 'edit'),
(6, 'task', 'batchChangeModule'),
(6, 'task', 'editEstimate'),
(6, 'task', 'export'),
(6, 'task', 'finish'),
@@ -2093,6 +2165,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'bug', 'delete'),
(7, 'bug', 'deleteTemplate'),
(7, 'bug', 'edit'),
(7, 'bug', 'batchChangeModule'),
(7, 'bug', 'linkBugs'),
(7, 'bug', 'unlinkBug'),
(7, 'bug', 'export'),
@@ -2141,6 +2214,8 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'my', 'testTask'),
(7, 'my', 'todo'),
(7, 'my', 'unbind'),
(7, 'my', 'manageContacts'),
(7, 'my', 'deleteContacts'),
(7, 'product', 'batchEdit'),
(7, 'product', 'browse'),
(7, 'product', 'close'),
@@ -2150,6 +2225,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'product', 'dynamic'),
(7, 'product', 'edit'),
(7, 'product', 'index'),
(7, 'product', 'all'),
(7, 'product', 'order'),
(7, 'product', 'project'),
(7, 'product', 'roadmap'),
@@ -2177,10 +2253,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'project', 'dynamic'),
(7, 'project', 'grouptask'),
(7, 'project', 'index'),
(7, 'project', 'all'),
(7, 'project', 'linkStory'),
(7, 'project', 'manageProducts'),
(7, 'project', 'story'),
(7, 'project', 'task'),
(7, 'project', 'kanban'),
(7, 'project', 'tree'),
(7, 'project', 'team'),
(7, 'project', 'testtask'),
(7, 'project', 'unlinkStory'),
@@ -2224,6 +2303,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'story', 'create'),
(7, 'story', 'delete'),
(7, 'story', 'edit'),
(7, 'story', 'batchChangeModule'),
(7, 'story', 'linkStory'),
(7, 'story', 'unlinkStory'),
(7, 'story', 'export'),
@@ -2306,6 +2386,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'bug', 'delete'),
(8, 'bug', 'deleteTemplate'),
(8, 'bug', 'edit'),
(8, 'bug', 'batchChangeModule'),
(8, 'bug', 'linkBugs'),
(8, 'bug', 'unlinkBug'),
(8, 'bug', 'export'),
@@ -2357,10 +2438,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'my', 'testTask'),
(8, 'my', 'todo'),
(8, 'my', 'unbind'),
(8, 'my', 'manageContacts'),
(8, 'my', 'deleteContacts'),
(8, 'product', 'browse'),
(8, 'product', 'doc'),
(8, 'product', 'dynamic'),
(8, 'product', 'index'),
(8, 'product', 'all'),
(8, 'product', 'project'),
(8, 'product', 'roadmap'),
(8, 'product', 'view'),
@@ -2376,8 +2460,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'project', 'importBug'),
(8, 'project', 'importtask'),
(8, 'project', 'index'),
(8, 'project', 'all'),
(8, 'project', 'story'),
(8, 'project', 'task'),
(8, 'project', 'kanban'),
(8, 'project', 'tree'),
(8, 'project', 'team'),
(8, 'project', 'testtask'),
(8, 'project', 'view'),
@@ -2417,6 +2504,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'task', 'delete'),
(8, 'task', 'deleteEstimate'),
(8, 'task', 'edit'),
(8, 'task', 'batchChangeModule'),
(8, 'task', 'editEstimate'),
(8, 'task', 'export'),
(8, 'task', 'finish'),
@@ -2436,6 +2524,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'testcase', 'createBug'),
(8, 'testcase', 'delete'),
(8, 'testcase', 'edit'),
(8, 'testcase', 'batchChangeModule'),
(8, 'testcase', 'linkCases'),
(8, 'testcase', 'unlinkCase'),
(8, 'testcase', 'export'),
@@ -2547,10 +2636,13 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(9, 'my', 'testTask'),
(9, 'my', 'todo'),
(9, 'my', 'unbind'),
(9, 'my', 'manageContacts'),
(9, 'my', 'deleteContacts'),
(9, 'product', 'browse'),
(9, 'product', 'doc'),
(9, 'product', 'dynamic'),
(9, 'product', 'index'),
(9, 'product', 'all'),
(9, 'product', 'project'),
(9, 'product', 'roadmap'),
(9, 'product', 'view'),
@@ -2566,8 +2658,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(9, 'project', 'dynamic'),
(9, 'project', 'grouptask'),
(9, 'project', 'index'),
(9, 'project', 'all'),
(9, 'project', 'story'),
(9, 'project', 'task'),
(9, 'project', 'kanban'),
(9, 'project', 'tree'),
(9, 'project', 'team'),
(9, 'project', 'view'),
(9, 'qa', 'index'),
@@ -2647,6 +2742,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(10, 'bug', 'close'),
(10, 'bug', 'create'),
(10, 'bug', 'edit'),
(10, 'bug', 'batchChangeModule'),
(10, 'bug', 'linkBugs'),
(10, 'bug', 'unlinkBug'),
(10, 'bug', 'index'),
@@ -2675,6 +2771,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(10, 'product', 'doc'),
(10, 'product', 'dynamic'),
(10, 'product', 'index'),
(10, 'product', 'all'),
(10, 'product', 'roadmap'),
(10, 'product', 'view'),
(10, 'productplan', 'browse'),
@@ -2687,8 +2784,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(10, 'project', 'dynamic'),
(10, 'project', 'grouptask'),
(10, 'project', 'index'),
(10, 'project', 'all'),
(10, 'project', 'story'),
(10, 'project', 'task'),
(10, 'project', 'kanban'),
(10, 'project', 'tree'),
(10, 'project', 'team'),
(10, 'project', 'testtask'),
(10, 'project', 'view'),
@@ -2754,6 +2854,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(11, 'product', 'doc'),
(11, 'product', 'dynamic'),
(11, 'product', 'index'),
(11, 'product', 'all'),
(11, 'product', 'roadmap'),
(11, 'product', 'view'),
(11, 'productplan', 'browse'),
@@ -2766,8 +2867,11 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(11, 'project', 'dynamic'),
(11, 'project', 'grouptask'),
(11, 'project', 'index'),
(11, 'project', 'all'),
(11, 'project', 'story'),
(11, 'project', 'task'),
(11, 'project', 'kanban'),
(11, 'project', 'tree'),
(11, 'project', 'team'),
(11, 'project', 'testtask'),
(11, 'project', 'view'),
+20 -18
View File
@@ -118,8 +118,9 @@ $(document).ready(function()
<strong><?php echo $lang->export;?></strong>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin' style='padding: 40px 5% 50px'>
<table class='w-p100'>
<?php $isCustomExport = (!empty($customExport) and !empty($allExportFields));?>
<form class='form-condensed' method='post' target='hiddenwin' style='padding: 40px 1% 50px'>
<table class='w-p100 table-fixed'>
<tr>
<td>
<div class='input-group'>
@@ -127,31 +128,31 @@ $(document).ready(function()
<?php echo html::input('fileName', '', 'class=form-control');?>
</div>
</td>
<td class='w-80px'>
<td class='w-60px'>
<?php echo html::select('fileType', $lang->exportFileTypeList, '', 'onchange=switchEncode(this.value) class="form-control"');?>
</td>
<td class='w-90px'>
<td class='w-80px'>
<?php echo html::select('encode', $config->charsets[$this->cookie->lang], 'utf-8', key($lang->exportFileTypeList) == 'csv' ? "class='form-control'" : "class='form-control'");?>
</td>
<td class='w-100px'>
<td class='w-90px'>
<?php echo html::select('exportType', $lang->exportTypeList, 'all', "class='form-control'");?>
</td>
<td><?php echo html::submitButton($lang->export, "onclick='setDownloading();' ");?></td>
</tr>
<?php if(!empty($customExport) and !empty($allExportFields)):?>
<tr>
<td colspan='5'>
<div class='input-group' style='width:100%'>
<span class='input-group-addon'><?php echo $lang->file->applyTemplate?></span>
<span id='tplBox'><?php echo $this->fetch('file', 'buildExportTPL', 'module=' . $this->moduleName);?></span>
<span class='input-group-btn'><button type='button' onclick='deleteTemplate()' class='btn'><?php echo $lang->delete?></button></span>
<span class='input-group-btn'><button type='button' onclick='setExportTPL()' class='btn'><?php echo $lang->file->setExportTPL?></button></span>
<?php if($isCustomExport):?>
<td class='w-110px' style='overflow:visible'>
<span id='tplBox'><?php echo $this->fetch('file', 'buildExportTPL', 'module=' . $this->moduleName);?></span>
</td>
<?php endif?>
<td style='width:<?php echo $isCustomExport ? '94px' : '50px'?>'>
<div class='input-group'>
<?php echo html::submitButton($lang->export, "onclick='setDownloading();' ");?>
<?php if($isCustomExport):?>
<button type='button' onclick='setExportTPL()' class='btn'><?php echo $lang->file->setExportTPL?></button>
<?php endif;?>
</div>
</td>
</tr>
<?php endif;?>
</table>
<?php if(!empty($customExport) and !empty($allExportFields)):?>
<?php if($isCustomExport):?>
<?php
$allExportFields = explode(',', $allExportFields);
$selectedFields = array();
@@ -166,7 +167,7 @@ $(document).ready(function()
}
?>
<div class='mb-150px' style='margin-bottom:150px'></div>
<div class='panel' id='customFields' style='margin-bottom:150px;display:none'>
<div class='panel' id='customFields' style='display:none'>
<div class='panel-heading'><strong><?php echo $lang->file->exportFields?></strong></div>
<div class='panel-body'>
<p><?php echo html::select('exportFields[]', $exportFieldPairs, $selectedFields, "class='form-control chosen' multiple")?></p>
@@ -178,6 +179,7 @@ $(document).ready(function()
<span class='input-group-addon'><?php echo html::checkbox('public', array(1 => $lang->public));?></span>
<?php endif?>
<span class='input-group-btn'><button id='saveTpl' type='button' onclick='saveTemplate()' class='btn btn-primary'><?php echo $lang->save?></button></span>
<span class='input-group-btn'><button type='button' onclick='deleteTemplate()' class='btn'><?php echo $lang->delete?></button></span>
</div>
</div>
</div>
+1
View File
@@ -46,6 +46,7 @@ $lang->group->copyOptions['copyPriv'] = 'Copy priviledge';
$lang->group->copyOptions['copyUser'] = 'Copy user';
$lang->group->versions[''] = 'History';
$lang->group->versions['8_2_beta'] = 'Zentao 8.2.beta';
$lang->group->versions['8_0_1'] = 'Zentao 8.0.1';
$lang->group->versions['8_0'] = 'Zentao 8.0';
$lang->group->versions['7_4_beta'] = 'Zentao 7.4.beta';
+2
View File
@@ -1166,3 +1166,5 @@ $lang->changelog['8.1.3'][] = 'my-deleteContacts';
$lang->changelog['8.2.beta'][] = 'product-all';
$lang->changelog['8.2.beta'][] = 'project-tree';
$lang->changelog['8.2.beta'][] = 'project-all';
$lang->changelog['8.2.beta'][] = 'project-kanban';
$lang->changelog['8.2.beta'][] = 'project-tree';
+1
View File
@@ -46,6 +46,7 @@ $lang->group->copyOptions['copyPriv'] = '复制权限';
$lang->group->copyOptions['copyUser'] = '复制用户';
$lang->group->versions[''] = '修改历史';
$lang->group->versions['8_2_beta'] = '禅道8.2.beta';
$lang->group->versions['8_0_1'] = '禅道8.0.1';
$lang->group->versions['8_0'] = '禅道8.0';
$lang->group->versions['7_4_beta'] = '禅道7.4.beta';
+7 -2
View File
@@ -65,5 +65,10 @@ $lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Latest';
$lang->misc->feature->all = array();
$lang->misc->feature->all['latest'] = array();
$lang->misc->feature->all['latest'][] = array('title'=>'Customizable home page', 'desc' => '<p>You can add contents blocks to home page and determine how to display them.</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'Full customizable navigations', 'desc' => '<p>You can sort and hide items in navigations.</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'首页自定义', 'desc' => '<p>我的地盘由我做主。现在开始,你可以向首页添加多种多样的内容区块,而且还可以决定如何排列和显示他们。</p><p>我的地盘、产品、项目、测试模块下均支持首页自定义功能。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'导航定制', 'desc' => '<p>导航上显示的项目现在完全由你来决定,不仅仅可以决定在导航上展示哪些内容,还可以决定展示的顺序。</p><p>将鼠标悬浮在导航上稍后会在右侧显示定制按钮,点击打开定制对话框,通过点击切换是否显示,拖放操作来更改显示顺序。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'批量添加、编辑自定义', 'desc' => '<p>可以在批量添加和批量编辑页面自定义操作的字段。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'添加需求、任务、Bug、用例自定义', 'desc' => '<p>可以在添加需求、任务、Bug、用例页面,自定义部分字段是否显示。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'导出自定义', 'desc' => '<p>在导出需求、任务、Bug、用例的时候,用户可以自定义导出的字段,也可以保存模板方便每次导出。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'需求、任务、Bug、用例组合检索功能', 'desc' => '<p>在需求、任务、Bug、用例列表页面,可以实现模块和标签的组合检索。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'增加新手教程', 'desc' => '<p>增加新手教程,方便新用户了解禅道使用。</p>');
+5
View File
@@ -67,3 +67,8 @@ $lang->misc->feature->all = array();
$lang->misc->feature->all['latest'] = array();
$lang->misc->feature->all['latest'][] = array('title'=>'首页自定义', 'desc' => '<p>我的地盘由我做主。现在开始,你可以向首页添加多种多样的内容区块,而且还可以决定如何排列和显示他们。</p><p>我的地盘、产品、项目、测试模块下均支持首页自定义功能。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'导航定制', 'desc' => '<p>导航上显示的项目现在完全由你来决定,不仅仅可以决定在导航上展示哪些内容,还可以决定展示的顺序。</p><p>将鼠标悬浮在导航上稍后会在右侧显示定制按钮,点击打开定制对话框,通过点击切换是否显示,拖放操作来更改显示顺序。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'批量添加、编辑自定义', 'desc' => '<p>可以在批量添加和批量编辑页面自定义操作的字段。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'添加需求、任务、Bug、用例自定义', 'desc' => '<p>可以在添加需求、任务、Bug、用例页面,自定义部分字段是否显示。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'导出自定义', 'desc' => '<p>在导出需求、任务、Bug、用例的时候,用户可以自定义导出的字段,也可以保存模板方便每次导出。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'需求、任务、Bug、用例组合检索功能', 'desc' => '<p>在需求、任务、Bug、用例列表页面,可以实现模块和标签的组合检索。</p>');
$lang->misc->feature->all['latest'][] = array('title'=>'增加新手教程', 'desc' => '<p>增加新手教程,方便新用户了解禅道使用。</p>');
+1 -1
View File
@@ -10,7 +10,7 @@ if(empty($features))
<div class='container mw-800px'>
<div id='titlebar'>
<div class='heading'>
<strong><?php echo $lang->feature ?></strong>
<strong><?php echo $lang->changeLog ?></strong>
</div>
</div>
<div class='dropdown' id='versionMenu'>
+1 -1
View File
@@ -22,7 +22,7 @@
if($period == 'before') $vars .= "&account={$app->user->account}&status=undone";
echo "<li id='$period'>" . html::a(inlink('todo', $vars), $label) . '</li>';
}
echo "<li id='byDate' class='datepicker-wrapper datepicker-date'>" . html::input('date', $date,"class='form-control form-date' onchange='changeDate(this.value)' autocomplete='off'") . '</li>';
echo "<li id='byDate'>" . html::input('date', $date,"class='form-control form-date' onchange='changeDate(this.value)' autocomplete='off'") . '</li>';
if(is_numeric($type))
{
+2 -2
View File
@@ -23,10 +23,10 @@
#projectTree .item-type-tasks > .tree-item-wrapper:hover {background-color: #f5f5f5}
#projectTree .task-pri {position: relative; top: -1px}
#projectTree .task-assignto {display: inline-block; margin-left: 10px; color: #808080}
#projectTree .task-info {float: right; display: none}
#projectTree .task-info {display: none;}
#projectTree .task-info > div {display: inline-block; margin: 0 5px;}
#projectTree .task-info > div.buttons {position: relative; top: 2px}
#projectTree .item-type-task:hover .task-info {display: block}
#projectTree .item-type-task:hover .task-info {display: inline-block; margin-left:10px;}
.tree-view-btn {min-width: 36px;}
.main > .panel > .panel-heading > .panel-actions {margin-top: -8px; margin-right: -12px;}
+1 -2
View File
@@ -123,8 +123,7 @@ $lang->project->batchUnlinkStory = '批量移除需求';
$lang->project->importTask = '转入任务';
$lang->project->importBug = '导入Bug';
$lang->project->updateOrder = '排序';
$lang->project->tree = '树视图';
$lang->project->list = '列表';
$lang->project->tree = '树状图';
/* 分组浏览。*/
$lang->project->allTasks = '所有';
+1 -1
View File
@@ -2,7 +2,7 @@
<div id='featurebar'>
<ul class='nav'>
<li>
<div class='label-angle<?php if($moduleID) echo ' with-close';?>'>
<div class='label-angle<?php if(!empty($moduleID)) echo ' with-close';?>'>
<?php
echo isset($moduleID) ? $moduleName : $this->lang->tree->all;
if(!empty($moduleID))
+5 -5
View File
@@ -4,17 +4,17 @@
</div>
<div class='nav'>
<li>
<span>
<div class='label-angle <?php echo !empty($moduleID) ? 'with-close' : ''?>'>
<?php
$this->app->loadLang('tree');
echo isset($moduleID) ? $moduleName : $this->lang->tree->all;
if(!empty($moduleID))
{
$removeLink = $browseType == 'bymodule' ? inlink('cases', "taskID=$taskID&browseType=$browseType&param=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("caseModule")';
echo '&nbsp;' . html::a($removeLink, "<i class='icon icon-remove'></i>", '', "class='text-muted'") . '&nbsp;';
$removeLink = $browseType == 'bymodule' ? inlink('cases', "taskID=$taskID&browseType=$browseType&param=0&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("taskCaseModule")';
echo html::a($removeLink, "<span class='close'>&times;</span>", '', "class='text-muted'");
}
echo " <i class='icon-angle-right'></i>&nbsp; ";
?>
</span>
</div>
</li>
<?php
$hasCasesPriv = common::hasPriv('testtask', 'cases');
+1
View File
@@ -108,6 +108,7 @@ class tutorial extends control
$target = 'parent';
if(($module == 'story' or $module == 'task' or $module == 'bug') and $method == 'create') $target = 'self';
if($module == 'project' and $method == 'linkStory') $target = 'self';
if($module == 'project' and $method == 'managemembers') $target = 'self';
die(js::locate(helper::createLink('tutorial', 'wizard', "module=$module&method=$method&params=" . helper::safe64Encode($params)), $target));
}
die($this->fetch($module, $method, $params));
+17 -2
View File
@@ -192,6 +192,12 @@ class tutorialModel extends model
return array($story->id => $story->title);
}
/**
* Get tutorial team members.
*
* @access public
* @return array
*/
public function getTeamMembers()
{
$member = new stdclass();
@@ -206,10 +212,19 @@ class tutorialModel extends model
return array($member->account => $member);
}
/**
* Get tutorial user pairs.
*
* @access public
* @return void
*/
public function getUserPairs()
{
$users[$this->app->user->account] = $this->app->user->account;
$users['test'] = 'Test';
$account = $this->app->user->account;
$users[''] = '';
$users[$account] = $account;
$users['test'] = 'Test';
return $users;
}
}
+1
View File
@@ -99,3 +99,4 @@ $lang->upgrade->fromVersions['7_4_beta'] = '7.4.beta';
$lang->upgrade->fromVersions['8_0'] = '8.0';
$lang->upgrade->fromVersions['8_0_1'] = '8.0.1';
$lang->upgrade->fromVersions['8_1'] = '8.1';
$lang->upgrade->fromVersions['8_1_3'] = '8.1.3';
+1
View File
@@ -99,3 +99,4 @@ $lang->upgrade->fromVersions['7_4_beta'] = '7.4.beta';
$lang->upgrade->fromVersions['8_0'] = '8.0';
$lang->upgrade->fromVersions['8_0_1'] = '8.0.1';
$lang->upgrade->fromVersions['8_1'] = '8.1';
$lang->upgrade->fromVersions['8_1_3'] = '8.1.3';
+7 -2
View File
@@ -215,6 +215,7 @@ class upgradeModel extends model
case '8_0':
case '8_0_1': $confirmContent .= file_get_contents($this->getUpgradeFile('8.0.1'));
case '8_1': $confirmContent .= file_get_contents($this->getUpgradeFile('8.1'));
case '8_1_3': $confirmContent .= file_get_contents($this->getUpgradeFile('8.1.3'));
}
return str_replace('zt_', $this->config->db->prefix, $confirmContent);
}
@@ -855,9 +856,13 @@ class upgradeModel extends model
$groups = $this->dao->select('`group`')->from($privTable)->where('`module`')->eq('project')->andWhere('`method`')->eq('index')->fetchPairs('group', 'group');
foreach($groups as $group) $this->dao->replace($privTable)->set('module')->eq('project')->set('method')->eq('all')->set('`group`')->eq($group)->exec();
/* Add kanban priv. */
/* Add kanban and tree priv. */
$groups = $this->dao->select('`group`')->from($privTable)->where('`module`')->eq('project')->andWhere('`method`')->eq('task')->fetchPairs('group', 'group');
foreach($groups as $group) $this->dao->replace($privTable)->set('module')->eq('project')->set('method')->eq('kanban')->set('`group`')->eq($group)->exec();
foreach($groups as $group)
{
$this->dao->replace($privTable)->set('module')->eq('project')->set('method')->eq('kanban')->set('`group`')->eq($group)->exec();
$this->dao->replace($privTable)->set('module')->eq('project')->set('method')->eq('tree')->set('`group`')->eq($group)->exec();
}
/* Change manageContacts priv. */
$groups = $this->dao->select('`group`')->from($privTable)->where('`module`')->eq('user')->andWhere('`method`')->eq('manageContacts')->fetchPairs('group', 'group');