diff --git a/VERSION b/VERSION index 406b898277..98d8a4eb67 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.1.3 +8.2.beta diff --git a/config/config.php b/config/config.php index ed291616ba..0944db62df 100644 --- a/config/config.php +++ b/config/config.php @@ -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 diff --git a/db/zentao.sql b/db/zentao.sql index a0e03e7057..4af87b0a91 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -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'), diff --git a/module/admin/lang/zh-tw.php b/module/admin/lang/zh-tw.php index c5096cb10a..521eafaa40 100644 --- a/module/admin/lang/zh-tw.php +++ b/module/admin/lang/zh-tw.php @@ -42,7 +42,6 @@ $lang->admin->safe = new stdclass(); $lang->admin->safe->common = '安全'; $lang->admin->safe->set = '密碼安全設置'; $lang->admin->safe->password = '密碼安全'; -$lang->admin->safe->md5Pwd = '密碼加密'; $lang->admin->safe->weak = '常用弱口令'; $lang->admin->safe->reason = '類型'; $lang->admin->safe->checkWeak = '弱口令掃瞄'; @@ -51,9 +50,6 @@ $lang->admin->safe->modeList[0] = '不檢查'; $lang->admin->safe->modeList[1] = '中'; $lang->admin->safe->modeList[2] = '強'; -$lang->admin->safe->md5PwdList[0] = '不加密'; -$lang->admin->safe->md5PwdList[1] = '加密'; - $lang->admin->safe->reasonList['weak'] = '常用弱口令'; $lang->admin->safe->reasonList['account'] = '與賬號相同'; $lang->admin->safe->reasonList['mobile'] = '與手機相同'; @@ -61,5 +57,4 @@ $lang->admin->safe->reasonList['phone'] = '與電話相同'; $lang->admin->safe->reasonList['birthday'] = '與生日相同'; $lang->admin->safe->noticeMode = '系統會在登錄、創建和修改用戶、修改密碼的時候檢查用戶口令。'; -$lang->admin->safe->noticeMd5Pwd = '系統會在登錄的時候,對密碼做加密後再提交。'; $lang->admin->safe->noticeStrong = '密碼長度越長,含有大寫字母或數字或特殊符合越多,密碼字母越不重複,安全度越強!'; diff --git a/module/block/lang/en.php b/module/block/lang/en.php index 662da3e202..8f4f5f6ab3 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -31,7 +31,6 @@ $lang->block->createBlock = 'Add block'; $lang->block->editBlock = 'Edit block'; $lang->block->ordersSaved = 'Sort have been saved'; $lang->block->confirmRemoveBlock = 'Are you sure remove block [{0}] ?'; -$lang->block->emptyMessage = 'Nothing here, custom it now!'; $lang->block->refresh = 'Refresh'; $lang->block->hidden = 'Hidden'; $lang->block->dynamicInfo = "%s, %s %s %s %s."; diff --git a/module/block/lang/zh-tw.php b/module/block/lang/zh-tw.php index e44b647831..9e60d13bfb 100644 --- a/module/block/lang/zh-tw.php +++ b/module/block/lang/zh-tw.php @@ -16,11 +16,12 @@ $lang->block->style = '外觀'; $lang->block->grid = '寬度'; $lang->block->color = '顏色'; -$lang->block->lblModule = '模組'; -$lang->block->lblBlock = '區塊'; -$lang->block->lblNum = '條數'; -$lang->block->lblHtml = 'HTML內容'; -$lang->block->dynamic = '最新動態'; +$lang->block->lblModule = '模組'; +$lang->block->lblBlock = '區塊'; +$lang->block->lblNum = '條數'; +$lang->block->lblHtml = 'HTML內容'; +$lang->block->dynamic = '最新動態'; +$lang->block->lblFlowchart = '流程圖'; $lang->block->params = new stdclass(); $lang->block->params->name = '參數名稱'; @@ -30,11 +31,11 @@ $lang->block->createBlock = '添加區塊'; $lang->block->editBlock = '編輯區塊'; $lang->block->ordersSaved = '排序已保存'; $lang->block->confirmRemoveBlock = '確定移除區塊【{0}】嗎?'; -$lang->block->emptyMessage = '這裡什麼也沒有。快來定製你的頁面!'; $lang->block->refresh = '刷新'; +$lang->block->hidden = '隱藏'; $lang->block->dynamicInfo = "%s, %s %s %s %s。"; -$lang->block->default['product']['1']['title'] = $lang->productCommon . '列表'; +$lang->block->default['product']['1']['title'] = '未關閉的' . $lang->productCommon; $lang->block->default['product']['1']['block'] = 'list'; $lang->block->default['product']['1']['grid'] = 8; @@ -49,7 +50,7 @@ $lang->block->default['product']['2']['params']['num'] = 15; $lang->block->default['product']['2']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['2']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = $lang->projectCommon . '列表'; +$lang->block->default['project']['1']['title'] = '進行中的' . $lang->projectCommon; $lang->block->default['project']['1']['block'] = 'list'; $lang->block->default['project']['1']['grid'] = 8; @@ -79,7 +80,7 @@ $lang->block->default['qa']['2']['grid'] = 4; $lang->block->default['qa']['2']['params']['num'] = 15; $lang->block->default['qa']['2']['params']['orderBy'] = 'id_desc'; -$lang->block->default['qa']['2']['params']['type'] = 'assignedTo'; +$lang->block->default['qa']['2']['params']['type'] = 'assigntome'; $lang->block->default['qa']['3']['title'] = '待測版本列表'; $lang->block->default['qa']['3']['block'] = 'testtask'; @@ -89,23 +90,23 @@ $lang->block->default['qa']['3']['params']['num'] = 15; $lang->block->default['qa']['3']['params']['orderBy'] = 'id_desc'; $lang->block->default['qa']['3']['params']['type'] = 'wait'; -$lang->block->default['my']['1'] = $lang->block->default['project']['1']; -$lang->block->default['my']['1']['source'] = 'project'; +$lang->block->default['my']['1']['title'] = '流程圖'; +$lang->block->default['my']['1']['block'] = 'flowchart'; +$lang->block->default['my']['1']['grid'] = 8; +$lang->block->default['my']['1']['source'] = ''; $lang->block->default['my']['2']['title'] = '最新動態'; $lang->block->default['my']['2']['block'] = 'dynamic'; $lang->block->default['my']['2']['grid'] = 4; $lang->block->default['my']['2']['source'] = ''; -$lang->block->default['my']['3'] = $lang->block->default['product']['1']; -$lang->block->default['my']['3']['source'] = 'product'; +$lang->block->default['my']['3'] = $lang->block->default['project']['1']; +$lang->block->default['my']['3']['source'] = 'project'; $lang->block->default['my']['4']['title'] = '我的待辦'; $lang->block->default['my']['4']['block'] = 'list'; $lang->block->default['my']['4']['grid'] = 4; $lang->block->default['my']['4']['source'] = 'todo'; $lang->block->default['my']['4']['params']['num'] = '20'; -$lang->block->default['my']['5']['title'] = '流程圖'; -$lang->block->default['my']['5']['block'] = 'flowchart'; -$lang->block->default['my']['5']['grid'] = 8; -$lang->block->default['my']['5']['source'] = ''; +$lang->block->default['my']['5'] = $lang->block->default['product']['1']; +$lang->block->default['my']['5']['source'] = 'product'; $lang->block->default['my']['6'] = $lang->block->default['project']['2']; $lang->block->default['my']['6']['source'] = 'project'; $lang->block->default['my']['7'] = $lang->block->default['qa']['1']; @@ -121,13 +122,17 @@ $lang->block->orderBy = '排序'; $lang->block->availableBlocks = new stdclass(); -$lang->block->availableBlocks->todo = '我的待辦'; -$lang->block->availableBlocks->task = '我的任務'; -$lang->block->availableBlocks->bug = '我的Bug'; -$lang->block->availableBlocks->case = '我的用例'; -$lang->block->availableBlocks->story = '我的需求'; -$lang->block->availableBlocks->product = $lang->productCommon . '列表'; -$lang->block->availableBlocks->project = $lang->projectCommon . '列表'; +$lang->block->availableBlocks->todo = '我的待辦'; +$lang->block->availableBlocks->task = '我的任務'; +$lang->block->availableBlocks->bug = '我的Bug'; +$lang->block->availableBlocks->case = '我的用例'; +$lang->block->availableBlocks->story = '我的需求'; +$lang->block->availableBlocks->product = $lang->productCommon . '列表'; +$lang->block->availableBlocks->project = $lang->projectCommon . '列表'; +$lang->block->availableBlocks->plan = '計劃列表'; +$lang->block->availableBlocks->release = '發佈列表'; +$lang->block->availableBlocks->build = '版本列表'; +$lang->block->availableBlocks->testtask = '測試版本列表'; $lang->block->moduleList['product'] = $lang->productCommon; $lang->block->moduleList['project'] = $lang->projectCommon; @@ -237,9 +242,12 @@ $lang->block->modules['qa']->moreLinkList->case = 'my|testcase|type=%s'; $lang->block->modules['qa']->moreLinkList->testtask = 'my|testtask|type=%s'; $lang->block->modules['todo']->moreLinkList = new stdclass(); $lang->block->modules['todo']->moreLinkList->list = 'my|todo|type=all'; +$lang->block->modules['common'] = new stdclass(); +$lang->block->modules['common']->moreLinkList = new stdclass(); +$lang->block->modules['common']->moreLinkList->dynamic = 'company|dynamic|'; -$lang->block->flowchart = array(); -$lang->block->flowchart[] = array('管理員', '維護公司', '添加用戶', '維護權限'); +$lang->block->flowchart = array(); +$lang->block->flowchart[] = array('管理員', '維護公司', '添加用戶', '維護權限'); $lang->block->flowchart[] = array('產品經理', '創建產品', '維護模組', '維護計劃', '維護需求', '創建發佈'); $lang->block->flowchart[] = array('項目經理', '創建項目', '維護團隊', '關聯產品', '關聯需求', '分解任務'); $lang->block->flowchart[] = array('研發人員', '領取任務和Bug', '更新狀態', '完成任務和Bug'); diff --git a/module/bug/lang/zh-tw.php b/module/bug/lang/zh-tw.php index ba30b7a772..391311d585 100644 --- a/module/bug/lang/zh-tw.php +++ b/module/bug/lang/zh-tw.php @@ -63,6 +63,7 @@ $lang->bug->lastEditedDateAB = '修改日期'; $lang->bug->lastEditedDate = '修改日期'; $lang->bug->fromCase = '來源用例'; $lang->bug->toCase = '生成用例'; +$lang->bug->colorTag = '顏色標籤'; /* 方法列表。*/ $lang->bug->index = '首頁'; @@ -72,6 +73,7 @@ $lang->bug->confirmBug = '確認'; $lang->bug->batchConfirm = '批量確認'; $lang->bug->edit = '編輯'; $lang->bug->batchEdit = '批量編輯'; +$lang->bug->batchChangeModule = '批量修改模組'; $lang->bug->batchClose = '批量關閉'; $lang->bug->assignTo = '指派'; $lang->bug->batchAssignTo = '批量指派'; @@ -86,11 +88,9 @@ $lang->bug->export = '導出數據'; $lang->bug->delete = '刪除'; $lang->bug->deleted = '已刪除'; $lang->bug->saveTemplate = '保存模板'; +$lang->bug->setPublic = '設為公共模板'; $lang->bug->deleteTemplate = '刪除模板'; $lang->bug->confirmStoryChange = '確認需求變動'; -$lang->bug->setPublic = '設為公共模板'; -$lang->bug->colorTag = '顏色標籤'; -$lang->bug->batchChangeModule = '批量修改模組'; /* 查詢條件列表。*/ $lang->bug->assignToMe = '指派給我'; diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index a6e49105cf..9d1f3d2233 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -65,10 +65,10 @@ $lang->duplicate = '已有相同標題的%s'; $lang->ipLimited = "抱歉,管理員限制當前IP登錄,請聯繫管理員解除限制。"; $lang->unfold = '+'; $lang->fold = '-'; -$lang->hideNotCheck = '頁面隱藏取消選中欄位'; $lang->homepage = '設為主頁'; $lang->tutorial = '新手教程'; -$lang->feature = '瞭解新功能'; +$lang->changeLog = '修改日誌'; +$lang->manual = '手冊'; $lang->customMenu = '自定義導航'; $lang->tutorialConfirm = '檢測到你尚未退出新手教程模式,是否現在退出?'; @@ -178,7 +178,6 @@ $lang->product = new stdclass(); $lang->product->menu = new stdclass(); $lang->product->menu->list = array('link' => '%s', 'fixed' => true); -$lang->product->menu->index = '首頁|product|index|locate=no'; $lang->product->menu->story = array('link' => '需求|product|browse|productID=%s', 'alias' => 'batchedit', 'subModule' => 'story'); $lang->product->menu->dynamic = '動態|product|dynamic|productID=%s'; $lang->product->menu->plan = array('link' => '計劃|productplan|browse|productID=%s', 'subModule' => 'productplan'); @@ -191,6 +190,7 @@ $lang->product->menu->view = array('link' => '概況|product|view|productID=% $lang->product->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s"; $lang->product->menu->create = array('link' => " 添加{$lang->productCommon}|product|create", 'float' => 'right'); $lang->product->menu->all = array('link' => " 所有{$lang->productCommon}|product|all|productID=%s", 'float' => 'right'); +$lang->product->menu->index = array('link' => "產品主頁|product|index|locate=no", 'float' => 'right'); $lang->story = new stdclass(); $lang->productplan = new stdclass(); @@ -207,7 +207,6 @@ $lang->project = new stdclass(); $lang->project->menu = new stdclass(); $lang->project->menu->list = array('link' => '%s', 'fixed' => true); -$lang->project->menu->index = '首頁|project|index|locate=no'; $lang->project->menu->task = array('link' => '任務|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban,tree'); $lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory'); $lang->project->menu->bug = 'Bug|project|bug|projectID=%s'; @@ -220,6 +219,7 @@ $lang->project->menu->product = $lang->productCommon . '|project|manageproduct $lang->project->menu->view = array('link' => '概況|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close'); $lang->project->menu->create = array('link' => " 添加{$lang->projectCommon}|project|create", 'float' => 'right'); $lang->project->menu->all = array('link' => " 所有{$lang->projectCommon}|project|all|status=undone&projectID=%s", 'float' => 'right'); +$lang->project->menu->index = array('link' => "項目主頁|project|index|locate=no", 'float' => 'right'); $lang->task = new stdclass(); $lang->build = new stdclass(); @@ -231,28 +231,28 @@ $lang->qa = new stdclass(); $lang->qa->menu = new stdclass(); $lang->qa->menu->product = array('link' => '%s', 'fixed' => true); -$lang->qa->menu->index = '首頁|qa|index|locate=no&productID=%s'; $lang->qa->menu->bug = array('link' => 'Bug|bug|browse|productID=%s'); $lang->qa->menu->testcase = array('link' => '用例|testcase|browse|productID=%s'); $lang->qa->menu->testtask = array('link' => '版本|testtask|browse|productID=%s'); +$lang->qa->menu->index = array('link' => "測試主頁|qa|index|locate=no&productID=%s", 'float' => 'right'); $lang->bug = new stdclass(); $lang->bug->menu = new stdclass(); $lang->bug->menu->product = array('link' => '%s', 'fixed' => true); -$lang->bug->menu->index = '首頁|qa|index|locate=no&productID=%s'; $lang->bug->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,confirmbug,assignto', 'subModule' => 'tree'); $lang->bug->menu->testcase = array('link' => '用例|testcase|browse|productID=%s'); $lang->bug->menu->testtask = array('link' => '版本|testtask|browse|productID=%s'); +$lang->bug->menu->index = array('link' => "測試主頁|qa|index|locate=no&productID=%s", 'float' => 'right'); $lang->testcase = new stdclass(); $lang->testcase->menu = new stdclass(); $lang->testcase->menu->product = array('link' => '%s', 'fixed' => true); -$lang->testcase->menu->index = '首頁|qa|index|locate=no&productID=%s'; $lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s'); $lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase', 'subModule' => 'tree'); $lang->testcase->menu->testtask = array('link' => '版本|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase'); +$lang->testcase->menu->index = array('link' => "測試主頁|qa|index|locate=no&productID=%s", 'float' => 'right'); $lang->testtask = new stdclass(); $lang->testtask->menu = $lang->testcase->menu; diff --git a/module/common/view/datatable.html.php b/module/common/view/datatable.html.php index bf7740c1ea..a8a6e1fa67 100644 --- a/module/common/view/datatable.html.php +++ b/module/common/view/datatable.html.php @@ -15,14 +15,14 @@ .panel > .datatable, .panel-body > .datatable {margin-bottom: 0;}