Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms
This commit is contained in:
@@ -159,21 +159,20 @@ $filter->product->default->cookie['lastProduct'] = 'int';
|
||||
$filter->product->default->cookie['preProductID'] = 'int';
|
||||
$filter->product->index->cookie['preBranch'] = 'int';
|
||||
$filter->product->export->cookie['checkedItem'] = 'reg::checked';
|
||||
$filter->product->project->cookie['PRJMine'] = 'code';
|
||||
$filter->product->project->cookie['involved'] = 'code';
|
||||
|
||||
$filter->program->default->cookie['lastPGM'] = 'int';
|
||||
$filter->program->default->cookie['lastPRJ'] = 'int';
|
||||
$filter->program->prjbrowse->cookie['programType'] = 'code';
|
||||
$filter->program->prjbrowse->cookie['PRJMine'] = 'code';
|
||||
$filter->program->pgmproject->cookie['PRJMine'] = 'code';
|
||||
$filter->program->prjbrowse->cookie['mine'] = 'code';
|
||||
$filter->program->pgmbrowse->cookie['showClosed'] = 'code';
|
||||
$filter->program->project->cookie['involved'] = 'code';
|
||||
$filter->program->browse->cookie['showClosed'] = 'code';
|
||||
$filter->program->export->cookie['checkedItem'] = 'reg::checked';
|
||||
$filter->program->ajaxgetpgmdropmenu->cookie['showClosed'] = 'code';
|
||||
|
||||
$filter->project->default->cookie['lastProject'] = 'int';
|
||||
$filter->project->default->cookie['lastPRJ'] = 'int';
|
||||
$filter->project->default->cookie['projectMode'] = 'code';
|
||||
$filter->project->browse->cookie['involved'] = 'code';
|
||||
$filter->project->story->cookie['storyModuleParam'] = 'int';
|
||||
$filter->project->story->cookie['storyPreProjectID'] = 'int';
|
||||
$filter->project->story->cookie['storyProductParam'] = 'int';
|
||||
|
||||
@@ -335,6 +335,5 @@ INSERT INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) VA
|
||||
('zh-cn', 'custom', 'URSRList', '1', '{\"SRName\":\"\\u8f6f\\u4ef6\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '2', '{\"SRName\":\"\\u7814\\u53d1\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '3', '{\"SRName\":\"\\u8f6f\\u9700\",\"URName\":\"\\u7528\\u9700\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '5', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '6', '{\"SRName\":\"\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1');
|
||||
('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '5', '{\"SRName\":\"\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1');
|
||||
|
||||
@@ -1,346 +0,0 @@
|
||||
ALTER TABLE `zt_project` DROP `isCat`, DROP `catID`;
|
||||
ALTER TABLE `zt_project` ADD `project` mediumint(8) NOT NULL DEFAULT 0 AFTER `id`;
|
||||
ALTER TABLE `zt_project` ADD `model` char(30) NOT NULL AFTER `project`;
|
||||
ALTER TABLE `zt_project` CHANGE `type` `type` char(30) NOT NULL DEFAULT 'sprint' AFTER `model`;
|
||||
ALTER TABLE `zt_project` CHANGE `acl` `acl` char(30) NOT NULL DEFAULT 'open';
|
||||
ALTER TABLE `zt_project` ADD `product` varchar(20) NOT NULL DEFAULT 'single' AFTER `type`;
|
||||
ALTER TABLE `zt_project` ADD `lifetime` char(30) NOT NULL AFTER `product`;
|
||||
ALTER TABLE `zt_project` ADD `budget` varchar(30) NOT NULL DEFAULT '0' AFTER `lifetime`;
|
||||
ALTER TABLE `zt_project` ADD `budgetUnit` char(30) NOT NULL DEFAULT 'yuan' AFTER `budget`;
|
||||
ALTER TABLE `zt_project` ADD `percent` float unsigned NOT NULL DEFAULT '0' AFTER `budgetUnit`;
|
||||
ALTER TABLE `zt_project` ADD `path` varchar(255) NOT NULL AFTER `parent`;
|
||||
ALTER TABLE `zt_project` ADD `grade` tinyint unsigned NOT NULL AFTER `path`;
|
||||
ALTER TABLE `zt_project` ADD `auth` char(30) NOT NULL AFTER `percent`;
|
||||
ALTER TABLE `zt_project` ADD `milestone` enum('0','1') NOT NULL default '0' AFTER `percent`;
|
||||
ALTER TABLE `zt_project` ADD `attribute` varchar(30) NOT NULL DEFAULT '' AFTER `budgetUnit`;
|
||||
ALTER TABLE `zt_project` ADD `realBegan` date NOT NULL AFTER `end`;
|
||||
ALTER TABLE `zt_project` ADD `realEnd` date NOT NULL AFTER `realBegan`;
|
||||
ALTER TABLE `zt_project` ADD `version` smallint(6) NOT NULL AFTER `desc`;
|
||||
ALTER TABLE `zt_project` ADD `parentVersion` smallint(6) NOT NULL AFTER `version`;
|
||||
ALTER TABLE `zt_project` ADD `planDuration` int(11) NOT NULL AFTER `parentVersion`;
|
||||
ALTER TABLE `zt_project` ADD `realDuration` int(11) NOT NULL AFTER `planDuration`;
|
||||
ALTER TABLE `zt_project` ADD `output` text NOT NULL AFTER `milestone`;
|
||||
|
||||
ALTER TABLE `zt_product` ADD `program` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_product` ADD `bind` enum('0','1') NOT NULL DEFAULT '0' AFTER `code`;
|
||||
ALTER TABLE `zt_task` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_doc` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_story` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_repo` ADD `PRJ` varchar(255) NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_bug` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_case` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testtask` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testreport` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_testsuite` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_build` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_release` ADD `PRJ` mediumint(8) unsigned NOT NULL AFTER `id`;
|
||||
|
||||
ALTER TABLE `zt_group` ADD `PRJ` mediumint NOT NULL AFTER `id`;
|
||||
INSERT INTO `zt_group` (`name`, `role`, `desc`) VALUES ('项目管理员', 'PRJAdmin', '项目管理员可以维护项目的权限');
|
||||
|
||||
ALTER TABLE `zt_usergroup` ADD `PRJ` text NOT NULL;
|
||||
|
||||
ALTER TABLE `zt_userview` ADD `programs` mediumtext NOT NULL AFTER `account`;
|
||||
ALTER TABLE `zt_userview` ADD `sprints` mediumtext NOT NULL AFTER `programs`;
|
||||
|
||||
ALTER TABLE `zt_user` ADD `company` mediumint unsigned NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_user` ADD `type` char(30) NOT NULL default 'inside' AFTER `account`;
|
||||
ALTER TABLE `zt_user` ADD `nature` text NOT NULL AFTER `zipcode`;
|
||||
ALTER TABLE `zt_user` ADD `analysis` text NOT NULL AFTER `nature`;
|
||||
ALTER TABLE `zt_user` ADD `strategy` text NOT NULL AFTER `analysis`;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_stage`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_stage` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`percent` varchar(255) NOT NULL,
|
||||
`type` varchar(255) NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_stakeholder`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_stakeholder` (
|
||||
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`objectID` mediumint(8) NOT NULL,
|
||||
`objectType` char(30) NOT NULL,
|
||||
`user` char(30) NOT NULL,
|
||||
`type` char(30) NOT NULL,
|
||||
`key` enum('0','1') NOT NULL,
|
||||
`from` char(30) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`editedBy` char(30) NOT NULL,
|
||||
`editedDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_expect`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_expect` (
|
||||
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`userID` mediumint(8) NOT NULL,
|
||||
`PRJ` mediumint(8) NOT NULL DEFAULT 0,
|
||||
`expect` text NOT NULL,
|
||||
`progress` text NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
REPLACE INTO `zt_stage` (`name`,`percent`,`type`,`createdBy`,`createdDate`,`editedBy`,`editedDate`,`deleted`) VALUES
|
||||
('需求','10','request','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('设计','10','design','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('开发','50','dev','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('测试','15','qa','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('发布','10','release','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('总结评审','5','review','admin','2020-02-08 21:08:45','admin','2020-02-12 13:50:27','0');
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_design`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_design` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` varchar(255) NOT NULL,
|
||||
`product` varchar(255) NOT NULL,
|
||||
`commit` text NOT NULL,
|
||||
`project` mediumint(9) NOT NULL DEFAULT '0',
|
||||
`name` varchar(255) NOT NULL,
|
||||
`status` varchar(30) NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`assignedTo` varchar(30) NOT NULL,
|
||||
`assignedBy` varchar(30) NOT NULL,
|
||||
`assignedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`story` char(30) NOT NULL,
|
||||
`desc` text NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`type` char(30) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_designspec` (
|
||||
`design` mediumint(8) NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`desc` text NOT NULL,
|
||||
`files` varchar(255) NOT NULL,
|
||||
UNIQUE KEY `design` (`design`,`version`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_issue`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_issue` (
|
||||
`id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`resolvedBy` varchar(30) NOT NULL,
|
||||
`PRJ` varchar(255) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`desc` text NOT NULL,
|
||||
`pri` char(30) NOT NULL,
|
||||
`severity` char(30) NOT NULL,
|
||||
`type` char(30) NOT NULL,
|
||||
`activity` varchar(255) NOT NULL,
|
||||
`deadline` date NOT NULL,
|
||||
`resolution` char(30) NOT NULL,
|
||||
`resolutionComment` text NOT NULL,
|
||||
`objectID` varchar(255) NOT NULL,
|
||||
`resolvedDate` date NOT NULL,
|
||||
`status` varchar(30) NOT NULL,
|
||||
`owner` varchar(255) NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`activateBy` varchar(30) NOT NULL,
|
||||
`activateDate` date NOT NULL,
|
||||
`closedBy` varchar(30) NOT NULL,
|
||||
`closedDate` date NOT NULL,
|
||||
`assignedTo` varchar(30) NOT NULL,
|
||||
`assignedBy` varchar(30) NOT NULL,
|
||||
`assignedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_risk` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` varchar(255) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`source` char(30) NOT NULL,
|
||||
`category` char(30) NOT NULL,
|
||||
`strategy` char(30) NOT NULL,
|
||||
`status` varchar(30) NOT NULL DEFAULT 'active',
|
||||
`impact` char(30) NOT NULL,
|
||||
`probability` char(30) NOT NULL,
|
||||
`rate` char(30) NOT NULL,
|
||||
`pri` char(30) NOT NULL,
|
||||
`identifiedDate` date NOT NULL,
|
||||
`prevention` text NOT NULL,
|
||||
`remedy` text NOT NULL,
|
||||
`plannedClosedDate` date NOT NULL,
|
||||
`actualClosedDate` date NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`resolution` text NOT NULL,
|
||||
`resolvedBy` varchar(30) NOT NULL,
|
||||
`activateBy` varchar(30) NOT NULL,
|
||||
`activateDate` date NOT NULL,
|
||||
`assignedTo` varchar(30) NOT NULL,
|
||||
`cancelBy` varchar(30) NOT NULL,
|
||||
`cancelDate` date NOT NULL,
|
||||
`cancelReason` char(30) NOT NULL,
|
||||
`hangupBy` varchar(30) NOT NULL,
|
||||
`hangupDate` date NOT NULL,
|
||||
`trackedBy` varchar(30) NOT NULL,
|
||||
`trackedDate` date NOT NULL,
|
||||
`assignedDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_projectspec`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_projectspec` (
|
||||
`project` mediumint(8) NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`milestone` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
UNIQUE KEY `project` (`project`,`version`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_budget`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_budget` (
|
||||
`id` int(8) NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` mediumint(8) NOT NULL,
|
||||
`stage` char(30) NOT NULL,
|
||||
`subject` mediumint(8) NOT NULL,
|
||||
`amount` char(30) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`desc` text NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`lastEditedBy` char(30) NOT NULL,
|
||||
`lastEditedDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_durationestimation`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_durationestimation` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` mediumint(8) unsigned NOT NULL,
|
||||
`stage` mediumint(9) NOT NULL,
|
||||
`workload` varchar(255) NOT NULL,
|
||||
`worktimeRate` varchar(255) NOT NULL,
|
||||
`people` varchar(255) NOT NULL,
|
||||
`startDate` date NOT NULL,
|
||||
`endDate` date NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_workestimation`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_workestimation` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` mediumint(8) unsigned NOT NULL,
|
||||
`scale` mediumint(8) unsigned NOT NULL,
|
||||
`productivity` smallint(3) unsigned NOT NULL,
|
||||
`duration` mediumint(8) unsigned NOT NULL,
|
||||
`unitLaborCost` mediumint(8) unsigned NOT NULL,
|
||||
`totalLaborCost` mediumint(8) unsigned NOT NULL,
|
||||
`createdBy` varchar(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`editedBy` varchar(30) NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
`assignedTo` varchar(30) NOT NULL,
|
||||
`assignedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`dayHour` float(5,2) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_holiday` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(30) NOT NULL DEFAULT '',
|
||||
`type` enum('holiday', 'working') NOT NULL DEFAULT 'holiday',
|
||||
`desc` text NOT NULL,
|
||||
`year` char(4) NOT NULL,
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `year` (`year`),
|
||||
KEY `name` (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE `zt_task` ADD `design` mediumint(8) unsigned NOT NULL AFTER `module`;
|
||||
ALTER TABLE `zt_task` ADD `version` smallint(6) NOT NULL AFTER `desc`;
|
||||
ALTER TABLE `zt_task` ADD `activatedDate` date NOT NULL AFTER `lastEditedDate`;
|
||||
ALTER TABLE `zt_task` ADD `planDuration` int(11) NOT NULL AFTER `closedDate`;
|
||||
ALTER TABLE `zt_task` ADD `realDuration` int(11) NOT NULL AFTER `closedDate`;
|
||||
ALTER TABLE `zt_task` ADD `designVersion` smallint(6) unsigned NOT NULL AFTER `storyVersion`;
|
||||
|
||||
ALTER TABLE `zt_burn` ADD `storyPoint` float NOT NULL AFTER `consumed`;
|
||||
ALTER TABLE `zt_burn` ADD `product` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `project`;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_taskspec`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_taskspec` (
|
||||
`task` mediumint(8) NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`estStarted` date NOT NULL,
|
||||
`deadline` date NOT NULL,
|
||||
UNIQUE KEY `task` (`task`,`version`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_weeklyreport`(
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`PRJ` mediumint(8) unsigned NOT NULL,
|
||||
`weekStart` date NOT NULL,
|
||||
`pv` float(9,2) NOT NULL,
|
||||
`ev` float(9,2) NOT NULL,
|
||||
`ac` float(9,2) NOT NULL,
|
||||
`sv` float(9,2) NOT NULL,
|
||||
`cv` float(9,2) NOT NULL,
|
||||
`staff` smallint(5) unsigned NOT NULL,
|
||||
`progress` varchar(255) NOT NULL,
|
||||
`workload` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `week` (`PRJ`,`weekStart`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
ALTER TABLE `zt_block` ADD `type` char(30) NOT NULL AFTER `module`;
|
||||
ALTER TABLE `zt_block` ADD UNIQUE `account_module_type_order` (`account`, `module`, `type`, `order`), DROP INDEX `accountModuleOrder`;
|
||||
|
||||
INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('1', '0', '*', '*', '*', 'moduleName=weekly&methodName=computeWeekly', '更新项目周报', 'system', 0, 'normal', '2020-08-27 10:07:53');
|
||||
|
||||
ALTER TABLE `zt_story` ADD `URChanged` enum('0','1') NOT NULL DEFAULT '0' AFTER `version`;
|
||||
|
||||
ALTER TABLE `zt_team` MODIFY `type` enum('project','task','stage','sprint') NOT NULL DEFAULT 'project' AFTER `root`;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_planstory` (
|
||||
`plan` mediumint(8) unsigned NOT NULL,
|
||||
`story` mediumint(8) unsigned NOT NULL,
|
||||
`order` mediumint(9) NOT NULL,
|
||||
UNIQUE KEY `unique` (`plan`,`story`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zt_acl` (
|
||||
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
|
||||
`account` char(30) NOT NULL,
|
||||
`objectType` char(30) NOT NULL,
|
||||
`objectID` mediumint(9) NOT NULL DEFAULT '0',
|
||||
`type` char(40) NOT NULL DEFAULT 'whitelist',
|
||||
`source` char(30) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
@@ -1,23 +0,0 @@
|
||||
ALTER TABLE `zt_workestimation`
|
||||
MODIFY COLUMN `scale` decimal(10, 2) UNSIGNED NOT NULL AFTER `PRJ`,
|
||||
MODIFY COLUMN `productivity` decimal(10, 2) UNSIGNED NOT NULL AFTER `scale`,
|
||||
MODIFY COLUMN `duration` decimal(10, 2) UNSIGNED NOT NULL AFTER `productivity`,
|
||||
MODIFY COLUMN `unitLaborCost` decimal(10, 2) UNSIGNED NOT NULL AFTER `duration`,
|
||||
MODIFY COLUMN `totalLaborCost` decimal(10, 2) UNSIGNED NOT NULL AFTER `unitLaborCost`,
|
||||
MODIFY COLUMN `dayHour` decimal(10, 2) NULL DEFAULT NULL AFTER `deleted`;
|
||||
|
||||
ALTER TABLE `zt_project` ADD `storyConcept` smallint(5) unsigned NOT NULL AFTER `days`;
|
||||
ALTER TABLE `zt_product` ADD `storyConcept` smallint(5) NOT NULL AFTER `RD`;
|
||||
|
||||
INSERT INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) VALUES
|
||||
('zh-cn', 'custom', 'URList', '1', '用户需求', '1'),
|
||||
('zh-cn', 'custom', 'URList', '2', '用需', '1'),
|
||||
('zh-cn', 'custom', 'URList', '3', '需求', '1'),
|
||||
('zh-cn', 'custom', 'URList', '4', '史诗', '1'),
|
||||
('zh-cn', 'custom', 'SRList', '1', '软件需求', '1'),
|
||||
('zh-cn', 'custom', 'SRList', '2', '软需', '1'),
|
||||
('zh-cn', 'custom', 'SRList', '3', '故事', '1'),
|
||||
('zh-cn', 'custom', 'SRList', '4', '故事', '1');
|
||||
|
||||
TRUNCATE TABLE `zt_block`;
|
||||
DELETE FROM `zt_config` WHERE `key` = 'blockInited';
|
||||
@@ -1,14 +0,0 @@
|
||||
ALTER TABLE `zt_design` MODIFY `commit` text NOT NULL AFTER `product`;
|
||||
ALTER TABLE `zt_design` ADD `commitedBy` varchar(30) NOT NULL AFTER `commit`;
|
||||
|
||||
DELETE FROM `zt_lang` WHERE `section` = 'URSRList' or `section` = 'URList' or `section` = 'SRList';
|
||||
INSERT INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) VALUES
|
||||
('zh-cn', 'custom', 'URSRList', '1', '{\"SRName\":\"\\u8f6f\\u4ef6\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '2', '{\"SRName\":\"\\u8f6f\\u9700\",\"URName\":\"\\u7528\\u9700\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '3', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1');
|
||||
|
||||
DELETE FROM `zt_config` WHERE `key` = 'URSRName' or `key` = 'URAndSR';
|
||||
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'custom', '', 'URSR', '3');
|
||||
|
||||
UPDATE `zt_block` SET title = '指派给我', source = '', block = 'assigntome', params='{"todoNum":"20","taskNum":"20","bugNum":"20","riskNum":"20","issueNum":"20","storyNum":"20"}' WHERE module = 'my' AND block = 'task';
|
||||
@@ -1,4 +0,0 @@
|
||||
ALTER TABLE `zt_risk` add `closedBy` char(30) AFTER `assignedTo`;
|
||||
ALTER TABLE `zt_risk` add `closedDate` date AFTER `closedBy`;
|
||||
ALTER TABLE `zt_repo` CHANGE `PRJ` `product` varchar(255) NOT NULL AFTER `id`;
|
||||
ALTER TABLE `zt_project` CHANGE `budgetUnit` `budgetUnit` char(30) NOT NULL DEFAULT 'wanyuan' AFTER `budget`;
|
||||
@@ -1,173 +0,0 @@
|
||||
REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(1, 'product', 'dashboard'),
|
||||
(1, 'projectstory', 'story'),
|
||||
(1, 'projectstory', 'track'),
|
||||
(1, 'projectstory', 'view'),
|
||||
(1, 'projectstory', 'linkStory'),
|
||||
(1, 'projectstory', 'unLinkStory'),
|
||||
(1, 'my', 'preference'),
|
||||
(1, 'my', 'uploadAvatar'),
|
||||
(1, 'user', 'execution'),
|
||||
(1, 'user', 'issue'),
|
||||
(1, 'user', 'risk'),
|
||||
(1, 'user', 'cropAvatar'),
|
||||
(1, 'program', 'PRJView'),
|
||||
(2, 'product', 'dashboard'),
|
||||
(2, 'projectstory', 'story'),
|
||||
(2, 'projectstory', 'track'),
|
||||
(2, 'projectstory', 'view'),
|
||||
(2, 'my', 'preference'),
|
||||
(2, 'my', 'uploadAvatar'),
|
||||
(2, 'user', 'execution'),
|
||||
(2, 'user', 'issue'),
|
||||
(2, 'user', 'risk'),
|
||||
(2, 'user', 'cropAvatar'),
|
||||
(3, 'product', 'dashboard'),
|
||||
(3, 'projectstory', 'story'),
|
||||
(3, 'projectstory', 'track'),
|
||||
(3, 'projectstory', 'view'),
|
||||
(3, 'my', 'preference'),
|
||||
(3, 'my', 'uploadAvatar'),
|
||||
(3, 'user', 'execution'),
|
||||
(3, 'user', 'issue'),
|
||||
(3, 'user', 'risk'),
|
||||
(3, 'user', 'cropAvatar'),
|
||||
(4, 'product', 'dashboard'),
|
||||
(4, 'projectstory', 'story'),
|
||||
(4, 'projectstory', 'track'),
|
||||
(4, 'projectstory', 'view'),
|
||||
(4, 'my', 'preference'),
|
||||
(4, 'my', 'uploadAvatar'),
|
||||
(4, 'user', 'execution'),
|
||||
(4, 'user', 'issue'),
|
||||
(4, 'user', 'risk'),
|
||||
(4, 'user', 'cropAvatar'),
|
||||
(4, 'program', 'PRJView'),
|
||||
(5, 'product', 'dashboard'),
|
||||
(5, 'projectstory', 'story'),
|
||||
(5, 'projectstory', 'track'),
|
||||
(5, 'projectstory', 'view'),
|
||||
(5, 'projectstory', 'linkStory'),
|
||||
(5, 'projectstory', 'unLinkStory'),
|
||||
(5, 'my', 'preference'),
|
||||
(5, 'my', 'uploadAvatar'),
|
||||
(5, 'user', 'execution'),
|
||||
(5, 'user', 'issue'),
|
||||
(5, 'user', 'risk'),
|
||||
(5, 'user', 'cropAvatar'),
|
||||
(5, 'program', 'PRJView'),
|
||||
(6, 'product', 'dashboard'),
|
||||
(6, 'projectstory', 'story'),
|
||||
(6, 'projectstory', 'track'),
|
||||
(6, 'projectstory', 'view'),
|
||||
(6, 'my', 'preference'),
|
||||
(6, 'my', 'uploadAvatar'),
|
||||
(6, 'user', 'execution'),
|
||||
(6, 'user', 'issue'),
|
||||
(6, 'user', 'risk'),
|
||||
(6, 'user', 'cropAvatar'),
|
||||
(6, 'program', 'PRJView'),
|
||||
(7, 'product', 'dashboard'),
|
||||
(7, 'projectstory', 'story'),
|
||||
(7, 'projectstory', 'track'),
|
||||
(7, 'projectstory', 'view'),
|
||||
(7, 'projectstory', 'linkStory'),
|
||||
(7, 'projectstory', 'unLinkStory'),
|
||||
(7, 'my', 'preference'),
|
||||
(7, 'my', 'uploadAvatar'),
|
||||
(7, 'user', 'execution'),
|
||||
(7, 'user', 'issue'),
|
||||
(7, 'user', 'risk'),
|
||||
(7, 'user', 'cropAvatar'),
|
||||
(7, 'program', 'PRJView'),
|
||||
(8, 'product', 'dashboard'),
|
||||
(8, 'projectstory', 'story'),
|
||||
(8, 'projectstory', 'track'),
|
||||
(8, 'projectstory', 'view'),
|
||||
(8, 'my', 'preference'),
|
||||
(8, 'my', 'uploadAvatar'),
|
||||
(8, 'user', 'execution'),
|
||||
(8, 'user', 'issue'),
|
||||
(8, 'user', 'risk'),
|
||||
(8, 'user', 'cropAvatar'),
|
||||
(8, 'program', 'PRJView'),
|
||||
(9, 'product', 'dashboard'),
|
||||
(9, 'projectstory', 'story'),
|
||||
(9, 'projectstory', 'track'),
|
||||
(9, 'projectstory', 'view'),
|
||||
(9, 'projectstory', 'linkStory'),
|
||||
(9, 'projectstory', 'unLinkStory'),
|
||||
(9, 'my', 'preference'),
|
||||
(9, 'my', 'uploadAvatar'),
|
||||
(9, 'user', 'execution'),
|
||||
(9, 'user', 'issue'),
|
||||
(9, 'user', 'risk'),
|
||||
(9, 'user', 'cropAvatar'),
|
||||
(9, 'program', 'PRJView'),
|
||||
(10, 'product', 'dashboard'),
|
||||
(10, 'projectstory', 'story'),
|
||||
(10, 'projectstory', 'track'),
|
||||
(10, 'projectstory', 'view'),
|
||||
(10, 'my', 'preference'),
|
||||
(10, 'my', 'uploadAvatar'),
|
||||
(10, 'user', 'execution'),
|
||||
(10, 'user', 'issue'),
|
||||
(10, 'user', 'risk'),
|
||||
(10, 'user', 'cropAvatar'),
|
||||
(11, 'product', 'dashboard'),
|
||||
(11, 'projectstory', 'story'),
|
||||
(11, 'projectstory', 'track'),
|
||||
(11, 'projectstory', 'view'),
|
||||
(11, 'my', 'preference'),
|
||||
(11, 'my', 'uploadAvatar'),
|
||||
(11, 'user', 'execution'),
|
||||
(11, 'user', 'issue'),
|
||||
(11, 'user', 'risk'),
|
||||
(11, 'user', 'cropAvatar');
|
||||
|
||||
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'program', '', 'unitList', 'CNY,USD');
|
||||
REPLACE INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'program', '', 'defaultCurrency', 'CNY');
|
||||
|
||||
ALTER TABLE `zt_project` DROP `storyConcept`;
|
||||
ALTER TABLE `zt_product` DROP `storyConcept`;
|
||||
|
||||
ALTER TABLE `zt_user` CHANGE `avatar` `avatar` text NOT NULL AFTER `commiter`;
|
||||
ALTER TABLE `zt_project` CHANGE `budgetUnit` `budgetUnit` char(30) NOT NULL DEFAULT 'CNY' AFTER `budget`;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_searchindex`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_searchindex` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`objectType` char(20) NOT NULL,
|
||||
`objectID` mediumint(9) NOT NULL,
|
||||
`title` text NOT NULL,
|
||||
`content` text NOT NULL,
|
||||
`addedDate` datetime NOT NULL,
|
||||
`editedDate` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `object` (`objectType`,`objectID`),
|
||||
KEY `addedDate` (`addedDate`),
|
||||
FULLTEXT KEY `content` (`content`),
|
||||
FULLTEXT KEY `title` (`title`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_searchdict`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_searchdict` (
|
||||
`key` smallint(5) unsigned NOT NULL,
|
||||
`value` char(3) NOT NULL,
|
||||
PRIMARY KEY (`key`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(1, 'search', 'index'),
|
||||
(2, 'search', 'index'),
|
||||
(3, 'search', 'index'),
|
||||
(4, 'search', 'index'),
|
||||
(5, 'search', 'index'),
|
||||
(6, 'search', 'index'),
|
||||
(7, 'search', 'index'),
|
||||
(8, 'search', 'index'),
|
||||
(9, 'search', 'index'),
|
||||
(10, 'search', 'index'),
|
||||
(1, 'search', 'buildIndex');
|
||||
|
||||
ALTER TABLE `zt_config` MODIFY COLUMN `value` longtext NOT NULL AFTER `key`;
|
||||
@@ -4138,9 +4138,8 @@ INSERT INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) VA
|
||||
('zh-cn', 'custom', 'URSRList', '1', '{\"SRName\":\"\\u8f6f\\u4ef6\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '2', '{\"SRName\":\"\\u7814\\u53d1\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '3', '{\"SRName\":\"\\u8f6f\\u9700\",\"URName\":\"\\u7528\\u9700\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u9700\\u6c42\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '5', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '6', '{\"SRName\":\"\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1');
|
||||
('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1'),
|
||||
('zh-cn', 'custom', 'URSRList', '5', '{\"SRName\":\"\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1');
|
||||
|
||||
INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'custom', '', 'hourPoint', '1');
|
||||
INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'common', '', 'CRProduct', '1');
|
||||
|
||||
1
module/automation/config.php
Normal file
1
module/automation/config.php
Normal file
@@ -0,0 +1 @@
|
||||
<?php
|
||||
70
module/automation/control.php
Normal file
70
module/automation/control.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
/**
|
||||
* The control file of automation module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package automation
|
||||
* @version $Id: control.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
class automation extends control
|
||||
{
|
||||
/**
|
||||
* Project id.
|
||||
*
|
||||
* @var int
|
||||
* @access public
|
||||
*/
|
||||
public $projectID = 0;
|
||||
|
||||
/**
|
||||
* Products.
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
public $products = array();
|
||||
|
||||
/**
|
||||
* Construct function, load product module, assign products to view auto.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($moduleName = '', $methodName = '')
|
||||
{
|
||||
parent::__construct($moduleName, $methodName);
|
||||
|
||||
/* Set testtask menu group. */
|
||||
$this->projectID = isset($_GET['PRJ']) ? $_GET['PRJ'] : 0;
|
||||
if(!$this->projectID)
|
||||
{
|
||||
$this->app->loadConfig('qa');
|
||||
foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa';
|
||||
}
|
||||
|
||||
$this->view->products = $this->products = $this->loadModel('product')->getProductPairsByProject($this->projectID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Automation details.
|
||||
*
|
||||
* @param int $productID
|
||||
* @param int $branch
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function browse($productID = 0, $branch = 0)
|
||||
{
|
||||
/* Set menu. */
|
||||
$productID = $this->product->saveState($productID, $this->products);
|
||||
if(empty($branch)) $branch = (int)$this->cookie->preBranch;
|
||||
$this->automation->setMenu($this->products, $productID, $branch);
|
||||
|
||||
$this->view->title = $this->lang->automation->common;
|
||||
$this->view->position[] = $this->lang->automation->index;
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
87
module/automation/lang/de.php
Normal file
87
module/automation/lang/de.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* The admin module English file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package admin
|
||||
* @version $Id: en.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->admin->common = 'Admin';
|
||||
$lang->admin->index = 'Admin Home';
|
||||
$lang->admin->checkDB = 'Datenbank prüfen';
|
||||
$lang->admin->sso = 'SSO';
|
||||
$lang->admin->ssoAction = 'Link Zdoo';
|
||||
$lang->admin->safeIndex = 'Sicherheit';
|
||||
$lang->admin->checkWeak = 'Schwache Passwörter prüfen';
|
||||
$lang->admin->certifyMobile = 'Prüfen Sie die Mobilnummer';
|
||||
$lang->admin->certifyEmail = 'Prüfen Sie die Emailadresse';
|
||||
$lang->admin->ztCompany = 'Prüfen Sie das Unternehmen';
|
||||
$lang->admin->captcha = 'Bestätigungscode';
|
||||
$lang->admin->getCaptcha = 'Bestätigungscode anfordern';
|
||||
$lang->admin->register = 'Register';
|
||||
|
||||
$lang->admin->api = 'API';
|
||||
$lang->admin->log = 'Log';
|
||||
$lang->admin->setting = 'Einstellungen';
|
||||
$lang->admin->days = 'Gültige Tage';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = 'Aktuelle Version ist %s. ';
|
||||
$lang->admin->info->links = 'You can visit links below';
|
||||
$lang->admin->info->account = 'Ihr ZenTao Konto ist %s.';
|
||||
$lang->admin->info->log = 'Logs die über die Gültigen Tage hinausgehen werden gelöscht. Aufgabenplanung muss laufen (cron).';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "Hinweiß: Sie haben sich nicht bei ZenTao (www.zentao.pm) registriert. %s um die aktuellen Updates und News zu erhalten.";
|
||||
$lang->admin->notice->ignore = "Ignorieren";
|
||||
$lang->admin->notice->int = "『%s』sollte eine positive Zahl sein.";
|
||||
|
||||
$lang->admin->registerNotice = new stdclass();
|
||||
$lang->admin->registerNotice->common = 'Verbinde neues Konto';
|
||||
$lang->admin->registerNotice->caption = 'In der Zentao Community registieren';
|
||||
$lang->admin->registerNotice->click = 'Bitte registieren Sie sich hier';
|
||||
$lang->admin->registerNotice->lblAccount = 'mindestens 3 Zeichen bitte; mit Buchsten und Ziffern.';
|
||||
$lang->admin->registerNotice->lblPasswd = 'mindestens 6 Zeichen bitte; mit Buchsten und Ziffern.';
|
||||
$lang->admin->registerNotice->submit = 'Registieren';
|
||||
$lang->admin->registerNotice->bind = "Verbinde bestehendes Konto";
|
||||
$lang->admin->registerNotice->success = "Sie haben sich erfolgreich registriert!";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
$lang->admin->bind->caption = 'Konto verknüpfen';
|
||||
$lang->admin->bind->success = "Konto wurde verknüpft!";
|
||||
|
||||
$lang->admin->safe = new stdclass();
|
||||
$lang->admin->safe->common = 'Sicherheits-Regeln';
|
||||
$lang->admin->safe->set = 'PasswortStärke';
|
||||
$lang->admin->safe->password = 'Passwort Stärke';
|
||||
$lang->admin->safe->weak = 'Schwache Passwörter';
|
||||
$lang->admin->safe->reason = 'Typ';
|
||||
$lang->admin->safe->checkWeak = 'Schwache Passwörter prüfen';
|
||||
$lang->admin->safe->changeWeak = 'Ihr Passwort ist schwach. Bitte ändern.';
|
||||
$lang->admin->safe->loginCaptcha = 'Login using CAPTCHA';
|
||||
$lang->admin->safe->modifyPasswordFirstLogin = 'Passwort nach der ersten Anmeldung ändern';
|
||||
|
||||
$lang->admin->safe->modeList[0] = 'N/A';
|
||||
$lang->admin->safe->modeList[1] = 'Medium';
|
||||
$lang->admin->safe->modeList[2] = 'Stark';
|
||||
|
||||
$lang->admin->safe->modeRuleList[1] = 'Beinhaltet Groß und Kleinbuchstaben sowie Ziffern. Länge >= 6';
|
||||
$lang->admin->safe->modeRuleList[2] = 'Beinhaltet Groß und Kleinbuchstaben, Ziffern sowie Sonderzeichen. Länge >= 10.';
|
||||
|
||||
$lang->admin->safe->reasonList['weak'] = 'Bekannte Schwache Passwörter';
|
||||
$lang->admin->safe->reasonList['account'] = 'Entspricht ihrem Konto';
|
||||
$lang->admin->safe->reasonList['mobile'] = 'Entspricht Ihrer Mobilnummer';
|
||||
$lang->admin->safe->reasonList['phone'] = 'Entspricht Ihrer Telefonnummer';
|
||||
$lang->admin->safe->reasonList['birthday'] = 'Entspricht Ihrem Geburtstag';
|
||||
|
||||
$lang->admin->safe->modifyPasswordList[1] = 'Ja';
|
||||
$lang->admin->safe->modifyPasswordList[0] = 'Nein';
|
||||
|
||||
$lang->admin->safe->loginCaptchaList[1] = 'Ja';
|
||||
$lang->admin->safe->loginCaptchaList[0] = 'Nein';
|
||||
|
||||
$lang->admin->safe->noticeMode = 'Password will be checked when a user logs in, or a user is added or edited.';
|
||||
$lang->admin->safe->noticeStrong = '';
|
||||
87
module/automation/lang/en.php
Normal file
87
module/automation/lang/en.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* The admin module English file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package admin
|
||||
* @version $Id: en.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->admin->common = 'Admin';
|
||||
$lang->admin->index = 'Admin Home';
|
||||
$lang->admin->checkDB = 'Check Database';
|
||||
$lang->admin->sso = 'Zdoo';
|
||||
$lang->admin->ssoAction = 'Link Zdoo';
|
||||
$lang->admin->safeIndex = 'Security';
|
||||
$lang->admin->checkWeak = 'Check Weak Password';
|
||||
$lang->admin->certifyMobile = 'Verify your cellphone';
|
||||
$lang->admin->certifyEmail = 'Verify your Email';
|
||||
$lang->admin->ztCompany = 'Verify your company';
|
||||
$lang->admin->captcha = 'Verification Code';
|
||||
$lang->admin->getCaptcha = 'Send Verification Code';
|
||||
$lang->admin->register = 'Register';
|
||||
|
||||
$lang->admin->api = 'API';
|
||||
$lang->admin->log = 'Log';
|
||||
$lang->admin->setting = 'Setting';
|
||||
$lang->admin->days = 'Valid Day';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = 'Current Version is %s. ';
|
||||
$lang->admin->info->links = 'You can visit links below';
|
||||
$lang->admin->info->account = 'Your ZenTao account is %s.';
|
||||
$lang->admin->info->log = 'Log that exceeds valid days will be deleted and you have to run cron.';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "Note: You haven't registered in ZenTao official website(www.zentao.pm). %s then get the Latest ZenTao Upgrades and News.";
|
||||
$lang->admin->notice->ignore = "Ignore";
|
||||
$lang->admin->notice->int = "『%s』should be a positive integer.";
|
||||
|
||||
$lang->admin->registerNotice = new stdclass();
|
||||
$lang->admin->registerNotice->common = 'Bind Account';
|
||||
$lang->admin->registerNotice->caption = 'ZenTao Community Signup';
|
||||
$lang->admin->registerNotice->click = 'Sign Up';
|
||||
$lang->admin->registerNotice->lblAccount = '>= 3 letters and numbers';
|
||||
$lang->admin->registerNotice->lblPasswd = '>= 6 letters and numbers';
|
||||
$lang->admin->registerNotice->submit = 'Submit';
|
||||
$lang->admin->registerNotice->bind = "Bind Exsiting Account";
|
||||
$lang->admin->registerNotice->success = "You have signed up!";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
$lang->admin->bind->caption = 'Link Account';
|
||||
$lang->admin->bind->success = "Account is linked!";
|
||||
|
||||
$lang->admin->safe = new stdclass();
|
||||
$lang->admin->safe->common = 'Security Policy';
|
||||
$lang->admin->safe->set = 'Password Settings';
|
||||
$lang->admin->safe->password = 'Password Strength';
|
||||
$lang->admin->safe->weak = 'Common Weak Passwords';
|
||||
$lang->admin->safe->reason = 'Type';
|
||||
$lang->admin->safe->checkWeak = 'Weak Password Scan';
|
||||
$lang->admin->safe->changeWeak = 'Force to change weak password';
|
||||
$lang->admin->safe->loginCaptcha = 'Login using CAPTCHA';
|
||||
$lang->admin->safe->modifyPasswordFirstLogin = 'Force to change password after first login';
|
||||
|
||||
$lang->admin->safe->modeList[0] = 'I don\'t care.';
|
||||
$lang->admin->safe->modeList[1] = 'Medium';
|
||||
$lang->admin->safe->modeList[2] = 'Strong';
|
||||
|
||||
$lang->admin->safe->modeRuleList[1] = ' >= 6 upper and lower case, and numbers';
|
||||
$lang->admin->safe->modeRuleList[2] = ' >= 10 upper and lower case, numbers and special characters.';
|
||||
|
||||
$lang->admin->safe->reasonList['weak'] = 'Common Weak Password';
|
||||
$lang->admin->safe->reasonList['account'] = 'Same as account';
|
||||
$lang->admin->safe->reasonList['mobile'] = 'Same as mobilephone number';
|
||||
$lang->admin->safe->reasonList['phone'] = 'Same as phone number';
|
||||
$lang->admin->safe->reasonList['birthday'] = 'Same as DOB';
|
||||
|
||||
$lang->admin->safe->modifyPasswordList[1] = 'Yes';
|
||||
$lang->admin->safe->modifyPasswordList[0] = 'No';
|
||||
|
||||
$lang->admin->safe->loginCaptchaList[1] = 'Yes'
|
||||
$lang->admin->safe->loginCaptchaList[0] = 'No';
|
||||
|
||||
$lang->admin->safe->noticeMode = 'Password will be checked when a user logs in, or a user is added or edited.';
|
||||
$lang->admin->safe->noticeStrong = '';
|
||||
87
module/automation/lang/fr.php
Normal file
87
module/automation/lang/fr.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* The admin module English file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package admin
|
||||
* @version $Id: en.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $
|
||||
* @link https://www.zentao.pm
|
||||
*/
|
||||
$lang->admin->common = 'Admin';
|
||||
$lang->admin->index = 'Admin Home';
|
||||
$lang->admin->checkDB = 'Check Database';
|
||||
$lang->admin->sso = 'Zdoo';
|
||||
$lang->admin->ssoAction = 'Link Zdoo';
|
||||
$lang->admin->safeIndex = 'Sécurité';
|
||||
$lang->admin->checkWeak = 'Contrôle niveau de sécurité des mots de passe';
|
||||
$lang->admin->certifyMobile = 'Vérifier votre smartphone';
|
||||
$lang->admin->certifyEmail = 'Vérifier votre Email';
|
||||
$lang->admin->ztCompany = 'Vérifier votre entreprise';
|
||||
$lang->admin->captcha = 'Code de vérification';
|
||||
$lang->admin->getCaptcha = 'Obtenir le Code de vérification';
|
||||
$lang->admin->register = 'Register';
|
||||
|
||||
$lang->admin->api = 'API';
|
||||
$lang->admin->log = 'Log';
|
||||
$lang->admin->setting = 'Paramétrage';
|
||||
$lang->admin->days = 'Durée de conservation';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = 'La version actuelle est %s customisée. ';
|
||||
$lang->admin->info->links = 'Vous pouvez visiter les liens ci-dessous';
|
||||
$lang->admin->info->account = 'Votre identifiant client ZenTao est %s.';
|
||||
$lang->admin->info->log = 'Les logs qui dépassent la durée de conservation seront supprimés et vous devrez exécuter un cron.';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "Note: Vous n'êtes pas enregistré sur le site officiel de ZenTao (www.zentao.pm). %s vous pourrez ensuite obtenir les dernières Mises à Jour de ZenTao et des informations.";
|
||||
$lang->admin->notice->ignore = "Ignorer";
|
||||
$lang->admin->notice->int = "『 %s 』 devrait être un entier positif.";
|
||||
|
||||
$lang->admin->registerNotice = new stdclass();
|
||||
$lang->admin->registerNotice->common = 'Connectez-vous avec votre nouveau compte';
|
||||
$lang->admin->registerNotice->caption = "S'enregistrer sur la communauté Zentao";
|
||||
$lang->admin->registerNotice->click = "S'enregistrer ici";
|
||||
$lang->admin->registerNotice->lblAccount = '>= 3 lettres et chiffres';
|
||||
$lang->admin->registerNotice->lblPasswd = '>= 6 lettres et chiffres';
|
||||
$lang->admin->registerNotice->submit = "S'enregistrer";
|
||||
$lang->admin->registerNotice->bind = "S'associer à un compte existant";
|
||||
$lang->admin->registerNotice->success = "Vous êtes enregistré !";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
$lang->admin->bind->caption = 'Lier au compte';
|
||||
$lang->admin->bind->success = "Le compte est associé !";
|
||||
|
||||
$lang->admin->safe = new stdclass();
|
||||
$lang->admin->safe->common = 'Politique de sécurité';
|
||||
$lang->admin->safe->set = 'Paramétrages du Mot de passe';
|
||||
$lang->admin->safe->password = 'Force du Mot de passe';
|
||||
$lang->admin->safe->weak = 'Mots de passes non sécurisés courrants';
|
||||
$lang->admin->safe->reason = 'Type';
|
||||
$lang->admin->safe->checkWeak = 'Balayage des mots de passe faibles';
|
||||
$lang->admin->safe->changeWeak = 'Forcer le changement des mots de passe faibles';
|
||||
$lang->admin->safe->loginCaptcha = 'Login using CAPTCHA';
|
||||
$lang->admin->safe->modifyPasswordFirstLogin = 'Forcer le changement du mot de passe après la première connexion';
|
||||
|
||||
$lang->admin->safe->modeList[0] = "Contrôle Modéré";
|
||||
$lang->admin->safe->modeList[1] = 'Contrôle Moyen';
|
||||
$lang->admin->safe->modeList[2] = 'Contrôle Fort';
|
||||
|
||||
$lang->admin->safe->modeRuleList[1] = ' >= 6 Majuscules, minuscules et chiffres';
|
||||
$lang->admin->safe->modeRuleList[2] = ' >= 10 Majuscules, minuscules, chiffres et caractères spéciaux';
|
||||
|
||||
$lang->admin->safe->reasonList['weak'] = 'Mots de passe faibles courants';
|
||||
$lang->admin->safe->reasonList['account'] = 'Identique au compte';
|
||||
$lang->admin->safe->reasonList['mobile'] = 'Identique au numéro de mobile';
|
||||
$lang->admin->safe->reasonList['phone'] = 'Identique au téléphone fixe';
|
||||
$lang->admin->safe->reasonList['birthday'] = 'Identique à la date de naissance';
|
||||
|
||||
$lang->admin->safe->modifyPasswordList[1] = 'Oui';
|
||||
$lang->admin->safe->modifyPasswordList[0] = 'Non';
|
||||
|
||||
$lang->admin->safe->loginCaptchaList[1] = 'Oui'
|
||||
$lang->admin->safe->loginCaptchaList[0] = 'Non';
|
||||
|
||||
$lang->admin->safe->noticeMode = "Le mot de passe sera vérifié quand un utilisateur se connectera ou qu'un utilisateur sera créé ou modifier.";
|
||||
$lang->admin->safe->noticeStrong = '';
|
||||
87
module/automation/lang/vi.php
Normal file
87
module/automation/lang/vi.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* The admin module English file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Nguyễn Quốc Nho <quocnho@gmail.com>
|
||||
* @package admin
|
||||
* @version $Id: vi.php 4460 2013-02-26 02:28:02Z quocnho@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->admin->common = 'Quản trị';
|
||||
$lang->admin->index = 'Trang quản trị';
|
||||
$lang->admin->checkDB = 'Kiểm tra CSDL';
|
||||
$lang->admin->sso = 'Zdoo';
|
||||
$lang->admin->ssoAction = 'Liên kết Zdoo';
|
||||
$lang->admin->safeIndex = 'Bảo mật';
|
||||
$lang->admin->checkWeak = 'Kiểm tra độ yếu mật khẩu';
|
||||
$lang->admin->certifyMobile = 'Xác thực di động của bạn';
|
||||
$lang->admin->certifyEmail = 'Xác thực email của bạn';
|
||||
$lang->admin->ztCompany = 'Xác thực doanh nghiệp của bạn';
|
||||
$lang->admin->captcha = 'Mã xác thực';
|
||||
$lang->admin->getCaptcha = 'Gửi Mã xác thực';
|
||||
$lang->admin->register = 'Register';
|
||||
|
||||
$lang->admin->api = 'API';
|
||||
$lang->admin->log = 'Nhật ký';
|
||||
$lang->admin->setting = 'Thiết lập';
|
||||
$lang->admin->days = 'Ngày hợp lệ';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = 'Phiên bản hiện tại là %s. ';
|
||||
$lang->admin->info->links = ' Bạn có thể ghé thăm liên kết sau';
|
||||
$lang->admin->info->account = 'Tài khoản ZenTao của bạn là %s.';
|
||||
$lang->admin->info->log = 'Nhật ký vượt quá ngày hợp lệ sẽ bị xóa và bạn phải chay Cron.';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "Chú ý: Bạn chưa đăng ký trên trang web chính thức của ZenTao (www.zentao.pm). %s sau đó nhận Bản tin và nâng cấp mới nhất của ZenTao.";
|
||||
$lang->admin->notice->ignore = "Bỏ qua";
|
||||
$lang->admin->notice->int = "『%s』 nên là số nguyên dương.";
|
||||
|
||||
$lang->admin->registerNotice = new stdclass();
|
||||
$lang->admin->registerNotice->common = 'Kết nối tài khoản';
|
||||
$lang->admin->registerNotice->caption = 'Đăng ký cộng đồng ZenTao';
|
||||
$lang->admin->registerNotice->click = 'Đăng ký';
|
||||
$lang->admin->registerNotice->lblAccount = '>= 3 chữ và số';
|
||||
$lang->admin->registerNotice->lblPasswd = '>= 6 chữ và số';
|
||||
$lang->admin->registerNotice->submit = 'Gửi';
|
||||
$lang->admin->registerNotice->bind = "Kết nối với tài khoản đang tồn tại";
|
||||
$lang->admin->registerNotice->success = "Bạn đã đăng ký!";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
$lang->admin->bind->caption = 'Liên kết tài khoản';
|
||||
$lang->admin->bind->success = "Tài khoản đã được kết nối!";
|
||||
|
||||
$lang->admin->safe = new stdclass();
|
||||
$lang->admin->safe->common = 'Chính sách bảo mật';
|
||||
$lang->admin->safe->set = 'Thiết lập mật khẩu';
|
||||
$lang->admin->safe->password = 'Độ mạnh mật khẩu';
|
||||
$lang->admin->safe->weak = 'Mật khẩu yếu thường dùng';
|
||||
$lang->admin->safe->reason = 'Loại';
|
||||
$lang->admin->safe->checkWeak = 'Quét mật khẩu yếu';
|
||||
$lang->admin->safe->changeWeak = 'Chủ động thay đổi mật khẩu yếu';
|
||||
$lang->admin->safe->loginCaptcha = 'Login using CAPTCHA';
|
||||
$lang->admin->safe->modifyPasswordFirstLogin = 'Chủ động thay đổi mật khẩu sau lần đăng nhập đầu tiên';
|
||||
|
||||
$lang->admin->safe->modeList[0] = 'Yếu';
|
||||
$lang->admin->safe->modeList[1] = 'Trung bình';
|
||||
$lang->admin->safe->modeList[2] = 'Mạnh';
|
||||
|
||||
$lang->admin->safe->modeRuleList[1] = ' >= 6 chữ hoa, chữ thường và số';
|
||||
$lang->admin->safe->modeRuleList[2] = ' >= 10 chữ hoa, chữ thường, số và ký tự đặc biệt.';
|
||||
|
||||
$lang->admin->safe->reasonList['weak'] = 'Mật khẩu yếu thường dùng';
|
||||
$lang->admin->safe->reasonList['account'] = 'Giống tài khoản';
|
||||
$lang->admin->safe->reasonList['mobile'] = 'Giống số di động';
|
||||
$lang->admin->safe->reasonList['phone'] = 'Giống số điện thoại';
|
||||
$lang->admin->safe->reasonList['birthday'] = 'Giống ngày sinh';
|
||||
|
||||
$lang->admin->safe->modifyPasswordList[1] = 'Có';
|
||||
$lang->admin->safe->modifyPasswordList[0] = 'Không';
|
||||
|
||||
$lang->admin->safe->loginCaptchaList[1] = 'Yes'
|
||||
$lang->admin->safe->loginCaptchaList[0] = 'No';
|
||||
|
||||
$lang->admin->safe->noticeMode = 'Mật khẩu sẽ được kiểm tra khi người dùng đăng nhập hoặc người dùng thêm hoặc sửa.';
|
||||
$lang->admin->safe->noticeStrong = '';
|
||||
21
module/automation/lang/zh-cn.php
Normal file
21
module/automation/lang/zh-cn.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* The automation module zh-cn file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package automation
|
||||
* @version $Id: zh-cn.php 4767 2013-05-05 06:10:13Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->automation->common = '自动化测试';
|
||||
$lang->automation->index = '首页';
|
||||
|
||||
$lang->automation->description = '自动化测试解决方案';
|
||||
$lang->automation->ztf = 'ZTF自动化测试管理框架';
|
||||
$lang->automation->zendata = 'ZenData数据生成工具';
|
||||
|
||||
$lang->automation->details = '';
|
||||
$lang->automation->ztfDetails = '';
|
||||
$lang->automation->zendataDetails = '';
|
||||
83
module/automation/lang/zh-tw.php
Normal file
83
module/automation/lang/zh-tw.php
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/**
|
||||
* The admin module zh-tw file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青島易軟天創網絡科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package admin
|
||||
* @version $Id: zh-tw.php 4767 2013-05-05 06:10:13Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->admin->common = '後台管理';
|
||||
$lang->admin->index = '後台管理首頁';
|
||||
$lang->admin->checkDB = '檢查資料庫';
|
||||
$lang->admin->sso = 'ZDOO整合';
|
||||
$lang->admin->ssoAction = 'ZDOO整合';
|
||||
$lang->admin->safeIndex = '安全';
|
||||
$lang->admin->checkWeak = '弱口令檢查';
|
||||
$lang->admin->certifyMobile = '認證手機';
|
||||
$lang->admin->certifyEmail = '認證郵箱';
|
||||
$lang->admin->ztCompany = '認證公司';
|
||||
$lang->admin->captcha = '驗證碼';
|
||||
$lang->admin->getCaptcha = '獲取驗證碼';
|
||||
$lang->admin->register = '登記';
|
||||
|
||||
$lang->admin->api = '介面';
|
||||
$lang->admin->log = '日誌';
|
||||
$lang->admin->setting = '設置';
|
||||
$lang->admin->days = '日誌保存天數';
|
||||
|
||||
$lang->admin->info = new stdclass();
|
||||
$lang->admin->info->version = '當前系統的版本是%s,';
|
||||
$lang->admin->info->links = '您可以訪問以下連結:';
|
||||
$lang->admin->info->account = "您的禪道社區賬戶為%s。";
|
||||
$lang->admin->info->log = '超出存天數的日誌會被刪除,需要開啟計劃任務。';
|
||||
|
||||
$lang->admin->notice = new stdclass();
|
||||
$lang->admin->notice->register = "友情提示:您還未在禪道社區(www.zentao.net)登記,%s進行登記,以及時獲得禪道最新信息。";
|
||||
$lang->admin->notice->ignore = "不再提示";
|
||||
$lang->admin->notice->int = "『%s』應當是正整數。";
|
||||
|
||||
$lang->admin->registerNotice = new stdclass();
|
||||
$lang->admin->registerNotice->common = '註冊新帳號綁定';
|
||||
$lang->admin->registerNotice->caption = '禪道社區登記';
|
||||
$lang->admin->registerNotice->click = '點擊此處';
|
||||
$lang->admin->registerNotice->lblAccount = '請設置您的用戶名,英文字母和數字的組合,三位以上。';
|
||||
$lang->admin->registerNotice->lblPasswd = '請設置您的密碼。數字和字母的組合,六位以上。';
|
||||
$lang->admin->registerNotice->submit = '登記';
|
||||
$lang->admin->registerNotice->bind = "綁定已有帳號";
|
||||
$lang->admin->registerNotice->success = "登記賬戶成功";
|
||||
|
||||
$lang->admin->bind = new stdclass();
|
||||
$lang->admin->bind->caption = '關聯社區帳號';
|
||||
$lang->admin->bind->success = "關聯賬戶成功";
|
||||
|
||||
$lang->admin->safe = new stdclass();
|
||||
$lang->admin->safe->common = '安全策略';
|
||||
$lang->admin->safe->set = '密碼安全設置';
|
||||
$lang->admin->safe->password = '密碼安全';
|
||||
$lang->admin->safe->weak = '常用弱口令';
|
||||
$lang->admin->safe->reason = '類型';
|
||||
$lang->admin->safe->checkWeak = '弱口令掃瞄';
|
||||
$lang->admin->safe->changeWeak = '修改弱口令密碼';
|
||||
$lang->admin->safe->modifyPasswordFirstLogin = '首次登錄修改密碼';
|
||||
|
||||
$lang->admin->safe->modeList[0] = '不檢查';
|
||||
$lang->admin->safe->modeList[1] = '中';
|
||||
$lang->admin->safe->modeList[2] = '強';
|
||||
|
||||
$lang->admin->safe->modeRuleList[1] = '6位以上,包含大小寫字母,數字。';
|
||||
$lang->admin->safe->modeRuleList[2] = '10位以上,包含字母,數字,特殊字元。';
|
||||
|
||||
$lang->admin->safe->reasonList['weak'] = '常用弱口令';
|
||||
$lang->admin->safe->reasonList['account'] = '與帳號相同';
|
||||
$lang->admin->safe->reasonList['mobile'] = '與手機相同';
|
||||
$lang->admin->safe->reasonList['phone'] = '與電話相同';
|
||||
$lang->admin->safe->reasonList['birthday'] = '與生日相同';
|
||||
|
||||
$lang->admin->safe->modifyPasswordList[1] = '必須修改';
|
||||
$lang->admin->safe->modifyPasswordList[0] = '不強制';
|
||||
|
||||
$lang->admin->safe->noticeMode = '系統會在登錄、創建和修改用戶、修改密碼的時候檢查用戶口令。';
|
||||
$lang->admin->safe->noticeStrong = '密碼長度越長,含有大寫字母或數字或特殊符號越多,密碼字母越不重複,安全度越強!';
|
||||
46
module/automation/model.php
Normal file
46
module/automation/model.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/**
|
||||
* The model file of automation module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package automation
|
||||
* @version $Id: model.php 5148 2013-07-16 01:31:08Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
class automationModel extends model
|
||||
{
|
||||
/**
|
||||
* Set the menu.
|
||||
*
|
||||
* @param array $products
|
||||
* @param int $productID
|
||||
* @param int $branch
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setMenu($products, $productID, $branch = 0)
|
||||
{
|
||||
$this->loadModel('product');
|
||||
foreach($this->lang->testtask->menu as $key => $value)
|
||||
{
|
||||
if($this->lang->navGroup->testtask != 'qa') $this->loadModel('qa')->setSubMenu('automation', $key, $productID);
|
||||
common::setMenuVars($this->lang->testtask->menu, $key, $productID);
|
||||
}
|
||||
|
||||
if($this->lang->navGroup->automation == 'qa')
|
||||
{
|
||||
foreach($this->lang->qa->subMenu->automation as $key => $menu)
|
||||
{
|
||||
common::setMenuVars($this->lang->qa->subMenu->automation, $key, $productID);
|
||||
}
|
||||
$this->lang->qa->menu = $this->lang->automation->menu;
|
||||
$this->lang->automation->menu = $this->lang->qa->subMenu->automation;
|
||||
$this->lang->qa->switcherMenu = $this->product->getSwitcher($productID, '', $branch);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
38
module/automation/view/browse.html.php
Normal file
38
module/automation/view/browse.html.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* The view file of automation module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package automation
|
||||
* @version $Id: view.html.php 2568 2012-02-09 06:56:35Z shiyangyangwork@yahoo.cn $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<ul class="nav nav-tabs nav-stacked">
|
||||
<li class="active"><a href="###" data-target="#tab3Content1" data-toggle="tab"><?php echo $lang->automation->description;?></a></li>
|
||||
<li><a href="###" data-target="#tab3Content2" data-toggle="tab"><?php echo $lang->automation->ztf;?></a></li>
|
||||
<li><a href="###" data-target="#tab3Content3" data-toggle="tab"><?php echo $lang->automation->zendata;?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<div class="tab-content col-xs-9">
|
||||
<div class="tab-pane fade active in" id="tab3Content1">
|
||||
<p>我是标签1。</p>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab3Content2">
|
||||
<p>标签2的内容。</p>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="tab3Content3">
|
||||
<p>这是标签3的内容。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -106,11 +106,15 @@ $lang->qa->menuOrder[30] = 'report';
|
||||
$lang->qa->menuOrder[35] = 'testsuite';
|
||||
$lang->qa->menuOrder[40] = 'caselib';
|
||||
$lang->bug->menuOrder = $lang->qa->menuOrder;
|
||||
$lang->testcase->menuOrder = $lang->bug->menuOrder;
|
||||
$lang->testtask->menuOrder = $lang->testcase->menuOrder;
|
||||
$lang->testsuite->menuOrder = $lang->testcase->menuOrder;
|
||||
$lang->caselib->menuOrder = $lang->testcase->menuOrder;
|
||||
$lang->testreport->menuOrder = $lang->testcase->menuOrder;
|
||||
$lang->testtask->menuOrder = $lang->qa->menuOrder;
|
||||
$lang->testreport->menuOrder = $lang->qa->menuOrder;
|
||||
|
||||
$lang->testcase->menuOrder[5] = 'feature';
|
||||
$lang->testcase->menuOrder[10] = 'unit';
|
||||
$lang->testcase->menuOrder[15] = 'testsuite';
|
||||
$lang->testcase->menuOrder[20] = 'caselib';
|
||||
$lang->caselib->menuOrder = $lang->testcase->menuOrder;
|
||||
$lang->testsuite->menuOrder = $lang->testcase->menuOrder;
|
||||
|
||||
$lang->ci->menuOrder[5] = 'code';
|
||||
$lang->ci->menuOrder[10] = 'build';
|
||||
|
||||
@@ -349,7 +349,7 @@ $lang->execution->viewMenu->qa = array('link' => '测试|qa|index|');
|
||||
$lang->execution->viewMenu->ci = array('link' => '代码|repo|browse|');
|
||||
$lang->execution->viewMenu->doc = array('link' => '文档|doc|objectLibs|type=execution&objectID=%s&from=execution', 'subModule' => 'doc');
|
||||
$lang->execution->viewMenu->build = array('link' => '版本|execution|build|executionID=%s', 'subModule' => 'build');
|
||||
$lang->execution->viewMenu->release = array('link' => '发布|projectrelease|browse|project={PROJECT}');
|
||||
$lang->execution->viewMenu->release = array('link' => '发布|projectrelease|browse|project=%s');
|
||||
$lang->execution->viewMenu->action = array('link' => '动态|execution|dynamic|executionID=%s');
|
||||
$lang->execution->viewMenu->setting = array('link' => '设置|execution|view|executionID=%s', 'subModule' => 'personnel', 'alias' => 'edit', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
@@ -377,7 +377,7 @@ $lang->qa->menu = new stdclass();
|
||||
|
||||
$lang->qa->menu->index = array('link' => '仪表盘|qa|index');
|
||||
$lang->qa->menu->bug = array('link' => 'Bug|bug|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,resolve,close,activate,report,batchedit,batchactivate,confirmbug,assignto');
|
||||
$lang->qa->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->qa->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'subModule' => 'testsuite,caselib', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->qa->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase,report,importunitresult', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->qa->menu->automation = array('link' => '自动化|automation|browse|productID=%s', 'alias' => '', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
@@ -394,10 +394,10 @@ $lang->qa->subMenu->testtask->report = array('link' => '报告|testreport|brow
|
||||
|
||||
$lang->qa->subMenu->automation = new stdclass();
|
||||
$lang->qa->subMenu->automation->browse = array('link' => '介绍|automation|browse|productID=%s', 'alias' => '');
|
||||
$lang->qa->subMenu->automation->framework = array('link' => '框架|automation|framework|productID=%s', 'alias' => '');
|
||||
$lang->qa->subMenu->automation->data = array('link' => '数据|automation|date|productID=%s', 'alias' => '');
|
||||
$lang->qa->subMenu->automation->interface = array('link' => '接口|automation|interface|productID=%s', 'alias' => '');
|
||||
$lang->qa->subMenu->automation->environment = array('link' => '环境|automation|environment|productID=%s', 'alias' => '');
|
||||
//$lang->qa->subMenu->automation->framework = array('link' => '框架|automation|framework|productID=%s', 'alias' => '');
|
||||
//$lang->qa->subMenu->automation->data = array('link' => '数据|automation|date|productID=%s', 'alias' => '');
|
||||
//$lang->qa->subMenu->automation->interface = array('link' => '接口|automation|interface|productID=%s', 'alias' => '');
|
||||
//$lang->qa->subMenu->automation->environment = array('link' => '环境|automation|environment|productID=%s', 'alias' => '');
|
||||
|
||||
$lang->bug = new stdclass();
|
||||
$lang->bug->menu = new stdclass();
|
||||
@@ -454,6 +454,15 @@ $lang->caselib->menu->testcase = array('link' => '用例|testcase|browse|produ
|
||||
$lang->caselib->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->caselib->menu->automation = array('link' => '自动化|automation|browse|productID=%s', 'alias' => '', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->automation = new stdclass();
|
||||
$lang->automation->menu = new stdclass();
|
||||
$lang->automation->subMenu = $lang->qa->subMenu;
|
||||
$lang->automation->menu->index = array('link' => '仪表盘|qa|index');
|
||||
$lang->automation->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
|
||||
$lang->automation->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->automation->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s', 'subModule' => 'testreport', 'class' => 'dropdown dropdown-hover');
|
||||
$lang->automation->menu->automation = array('link' => '自动化|automation|browse|productID=%s', 'alias' => '', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->ci = new stdclass();
|
||||
$lang->ci->menu = new stdclass();
|
||||
$lang->ci->menu->code = array('link' => '代码|repo|browse|repoID=%s', 'alias' => 'diff,view,revision,log,blame,showsynccomment');
|
||||
@@ -583,11 +592,7 @@ $lang->menugroup->upgrade = 'admin';
|
||||
$lang->menugroup->user = 'company';
|
||||
$lang->menugroup->group = 'company';
|
||||
$lang->menugroup->bug = 'qa';
|
||||
$lang->menugroup->testcase = 'qa';
|
||||
$lang->menugroup->case = 'qa';
|
||||
$lang->menugroup->testtask = 'qa';
|
||||
$lang->menugroup->testsuite = 'qa';
|
||||
$lang->menugroup->caselib = 'qa';
|
||||
$lang->menugroup->testreport = 'qa';
|
||||
$lang->menugroup->people = 'admin';
|
||||
$lang->menugroup->dept = 'company';
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . ' Bibliothek';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . ' Bibliothek';
|
||||
$lang->doc->libTypeList['custom'] = 'Eigene Bibliothek';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['execution'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . ' Library';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . ' Library';
|
||||
$lang->doc->libTypeList['custom'] = 'Custom Library';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['execution'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . ' Library';
|
||||
$lang->doc->libTypeList['execution'] = 'Bibliothèque ' . $lang->executionCommon;
|
||||
$lang->doc->libTypeList['custom'] = 'Bib. Personnalisée';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['execution'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . ' thư viện';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . ' thư viện';
|
||||
$lang->doc->libTypeList['custom'] = 'Tùy biến thư viện';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['execution'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . '文档库';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . '文档库';
|
||||
$lang->doc->libTypeList['custom'] = '自定义文档库';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['execution'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ $lang->doc->libTypeList['product'] = $lang->productCommon . '文檔庫';
|
||||
$lang->doc->libTypeList['project'] = $lang->executionCommon . '文檔庫';
|
||||
$lang->doc->libTypeList['custom'] = '自定義文檔庫';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-cube';
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
$lang->doc->libIconList['project'] = 'icon-stack';
|
||||
$lang->doc->libIconList['custom'] = 'icon-folder-o';
|
||||
|
||||
|
||||
@@ -24,4 +24,4 @@
|
||||
.is-firefox .group-header:before {content: ' '; position: absolute; top: 0; right: 0; left: 0; bottom: 0; background: #fff; z-index: 0;}
|
||||
.is-firefox .group-header > a,
|
||||
.is-firefox .group-header > .groupSummary {position: relative; z-index: 1;}
|
||||
.c-hours {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
|
||||
.c-hours {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: right;}
|
||||
|
||||
@@ -412,7 +412,7 @@ class executionModel extends model
|
||||
$member = new stdclass();
|
||||
$member->root = $executionID;
|
||||
$member->account = $this->app->user->account;
|
||||
$member->role = $this->lang->user->roleList[$this->app->user->role];
|
||||
$member->role = zget($this->lang->user->roleList, $this->app->user->role, '');
|
||||
$member->join = $today;
|
||||
$member->type = $sprintType;
|
||||
$member->days = $sprint->days;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
.table td.has-child > .plan-toggle > .icon:before {text-align: left;}
|
||||
.table td.has-child > .plan-toggle.collapsed > .icon {-ms-transform:rotate(90deg); -moz-transform:rotate(90deg); -o-transform:rotate(90deg); -webkit-transform:rotate(90deg); transform: rotate(90deg);}
|
||||
.main-table tbody > tr.table-children > td:first-child::before {width: 3px;}
|
||||
.hours {text-align: right;}
|
||||
@-moz-document url-prefix() {.main-table tbody > tr.table-children > td:first-child::before {width: 4px;}}
|
||||
</style>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
@@ -75,9 +76,9 @@
|
||||
<th class='thWidth'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->execution->PM);?></th>
|
||||
<th class='w-90px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->execution->end);?></th>
|
||||
<th class='w-90px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->execution->status);?></th>
|
||||
<th class='w-70px'><?php echo $lang->execution->totalEstimate;?></th>
|
||||
<th class='w-70px'><?php echo $lang->execution->totalConsumed;?></th>
|
||||
<th class='w-70px'><?php echo $lang->execution->totalLeft;?></th>
|
||||
<th class='w-70px hours'><?php echo $lang->execution->totalEstimate;?></th>
|
||||
<th class='w-70px hours'><?php echo $lang->execution->totalConsumed;?></th>
|
||||
<th class='w-70px hours'><?php echo $lang->execution->totalLeft;?></th>
|
||||
<th class='w-150px'><?php echo $lang->execution->progress;?></th>
|
||||
<th class='w-100px'><?php echo $lang->execution->burn;?></th>
|
||||
<?php if($canOrder):?>
|
||||
@@ -113,9 +114,9 @@
|
||||
<td class='c-status' title='<?php echo $executionStatus;?>'>
|
||||
<span class="status-execution status-<?php echo $execution->status?>"><?php echo $executionStatus;?></span>
|
||||
</td>
|
||||
<td><?php echo $execution->hours->totalEstimate . ' ' . $config->hourUnit;?></td>
|
||||
<td><?php echo $execution->hours->totalConsumed . ' ' . $config->hourUnit;?></td>
|
||||
<td><?php echo $execution->hours->totalLeft . ' ' . $config->hourUnit;?></td>
|
||||
<td class='hours'><?php echo $execution->hours->totalEstimate . ' ' . $config->hourUnit;?></td>
|
||||
<td class='hours'><?php echo $execution->hours->totalConsumed . ' ' . $config->hourUnit;?></td>
|
||||
<td class='hours'><?php echo $execution->hours->totalLeft . ' ' . $config->hourUnit;?></td>
|
||||
<td class="c-progress">
|
||||
<div class="progress progress-text-left">
|
||||
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $execution->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $execution->hours->progress;?>%">
|
||||
@@ -157,9 +158,9 @@
|
||||
<td class='c-status' title='<?php echo $executionStatus;?>'>
|
||||
<span class="status-execution status-<?php echo $child->status?>"><?php echo $executionStatus;?></span>
|
||||
</td>
|
||||
<td><?php echo $child->hours->totalEstimate;?></td>
|
||||
<td><?php echo $child->hours->totalConsumed;?></td>
|
||||
<td><?php echo $child->hours->totalLeft;?></td>
|
||||
<td class='hours'><?php echo $child->hours->totalEstimate;?></td>
|
||||
<td class='hours'><?php echo $child->hours->totalConsumed;?></td>
|
||||
<td class='hours'><?php echo $child->hours->totalLeft;?></td>
|
||||
<td class="c-progress">
|
||||
<div class="progress progress-text-left">
|
||||
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="<?php echo $child->hours->progress;?>" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $child->hours->progress;?>%">
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<table class="table table-grouped text-center">
|
||||
<table class="table table-grouped">
|
||||
<thead>
|
||||
<tr class="<?php if($allCount) echo 'divider';?>">
|
||||
<th class="c-side text-left has-btn group-menu">
|
||||
@@ -117,9 +117,9 @@
|
||||
<th class="c-status"><?php echo $lang->task->status;?></th>
|
||||
<th class="text-left w-60px"><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class="w-90px"><?php echo $lang->task->finishedBy;?></th>
|
||||
<th class="w-60px text-right"><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class="w-50px"><?php echo $lang->task->consumedAB;?></th>
|
||||
<th class="w-50px"><?php echo $lang->task->leftAB;?></th>
|
||||
<th class="w-60px c-hours"><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class="w-50px c-hours"><?php echo $lang->task->consumedAB;?></th>
|
||||
<th class="w-50px c-hours"><?php echo $lang->task->leftAB;?></th>
|
||||
<th class="w-50px" title='<?php echo $lang->task->progress;?>'><?php echo $lang->task->progressAB;?></th>
|
||||
<th class="c-type"><?php echo $lang->typeAB;?></th>
|
||||
<th class="c-date"><?php echo $lang->task->deadlineAB;?></th>
|
||||
@@ -202,7 +202,7 @@
|
||||
<td class="c-status"><span class='status-task status-<?php echo $task->status;?>'> <?php echo $this->processStatus('task', $task);?></span></td>
|
||||
<td class="c-assign text-left"><?php echo "<span class='$assignedToClass'>" . $task->assignedToRealName . "</span>";?></td>
|
||||
<td class='c-user'><?php echo zget($users, $task->finishedBy);?></td>
|
||||
<td class="c-hours em text-right" title="<?php echo $task->estimate . ' ' . $lang->execution->workHour;?>"><?php echo $task->estimate . ' ' . $lang->execution->workHourUnit;?></td>
|
||||
<td class="c-hours em" title="<?php echo $task->estimate . ' ' . $lang->execution->workHour;?>"><?php echo $task->estimate . ' ' . $lang->execution->workHourUnit;?></td>
|
||||
<td class="c-hours em" title="<?php echo $task->consumed . ' ' . $lang->execution->workHour;?>"><?php echo $task->consumed . ' ' . $lang->execution->workHourUnit;?></td>
|
||||
<td class="c-hours em" title="<?php echo $task->left . ' ' . $lang->execution->workHour;?>"><?php echo $task->left . ' ' . $lang->execution->workHourUnit;?></td>
|
||||
<td class="c-num em"><?php echo $task->progress . '%';?></td>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
echo html::a($storyLink, $story->title);
|
||||
?>
|
||||
</td>
|
||||
<td title='<?php echo $story->planTitle;?>'><?php echo $story->planTitle;?></td>
|
||||
<td class='text-ellipsis' title='<?php echo $story->planTitle;?>'><?php echo $story->planTitle;?></td>
|
||||
<td><?php echo zget($lang->story->stageList, $story->stage);?></td>
|
||||
<?php if($productType != 'normal'):?>
|
||||
<td><?php if(isset($branchGroups[$story->product][$story->branch])) echo $branchGroups[$story->product][$story->branch];?></td>
|
||||
|
||||
@@ -72,11 +72,11 @@ class product extends control
|
||||
* @param string $status
|
||||
* @param int $productID
|
||||
* @param int $branch
|
||||
* @param int $projectMine
|
||||
* @param int $involved
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function project($status = 'all', $productID = 0, $branch = 0, $projectMine = 0)
|
||||
public function project($status = 'all', $productID = 0, $branch = 0, $involved = 0)
|
||||
{
|
||||
$this->product->setMenu($this->products, $productID, $branch);
|
||||
$this->lang->product->switcherMenu = $this->product->getSwitcher($productID);
|
||||
@@ -88,7 +88,7 @@ class product extends control
|
||||
|
||||
/* Get PM id list. */
|
||||
$accounts = array();
|
||||
$projectStats = $this->product->getProjectStatsByProduct($productID, $status, $branch, $projectMine);
|
||||
$projectStats = $this->product->getProjectStatsByProduct($productID, $status, $branch, $involved);
|
||||
foreach($projectStats as $project)
|
||||
{
|
||||
if(!empty($project->PM) and !in_array($project->PM, $accounts)) $accounts[] = $project->PM;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
$(function()
|
||||
{
|
||||
$('#mainMenu input[name^="PRJMine"]').click(function()
|
||||
$('#mainMenu input[name^="involved"]').click(function()
|
||||
{
|
||||
var PRJMine = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('PRJMine', PRJMine, {expires:config.cookieLife, path:config.webRoot});
|
||||
var involved = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('involved', involved, {expires:config.cookieLife, path:config.webRoot});
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -875,11 +875,11 @@ class productModel extends model
|
||||
* @param int $productID
|
||||
* @param string $browseType
|
||||
* @param int $branch
|
||||
* @param int $projectMine
|
||||
* @param int $involved
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProjectListByProduct($productID, $browseType = 'all', $branch = 0, $projectMine = 0)
|
||||
public function getProjectListByProduct($productID, $browseType = 'all', $branch = 0, $involved = 0)
|
||||
{
|
||||
$projectList = $this->dao->select('t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
|
||||
@@ -887,7 +887,7 @@ class productModel extends model
|
||||
->andWhere('t2.type')->eq('project')
|
||||
->beginIF($browseType != 'all')->andWhere('t2.status')->eq($browseType)->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF($this->cookie->projectMine or $projectMine)
|
||||
->beginIF($this->cookie->involved or $involved)
|
||||
->andWhere('t2.openedBy', true)->eq($this->app->user->account)
|
||||
->orWhere('t2.PM')->eq($this->app->user->account)
|
||||
->markRight(1)
|
||||
@@ -910,13 +910,13 @@ class productModel extends model
|
||||
* @param int $productID
|
||||
* @param string $browseType
|
||||
* @param int $branch
|
||||
* @param int $projectMine
|
||||
* @param int $involved
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProjectStatsByProduct($productID, $browseType = 'all', $branch = 0, $projectMine = 0)
|
||||
public function getProjectStatsByProduct($productID, $browseType = 'all', $branch = 0, $involved = 0)
|
||||
{
|
||||
$projects = $this->getProjectListByProduct($productID, $browseType, $branch, $projectMine);
|
||||
$projects = $this->getProjectListByProduct($productID, $browseType, $branch, $involved);
|
||||
if(empty($projects)) return array();
|
||||
|
||||
$projectKeys = array_keys($projects);
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
foreach($userIdPairs as $userID => $name)
|
||||
{
|
||||
if(!$userID) continue;
|
||||
$searchKey = $withSearch ? ('data-key="' . zget($usersPinYin, $userID, '') . '"') : '';
|
||||
$searchKey = $withSearch ? ('data-key="' . zget($usersPinYin, $name, '') . '"') : '';
|
||||
echo html::a($this->createLink('product', 'dynamic', "productID=$productID&type=account¶m=$userID"), $name, '', $searchKey);
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<?php foreach($lang->execution->featureBar['all'] as $key => $label):?>
|
||||
<?php echo html::a(inlink("project", "status=$key&productID=$productID"), "<span class='text'>{$label}</span>" . ($status == $key ? " <span class='label label-light label-badge'>" . count($projectStats) . "</span>" : ''), '', "class='btn btn-link" . ($status == $key ? ' btn-active-text' : '') . "' id='{$key}Tab'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('projectMine', array('1' => $lang->project->mine), '', $this->cookie->projectMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('involved', array('1' => $lang->project->mine), '', $this->cookie->involved ? 'checked=checked' : '');?>
|
||||
<div class="tip"><icon class='icon icon-help' data-toggle='popover' data-trigger='focus hover' data-placement='right' data-tip-class='text-muted popover-sm' data-content=<?php echo $lang->product->projectInfo;?>></icon></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -662,7 +662,7 @@ class program extends control
|
||||
foreach($projects as $id => $name)
|
||||
{
|
||||
$active = $data->cpoyProjectID == $id ? 'active' : '';
|
||||
$html .= "<div class='col-md-4 col-sm-6'><a href='javascript:;' data-id=$id class='nobr $active'>" . html::icon($this->lang->icons['project'], 'text-muted') . $name . "</a></div>";
|
||||
$html .= "<div class='col-md-4 col-sm-6'><a href='javascript:;' data-id=$id class='nobr $active'>" . html::icon($this->lang->icons['project'], 'text-muted') . $name . "</a></div>";
|
||||
}
|
||||
echo $html;
|
||||
}
|
||||
@@ -691,7 +691,7 @@ class program extends control
|
||||
{
|
||||
$programs = $this->post->programs;
|
||||
foreach($programs as $id => $order)
|
||||
{
|
||||
{
|
||||
$this->dao->update(TABLE_PROJECT)
|
||||
->set('`order`')->eq($order)
|
||||
->where('id')->eq($id)
|
||||
|
||||
@@ -128,11 +128,11 @@ class programModel extends model
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param int $programTitle
|
||||
* @param int $projectMine
|
||||
* @param int $involved
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getProjectList($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $projectMine = 0)
|
||||
public function getProjectList($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $involved = 0)
|
||||
{
|
||||
$path = '';
|
||||
if($programID)
|
||||
@@ -148,7 +148,7 @@ class programModel extends model
|
||||
->beginIF($path)->andWhere('path')->like($path . '%')->fi()
|
||||
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('id')->in($this->app->user->view->sprints)->fi()
|
||||
->beginIF($this->cookie->projectMine or $projectMine)
|
||||
->beginIF($this->cookie->involved or $involved)
|
||||
->andWhere('openedBy', true)->eq($this->app->user->account)
|
||||
->orWhere('PM')->eq($this->app->user->account)
|
||||
->markRight(1)
|
||||
@@ -777,14 +777,14 @@ class programModel extends model
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param string $programTitle
|
||||
* @param int $projectMine
|
||||
* @param int $involved
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProjectStats($programID = 0, $browseType = 'undone', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $projectMine = 0)
|
||||
public function getProjectStats($programID = 0, $browseType = 'undone', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $involved = 0)
|
||||
{
|
||||
/* Init vars. */
|
||||
$projects = $this->getProjectList($programID, $browseType, $queryID, $orderBy, $pager, $programTitle, $projectMine);
|
||||
$projects = $this->getProjectList($programID, $browseType, $queryID, $orderBy, $pager, $programTitle, $involved);
|
||||
if(empty($projects)) return array();
|
||||
|
||||
$projectKeys = array_keys($projects);
|
||||
|
||||
@@ -26,7 +26,7 @@ js::set('browseType', $browseType);
|
||||
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('project', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('involved ', array('1' => $lang->project->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('involved ', array('1' => $lang->project->mine), '', $this->cookie->involved ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
@@ -98,10 +98,10 @@ js::set('browseType', $browseType);
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('#PRJMine1').click(function()
|
||||
$('input[name^="involved"]').click(function()
|
||||
{
|
||||
var PRJMine = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('PRJMine', PRJMine, {expires:config.cookieLife, path:config.webRoot});
|
||||
var involved = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('involved', involved, {expires:config.cookieLife, path:config.webRoot});
|
||||
window.location.reload();
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
$(function()
|
||||
{
|
||||
$('#projectMine').click(function()
|
||||
$('input[name^="involved"]').click(function()
|
||||
{
|
||||
var mine = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('projectMine', mine, {expires:config.cookieLife, path:config.webRoot});
|
||||
var involved = $(this).is(':checked') ? 1 : 0;
|
||||
$.cookie('involved', involved, {expires:config.cookieLife, path:config.webRoot});
|
||||
window.location.reload();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -92,6 +92,7 @@ $lang->project->teamCount = 'Team';
|
||||
$lang->project->longTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->moreProject = 'More Project';
|
||||
$lang->project->days = 'Manntage';
|
||||
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
|
||||
@@ -92,6 +92,7 @@ $lang->project->teamCount = 'Team';
|
||||
$lang->project->longTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->moreProject = 'More Project';
|
||||
$lang->project->days = 'Available Days';
|
||||
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
|
||||
@@ -92,6 +92,7 @@ $lang->project->teamCount = 'Team';
|
||||
$lang->project->longTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->moreProject = 'More Project';
|
||||
$lang->project->days = 'Available Days';
|
||||
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
|
||||
@@ -92,6 +92,7 @@ $lang->project->teamCount = 'Team';
|
||||
$lang->project->longTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->moreProject = 'More Project';
|
||||
$lang->project->days = 'Available Days';
|
||||
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
|
||||
@@ -93,6 +93,7 @@ $lang->project->teamCount = '项目成员';
|
||||
$lang->project->longTime = '长期';
|
||||
$lang->project->future = '待定';
|
||||
$lang->project->moreProject = '更多项目';
|
||||
$lang->project->days = '可用工作日';
|
||||
|
||||
$lang->project->productNotEmpty = '请关联产品或创建产品。';
|
||||
$lang->project->existProductName = '产品名称已存在。';
|
||||
|
||||
@@ -35,7 +35,7 @@ js::set('browseType', $browseType);
|
||||
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('browse', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('projectMine', array('1' => $lang->project->mine), '', $this->cookie->projectMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('involved', array('1' => $lang->project->mine), '', $this->cookie->involved ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
</tr>
|
||||
<?php if($project->model == 'scrum'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->execution->days;?></th>
|
||||
<th><?php echo $lang->project->days;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('days', $project->days, "class='form-control'");?>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
$config->qa->menuList = array('caselib', 'testreport', 'testsuite', 'testtask', 'testcase', 'bug', 'qa');
|
||||
$config->qa->menuList = array('caselib', 'testreport', 'testsuite', 'testtask', 'testcase', 'bug', 'qa', 'automation');
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
<th class='w-40px'> <?php echo $lang->priAB;?></th>
|
||||
<th> <?php echo $lang->story->title;?></th>
|
||||
<th class='w-100px'><?php echo $lang->story->assignedTo;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->story->estimate;?></th>
|
||||
<th class='w-90px'> <?php echo $lang->story->estimate;?></th>
|
||||
<th class='w-80px'> <?php echo $lang->story->status;?></th>
|
||||
<th class='w-200px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
|
||||
@@ -43,7 +43,6 @@ class testtask extends control
|
||||
{
|
||||
$this->app->loadConfig('qa');
|
||||
foreach($this->config->qa->menuList as $module) $this->lang->navGroup->$module = 'qa';
|
||||
//$this->lang->noMenuModule[] = $this->app->rawModule;
|
||||
}
|
||||
|
||||
$this->loadModel('product');
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
td.delayed {color: #fff; background: #e84e0f !important;}
|
||||
.hours {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
|
||||
.hours {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: right;}
|
||||
|
||||
@@ -38,13 +38,13 @@
|
||||
<?php $vars = "userID={$user->id}&storyType=$storyType&type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='w-200px'> <?php common::printOrderLink('product', $orderBy, $vars, $lang->story->product);?></th>
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
|
||||
<th class='w-150px'> <?php common::printOrderLink('plan', $orderBy, $vars, $lang->story->plan);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-80px'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='w-200px'><?php common::printOrderLink('product', $orderBy, $vars, $lang->story->product);?></th>
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->story->title);?></th>
|
||||
<th class='w-150px'><?php common::printOrderLink('plan', $orderBy, $vars, $lang->story->plan);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-80px text-right'><?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
|
||||
<th class='w-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
|
||||
</tr>
|
||||
@@ -59,7 +59,7 @@
|
||||
<td class='text-left nobr'><?php echo html::a($storyLink, $story->title);?></td>
|
||||
<td title='<?php echo $story->planTitle;?>'><?php echo $story->planTitle;?></td>
|
||||
<td><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td><?php echo $story->estimate . ' ' . $config->hourUnit;?></td>
|
||||
<td class='text-right' title="<?php echo $story->estimate . ' ' . $lang->hourCommon;?>"><?php echo $story->estimate . ' ' . $config->hourUnit;?></td>
|
||||
<td class='story-<?php echo $story->status;?>'><?php echo $this->processStatus('story', $story);?></td>
|
||||
<td><?php echo $lang->story->stageList[$story->stage];?></td>
|
||||
</tr>
|
||||
|
||||
@@ -41,15 +41,15 @@
|
||||
<?php $vars = "userID={$user->id}&type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"; ?>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-id'><?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri'><?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='w-id'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-pri'><?php echo $lang->priAB;?></th>
|
||||
<th><?php common::printOrderLink('execution', $orderBy, $vars, $lang->task->execution);?></th>
|
||||
<th><?php common::printOrderLink('name', $orderBy, $vars, $lang->task->name);?></th>
|
||||
<th class='w-70px'><?php common::printOrderLink('estimate', $orderBy, $vars, $lang->task->estimateAB);?></th>
|
||||
<th class='w-70px'><?php common::printOrderLink('consumed', $orderBy, $vars, $lang->task->consumedAB);?></th>
|
||||
<th class='w-hour'><?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
|
||||
<th class='w-date'><?php common::printOrderLink('deadline', $orderBy, $vars, $lang->task->deadlineAB);?></th>
|
||||
<th class='w-70px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-70px hours'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class='w-70px hours'><?php echo $lang->task->consumedAB;?></th>
|
||||
<th class='w-hour hours'><?php echo $lang->task->leftAB;?></th>
|
||||
<th class='w-date'><?php echo $lang->task->deadlineAB;?></th>
|
||||
<th class='w-70px'><?php echo $lang->statusAB;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
Reference in New Issue
Block a user