Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -1,2 +1,106 @@
|
||||
ALTER TABLE `zt_storyspec` CHANGE `title` `title` varchar(255) NOT NULL;
|
||||
update `zt_todo` set assignedTo = 'closed', assignedDate = closedDate where status = 'closed';
|
||||
DROP TABLE IF EXISTS `zt_webhookdatas`;
|
||||
|
||||
ALTER TABLE `zt_action` DROP INDEX `action`;
|
||||
ALTER TABLE `zt_action` ADD INDEX `date` (`date`);
|
||||
ALTER TABLE `zt_action` ADD INDEX `actor` (`actor`);
|
||||
ALTER TABLE `zt_action` ADD INDEX `project` (`project`);
|
||||
ALTER TABLE `zt_action` ADD INDEX `objectID` (`objectID`);
|
||||
|
||||
ALTER TABLE `zt_block` DROP INDEX `block`;
|
||||
ALTER TABLE `zt_block` ADD INDEX `account` (`account`);
|
||||
|
||||
ALTER TABLE `zt_bug` DROP INDEX `bug`;
|
||||
ALTER TABLE `zt_bug` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `project` (`project`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `status` (`status`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `plan` (`plan`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `story` (`story`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `case` (`case`);
|
||||
ALTER TABLE `zt_bug` ADD INDEX `assignedTo` (`assignedTo`);
|
||||
|
||||
ALTER TABLE `zt_build` DROP INDEX `build`;
|
||||
ALTER TABLE `zt_build` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_build` ADD INDEX `project` (`project`);
|
||||
|
||||
ALTER TABLE `zt_case` DROP INDEX `case`;
|
||||
ALTER TABLE `zt_case` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_case` ADD INDEX `story` (`story`);
|
||||
ALTER TABLE `zt_case` ADD INDEX `plan` (`plan`);
|
||||
|
||||
ALTER TABLE `zt_casestep` DROP INDEX `case`;
|
||||
ALTER TABLE `zt_casestep` ADD INDEX `case` (`case`);
|
||||
ALTER TABLE `zt_casestep` ADD INDEX `version` (`version`);
|
||||
|
||||
ALTER TABLE `zt_dept` DROP INDEX `dept`;
|
||||
ALTER TABLE `zt_dept` ADD INDEX `parent` (`parent`);
|
||||
ALTER TABLE `zt_dept` ADD INDEX `path` (`path`);
|
||||
|
||||
ALTER TABLE `zt_doc` DROP INDEX `doc`;
|
||||
ALTER TABLE `zt_doc` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_doc` ADD INDEX `project` (`project`);
|
||||
ALTER TABLE `zt_doc` ADD INDEX `lib` (`lib`);
|
||||
|
||||
ALTER TABLE `zt_doclib` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_doclib` ADD INDEX `project` (`project`);
|
||||
|
||||
ALTER TABLE `zt_extension` DROP INDEX `extension`;
|
||||
ALTER TABLE `zt_extension` ADD INDEX `name` (`name`);
|
||||
ALTER TABLE `zt_extension` ADD INDEX `installedTime` (`installedTime`);
|
||||
|
||||
ALTER TABLE `zt_file` DROP INDEX `file`;
|
||||
ALTER TABLE `zt_file` ADD INDEX `objectType` (`objectType`);
|
||||
ALTER TABLE `zt_file` ADD INDEX `objectID` (`objectID`);
|
||||
|
||||
ALTER TABLE `zt_module` DROP INDEX `module`;
|
||||
ALTER TABLE `zt_module` ADD INDEX `root` (`root`);
|
||||
ALTER TABLE `zt_module` ADD INDEX `type` (`type`);
|
||||
ALTER TABLE `zt_module` ADD INDEX `path` (`path`);
|
||||
|
||||
ALTER TABLE `zt_productplan` DROP INDEX `plan`;
|
||||
ALTER TABLE `zt_productplan` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_productplan` ADD INDEX `end` (`end`);
|
||||
|
||||
ALTER TABLE `zt_project` DROP INDEX `project`;
|
||||
ALTER TABLE `zt_project` ADD INDEX `parent` (`parent`);
|
||||
ALTER TABLE `zt_project` ADD INDEX `begin` (`begin`);
|
||||
ALTER TABLE `zt_project` ADD INDEX `end` (`end`);
|
||||
ALTER TABLE `zt_project` ADD INDEX `status` (`status`);
|
||||
ALTER TABLE `zt_project` ADD INDEX `order` (`order`);
|
||||
|
||||
ALTER TABLE `zt_release` ADD INDEX `product` (`product`);
|
||||
|
||||
ALTER TABLE `zt_story` DROP INDEX `story`;
|
||||
ALTER TABLE `zt_story` ADD INDEX `product` (`product`);
|
||||
ALTER TABLE `zt_story` ADD INDEX `status` (`status`);
|
||||
ALTER TABLE `zt_story` ADD INDEX `assignedTo` (`assignedTo`);
|
||||
|
||||
ALTER TABLE `zt_task` DROP INDEX `task`;
|
||||
ALTER TABLE `zt_task` ADD INDEX `project` (`project`);
|
||||
ALTER TABLE `zt_task` ADD INDEX `story` (`story`);
|
||||
ALTER TABLE `zt_task` ADD INDEX `assignedTo` (`assignedTo`);
|
||||
|
||||
ALTER TABLE `zt_testresult` DROP INDEX `testresult`;
|
||||
ALTER TABLE `zt_testresult` ADD INDEX `case` (`case`);
|
||||
ALTER TABLE `zt_testresult` ADD INDEX `version` (`version`);
|
||||
ALTER TABLE `zt_testresult` ADD INDEX `run` (`run`);
|
||||
|
||||
ALTER TABLE `zt_testsuite` ADD INDEX `product` (`product`);
|
||||
|
||||
ALTER TABLE `zt_testtask` ADD INDEX `product` (`product`);
|
||||
|
||||
ALTER TABLE `zt_todo` DROP INDEX `todo`;
|
||||
ALTER TABLE `zt_todo` ADD INDEX `account` (`account`);
|
||||
ALTER TABLE `zt_todo` ADD INDEX `assignedTo` (`assignedTo`);
|
||||
ALTER TABLE `zt_todo` ADD INDEX `finishedBy` (`finishedBy`);
|
||||
ALTER TABLE `zt_todo` ADD INDEX `date` (`date`);
|
||||
|
||||
ALTER TABLE `zt_user` DROP INDEX `user`;
|
||||
ALTER TABLE `zt_user` ADD INDEX `dept` (`dept`);
|
||||
ALTER TABLE `zt_user` ADD INDEX `email` (`email`);
|
||||
ALTER TABLE `zt_user` ADD INDEX `commiter` (`commiter`);
|
||||
|
||||
ALTER TABLE `zt_userquery` DROP INDEX `query`;
|
||||
ALTER TABLE `zt_userquery` ADD INDEX `account` (`account`);
|
||||
ALTER TABLE `zt_userquery` ADD INDEX `module` (`module`);
|
||||
|
||||
+213
-182
@@ -12,7 +12,10 @@ CREATE TABLE IF NOT EXISTS `zt_action` (
|
||||
`extra` text NOT NULL,
|
||||
`read` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `action` (`objectID`,`product`,`project`,`action`,`date`)
|
||||
KEY `date` (`date`),
|
||||
KEY `actor` (`actor`),
|
||||
KEY `project` (`project`),
|
||||
KEY `objectID` (`objectID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_block`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_block` (
|
||||
@@ -29,7 +32,7 @@ CREATE TABLE IF NOT EXISTS `zt_block` (
|
||||
`hidden` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `accountModuleOrder` (`account`,`module`,`order`),
|
||||
KEY `block` (`account`,`module`)
|
||||
KEY `account` (`account`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_branch`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_branch` (
|
||||
@@ -92,7 +95,13 @@ CREATE TABLE IF NOT EXISTS `zt_bug` (
|
||||
`lastEditedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `bug` (`product`,`module`,`project`,`assignedTo`)
|
||||
KEY `product` (`product`),
|
||||
KEY `project` (`project`),
|
||||
KEY `status` (`status`),
|
||||
KEY `plan` (`plan`),
|
||||
KEY `story` (`story`),
|
||||
KEY `case` (`case`),
|
||||
KEY `assignedTo` (`assignedTo`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_build`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_build` (
|
||||
@@ -110,7 +119,8 @@ CREATE TABLE IF NOT EXISTS `zt_build` (
|
||||
`desc` text NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `build` (`product`,`project`)
|
||||
KEY `product` (`product`),
|
||||
KEY `project` (`project`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_burn`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_burn` (
|
||||
@@ -161,7 +171,9 @@ CREATE TABLE IF NOT EXISTS `zt_case` (
|
||||
`lastRunDate` datetime NOT NULL,
|
||||
`lastRunResult` char(30) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `case` (`product`,`module`,`story`)
|
||||
KEY `product` (`product`),
|
||||
KEY `story` (`story`),
|
||||
KEY `plan` (`plan`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_casestep`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_casestep` (
|
||||
@@ -173,7 +185,8 @@ CREATE TABLE IF NOT EXISTS `zt_casestep` (
|
||||
`desc` text NOT NULL,
|
||||
`expect` text NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `case` (`case`,`version`)
|
||||
KEY `case` (`case`),
|
||||
KEY `version` (`version`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_company`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_company` (
|
||||
@@ -242,7 +255,8 @@ CREATE TABLE IF NOT EXISTS `zt_dept` (
|
||||
`function` char(255) NOT NULL default '',
|
||||
`manager` char(30) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `dept` (`parent`,`path`)
|
||||
KEY `parent` (`parent`),
|
||||
KEY `path` (`path`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_doc`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_doc` (
|
||||
@@ -266,7 +280,9 @@ CREATE TABLE IF NOT EXISTS `zt_doc` (
|
||||
`version` smallint(5) unsigned NOT NULL DEFAULT '1',
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `doc` (`product`,`project`)
|
||||
KEY `product` (`product`),
|
||||
KEY `project` (`project`),
|
||||
KEY `lib` (`lib`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_doccontent`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_doccontent` (
|
||||
@@ -294,7 +310,9 @@ CREATE TABLE IF NOT EXISTS `zt_doclib` (
|
||||
`collector` text NOT NULL,
|
||||
`order` tinyint(5) unsigned NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`)
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `product` (`product`),
|
||||
KEY `project` (`project`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_effort`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_effort` (
|
||||
@@ -331,7 +349,8 @@ CREATE TABLE IF NOT EXISTS `zt_extension` (
|
||||
`status` varchar(20) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `code` (`code`),
|
||||
KEY `extension` (`name`,`installedTime`)
|
||||
KEY `name` (`name`),
|
||||
KEY `installedTime` (`installedTime`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_file`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_file` (
|
||||
@@ -348,7 +367,8 @@ CREATE TABLE IF NOT EXISTS `zt_file` (
|
||||
`extra` varchar(255) NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `file` (`objectType`,`objectID`)
|
||||
KEY `objectType` (`objectType`),
|
||||
KEY `objectID` (`objectID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_group`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_group` (
|
||||
@@ -377,21 +397,6 @@ CREATE TABLE IF NOT EXISTS `zt_history` (
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `action` (`action`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_mailqueue`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_mailqueue` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`toList` varchar(255) NOT NULL,
|
||||
`ccList` varchar(255) NOT NULL,
|
||||
`subject` varchar(255) NOT NULL,
|
||||
`body` text NOT NULL,
|
||||
`addedBy` char(30) NOT NULL,
|
||||
`addedDate` datetime NOT NULL,
|
||||
`sendTime` datetime NOT NULL,
|
||||
`status` varchar(10) NOT NULL DEFAULT 'wait',
|
||||
`failReason` text NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `sendTime` (`sendTime`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_module`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_module` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
@@ -408,7 +413,9 @@ CREATE TABLE IF NOT EXISTS `zt_module` (
|
||||
`short` varchar(30) NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `module` (`root`,`type`,`path`)
|
||||
KEY `root` (`root`),
|
||||
KEY `type` (`type`),
|
||||
KEY `path` (`path`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_notify`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_notify` (
|
||||
@@ -460,7 +467,8 @@ CREATE TABLE IF NOT EXISTS `zt_productplan` (
|
||||
`order` text NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `plan` (`product`,`end`)
|
||||
KEY `product` (`product`),
|
||||
KEY `end` (`end`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_project`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_project` (
|
||||
@@ -495,7 +503,11 @@ CREATE TABLE IF NOT EXISTS `zt_project` (
|
||||
`order` mediumint(8) unsigned NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `project` (`parent`,`begin`,`end`,`status`,`order`)
|
||||
KEY `parent` (`parent`),
|
||||
KEY `begin` (`begin`),
|
||||
KEY `end` (`end`),
|
||||
KEY `status` (`status`),
|
||||
KEY `order` (`order`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_projectproduct`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_projectproduct` (
|
||||
@@ -530,6 +542,7 @@ CREATE TABLE IF NOT EXISTS `zt_release` (
|
||||
`status` varchar(20) NOT NULL default 'normal',
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `product` (`product`),
|
||||
KEY `build` (`build`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_story`;
|
||||
@@ -569,7 +582,9 @@ CREATE TABLE IF NOT EXISTS `zt_story` (
|
||||
`version` smallint(6) NOT NULL default '1',
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `story` (`product`,`module`,`status`,`assignedTo`)
|
||||
KEY `product` (`product`),
|
||||
KEY `status` (`status`),
|
||||
KEY `assignedTo` (`assignedTo`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_storyspec`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_storyspec` (
|
||||
@@ -632,7 +647,9 @@ CREATE TABLE IF NOT EXISTS `zt_task` (
|
||||
`lastEditedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `task` (`project`,`module`,`story`,`assignedTo`)
|
||||
KEY `project` (`project`),
|
||||
KEY `story` (`story`),
|
||||
KEY `assignedTo` (`assignedTo`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_taskestimate`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_taskestimate` (
|
||||
@@ -698,7 +715,9 @@ CREATE TABLE IF NOT EXISTS `zt_testresult` (
|
||||
`lastRunner` varchar(30) NOT NULL,
|
||||
`date` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `testresult` (`case`,`version`, `run`)
|
||||
KEY `case` (`case`),
|
||||
KEY `version` (`version`),
|
||||
KEY `run` (`run`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_testrun`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_testrun` (
|
||||
@@ -726,7 +745,8 @@ CREATE TABLE IF NOT EXISTS `zt_testsuite` (
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
`lastEditedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `product` (`product`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_testtask`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_testtask` (
|
||||
@@ -745,6 +765,7 @@ CREATE TABLE IF NOT EXISTS `zt_testtask` (
|
||||
`status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait',
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `product` (`product`),
|
||||
KEY `build` (`build`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_todo`;
|
||||
@@ -771,7 +792,10 @@ CREATE TABLE IF NOT EXISTS `zt_todo` (
|
||||
`closedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`closedDate` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `todo` (`account`,`date`)
|
||||
KEY `account` (`account`),
|
||||
KEY `assignedTo` (`assignedTo`),
|
||||
KEY `finishedBy` (`finishedBy`),
|
||||
KEY `date` (`date`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_user`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_user` (
|
||||
@@ -808,7 +832,9 @@ CREATE TABLE IF NOT EXISTS `zt_user` (
|
||||
`deleted` enum('0','1') NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `account` (`account`),
|
||||
KEY `user` (`dept`,`email`,`commiter`)
|
||||
KEY `dept` (`dept`),
|
||||
KEY `email` (`email`),
|
||||
KEY `commiter` (`commiter`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_usercontact`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_usercontact` (
|
||||
@@ -835,7 +861,8 @@ CREATE TABLE IF NOT EXISTS `zt_userquery` (
|
||||
`sql` text NOT NULL,
|
||||
`shortcut` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `query` (`account`, `module`)
|
||||
KEY `account` (`account`),
|
||||
KEY `module` (`module`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_usertpl`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_usertpl` (
|
||||
@@ -883,18 +910,6 @@ CREATE TABLE IF NOT EXISTS `zt_webhook` (
|
||||
`deleted` enum('0', '1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_webhookdatas`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_webhookdatas` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`webhook` mediumint(8) unsigned NOT NULL,
|
||||
`action` mediumint(8) unsigned NOT NULL,
|
||||
`data` text NOT NULL,
|
||||
`status` enum('wait', 'sended') NOT NULL DEFAULT 'wait',
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
PRIMARY KEY `id` (`id`),
|
||||
UNIQUE KEY `uniq` (`webhook`, `action`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_log`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_log` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
@@ -1326,17 +1341,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(1, 'testtask', 'report'),
|
||||
(1, 'testtask', 'unlinkcase'),
|
||||
(1, 'testtask', 'view'),
|
||||
(1, 'todo', 'batchCreate'),
|
||||
(1, 'todo', 'batchEdit'),
|
||||
(1, 'todo', 'batchFinish'),
|
||||
(1, 'todo', 'create'),
|
||||
(1, 'todo', 'createCycle'),
|
||||
(1, 'todo', 'delete'),
|
||||
(1, 'todo', 'edit'),
|
||||
(1, 'todo', 'export'),
|
||||
(1, 'todo', 'finish'),
|
||||
(1, 'todo', 'import2Today'),
|
||||
(1, 'todo', 'view'),
|
||||
(1, 'todo', 'activate',
|
||||
(1, 'todo', 'assignTo',
|
||||
(1, 'todo', 'batchClose',
|
||||
(1, 'todo', 'batchCreate',
|
||||
(1, 'todo', 'batchEdit',
|
||||
(1, 'todo', 'batchFinish',
|
||||
(1, 'todo', 'create',
|
||||
(1, 'todo', 'createCycle',
|
||||
(1, 'todo', 'close',
|
||||
(1, 'todo', 'delete',
|
||||
(1, 'todo', 'edit',
|
||||
(1, 'todo', 'export',
|
||||
(1, 'todo', 'finish',
|
||||
(1, 'todo', 'import2Today',
|
||||
(1, 'todo', 'view',
|
||||
(1, 'tree', 'browse'),
|
||||
(1, 'tree', 'browseTask'),
|
||||
(1, 'tree', 'delete'),
|
||||
@@ -1522,20 +1541,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(2, 'testtask', 'index'),
|
||||
(2, 'testtask', 'results'),
|
||||
(2, 'testtask', 'view'),
|
||||
(2, 'todo', 'batchCreate'),
|
||||
(2, 'todo', 'batchEdit'),
|
||||
(2, 'todo', 'batchFinish'),
|
||||
(2, 'todo', 'create'),
|
||||
(2, 'todo', 'createCycle'),
|
||||
(2, 'todo', 'delete'),
|
||||
(2, 'todo', 'edit'),
|
||||
(2, 'todo', 'export'),
|
||||
(2, 'todo', 'finish'),
|
||||
(2, 'todo', 'import2Today'),
|
||||
(2, 'todo', 'view'),
|
||||
(2, 'todo', 'assignTo'),
|
||||
(2, 'todo', 'activate'),
|
||||
(2, 'todo', 'close'),
|
||||
(2, 'todo', 'activate',
|
||||
(2, 'todo', 'assignTo',
|
||||
(2, 'todo', 'batchClose',
|
||||
(2, 'todo', 'batchCreate',
|
||||
(2, 'todo', 'batchEdit',
|
||||
(2, 'todo', 'batchFinish',
|
||||
(2, 'todo', 'create',
|
||||
(2, 'todo', 'createCycle',
|
||||
(2, 'todo', 'close',
|
||||
(2, 'todo', 'delete',
|
||||
(2, 'todo', 'edit',
|
||||
(2, 'todo', 'export',
|
||||
(2, 'todo', 'finish',
|
||||
(2, 'todo', 'import2Today',
|
||||
(2, 'todo', 'view',
|
||||
(2, 'user', 'bug'),
|
||||
(2, 'user', 'deleteContacts'),
|
||||
(2, 'user', 'dynamic'),
|
||||
@@ -1742,17 +1762,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(3, 'testtask', 'report'),
|
||||
(3, 'testtask', 'unlinkcase'),
|
||||
(3, 'testtask', 'view'),
|
||||
(3, 'todo', 'batchCreate'),
|
||||
(3, 'todo', 'batchEdit'),
|
||||
(3, 'todo', 'batchFinish'),
|
||||
(3, 'todo', 'create'),
|
||||
(3, 'todo', 'createCycle'),
|
||||
(3, 'todo', 'delete'),
|
||||
(3, 'todo', 'edit'),
|
||||
(3, 'todo', 'export'),
|
||||
(3, 'todo', 'finish'),
|
||||
(3, 'todo', 'import2Today'),
|
||||
(3, 'todo', 'view'),
|
||||
(3, 'todo', 'activate',
|
||||
(3, 'todo', 'assignTo',
|
||||
(3, 'todo', 'batchClose',
|
||||
(3, 'todo', 'batchCreate',
|
||||
(3, 'todo', 'batchEdit',
|
||||
(3, 'todo', 'batchFinish',
|
||||
(3, 'todo', 'create',
|
||||
(3, 'todo', 'createCycle',
|
||||
(3, 'todo', 'close',
|
||||
(3, 'todo', 'delete',
|
||||
(3, 'todo', 'edit',
|
||||
(3, 'todo', 'export',
|
||||
(3, 'todo', 'finish',
|
||||
(3, 'todo', 'import2Today',
|
||||
(3, 'todo', 'view',
|
||||
(3, 'user', 'bug'),
|
||||
(3, 'user', 'deleteContacts'),
|
||||
(3, 'user', 'dynamic'),
|
||||
@@ -1969,20 +1993,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(4, 'testtask', 'index'),
|
||||
(4, 'testtask', 'results'),
|
||||
(4, 'testtask', 'view'),
|
||||
(4, 'todo', 'batchCreate'),
|
||||
(4, 'todo', 'batchEdit'),
|
||||
(4, 'todo', 'batchFinish'),
|
||||
(4, 'todo', 'create'),
|
||||
(4, 'todo', 'createCycle'),
|
||||
(4, 'todo', 'delete'),
|
||||
(4, 'todo', 'edit'),
|
||||
(4, 'todo', 'export'),
|
||||
(4, 'todo', 'finish'),
|
||||
(4, 'todo', 'import2Today'),
|
||||
(4, 'todo', 'view'),
|
||||
(4, 'todo', 'assignTo'),
|
||||
(4, 'todo', 'activate'),
|
||||
(4, 'todo', 'close'),
|
||||
(4, 'todo', 'activate',
|
||||
(4, 'todo', 'assignTo',
|
||||
(4, 'todo', 'batchClose',
|
||||
(4, 'todo', 'batchCreate',
|
||||
(4, 'todo', 'batchEdit',
|
||||
(4, 'todo', 'batchFinish',
|
||||
(4, 'todo', 'create',
|
||||
(4, 'todo', 'createCycle',
|
||||
(4, 'todo', 'close',
|
||||
(4, 'todo', 'delete',
|
||||
(4, 'todo', 'edit',
|
||||
(4, 'todo', 'export',
|
||||
(4, 'todo', 'finish',
|
||||
(4, 'todo', 'import2Today',
|
||||
(4, 'todo', 'view',
|
||||
(4, 'tree', 'browse'),
|
||||
(4, 'tree', 'browseTask'),
|
||||
(4, 'tree', 'delete'),
|
||||
@@ -2232,20 +2257,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(5, 'testtask', 'index'),
|
||||
(5, 'testtask', 'results'),
|
||||
(5, 'testtask', 'view'),
|
||||
(5, 'todo', 'batchCreate'),
|
||||
(5, 'todo', 'batchEdit'),
|
||||
(5, 'todo', 'batchFinish'),
|
||||
(5, 'todo', 'create'),
|
||||
(5, 'todo', 'createCycle'),
|
||||
(5, 'todo', 'delete'),
|
||||
(5, 'todo', 'edit'),
|
||||
(5, 'todo', 'export'),
|
||||
(5, 'todo', 'finish'),
|
||||
(5, 'todo', 'import2Today'),
|
||||
(5, 'todo', 'view'),
|
||||
(5, 'todo', 'assignTo'),
|
||||
(5, 'todo', 'activate'),
|
||||
(5, 'todo', 'close'),
|
||||
(5, 'todo', 'activate',
|
||||
(5, 'todo', 'assignTo',
|
||||
(5, 'todo', 'batchClose',
|
||||
(5, 'todo', 'batchCreate',
|
||||
(5, 'todo', 'batchEdit',
|
||||
(5, 'todo', 'batchFinish',
|
||||
(5, 'todo', 'create',
|
||||
(5, 'todo', 'createCycle',
|
||||
(5, 'todo', 'close',
|
||||
(5, 'todo', 'delete',
|
||||
(5, 'todo', 'edit',
|
||||
(5, 'todo', 'export',
|
||||
(5, 'todo', 'finish',
|
||||
(5, 'todo', 'import2Today',
|
||||
(5, 'todo', 'view',
|
||||
(5, 'tree', 'browse'),
|
||||
(5, 'tree', 'browseTask'),
|
||||
(5, 'tree', 'delete'),
|
||||
@@ -2467,20 +2493,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(6, 'testtask', 'index'),
|
||||
(6, 'testtask', 'results'),
|
||||
(6, 'testtask', 'view'),
|
||||
(6, 'todo', 'batchCreate'),
|
||||
(6, 'todo', 'batchEdit'),
|
||||
(6, 'todo', 'batchFinish'),
|
||||
(6, 'todo', 'create'),
|
||||
(6, 'todo', 'createCycle'),
|
||||
(6, 'todo', 'delete'),
|
||||
(6, 'todo', 'edit'),
|
||||
(6, 'todo', 'export'),
|
||||
(6, 'todo', 'finish'),
|
||||
(6, 'todo', 'import2Today'),
|
||||
(6, 'todo', 'view'),
|
||||
(6, 'todo', 'assignTo'),
|
||||
(6, 'todo', 'activate'),
|
||||
(6, 'todo', 'close'),
|
||||
(6, 'todo', 'activate',
|
||||
(6, 'todo', 'assignTo',
|
||||
(6, 'todo', 'batchClose',
|
||||
(6, 'todo', 'batchCreate',
|
||||
(6, 'todo', 'batchEdit',
|
||||
(6, 'todo', 'batchFinish',
|
||||
(6, 'todo', 'create',
|
||||
(6, 'todo', 'createCycle',
|
||||
(6, 'todo', 'close',
|
||||
(6, 'todo', 'delete',
|
||||
(6, 'todo', 'edit',
|
||||
(6, 'todo', 'export',
|
||||
(6, 'todo', 'finish',
|
||||
(6, 'todo', 'import2Today',
|
||||
(6, 'todo', 'view',
|
||||
(6, 'tree', 'browse'),
|
||||
(6, 'tree', 'browseTask'),
|
||||
(6, 'tree', 'delete'),
|
||||
@@ -2714,20 +2741,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(7, 'testtask', 'index'),
|
||||
(7, 'testtask', 'results'),
|
||||
(7, 'testtask', 'view'),
|
||||
(7, 'todo', 'batchCreate'),
|
||||
(7, 'todo', 'batchEdit'),
|
||||
(7, 'todo', 'batchFinish'),
|
||||
(7, 'todo', 'create'),
|
||||
(7, 'todo', 'createCycle'),
|
||||
(7, 'todo', 'delete'),
|
||||
(7, 'todo', 'edit'),
|
||||
(7, 'todo', 'export'),
|
||||
(7, 'todo', 'finish'),
|
||||
(7, 'todo', 'import2Today'),
|
||||
(7, 'todo', 'view'),
|
||||
(7, 'todo', 'assignTo'),
|
||||
(7, 'todo', 'activate'),
|
||||
(7, 'todo', 'close'),
|
||||
(7, 'todo', 'activate',
|
||||
(7, 'todo', 'assignTo',
|
||||
(7, 'todo', 'batchClose',
|
||||
(7, 'todo', 'batchCreate',
|
||||
(7, 'todo', 'batchEdit',
|
||||
(7, 'todo', 'batchFinish',
|
||||
(7, 'todo', 'create',
|
||||
(7, 'todo', 'createCycle',
|
||||
(7, 'todo', 'close',
|
||||
(7, 'todo', 'delete',
|
||||
(7, 'todo', 'edit',
|
||||
(7, 'todo', 'export',
|
||||
(7, 'todo', 'finish',
|
||||
(7, 'todo', 'import2Today',
|
||||
(7, 'todo', 'view',
|
||||
(7, 'tree', 'browse'),
|
||||
(7, 'tree', 'browseTask'),
|
||||
(7, 'tree', 'delete'),
|
||||
@@ -2972,20 +3000,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(8, 'testtask', 'report'),
|
||||
(8, 'testtask', 'unlinkcase'),
|
||||
(8, 'testtask', 'view'),
|
||||
(8, 'todo', 'batchCreate'),
|
||||
(8, 'todo', 'batchEdit'),
|
||||
(8, 'todo', 'batchFinish'),
|
||||
(8, 'todo', 'create'),
|
||||
(8, 'todo', 'createCycle'),
|
||||
(8, 'todo', 'delete'),
|
||||
(8, 'todo', 'edit'),
|
||||
(8, 'todo', 'export'),
|
||||
(8, 'todo', 'finish'),
|
||||
(8, 'todo', 'import2Today'),
|
||||
(8, 'todo', 'view'),
|
||||
(8, 'todo', 'assignTo'),
|
||||
(8, 'todo', 'activate'),
|
||||
(8, 'todo', 'close'),
|
||||
(8, 'todo', 'activate',
|
||||
(8, 'todo', 'assignTo',
|
||||
(8, 'todo', 'batchClose',
|
||||
(8, 'todo', 'batchCreate',
|
||||
(8, 'todo', 'batchEdit',
|
||||
(8, 'todo', 'batchFinish',
|
||||
(8, 'todo', 'create',
|
||||
(8, 'todo', 'createCycle',
|
||||
(8, 'todo', 'close',
|
||||
(8, 'todo', 'delete',
|
||||
(8, 'todo', 'edit',
|
||||
(8, 'todo', 'export',
|
||||
(8, 'todo', 'finish',
|
||||
(8, 'todo', 'import2Today',
|
||||
(8, 'todo', 'view',
|
||||
(8, 'tree', 'browse'),
|
||||
(8, 'tree', 'browseTask'),
|
||||
(8, 'tree', 'delete'),
|
||||
@@ -3143,20 +3172,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(9, 'testtask', 'index'),
|
||||
(9, 'testtask', 'results'),
|
||||
(9, 'testtask', 'view'),
|
||||
(9, 'todo', 'batchCreate'),
|
||||
(9, 'todo', 'batchEdit'),
|
||||
(9, 'todo', 'batchFinish'),
|
||||
(9, 'todo', 'create'),
|
||||
(9, 'todo', 'createCycle'),
|
||||
(9, 'todo', 'delete'),
|
||||
(9, 'todo', 'edit'),
|
||||
(9, 'todo', 'export'),
|
||||
(9, 'todo', 'finish'),
|
||||
(9, 'todo', 'import2Today'),
|
||||
(9, 'todo', 'view'),
|
||||
(9, 'todo', 'assignTo'),
|
||||
(9, 'todo', 'activate'),
|
||||
(9, 'todo', 'close'),
|
||||
(9, 'todo', 'activate',
|
||||
(9, 'todo', 'assignTo',
|
||||
(9, 'todo', 'batchClose',
|
||||
(9, 'todo', 'batchCreate',
|
||||
(9, 'todo', 'batchEdit',
|
||||
(9, 'todo', 'batchFinish',
|
||||
(9, 'todo', 'create',
|
||||
(9, 'todo', 'createCycle',
|
||||
(9, 'todo', 'close',
|
||||
(9, 'todo', 'delete',
|
||||
(9, 'todo', 'edit',
|
||||
(9, 'todo', 'export',
|
||||
(9, 'todo', 'finish',
|
||||
(9, 'todo', 'import2Today',
|
||||
(9, 'todo', 'view',
|
||||
(9, 'user', 'batchCreate'),
|
||||
(9, 'user', 'batchEdit'),
|
||||
(9, 'user', 'bug'),
|
||||
@@ -3262,20 +3292,21 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(10, 'testsuite', 'index'),
|
||||
(10, 'testsuite', 'browse'),
|
||||
(10, 'testsuite', 'view'),
|
||||
(10, 'todo', 'batchCreate'),
|
||||
(10, 'todo', 'batchEdit'),
|
||||
(10, 'todo', 'batchFinish'),
|
||||
(10, 'todo', 'create'),
|
||||
(10, 'todo', 'createCycle'),
|
||||
(10, 'todo', 'delete'),
|
||||
(10, 'todo', 'edit'),
|
||||
(10, 'todo', 'export'),
|
||||
(10, 'todo', 'finish'),
|
||||
(10, 'todo', 'import2Today'),
|
||||
(10, 'todo', 'view'),
|
||||
(10, 'todo', 'assignTo'),
|
||||
(10, 'todo', 'activate'),
|
||||
(10, 'todo', 'close'),
|
||||
(10, 'todo', 'activate',
|
||||
(10, 'todo', 'assignTo',
|
||||
(10, 'todo', 'batchClose',
|
||||
(10, 'todo', 'batchCreate',
|
||||
(10, 'todo', 'batchEdit',
|
||||
(10, 'todo', 'batchFinish',
|
||||
(10, 'todo', 'create',
|
||||
(10, 'todo', 'createCycle',
|
||||
(10, 'todo', 'close',
|
||||
(10, 'todo', 'delete',
|
||||
(10, 'todo', 'edit',
|
||||
(10, 'todo', 'export',
|
||||
(10, 'todo', 'finish',
|
||||
(10, 'todo', 'import2Today',
|
||||
(10, 'todo', 'view',
|
||||
(10, 'user', 'bug'),
|
||||
(10, 'user', 'dynamic'),
|
||||
(10, 'user', 'profile'),
|
||||
|
||||
@@ -62,7 +62,10 @@ function refreshBlock($panel, afterRefresh)
|
||||
var $data = $(data);
|
||||
if($data.hasClass('panel')) $panel.empty().append($data.children());
|
||||
else if($panel.find('#assigntomeBlock').length) $panel.find('#assigntomeBlock').empty().append($data.children());
|
||||
else $panel.find('.panel-body').replaceWith($data);
|
||||
else
|
||||
{
|
||||
$panel.find('.panel-body,.empty-tip').replaceWith($data);
|
||||
}
|
||||
if($.isFunction(afterRefresh))
|
||||
{
|
||||
afterRefresh.call(this,
|
||||
|
||||
@@ -1 +1 @@
|
||||
#mainContent {min-height: 300px}
|
||||
#mainContent {min-height: 400px}
|
||||
|
||||
@@ -265,7 +265,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
|
||||
<tbody>
|
||||
<tr class='text-top'>
|
||||
<th class='w-80px'><?php echo $lang->bug->linkBug;?></th>
|
||||
<td><?php echo html::a($this->createLink('bug', 'linkBugs', "bugID=$bug->id", '', true), $lang->bug->linkBugs, '', "data-toggle='modal' data-type='iframe' data-width='95%'");?></td>
|
||||
<td><?php echo html::a($this->createLink('bug', 'linkBugs', "bugID=$bug->id", '', true), $lang->bug->linkBugs, '', "class='text-primary' data-toggle='modal' data-type='iframe' data-width='95%'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div id='mainContent' class='space'>
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<span class='label label-id'><?php echo $bug->id;?></span>
|
||||
@@ -23,7 +23,7 @@
|
||||
<?php if($bugs2Link):?>
|
||||
<form class='main-table' method='post' data-ride='table' target='hiddenwin' id='linkBugsForm'>
|
||||
<table class='table' id='bugList'>
|
||||
<thead>
|
||||
<thead class='hl-gray'>
|
||||
<tr>
|
||||
<th class="c-id">
|
||||
<div class="checkbox-primary check-all" title="<?php echo $lang->selectAll?>">
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
<?php if($extView = $this->getExtViewFile(__FILE__)){include $extView; return helper::cd();}?>
|
||||
<style>
|
||||
.histories-list > li{word-break: break-all; word-wrap: break-word;}
|
||||
</style>
|
||||
<?php if(!empty($blockHistory)):?>
|
||||
<div class="panel block-histories histories" data-textDiff="<?php echo $lang->action->textDiff;?>" data-original="<?php echo $lang->action->original;?>">
|
||||
<?php else:?>
|
||||
<div class="detail histories" id='actionbox' data-textDiff="<?php echo $lang->action->textDiff;?>" data-original="<?php echo $lang->action->original;?>">
|
||||
<?php endif;?>
|
||||
<style>.histories-list > li{word-break: break-all; word-wrap: break-word;}</style>
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
var diffButton = '<button type="button" class="btn btn-mini btn-icon btn-strip"><i class="icon icon-code icon-sm"></i></button>';
|
||||
var newBoxID = ''
|
||||
var oldBoxID = ''
|
||||
var newBoxID = '';
|
||||
var oldBoxID = '';
|
||||
$('blockquote.textdiff').each(function()
|
||||
{
|
||||
newBoxID = $(this).parent().attr('id');
|
||||
|
||||
@@ -78,6 +78,7 @@ $(document).ready(function()
|
||||
{
|
||||
this.$datatable.find('.table').addClass('has-sort-head');
|
||||
}
|
||||
this.$datatable.find('.sparkline').sparkline();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ $(function()
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 90 * 1000);
|
||||
}, 5 * 60 * 1000);
|
||||
})
|
||||
|
||||
<?php if(!empty($config->sso->redirect)):?>
|
||||
|
||||
@@ -71,6 +71,5 @@ $config->dev->tableMap['usertpl'] = 'user-tpl';
|
||||
$config->dev->tableMap['history'] = 'action-history';
|
||||
$config->dev->tableMap['lang'] = 'custom';
|
||||
$config->dev->tableMap['config'] = 'custom';
|
||||
$config->dev->tableMap['mailqueue'] = 'mail';
|
||||
$config->dev->tableMap['module'] = 'tree';
|
||||
$config->dev->tableMap['suitecase'] = 'testcase';
|
||||
|
||||
@@ -82,7 +82,6 @@ $lang->dev->tableList['testsuite'] = 'Test Suite';
|
||||
$lang->dev->tableList['tree'] = 'Module Tree';
|
||||
$lang->dev->tableList['upgrade'] = 'Update';
|
||||
$lang->dev->tableList['cron'] = 'Scheduled Task';
|
||||
$lang->dev->tableList['mailqueue'] = 'Mail Queue';
|
||||
$lang->dev->tableList['datatable'] = 'Data Table';
|
||||
$lang->dev->tableList['block'] = 'Block';
|
||||
$lang->dev->tableList['branch'] = 'Branch';
|
||||
@@ -93,7 +92,6 @@ $lang->dev->tableList['suitecase'] = 'Suite Case';
|
||||
$lang->dev->tableList['score'] = 'Score';
|
||||
$lang->dev->tableList['entry'] = 'Entry';
|
||||
$lang->dev->tableList['webhook'] = 'WebHook';
|
||||
$lang->dev->tableList['webhookdatas'] = 'WebHookDatas';
|
||||
$lang->dev->tableList['log'] = 'Log';
|
||||
$lang->dev->tableList['message'] = 'Message';
|
||||
$lang->dev->tableList['notify'] = 'Notify';
|
||||
|
||||
@@ -82,7 +82,6 @@ $lang->dev->tableList['testsuite'] = '测试套件';
|
||||
$lang->dev->tableList['tree'] = '模块关系';
|
||||
$lang->dev->tableList['upgrade'] = '更新';
|
||||
$lang->dev->tableList['cron'] = '定时任务';
|
||||
$lang->dev->tableList['mailqueue'] = '邮件队列';
|
||||
$lang->dev->tableList['datatable'] = '数据表格';
|
||||
$lang->dev->tableList['block'] = '区块';
|
||||
$lang->dev->tableList['branch'] = '平台/分支';
|
||||
@@ -93,7 +92,6 @@ $lang->dev->tableList['suitecase'] = '套件用例';
|
||||
$lang->dev->tableList['score'] = '积分';
|
||||
$lang->dev->tableList['entry'] = '应用';
|
||||
$lang->dev->tableList['webhook'] = 'WebHook';
|
||||
$lang->dev->tableList['webhookdatas'] = 'WebHook数据';
|
||||
$lang->dev->tableList['log'] = '接口日志';
|
||||
$lang->dev->tableList['message'] = '消息';
|
||||
$lang->dev->tableList['notify'] = '通知';
|
||||
|
||||
@@ -44,6 +44,7 @@ $lang->doc->acl = '權限';
|
||||
$lang->doc->groups = '分組';
|
||||
$lang->doc->users = '用戶';
|
||||
$lang->doc->item = '項';
|
||||
$lang->doc->num = '文檔數量';
|
||||
$lang->doc->searchResult = '搜索結果';
|
||||
|
||||
$lang->doc->moduleDoc = '按模組瀏覽';
|
||||
|
||||
@@ -48,7 +48,7 @@ class docModel extends model
|
||||
|
||||
$selectHtml .= "<div class='btn-group angle-btn'>";
|
||||
$selectHtml .= "<div class='btn-group'>";
|
||||
$selectHtml .= "<a data-toggle='dropdown' class='btn'>" . $mainLib . " <span class='caret'></span></a>";
|
||||
$selectHtml .= "<a data-toggle='dropdown' class='btn btn-limit' title=$mainLib>" . $mainLib . " <span class='caret'></span></a>";
|
||||
$selectHtml .= "<ul class='dropdown-menu'>";
|
||||
foreach($this->lang->doc->fastMenuList as $key => $fastMenu)
|
||||
{
|
||||
@@ -68,12 +68,13 @@ class docModel extends model
|
||||
if($type == 'project') $currentLib = $projectID;
|
||||
if($currentLib)
|
||||
{
|
||||
$allLibGroups = $this->getAllLibGroups();
|
||||
$currentGroups = $allLibGroups[$type];
|
||||
$allLibGroups = $this->getAllLibGroups();
|
||||
$currentGroups = $allLibGroups[$type];
|
||||
$currentLibName = is_array($currentGroups[$currentLib]) ? $currentGroups[$currentLib]['name'] : $currentGroups[$currentLib];
|
||||
|
||||
$selectHtml .= "<div class='btn-group angle-btn'>";
|
||||
$selectHtml .= "<div class='btn-group'>";
|
||||
$selectHtml .= '<a data-toggle="dropdown" class="btn">' . (is_array($currentGroups[$currentLib]) ? $currentGroups[$currentLib]['name'] : $currentGroups[$currentLib]) . ' <span class="caret"></span></a>';
|
||||
$selectHtml .= "<a data-toggle='dropdown' class='btn btn-limit' title=$currentLibName>" . $currentLibName . ' <span class="caret"></span></a>';
|
||||
$selectHtml .='<ul class="dropdown-menu">';
|
||||
if($type == 'custom')
|
||||
{
|
||||
|
||||
@@ -121,16 +121,23 @@ $lang->resource->todo->import2Today = 'import2Today';
|
||||
$lang->resource->todo->assignTo = 'assignTo';
|
||||
$lang->resource->todo->activate = 'activate';
|
||||
$lang->resource->todo->close = 'close';
|
||||
$lang->resource->todo->batchClose = 'batchClose';
|
||||
|
||||
$lang->todo->methodOrder[5] = 'create';
|
||||
$lang->todo->methodOrder[10] = 'createCycle';
|
||||
$lang->todo->methodOrder[15] = 'batchCreate';
|
||||
$lang->todo->methodOrder[20] = 'edit';
|
||||
$lang->todo->methodOrder[25] = 'view';
|
||||
$lang->todo->methodOrder[30] = 'delete';
|
||||
$lang->todo->methodOrder[35] = 'export';
|
||||
$lang->todo->methodOrder[40] = 'finish';
|
||||
$lang->todo->methodOrder[45] = 'import2Today';
|
||||
$lang->todo->methodOrder[25] = 'batchEdit';
|
||||
$lang->todo->methodOrder[30] = 'view';
|
||||
$lang->todo->methodOrder[35] = 'delete';
|
||||
$lang->todo->methodOrder[40] = 'export';
|
||||
$lang->todo->methodOrder[45] = 'finish';
|
||||
$lang->todo->methodOrder[50] = 'batchFinish';
|
||||
$lang->todo->methodOrder[55] = 'import2Today';
|
||||
$lang->todo->methodOrder[60] = 'assignTo';
|
||||
$lang->todo->methodOrder[65] = 'activate';
|
||||
$lang->todo->methodOrder[70] = 'close';
|
||||
$lang->todo->methodOrder[75] = 'batchClose';
|
||||
|
||||
/* Product. */
|
||||
$lang->resource->product = new stdclass();
|
||||
|
||||
@@ -97,10 +97,23 @@
|
||||
<td class="c-status"><span class="status-<?php echo $todo->status;?>"><span class="label label-dot"></span> <?php echo $lang->todo->statusList[$todo->status];?></span></td>
|
||||
<td class="c-actions">
|
||||
<?php
|
||||
if($todo->status != 'done') common::printIcon('todo', 'assignto', "todoID=$todo->id", $todo, 'list', 'hand-right', '', "btn-icon", '', "data-toggle='assigntoModal' data-width='500'", $lang->todo->assignTo);
|
||||
if($todo->status == 'done') common::printIcon('todo', 'activate', "id=$todo->id", $todo, 'list', 'magic', 'hiddenwin');
|
||||
if($todo->status != 'done') common::printIcon('todo', 'finish', "id=$todo->id", $todo, 'list', 'checked', 'hiddenwin');
|
||||
if($todo->status == 'done') common::printIcon('todo', 'close', "id=$todo->id", $todo, 'list', 'off', 'hiddenwin');
|
||||
if($todo->status == 'done' or $todo->status == 'closed')
|
||||
{
|
||||
common::printIcon('todo', 'activate', "id=$todo->id", $todo, 'list', 'magic', 'hiddenwin');
|
||||
if($todo->status == 'done')
|
||||
{
|
||||
common::printIcon('todo', 'close', "id=$todo->id", $todo, 'list', 'off', 'hiddenwin');
|
||||
}
|
||||
else
|
||||
{
|
||||
echo html::a('javascript:;', "<i class='icon-todo-close icon-off'></i>", '', "class='btn disabled'");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
common::printIcon('todo', 'assignto', "todoID=$todo->id", $todo, 'list', 'hand-right', '', "btn-icon", '', "data-toggle='assigntoModal' data-width='500'", $lang->todo->assignTo);
|
||||
common::printIcon('todo', 'finish', "id=$todo->id", $todo, 'list', 'checked', 'hiddenwin');
|
||||
}
|
||||
common::printIcon('todo', 'edit', "id=$todo->id", '', 'list', 'edit', '', 'iframe', true);
|
||||
|
||||
if(common::hasPriv('todo', 'delete'))
|
||||
@@ -131,6 +144,11 @@
|
||||
$actionLink = $this->createLink('todo', 'batchFinish');
|
||||
echo html::commonButton($lang->todo->finish, "onclick=\"setFormAction('$actionLink','hiddenwin')\"");
|
||||
}
|
||||
if(common::hasPriv('todo', 'batchClose'))
|
||||
{
|
||||
$actionLink = $this->createLink('todo', 'batchClose');
|
||||
echo html::commonButton($lang->todo->close, "onclick=\"setFormAction('$actionLink','hiddenwin')\"");
|
||||
}
|
||||
if(common::hasPriv('todo', 'import2Today') and $importFuture)
|
||||
{
|
||||
$actionLink = $this->createLink('todo', 'import2Today');
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<td class='text-center'><?php echo $plan->bugs;?></td>
|
||||
<td class='text-center'><?php echo $plan->hour;?></td>
|
||||
<td class='text-center'><?php if(!empty($plan->projectID)) echo html::a(helper::createLink('project', 'task', 'projectID=' . $plan->projectID), '<i class="icon-search"></i>');?></td>
|
||||
<td title='<?php echo strip_tags($plan->desc)?>' class='text-left content'><?php echo strip_tags($plan->desc);?></td>
|
||||
<td title='<?php echo strip_tags($plan->desc)?>' class='text-left content'><?php echo nl2br(strip_tags($plan->desc));?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
if(common::hasPriv('project', 'create')) echo html::a(helper::createLink('project', 'create', "projectID=©ProjectID=&planID=$plan->id"), '<i class="icon-plus"></i>', '', "class='btn' title='{$lang->project->create}'");
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#linkButton {border-radius: 4px !important;}
|
||||
tbody > tr > td > .btn-icon {margin-right: 4px}
|
||||
@media (max-width: 1200px) {#storyList .c-user, #storyList .c-estimate {display: none!important;}}
|
||||
@media (max-width: 1000px) {#storyList .c-status, #storyList .c-pri {display: none!important;}}
|
||||
@media (max-width: 820px) {#storyList .c-sort, #storyList .c-stage {display: none!important;}}
|
||||
@media (max-width: 820px) {#storyList .c-sort, #storyList .c-stage {display: none!important;}}
|
||||
|
||||
@@ -146,6 +146,8 @@ class projectModel extends model
|
||||
/* Replace for dropdown submenu. */
|
||||
if(isset($this->lang->project->subMenu->$key))
|
||||
{
|
||||
$index = 0;
|
||||
$firstLink = '';
|
||||
$dropTitle = '';
|
||||
$hasActive = false;
|
||||
$subMenu = array();
|
||||
@@ -170,8 +172,10 @@ class projectModel extends model
|
||||
$dropTitle = $subMenuName;
|
||||
}
|
||||
|
||||
$replace .= "<li $active>" . html::a(helper::createLink($subMenuModule, $subMenuMethod, sprintf($subMenuParams, $projectID)), $subMenuName) . '</li>';
|
||||
$link = helper::createLink($subMenuModule, $subMenuMethod, sprintf($subMenuParams, $projectID));
|
||||
$replace .= "<li $active>" . html::a($link, $subMenuName) . '</li>';
|
||||
if($active) $hasActive = true;
|
||||
if($index == 0) $firstLink = $link;
|
||||
|
||||
$link = array();
|
||||
$link['module'] = $subMenuModule;
|
||||
@@ -184,9 +188,11 @@ class projectModel extends model
|
||||
$menu->text = $subMenuName;
|
||||
$menu->hidden = false;
|
||||
$subMenu[] = $menu;
|
||||
|
||||
$index++;
|
||||
}
|
||||
$replace .= '</ul>';
|
||||
$replace = "<a data-toggle='dropdown'>$dropTitle <span class='caret'></span></a>" . $replace;
|
||||
$replace = "<a href='$firstLink'>$dropTitle <span class='caret'></span></a>" . $replace;
|
||||
|
||||
$this->lang->project->menu->{$key}['class'] = 'dropdown dropdown-hover';
|
||||
if($hasActive) $this->lang->project->menu->{$key}['class'] .= ' active';
|
||||
|
||||
@@ -38,6 +38,20 @@
|
||||
<?php
|
||||
common::printLink('story', 'export', "productID=$productID&orderBy=id_desc", "<i class='icon icon-export muted'></i> " . $lang->story->export, '', "class='btn btn-link export'");
|
||||
|
||||
$this->lang->story->create = $this->lang->project->createStory;
|
||||
if($productID and !$this->loadModel('story')->checkForceReview())
|
||||
{
|
||||
echo "<div class='btn-group dropdown-hover'>";
|
||||
echo "<button type='button' class='btn btn-link'>";
|
||||
echo "<i class='icon-plus'></i> {$lang->story->create} <span class='caret'></span>";
|
||||
echo '</button>';
|
||||
echo "<ul class='dropdown-menu pull-right' id='createActionMenu'>";
|
||||
if(common::hasPriv('story', 'create')) echo '<li>' . html::a($this->createLink('story', 'create', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id"), $lang->story->create) . '</li>';
|
||||
if(common::hasPriv('story', 'batchCreate')) echo '<li>' . html::a($this->createLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id"), $lang->story->batchCreate) . '</li>';
|
||||
echo '</ul>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
if(commonModel::isTutorialMode())
|
||||
{
|
||||
$wizardParams = helper::safe64Encode("project=$project->id");
|
||||
@@ -45,23 +59,16 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<div class='btn-group dropdown-hover' id='createActionMenu'>";
|
||||
echo "<button type='button' class='btn btn-link dropdown-toggle btn-icon'>";
|
||||
echo "<i class='icon-link muted'></i> {$lang->project->linkStory} <span class='caret'></span>";
|
||||
echo "<div class='btn-group dropdown-hover'>";
|
||||
echo "<button type='button' class='btn btn-primary' id='linkButton'>";
|
||||
echo "<i class='icon-link'></i> {$lang->project->linkStory} <span class='caret'></span>";
|
||||
echo '</button>';
|
||||
echo "<ul class='dropdown-menu pull-right'>";
|
||||
if(common::hasPriv('project', 'linkStory')) echo "<li>" . html::a($this->createLink('project', 'linkStory', "project=$project->id"), $lang->project->linkStory). "</li>";
|
||||
if(common::hasPriv('project', 'importPlanStories')) echo "<li>" . html::a('#linkStoryByPlan', $lang->project->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
|
||||
echo "<ul class='dropdown-menu pull-right' id='linkActionMenu'>";
|
||||
if(common::hasPriv('project', 'linkStory')) echo '<li>' . html::a(inlink('linkStory', "project=$project->id"), $lang->project->linkStory). "</li>";
|
||||
if(common::hasPriv('project', 'importPlanStories')) echo '<li>' . html::a('#linkStoryByPlan', $lang->project->linkStoryByPlan, '', 'data-toggle="modal"') . "</li>";
|
||||
echo '</ul>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
$this->lang->story->create = $this->lang->project->createStory;
|
||||
if($productID and !$this->loadModel('story')->checkForceReview())
|
||||
{
|
||||
common::printLink('story', 'batchCreate', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->story->batchCreate, '', "class='btn btn-secondary'");
|
||||
common::printLink('story', 'create', "productID=$productID&branch=0&moduleID=0&story=0&project=$project->id", "<i class='icon icon-plus'></i> " . $lang->story->create, '', "class='btn btn-primary'");
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -118,9 +118,9 @@ js::set('browseType', $browseType);
|
||||
common::printIcon('task', 'report', "project=$projectID&browseType=$browseType", '', 'button', 'bar-chart muted');
|
||||
?>
|
||||
|
||||
<div class="btn-group">
|
||||
<div class="btn-group dropdown-hover">
|
||||
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-export muted"></i> <span class="text"><?php echo $lang->export;?></span> <span class="caret"></span></button>
|
||||
<ul class="dropdown-menu" id='exportActionMenu'>
|
||||
<ul class="dropdown-menu pull-right" id='exportActionMenu'>
|
||||
<?php
|
||||
$misc = common::hasPriv('task', 'export') ? "class='export'" : "class=disabled";
|
||||
$link = common::hasPriv('task', 'export') ? $this->createLink('task', 'export', "project=$projectID&orderBy=$orderBy&type=$browseType") : '#';
|
||||
@@ -129,9 +129,9 @@ js::set('browseType', $browseType);
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="btn-group">
|
||||
<div class="btn-group dropdown-hover">
|
||||
<button class="btn btn-link" data-toggle="dropdown"><i class="icon icon-import muted"></i> <span class="text"><?php echo $lang->import;?></span> <span class="caret"></span></button>
|
||||
<ul class="dropdown-menu" id='importActionMenu'>
|
||||
<ul class="dropdown-menu pull-right" id='importActionMenu'>
|
||||
<?php
|
||||
$misc = common::hasPriv('project', 'importTask') ? "class='import'" : "class=disabled";
|
||||
$link = common::hasPriv('project', 'importTask') ? $this->createLink('project', 'importTask', "project=$project->id") : '#';
|
||||
|
||||
@@ -432,7 +432,7 @@ class storyModel extends model
|
||||
->stripTags($this->config->story->editor->change['id'], $this->config->allowedTags)
|
||||
->remove('files,labels,comment,needNotReview,uid')
|
||||
->get();
|
||||
if($this->checkForceReview()) $story->status = 'changed';
|
||||
if($specChanged and $story->status == 'active' and $this->checkForceReview()) $story->status = 'changed';
|
||||
$story = $this->loadModel('file')->processImgURL($story, $this->config->story->editor->change['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_STORY)->data($story, 'spec,verify')
|
||||
->autoCheck()
|
||||
|
||||
@@ -83,7 +83,7 @@ $lang->task->openedDateAB = 'Add';
|
||||
$lang->task->finishedBy = 'Finished';
|
||||
$lang->task->finishedByAB = 'Finished';
|
||||
$lang->task->finishedDate = 'Finished on';
|
||||
$lang->task->finishedDateAB = 'Date';
|
||||
$lang->task->finishedDateAB = 'Finished on';
|
||||
$lang->task->canceledBy = 'Cancelled by';
|
||||
$lang->task->canceledDate = 'Cancelled on';
|
||||
$lang->task->closedBy = 'Closed by';
|
||||
|
||||
@@ -83,7 +83,7 @@ $lang->task->openedDateAB = '创建';
|
||||
$lang->task->finishedBy = '由谁完成';
|
||||
$lang->task->finishedByAB = '完成者';
|
||||
$lang->task->finishedDate = '完成时间';
|
||||
$lang->task->finishedDateAB = '完成';
|
||||
$lang->task->finishedDateAB = '完成时间';
|
||||
$lang->task->canceledBy = '由谁取消';
|
||||
$lang->task->canceledDate = '取消时间';
|
||||
$lang->task->closedBy = '由谁关闭';
|
||||
|
||||
@@ -83,7 +83,7 @@ $lang->task->openedDateAB = '創建';
|
||||
$lang->task->finishedBy = '由誰完成';
|
||||
$lang->task->finishedByAB = '完成者';
|
||||
$lang->task->finishedDate = '完成時間';
|
||||
$lang->task->finishedDateAB = '完成';
|
||||
$lang->task->finishedDateAB = '完成時間';
|
||||
$lang->task->canceledBy = '由誰取消';
|
||||
$lang->task->canceledDate = '取消時間';
|
||||
$lang->task->closedBy = '由誰關閉';
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<span class="text" style='color: <?php echo $task->color; ?>'>
|
||||
<?php if(!empty($task->parent)) echo '<span class="label label-badge label-primary no-margin">' . $this->lang->task->childrenAB . '</span>';?>
|
||||
<?php if(!empty($task->team)) echo '<span class="label label-badge label-primary no-margin">' . $this->lang->task->multipleAB . '</span>';?>
|
||||
<?php echo isset($task->parentName) ? $task->parentName . '/' : '';?><?php echo $task->name;?>
|
||||
<?php echo isset($task->parentName) ? html::a(inlink('view', "taskID={$task->parent}"), $task->parentName) . ' / ' : '';?><?php echo $task->name;?>
|
||||
</span>
|
||||
<?php if($task->deleted):?>
|
||||
<span class='label label-danger'><?php echo $lang->task->deleted;?></span>
|
||||
|
||||
+22
-3
@@ -251,7 +251,7 @@ class todo extends control
|
||||
public function activate($todoID)
|
||||
{
|
||||
$todo = $this->todo->getById($todoID);
|
||||
if($todo->status == 'done') $this->todo->activate($todoID);
|
||||
if($todo->status == 'done' or $todo->status == 'closed') $this->todo->activate($todoID);
|
||||
if(isonlybody()) die(js::reload('parent.parent'));
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
@@ -396,7 +396,7 @@ class todo extends control
|
||||
public function finish($todoID)
|
||||
{
|
||||
$todo = $this->todo->getById($todoID);
|
||||
if($todo->status != 'done') $this->todo->finish($todoID);
|
||||
if($todo->status != 'done' && $todo->status != 'closed') $this->todo->finish($todoID);
|
||||
if(in_array($todo->type, array('bug', 'task', 'story')))
|
||||
{
|
||||
$confirmNote = 'confirm' . ucfirst($todo->type);
|
||||
@@ -421,7 +421,26 @@ class todo extends control
|
||||
foreach($_POST['todoIDList'] as $todoID)
|
||||
{
|
||||
$todo = $this->todo->getById($todoID);
|
||||
if($todo->status != 'done') $this->todo->finish($todoID);
|
||||
if($todo->status != 'done' && $todo->status != 'closed') $this->todo->finish($todoID);
|
||||
}
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch close todos.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function batchClose()
|
||||
{
|
||||
if(!empty($_POST['todoIDList']))
|
||||
{
|
||||
foreach($_POST['todoIDList'] as $todoID)
|
||||
{
|
||||
$todo = $this->todo->getById($todoID);
|
||||
if($todo->status == 'done') $this->todo->close($todoID);
|
||||
}
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ $lang->todo->activate = "Activate";
|
||||
$lang->todo->batchCreate = "Batch Add";
|
||||
$lang->todo->edit = "Edit";
|
||||
$lang->todo->close = "Close";
|
||||
$lang->todo->batchClose = "Batch Close";
|
||||
$lang->todo->batchEdit = "Batch Edit";
|
||||
$lang->todo->view = "Overview";
|
||||
$lang->todo->finish = "Finish";
|
||||
|
||||
@@ -18,6 +18,7 @@ $lang->todo->activate = "激活";
|
||||
$lang->todo->batchCreate = "批量添加";
|
||||
$lang->todo->edit = "编辑";
|
||||
$lang->todo->close = "关闭";
|
||||
$lang->todo->batchClose = "批量关闭";
|
||||
$lang->todo->batchEdit = "批量编辑";
|
||||
$lang->todo->view = "待办详情";
|
||||
$lang->todo->finish = "完成";
|
||||
|
||||
@@ -18,6 +18,7 @@ $lang->todo->activate = "激活";
|
||||
$lang->todo->batchCreate = "批量添加";
|
||||
$lang->todo->edit = "編輯";
|
||||
$lang->todo->close = "關閉";
|
||||
$lang->todo->batchClose = "批量關閉";
|
||||
$lang->todo->batchEdit = "批量編輯";
|
||||
$lang->todo->view = "待辦詳情";
|
||||
$lang->todo->finish = "完成";
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
</div>
|
||||
<div class='detail-content'><?php echo $todo->desc;?></div>
|
||||
</div>
|
||||
<div class='detail'><?php include '../../common/view/action.html.php';?></div>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
</div>
|
||||
</div>
|
||||
<div class='side-col col-4'>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -8,5 +8,4 @@
|
||||
* @version $Id: style.css 1454 2009-10-23 01:45:26Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
.divider + .divider{display:none;}
|
||||
.body-modal .main-header > h2{width: 100%; overflow:hidden; text-overflow: ellipsis; white-space: nowrap;}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user