Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -109,6 +109,25 @@ $config->hourPointCommonList['vi'][0] = 'giờ';
|
||||
$config->hourPointCommonList['vi'][1] = 'điểm';
|
||||
$config->hourPointCommonList['vi'][2] = 'function point';
|
||||
|
||||
/* Plan common list. */
|
||||
$config->planCommonList['zh-cn'][0] = '计划';
|
||||
$config->planCommonList['zh-cn'][1] = '排期';
|
||||
|
||||
$config->planCommonList['zh-tw'][0] = '计划';
|
||||
$config->planCommonList['zh-tw'][1] = '排期';
|
||||
|
||||
$config->planCommonList['en'][0] = 'Plan';
|
||||
$config->planCommonList['en'][1] = 'Schedule';
|
||||
|
||||
$config->planCommonList['de'][0] = 'Plan';
|
||||
$config->planCommonList['de'][1] = 'Schedule';
|
||||
|
||||
$config->planCommonList['fr'][0] = 'Plan';
|
||||
$config->planCommonList['fr'][1] = 'Schedule';
|
||||
|
||||
$config->planCommonList['vi'][0] = 'Plan';
|
||||
$config->planCommonList['vi'][1] = 'Schedule';
|
||||
|
||||
$config->manualUrl['home'] = 'https://www.zentao.net/book/zentaopmshelp.html?fullScreen=zentao';
|
||||
$config->manualUrl['int'] = 'https://www.zentao.pm/book/zentaomanual/zentao-installation-11.html?fullScreen=zentao';
|
||||
|
||||
|
||||
+9
-9
@@ -295,15 +295,15 @@ INSERT INTO `zt_testrun` (`id`, `task`, `case`, `version`, `assignedTo`, `lastRu
|
||||
|
||||
INSERT INTO `zt_testtask` (`id`, `name`, `product`, `project`, `build`, `owner`, `begin`, `end`, `desc`, `status`, `deleted`) VALUES(1, '企业网站第一期测试任务', 1, 1, 'trunk', 'testManager', '2012-06-05', '2013-06-21', '', 'wait', '0');
|
||||
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(2, 5, 'productManager', 'e10adc3949ba59abbe56e057f20f883e', 'po', '产品经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338866083, '0');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(3, 6, 'projectManager', 'e10adc3949ba59abbe56e057f20f883e', 'pm', '项目经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338865876, '0');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(4, 2, 'dev1', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发甲', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338863860, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(5, 2, 'dev2', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发乙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338864116, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(6, 2, 'dev3', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发丙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338864187, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(7, 3, 'tester1', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试甲', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338865739, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(8, 3, 'tester2', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试乙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 2, '192.168.0.8', 1338865450, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(9, 3, 'tester3', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试丙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338865125, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(10, 1, 'testManager', 'e10adc3949ba59abbe56e057f20f883e', 'qd', '测试经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 6, '192.168.0.8', 1338865842, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(2, 5, 'productManager', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'po', '产品经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338866083, '0');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(3, 6, 'projectManager', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'pm', '项目经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338865876, '0');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(4, 2, 'dev1', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发甲', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338863860, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(5, 2, 'dev2', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发乙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338864116, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(6, 2, 'dev3', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'dev', '开发丙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338864187, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(7, 3, 'tester1', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试甲', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 3, '192.168.0.8', 1338865739, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(8, 3, 'tester2', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试乙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 2, '192.168.0.8', 1338865450, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(9, 3, 'tester3', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'qa', '测试丙', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 1, '192.168.0.8', 1338865125, '1');
|
||||
INSERT INTO `zt_user` (`id`, `dept`, `account`, `type`, `password`, `role`, `realname`, `nickname`, `commiter`, `avatar`, `birthday`, `gender`, `email`, `skype`, `qq`, `weixin`, `dingding`, `slack`, `mobile`, `phone`, `address`, `zipcode`, `join`, `visits`, `ip`, `last`, `deleted`) VALUES(10, 1, 'testManager', 'inside', 'e10adc3949ba59abbe56e057f20f883e', 'qd', '测试经理', '', '', '', '0000-00-00', 'm', '', '', '', '', '', '', '', '', '', '', '0000-00-00', 6, '192.168.0.8', 1338865842, '1');
|
||||
|
||||
INSERT INTO `zt_usergroup` (`account`, `group`) VALUES('productManager', 5);
|
||||
INSERT INTO `zt_usergroup` (`account`, `group`) VALUES('projectManager', 4);
|
||||
|
||||
+4
-1
@@ -36,6 +36,7 @@ ALTER TABLE `zt_usergroup` ADD `program` text NOT NULL;
|
||||
ALTER TABLE `zt_userview` ADD `programs` mediumtext COLLATE 'utf8_general_ci' NOT NULL AFTER `account`;
|
||||
|
||||
ALTER TABLE `zt_user` ADD `type` char(30) NOT NULL AFTER `account`;
|
||||
update zt_user set `type` = 'inside';
|
||||
|
||||
CREATE TABLE `zt_stage` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
@@ -141,7 +142,7 @@ CREATE TABLE `zt_risk` (
|
||||
`status` varchar(30) NOT NULL DEFAULT 'active',
|
||||
`impact` char(30) NOT NULL,
|
||||
`probability` char(30) NOT NULL,
|
||||
`riskindex` char(30) NOT NULL,
|
||||
`rate` char(30) NOT NULL,
|
||||
`pri` char(30) NOT NULL,
|
||||
`identifiedDate` date NOT NULL,
|
||||
`prevention` text NOT NULL,
|
||||
@@ -297,3 +298,5 @@ ALTER TABLE `zt_block` ADD UNIQUE `account_module_type_order` (`account`, `modul
|
||||
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 `storyChanged` enum('0','1') NOT NULL DEFAULT '0' AFTER `version`;
|
||||
|
||||
ALTER TABLE `zt_design` MODIFY `commit` varchar(255);
|
||||
|
||||
+1
-1
@@ -853,7 +853,7 @@ CREATE TABLE `zt_risk` (
|
||||
`status` varchar(30) NOT NULL DEFAULT 'active',
|
||||
`impact` char(30) NOT NULL,
|
||||
`probability` char(30) NOT NULL,
|
||||
`riskindex` char(30) NOT NULL,
|
||||
`rate` char(30) NOT NULL,
|
||||
`pri` char(30) NOT NULL,
|
||||
`identifiedDate` date NOT NULL,
|
||||
`prevention` text NOT NULL,
|
||||
|
||||
@@ -840,16 +840,16 @@ class baseRouter
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从Get里取progarm id 设置到session中
|
||||
* Set program id into session.
|
||||
*
|
||||
/**
|
||||
* 从Get里取progarm id 设置到session中。
|
||||
* Get progarm id from Get and set it to session.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setProgram()
|
||||
{
|
||||
if(isset($_GET['pgm'])) $this->session->set('program', $_GET['pgm']); //Set program into session.
|
||||
{
|
||||
if(isset($_GET['pgm'])) $this->session->set('program', $_GET['pgm']); //Set program id into session.
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -146,7 +146,7 @@ class router extends baseRouter
|
||||
}
|
||||
}
|
||||
|
||||
$productCommon = $storyCommon = $hourCommon = 0;
|
||||
$productCommon = $storyCommon = $hourCommon = $planCommon = 0;
|
||||
$projectCommon = empty($this->config->isINT) ? 0 : 1;
|
||||
|
||||
foreach($commonSettings as $setting)
|
||||
@@ -166,16 +166,21 @@ class router extends baseRouter
|
||||
if($this->session->program)
|
||||
{
|
||||
$template = $this->dbh->query('SELECT template FROM' . TABLE_PROJECT . "WHERE id = {$this->session->program}")->fetch();
|
||||
if($template->template == 'waterfall') $projectCommon = 2;
|
||||
if($template->template == 'waterfall')
|
||||
{
|
||||
$projectCommon = 2;
|
||||
$planCommon = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$config->storyCommon = $storyCommon;
|
||||
|
||||
/* Set productCommon, projectCommon, storyCommon and hourCommon. Default english lang. */
|
||||
/* Set productCommon, projectCommon, storyCommon, hourCommon and planCommon. Default english lang. */
|
||||
$lang->productCommon = isset($this->config->productCommonList[$this->clientLang][(int)$productCommon]) ? $this->config->productCommonList[$this->clientLang][(int)$productCommon] : $this->config->productCommonList['en'][(int)$productCommon];
|
||||
$lang->projectCommon = isset($this->config->projectCommonList[$this->clientLang][(int)$projectCommon]) ? $this->config->projectCommonList[$this->clientLang][(int)$projectCommon] : $this->config->projectCommonList['en'][(int)$projectCommon];
|
||||
$lang->storyCommon = isset($this->config->storyCommonList[$this->clientLang][(int)$storyCommon]) ? $this->config->storyCommonList[$this->clientLang][(int)$storyCommon] : $this->config->storyCommonList['en'][(int)$storyCommon];
|
||||
$lang->hourCommon = isset($this->config->hourPointCommonList[$this->clientLang][(int)$hourCommon]) ? $this->config->hourPointCommonList[$this->clientLang][(int)$hourCommon] : $this->config->hourPointCommonList['en'][(int)$hourCommon];
|
||||
$lang->planCommon = isset($this->config->planCommonList[$this->clientLang][(int)$planCommon]) ? $this->config->planCommonList[$this->clientLang][(int)$planCommon] : $this->config->planCommonList['en'][(int)$planCommon];
|
||||
|
||||
if($storyCommon == 0 and isset($URAndSR))
|
||||
{
|
||||
|
||||
@@ -405,6 +405,7 @@ $lang->action->label->entry = 'Eintrag|entry|browse|';
|
||||
$lang->action->label->webhook = 'Webhook|webhook|browse|';
|
||||
$lang->action->label->space = ' ';
|
||||
$lang->action->label->risk = 'Risk|risk|view|riskID=%s';
|
||||
$lang->action->label->issue = 'Issue|issue|view|issueID=%s';
|
||||
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
|
||||
@@ -405,6 +405,7 @@ $lang->action->label->entry = 'Application|entry|browse|';
|
||||
$lang->action->label->webhook = 'Webhook|webhook|browse|';
|
||||
$lang->action->label->space = ' ';
|
||||
$lang->action->label->risk = 'Risk|risk|view|riskID=%s';
|
||||
$lang->action->label->issue = 'Issue|issue|view|issueID=%s';
|
||||
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
|
||||
@@ -405,6 +405,7 @@ $lang->action->label->entry = 'Application|entry|browse|';
|
||||
$lang->action->label->webhook = 'Webhook|webhook|browse|';
|
||||
$lang->action->label->space = ' ';
|
||||
$lang->action->label->risk = 'Risk|risk|view|riskID=%s';
|
||||
$lang->action->label->issue = 'Issue|issue|view|issueID=%s';
|
||||
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
|
||||
@@ -405,6 +405,7 @@ $lang->action->label->entry = 'Ứng dụng|entry|browse|';
|
||||
$lang->action->label->webhook = 'Webhook|webhook|browse|';
|
||||
$lang->action->label->space = ' ';
|
||||
$lang->action->label->risk = 'Risk|risk|view|riskID%s';
|
||||
$lang->action->label->issue = 'Issue|issue|view|issueID=%s';
|
||||
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
|
||||
@@ -66,7 +66,7 @@ $lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
|
||||
|
||||
$lang->action->objectTypes['product'] = $lang->productCommon;
|
||||
$lang->action->objectTypes['story'] = $lang->storyCommon;
|
||||
$lang->action->objectTypes['productplan'] = '计划';
|
||||
$lang->action->objectTypes['productplan'] = $lang->planCommon;
|
||||
$lang->action->objectTypes['release'] = '发布';
|
||||
$lang->action->objectTypes['program'] = '项目';
|
||||
$lang->action->objectTypes['project'] = $lang->projectCommon;
|
||||
@@ -179,8 +179,8 @@ $lang->action->label->fromlib = '从用例库导入';
|
||||
$lang->action->label->totask = '转任务';
|
||||
$lang->action->label->svncommited = '提交代码';
|
||||
$lang->action->label->gitcommited = '提交代码';
|
||||
$lang->action->label->linked2plan = '关联计划';
|
||||
$lang->action->label->unlinkedfromplan = '移除计划';
|
||||
$lang->action->label->linked2plan = "关联{$lang->planCommon}";
|
||||
$lang->action->label->unlinkedfromplan = "移除{$lang->planCommon}";
|
||||
$lang->action->label->changestatus = '修改状态';
|
||||
$lang->action->label->marked = '编辑了';
|
||||
$lang->action->label->linked2project = "关联{$lang->projectCommon}";
|
||||
@@ -246,8 +246,8 @@ $lang->action->dynamicAction->product['deleted'] = '删除' . $lang->p
|
||||
$lang->action->dynamicAction->product['closed'] = '关闭' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->product['undeleted'] = '还原' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->product['hidden'] = '隐藏' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->productplan['opened'] = '创建计划';
|
||||
$lang->action->dynamicAction->productplan['edited'] = '编辑计划';
|
||||
$lang->action->dynamicAction->productplan['opened'] = "创建{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->productplan['edited'] = "编辑{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->release['opened'] = '创建发布';
|
||||
$lang->action->dynamicAction->release['edited'] = '编辑发布';
|
||||
$lang->action->dynamicAction->release['changestatus'] = '修改发布状态';
|
||||
@@ -260,8 +260,8 @@ $lang->action->dynamicAction->story['reviewed'] = "评审{$lang->stor
|
||||
$lang->action->dynamicAction->story['closed'] = "关闭{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['assigned'] = "指派{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['changed'] = "变更{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['linked2plan'] = "{$lang->storyCommon}关联计划";
|
||||
$lang->action->dynamicAction->story['unlinkedfromplan'] = "计划移除{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['linked2plan'] = "{$lang->storyCommon}关联{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->story['unlinkedfromplan'] = "{$lang->planCommon}移除{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['linked2release'] = "{$lang->storyCommon}关联发布";
|
||||
$lang->action->dynamicAction->story['unlinkedfromrelease'] = "发布移除{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->story['linked2build'] = "{$lang->storyCommon}关联版本";
|
||||
@@ -326,8 +326,8 @@ $lang->action->dynamicAction->bug['deleted'] = '删除Bug';
|
||||
$lang->action->dynamicAction->bug['confirmed'] = "确认{$lang->storyCommon}变更";
|
||||
$lang->action->dynamicAction->bug['tostory'] = "转{$lang->storyCommon}";
|
||||
$lang->action->dynamicAction->bug['totask'] = '转任务';
|
||||
$lang->action->dynamicAction->bug['linked2plan'] = 'Bug关联计划';
|
||||
$lang->action->dynamicAction->bug['unlinkedfromplan'] = '计划移除Bug';
|
||||
$lang->action->dynamicAction->bug['linked2plan'] = "Bug关联{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->bug['unlinkedfromplan'] = "{$lang->planCommon}移除Bug";
|
||||
$lang->action->dynamicAction->bug['linked2release'] = 'Bug关联发布';
|
||||
$lang->action->dynamicAction->bug['unlinkedfromrelease'] = '发布移除Bug';
|
||||
$lang->action->dynamicAction->bug['linked2bug'] = 'Bug关联版本';
|
||||
@@ -384,7 +384,7 @@ $lang->action->dynamicAction->entry['edited'] = '编辑应用';
|
||||
|
||||
/* 用来生成相应对象的链接。*/
|
||||
$lang->action->label->product = $lang->productCommon . '|product|view|productID=%s';
|
||||
$lang->action->label->productplan = '计划|productplan|view|productID=%s';
|
||||
$lang->action->label->productplan = "{$lang->planCommon}|productplan|view|productID=%s";
|
||||
$lang->action->label->release = '发布|release|view|productID=%s';
|
||||
$lang->action->label->story = "{$lang->storyCommon}|story|view|storyID=%s";
|
||||
$lang->action->label->program = "项目|program|browse|";
|
||||
@@ -425,7 +425,7 @@ $lang->action->search->objectTypeList['doclib'] = '文档库';
|
||||
$lang->action->search->objectTypeList['todo'] = '待办';
|
||||
$lang->action->search->objectTypeList['build'] = '版本';
|
||||
$lang->action->search->objectTypeList['release'] = '发布';
|
||||
$lang->action->search->objectTypeList['productplan'] = '计划';
|
||||
$lang->action->search->objectTypeList['productplan'] = $lang->planCommon;
|
||||
$lang->action->search->objectTypeList['branch'] = '分支';
|
||||
$lang->action->search->objectTypeList['testsuite'] = '套件';
|
||||
$lang->action->search->objectTypeList['caselib'] = '公共库';
|
||||
|
||||
@@ -850,6 +850,17 @@ class actionModel extends model
|
||||
if(strpos($action->objectLabel, '|') !== false)
|
||||
{
|
||||
list($objectLabel, $moduleName, $methodName, $vars) = explode('|', $action->objectLabel);
|
||||
$action->objectLink = '';
|
||||
|
||||
/* Fix bug #2961. */
|
||||
$isLoginOrLogout = $action->objectType == 'user' and ($action->action == 'login' or $action->action == 'logout');
|
||||
|
||||
if(!common::hasPriv($moduleName, $methodName) and !$isLoginOrLogout)
|
||||
{
|
||||
unset($actions[$i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$action->objectLink = helper::createLink($moduleName, $methodName, sprintf($vars, $action->objectID));
|
||||
if($action->objectType == 'user') $action->objectLink = helper::createLink($moduleName, $methodName, sprintf($vars, $action->objectName));
|
||||
$action->objectLabel = $objectLabel;
|
||||
|
||||
+14
-17
@@ -1116,14 +1116,14 @@ class block extends control
|
||||
*/
|
||||
public function printWaterfallReportBlock()
|
||||
{
|
||||
$this->loadModel('program');
|
||||
$program = $this->loadModel('project')->getByID($this->session->program);
|
||||
$today = helper::today();
|
||||
$date = date('Ymd', strtotime($this->loadModel('weekly')->getThisMonday($today)));
|
||||
$date = date('Ymd', strtotime('this week Monday'));
|
||||
$begin = $program->begin;
|
||||
$weeks = $this->weekly->getWeekPairs($begin);
|
||||
$weeks = $this->loadModel('weekly')->getWeekPairs($begin);
|
||||
$current = zget($weeks, $date, '');
|
||||
$task = $this->dao->select("
|
||||
|
||||
$task = $this->dao->select("
|
||||
sum(consumed) as totalConsumed,
|
||||
sum(if(status != 'cancel' and status != 'closed', `left`, 0)) as totalLeft")
|
||||
->from(TABLE_TASK)->where('program')->eq($this->session->program)
|
||||
@@ -1312,7 +1312,7 @@ class block extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function printScrumprojectBlock()
|
||||
public function printSprintBlock()
|
||||
{
|
||||
$status = $this->dao->select('status, count(*) as count')->from(TABLE_PROJECT)
|
||||
->where('deleted')->eq(0)
|
||||
@@ -1341,20 +1341,17 @@ class block extends control
|
||||
*/
|
||||
public function printScrumdynamicBlock()
|
||||
{
|
||||
$projects = $this->loadModel('project')->getPairs();
|
||||
$products = $this->loadModel('product')->getPairs();
|
||||
$projects = $this->loadModel('project')->getPairs();
|
||||
$products = $this->loadModel('product')->getPairs();
|
||||
|
||||
$actions = array();
|
||||
if(!empty($projects) || !empty($products))
|
||||
{
|
||||
$actions = $this->dao->select('*')->from(TABLE_ACTION)
|
||||
->beginIF($projects && $products)->where('project')->in(array_keys($projects))->orWhere('product')->in(array_keys($products))->fi()
|
||||
->beginIF($projects && empty($products))->where('project')->in(array_keys($projects))->fi()
|
||||
->beginIF(empty($projects) && $products)->where('product')->in(array_keys($products))->fi()
|
||||
->orderBy('date_desc')
|
||||
->limit(10)
|
||||
->fetchAll();
|
||||
}
|
||||
$actions = $this->dao->select('*')->from(TABLE_ACTION)
|
||||
->where('project')->eq($this->session->program)
|
||||
->beginIF($projects)->markLeft()->orWhere('project')->in(array_keys($projects))->fi()->markRight()
|
||||
->beginIF($products)->markLeft()->orWhere('product')->in(array_keys($products))->fi()->markRight()
|
||||
->orderBy('date_desc')
|
||||
->limit(10)
|
||||
->fetchAll();
|
||||
|
||||
$this->view->actions = empty($actions) ? array() : $this->loadModel('action')->transformActions($actions);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
|
||||
+100
-1
@@ -32,9 +32,11 @@ $lang->block->lblNum = 'Nummer';
|
||||
$lang->block->lblHtml = 'HTML';
|
||||
$lang->block->dynamic = 'Verlauf';
|
||||
$lang->block->assignToMe = 'Mir zugewiesen';
|
||||
$lang->block->done = 'Done';
|
||||
$lang->block->lblFlowchart = 'Workflow';
|
||||
$lang->block->welcome = 'Willkommen';
|
||||
$lang->block->lblTesttask = 'Test Request Detail';
|
||||
$lang->block->contribute = 'Personal Contribution';
|
||||
|
||||
$lang->block->leftToday = 'Arbeit für Heute';
|
||||
$lang->block->myTask = 'Aufgaben';
|
||||
@@ -50,8 +52,17 @@ $lang->block->openedStories = 'The Number Of Stories Created';
|
||||
$lang->block->resolvedTasks = 'The Number Of Tasks Resolved';
|
||||
$lang->block->resolvedBugs = 'The Number Of Bugs Resolved';
|
||||
$lang->block->openedTestcases = 'The Number Of Test Case Created';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->scrum = 'Scrum+';
|
||||
$lang->block->allProject = 'All ' . $lang->projectCommon;
|
||||
$lang->block->doingProject = 'Doning ' . $lang->projectCommon;
|
||||
$lang->block->finishProject = 'Finish ' . $lang->projectCommon;
|
||||
$lang->block->estimatedHours = 'Estimated Hours';
|
||||
$lang->block->consumedHours = 'Consumed Hours';
|
||||
$lang->block->time = 'No';
|
||||
$lang->block->week = 'Week';
|
||||
$lang->block->month = 'Month';
|
||||
$lang->block->selectProduct = 'Product selection';
|
||||
|
||||
$lang->block->params = new stdclass();
|
||||
$lang->block->params->name = 'Name';
|
||||
@@ -71,6 +82,91 @@ $lang->block->nbsp = '';
|
||||
$lang->block->hidden = 'Verstecken';
|
||||
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s <em>%s</em> %s <a href='%s'>%s</a></span>";
|
||||
|
||||
$lang->block->productName = $lang->productCommon . ' Name';
|
||||
$lang->block->totalStory = 'The Total ' . $lang->storyCommon;
|
||||
$lang->block->totalBug = 'The Total Bug';
|
||||
$lang->block->totalRelease = 'Release The Number';
|
||||
|
||||
$lang->block->totalInvestment = 'Total investment';
|
||||
$lang->block->totalPeople = 'Total number';
|
||||
$lang->block->spent = 'Has Been Spent';
|
||||
$lang->block->budget = 'Budget';
|
||||
$lang->block->left = 'Residuals';
|
||||
|
||||
$lang->block->default['waterfall']['program']['1']['title'] = $lang->projectCommon . 'Weekly';
|
||||
$lang->block->default['waterfall']['program']['1']['block'] = 'Pmmireport';
|
||||
$lang->block->default['waterfall']['program']['1']['source'] = 'Program';
|
||||
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
|
||||
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
|
||||
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
|
||||
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
|
||||
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
|
||||
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
|
||||
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['title'] = 'Program Issue';
|
||||
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
|
||||
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['block'] = 'dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
|
||||
$lang->block->default['waterfall']['program']['6']['source'] = '';
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['title'] = $lang->projectCommon . 'Risk';
|
||||
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
|
||||
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['1']['title'] = $lang->projectCommon . ' Overall';
|
||||
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverall';
|
||||
$lang->block->default['scrum']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . ' List';
|
||||
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
|
||||
$lang->block->default['scrum']['program']['2']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['3']['title'] = $lang->productCommon . ' Road Map';
|
||||
$lang->block->default['scrum']['program']['3']['block'] = 'scrumroadmap';
|
||||
$lang->block->default['scrum']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['title'] = 'Test Version';
|
||||
$lang->block->default['scrum']['program']['4']['block'] = 'scrumtest';
|
||||
$lang->block->default['scrum']['program']['4']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['params']['type'] = 'all';
|
||||
$lang->block->default['scrum']['program']['4']['params']['num'] = '15';
|
||||
$lang->block->default['scrum']['program']['4']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['5']['title'] = $lang->productCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['5']['block'] = 'scrumproduct';
|
||||
$lang->block->default['scrum']['program']['5']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['6']['title'] = $lang->projectCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'sprint';
|
||||
$lang->block->default['scrum']['program']['6']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['7']['title'] = 'Dynamic';
|
||||
$lang->block->default['scrum']['program']['7']['block'] = 'scrumdynamic';
|
||||
$lang->block->default['scrum']['program']['7']['grid'] = 4;
|
||||
|
||||
$lang->block->default['product']['1']['title'] = $lang->productCommon . ' Berichte';
|
||||
$lang->block->default['product']['1']['block'] = 'statistic';
|
||||
$lang->block->default['product']['1']['grid'] = 8;
|
||||
@@ -163,14 +259,17 @@ $lang->block->default['full']['my']['1']['title'] = 'Willkommen';
|
||||
$lang->block->default['full']['my']['1']['block'] = 'welcome';
|
||||
$lang->block->default['full']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['full']['my']['1']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['2']['title'] = 'Verlauf';
|
||||
$lang->block->default['full']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['full']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['full']['my']['2']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['3']['title'] = 'Flowchart';
|
||||
$lang->block->default['full']['my']['3']['block'] = 'flowchart';
|
||||
$lang->block->default['full']['my']['3']['grid'] = 8;
|
||||
$lang->block->default['full']['my']['3']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['4']['title'] = 'Meine Todos';
|
||||
$lang->block->default['full']['my']['4']['block'] = 'list';
|
||||
$lang->block->default['full']['my']['4']['grid'] = 4;
|
||||
|
||||
+27
-20
@@ -62,6 +62,7 @@ $lang->block->consumedHours = 'Consumed Hours';
|
||||
$lang->block->time = 'No';
|
||||
$lang->block->week = 'Week';
|
||||
$lang->block->month = 'Month';
|
||||
$lang->block->selectProduct = 'Product selection';
|
||||
|
||||
$lang->block->params = new stdclass();
|
||||
$lang->block->params->name = 'Name';
|
||||
@@ -81,10 +82,16 @@ $lang->block->nbsp = ' ';
|
||||
$lang->block->hidden = 'Hide';
|
||||
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s <em>%s</em> %s <a href='%s' title='%s'>%s</a></span>";
|
||||
|
||||
$lang->block->productName = $lang->productCommon . ' Name';
|
||||
$lang->block->totalStory = 'The Total ' . $lang->storyCommon;
|
||||
$lang->block->totalBug = 'The Total Bug';
|
||||
$lang->block->totalRelease = 'Release The Number';
|
||||
$lang->block->productName = $lang->productCommon . ' Name';
|
||||
$lang->block->totalStory = 'The Total ' . $lang->storyCommon;
|
||||
$lang->block->totalBug = 'The Total Bug';
|
||||
$lang->block->totalRelease = 'Release The Number';
|
||||
|
||||
$lang->block->totalInvestment = 'Total investment';
|
||||
$lang->block->totalPeople = 'Total number';
|
||||
$lang->block->spent = 'Has Been Spent';
|
||||
$lang->block->budget = 'Budget';
|
||||
$lang->block->left = 'Residuals';
|
||||
|
||||
$lang->block->default['waterfall']['program']['1']['title'] = $lang->projectCommon . 'Weekly';
|
||||
$lang->block->default['waterfall']['program']['1']['block'] = 'Pmmireport';
|
||||
@@ -153,7 +160,7 @@ $lang->block->default['scrum']['program']['5']['block'] = 'scrumproduct';
|
||||
$lang->block->default['scrum']['program']['5']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['6']['title'] = $lang->projectCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'scrumproject';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'sprint';
|
||||
$lang->block->default['scrum']['program']['6']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['7']['title'] = 'Dynamic';
|
||||
@@ -334,10 +341,10 @@ $lang->block->modules['scrum']['index'] = new stdclass();
|
||||
$lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverall = $lang->projectCommon . ' Overall';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->projectCommon . ' List';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumproject = $lang->projectCommon . ' Overview';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumroadmap = $lang->productCommon . ' Rode Map';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->projectCommon . ' Overview';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumproduct = $lang->productCommon . ' Overview';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = 'Test Version';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumroadmap = $lang->productCommon . ' Rode Map';
|
||||
|
||||
$lang->block->modules['waterfall']['index'] = new stdclass();
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
|
||||
@@ -472,19 +479,19 @@ $lang->block->typeList->testtask['done'] = 'Done';
|
||||
$lang->block->typeList->testtask['all'] = 'All';
|
||||
|
||||
$lang->block->modules['program']->moreLinkList = new stdclass();
|
||||
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->statistic = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->program = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallreport = 'weekly|index|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallestimate = 'workestimation|index|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallissue = 'issue|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallrisk = 'risk|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumroadmap = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproject = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumdynamic = 'company|dynamic|';
|
||||
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->statistic = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->program = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumroadmap = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->sprint = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumdynamic = 'company|dynamic|';
|
||||
|
||||
$lang->block->modules['product']->moreLinkList = new stdclass();
|
||||
$lang->block->modules['product']->moreLinkList->list = 'product|all|product=&line=0&status=%s';
|
||||
|
||||
@@ -32,9 +32,11 @@ $lang->block->lblNum = 'Numéro';
|
||||
$lang->block->lblHtml = 'HTML';
|
||||
$lang->block->dynamic = 'Historique';
|
||||
$lang->block->assignToMe = 'Assigné à moi';
|
||||
$lang->block->done = 'Done';
|
||||
$lang->block->lblFlowchart = 'Organigramme';
|
||||
$lang->block->welcome = 'Bienvenue';
|
||||
$lang->block->lblTesttask = 'Détail Recette';
|
||||
$lang->block->contribute = 'Personal Contribution';
|
||||
|
||||
$lang->block->leftToday = 'Reste à faire';
|
||||
$lang->block->myTask = 'Mes Tâches';
|
||||
@@ -50,8 +52,17 @@ $lang->block->openedStories = 'The Number Of Stories Created';
|
||||
$lang->block->resolvedTasks = 'The Number Of Tasks Resolved';
|
||||
$lang->block->resolvedBugs = 'The Number Of Bugs Resolved';
|
||||
$lang->block->openedTestcases = 'The Number Of Test Case Created';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->scrum = 'Scrum+';
|
||||
$lang->block->allProject = 'All ' . $lang->projectCommon;
|
||||
$lang->block->doingProject = 'Doning ' . $lang->projectCommon;
|
||||
$lang->block->finishProject = 'Finish ' . $lang->projectCommon;
|
||||
$lang->block->estimatedHours = 'Estimated Hours';
|
||||
$lang->block->consumedHours = 'Consumed Hours';
|
||||
$lang->block->time = 'No';
|
||||
$lang->block->week = 'Week';
|
||||
$lang->block->month = 'Month';
|
||||
$lang->block->selectProduct = 'Product selection';
|
||||
|
||||
$lang->block->params = new stdclass();
|
||||
$lang->block->params->name = 'Nom';
|
||||
@@ -71,6 +82,91 @@ $lang->block->nbsp = ' ';
|
||||
$lang->block->hidden = 'Masquer';
|
||||
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s <em>%s</em> %s <a href='%s' title='%s'>%s</a></span>";
|
||||
|
||||
$lang->block->productName = $lang->productCommon . ' Name';
|
||||
$lang->block->totalStory = 'The Total ' . $lang->storyCommon;
|
||||
$lang->block->totalBug = 'The Total Bug';
|
||||
$lang->block->totalRelease = 'Release The Number';
|
||||
|
||||
$lang->block->totalInvestment = 'Total investment';
|
||||
$lang->block->totalPeople = 'Total number';
|
||||
$lang->block->spent = 'Has Been Spent';
|
||||
$lang->block->budget = 'Budget';
|
||||
$lang->block->left = 'Residuals';
|
||||
|
||||
$lang->block->default['waterfall']['program']['1']['title'] = $lang->projectCommon . 'Weekly';
|
||||
$lang->block->default['waterfall']['program']['1']['block'] = 'Pmmireport';
|
||||
$lang->block->default['waterfall']['program']['1']['source'] = 'Program';
|
||||
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
|
||||
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
|
||||
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
|
||||
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
|
||||
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
|
||||
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
|
||||
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['title'] = 'Program Issue';
|
||||
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
|
||||
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['block'] = 'dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
|
||||
$lang->block->default['waterfall']['program']['6']['source'] = '';
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['title'] = $lang->projectCommon . 'Risk';
|
||||
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
|
||||
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['1']['title'] = $lang->projectCommon . ' Overall';
|
||||
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverall';
|
||||
$lang->block->default['scrum']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . ' List';
|
||||
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
|
||||
$lang->block->default['scrum']['program']['2']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['3']['title'] = $lang->productCommon . ' Road Map';
|
||||
$lang->block->default['scrum']['program']['3']['block'] = 'scrumroadmap';
|
||||
$lang->block->default['scrum']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['title'] = 'Test Version';
|
||||
$lang->block->default['scrum']['program']['4']['block'] = 'scrumtest';
|
||||
$lang->block->default['scrum']['program']['4']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['params']['type'] = 'all';
|
||||
$lang->block->default['scrum']['program']['4']['params']['num'] = '15';
|
||||
$lang->block->default['scrum']['program']['4']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['5']['title'] = $lang->productCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['5']['block'] = 'scrumproduct';
|
||||
$lang->block->default['scrum']['program']['5']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['6']['title'] = $lang->projectCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'sprint';
|
||||
$lang->block->default['scrum']['program']['6']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['7']['title'] = 'Dynamic';
|
||||
$lang->block->default['scrum']['program']['7']['block'] = 'scrumdynamic';
|
||||
$lang->block->default['scrum']['program']['7']['grid'] = 4;
|
||||
|
||||
$lang->block->default['product']['1']['title'] = ' Rapport de ' . $lang->productCommon;
|
||||
$lang->block->default['product']['1']['block'] = 'statistic';
|
||||
$lang->block->default['product']['1']['grid'] = 8;
|
||||
@@ -163,10 +259,12 @@ $lang->block->default['full']['my']['1']['title'] = 'Bienvenue';
|
||||
$lang->block->default['full']['my']['1']['block'] = 'welcome';
|
||||
$lang->block->default['full']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['full']['my']['1']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['2']['title'] = 'Historique';
|
||||
$lang->block->default['full']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['full']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['full']['my']['2']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['3']['title'] = 'Organigramme';
|
||||
$lang->block->default['full']['my']['3']['block'] = 'flowchart';
|
||||
$lang->block->default['full']['my']['3']['grid'] = 8;
|
||||
|
||||
@@ -32,9 +32,11 @@ $lang->block->lblNum = 'Số';
|
||||
$lang->block->lblHtml = 'HTML';
|
||||
$lang->block->dynamic = 'Lịch sử';
|
||||
$lang->block->assignToMe = 'Giao cho bạn';
|
||||
$lang->block->done = 'Done';
|
||||
$lang->block->lblFlowchart = 'Biểu đồ';
|
||||
$lang->block->welcome = 'Welcome';
|
||||
$lang->block->lblTesttask = 'Chi tiết yêu cầu Test';
|
||||
$lang->block->contribute = 'Personal Contribution';
|
||||
|
||||
$lang->block->leftToday = 'Việc hôm nay';
|
||||
$lang->block->myTask = 'Nhiệm vụ';
|
||||
@@ -50,8 +52,17 @@ $lang->block->openedStories = 'The Number Of Stories Created';
|
||||
$lang->block->resolvedTasks = 'The Number Of Tasks Resolved';
|
||||
$lang->block->resolvedBugs = 'The Number Of Bugs Resolved';
|
||||
$lang->block->openedTestcases = 'The Number Of Test Case Created';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->waterfall = 'CMMI 3';
|
||||
$lang->block->scrum = 'Scrum+';
|
||||
$lang->block->allProject = 'All ' . $lang->projectCommon;
|
||||
$lang->block->doingProject = 'Doning ' . $lang->projectCommon;
|
||||
$lang->block->finishProject = 'Finish ' . $lang->projectCommon;
|
||||
$lang->block->estimatedHours = 'Estimated Hours';
|
||||
$lang->block->consumedHours = 'Consumed Hours';
|
||||
$lang->block->time = 'No';
|
||||
$lang->block->week = 'Week';
|
||||
$lang->block->month = 'Month';
|
||||
$lang->block->selectProduct = 'Product selection';
|
||||
|
||||
$lang->block->params = new stdclass();
|
||||
$lang->block->params->name = 'Tên';
|
||||
@@ -71,6 +82,91 @@ $lang->block->nbsp = ' ';
|
||||
$lang->block->hidden = 'Ẩn';
|
||||
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s <em>%s</em> %s <a href='%s' title='%s'>%s</a></span>";
|
||||
|
||||
$lang->block->productName = $lang->productCommon . ' Name';
|
||||
$lang->block->totalStory = 'The Total ' . $lang->storyCommon;
|
||||
$lang->block->totalBug = 'The Total Bug';
|
||||
$lang->block->totalRelease = 'Release The Number';
|
||||
|
||||
$lang->block->totalInvestment = 'Total investment';
|
||||
$lang->block->totalPeople = 'Total number';
|
||||
$lang->block->spent = 'Has Been Spent';
|
||||
$lang->block->budget = 'Budget';
|
||||
$lang->block->left = 'Residuals';
|
||||
|
||||
$lang->block->default['waterfall']['program']['1']['title'] = $lang->projectCommon . 'Weekly';
|
||||
$lang->block->default['waterfall']['program']['1']['block'] = 'Pmmireport';
|
||||
$lang->block->default['waterfall']['program']['1']['source'] = 'Program';
|
||||
$lang->block->default['waterfall']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['2']['title'] = 'Estimate';
|
||||
$lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimate';
|
||||
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = 'Plan Gantt Chart';
|
||||
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
|
||||
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['4']['title'] = 'Progress Chart';
|
||||
$lang->block->default['waterfall']['program']['4']['block'] = 'waterfallprogress';
|
||||
$lang->block->default['waterfall']['program']['4']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['title'] = 'Program Issue';
|
||||
$lang->block->default['waterfall']['program']['5']['block'] = 'waterfallissue';
|
||||
$lang->block->default['waterfall']['program']['5']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['5']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['5']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['5']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['waterfall']['program']['6']['title'] = 'Dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['block'] = 'dynamic';
|
||||
$lang->block->default['waterfall']['program']['6']['grid'] = 4;
|
||||
$lang->block->default['waterfall']['program']['6']['source'] = '';
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['title'] = $lang->projectCommon . 'Risk';
|
||||
$lang->block->default['waterfall']['program']['7']['block'] = 'waterfallrisk';
|
||||
$lang->block->default['waterfall']['program']['7']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['7']['grid'] = 8;
|
||||
|
||||
$lang->block->default['waterfall']['program']['7']['params']['type'] = 'all';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['num'] = '15';
|
||||
$lang->block->default['waterfall']['program']['7']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['1']['title'] = $lang->projectCommon . ' Overall';
|
||||
$lang->block->default['scrum']['program']['1']['block'] = 'scrumoverall';
|
||||
$lang->block->default['scrum']['program']['1']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['2']['title'] = $lang->projectCommon . ' List';
|
||||
$lang->block->default['scrum']['program']['2']['block'] = 'scrumlist';
|
||||
$lang->block->default['scrum']['program']['2']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['3']['title'] = $lang->productCommon . ' Road Map';
|
||||
$lang->block->default['scrum']['program']['3']['block'] = 'scrumroadmap';
|
||||
$lang->block->default['scrum']['program']['3']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['title'] = 'Test Version';
|
||||
$lang->block->default['scrum']['program']['4']['block'] = 'scrumtest';
|
||||
$lang->block->default['scrum']['program']['4']['grid'] = 8;
|
||||
|
||||
$lang->block->default['scrum']['program']['4']['params']['type'] = 'all';
|
||||
$lang->block->default['scrum']['program']['4']['params']['num'] = '15';
|
||||
$lang->block->default['scrum']['program']['4']['params']['orderBy'] = 'id_desc';
|
||||
|
||||
$lang->block->default['scrum']['program']['5']['title'] = $lang->productCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['5']['block'] = 'scrumproduct';
|
||||
$lang->block->default['scrum']['program']['5']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['6']['title'] = $lang->projectCommon . ' Overview';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'sprint';
|
||||
$lang->block->default['scrum']['program']['6']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['7']['title'] = 'Dynamic';
|
||||
$lang->block->default['scrum']['program']['7']['block'] = 'scrumdynamic';
|
||||
$lang->block->default['scrum']['program']['7']['grid'] = 4;
|
||||
|
||||
$lang->block->default['product']['1']['title'] = 'Báo cáo '.$lang->productCommon;
|
||||
$lang->block->default['product']['1']['block'] = 'statistic';
|
||||
$lang->block->default['product']['1']['grid'] = 8;
|
||||
@@ -163,10 +259,12 @@ $lang->block->default['full']['my']['1']['title'] = 'Chào mừng';
|
||||
$lang->block->default['full']['my']['1']['block'] = 'welcome';
|
||||
$lang->block->default['full']['my']['1']['grid'] = 8;
|
||||
$lang->block->default['full']['my']['1']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['2']['title'] = 'Lịch sử';
|
||||
$lang->block->default['full']['my']['2']['block'] = 'dynamic';
|
||||
$lang->block->default['full']['my']['2']['grid'] = 4;
|
||||
$lang->block->default['full']['my']['2']['source'] = '';
|
||||
|
||||
$lang->block->default['full']['my']['3']['title'] = 'Quy trình';
|
||||
$lang->block->default['full']['my']['3']['block'] = 'flowchart';
|
||||
$lang->block->default['full']['my']['3']['grid'] = 8;
|
||||
|
||||
+29
-28
@@ -82,16 +82,16 @@ $lang->block->nbsp = '';
|
||||
$lang->block->hidden = '隐藏';
|
||||
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s <em>%s</em> %s <a href='%s' title='%s'>%s</a></span>";
|
||||
|
||||
$lang->block->productName = $lang->productCommon . '名称';
|
||||
$lang->block->totalStory = '总' . $lang->storyCommon;
|
||||
$lang->block->totalBug = '总Bug';
|
||||
$lang->block->totalRelease = '发布次数';
|
||||
$lang->block->productName = $lang->productCommon . '名称';
|
||||
$lang->block->totalStory = '总' . $lang->storyCommon;
|
||||
$lang->block->totalBug = '总Bug';
|
||||
$lang->block->totalRelease = '发布次数';
|
||||
|
||||
$lang->block->totalInvestment = '总投入';
|
||||
$lang->block->totalPeople = '总人数';
|
||||
$lang->block->spent = '已花费';
|
||||
$lang->block->budget = '预算';
|
||||
$lang->block->left = '剩余';
|
||||
$lang->block->totalInvestment = '总投入';
|
||||
$lang->block->totalPeople = '总人数';
|
||||
$lang->block->spent = '已花费';
|
||||
$lang->block->budget = '预算';
|
||||
$lang->block->left = '剩余';
|
||||
|
||||
$lang->block->default['waterfall']['program']['1']['title'] = '项目周报';
|
||||
$lang->block->default['waterfall']['program']['1']['block'] = 'waterfallreport';
|
||||
@@ -103,7 +103,7 @@ $lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimat
|
||||
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = '项目计划';
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = "项目{$lang->planCommon}";
|
||||
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
|
||||
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
|
||||
@@ -160,7 +160,7 @@ $lang->block->default['scrum']['program']['5']['block'] = 'scrumproduct';
|
||||
$lang->block->default['scrum']['program']['5']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['6']['title'] = $lang->projectCommon . '总览';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'scrumproject';
|
||||
$lang->block->default['scrum']['program']['6']['block'] = 'sprint';
|
||||
$lang->block->default['scrum']['program']['6']['grid'] = 4;
|
||||
|
||||
$lang->block->default['scrum']['program']['7']['title'] = '最新动态';
|
||||
@@ -319,7 +319,7 @@ $lang->block->availableBlocks->case = '我的用例';
|
||||
$lang->block->availableBlocks->story = "我的{$lang->storyCommon}";
|
||||
$lang->block->availableBlocks->product = $lang->productCommon . '列表';
|
||||
$lang->block->availableBlocks->project = $lang->projectCommon . '列表';
|
||||
$lang->block->availableBlocks->plan = '计划列表';
|
||||
$lang->block->availableBlocks->plan = "{$lang->planCommon}列表";
|
||||
$lang->block->availableBlocks->release = '发布列表';
|
||||
$lang->block->availableBlocks->build = '版本列表';
|
||||
$lang->block->availableBlocks->testtask = '测试版本列表';
|
||||
@@ -342,7 +342,7 @@ $lang->block->modules['scrum']['index']->availableBlocks = new stdclass();
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumoverall = '项目整体情况';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumlist = $lang->projectCommon . '列表';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumroadmap = $lang->productCommon . '路线图';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumproject = $lang->projectCommon . '总览';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->sprint = $lang->projectCommon . '总览';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumproduct = $lang->productCommon . '总览';
|
||||
$lang->block->modules['scrum']['index']->availableBlocks->scrumtest = '待测版本';
|
||||
|
||||
@@ -350,7 +350,7 @@ $lang->block->modules['waterfall']['index'] = new stdclass();
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallreport = '项目周报';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallestimate = '估算';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = '计划甘特图';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = "项目{$lang->planCommon}";
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallprogress = '到目前为止项目进展趋势图';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallissue = '项目问题';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallrisk = '项目风险';
|
||||
@@ -361,7 +361,7 @@ $lang->block->modules['product']->availableBlocks->statistic = $lang->productCom
|
||||
$lang->block->modules['product']->availableBlocks->overview = $lang->productCommon . '总览';
|
||||
$lang->block->modules['product']->availableBlocks->list = $lang->productCommon . '列表';
|
||||
$lang->block->modules['product']->availableBlocks->story = "{$lang->storyCommon}列表";
|
||||
$lang->block->modules['product']->availableBlocks->plan = '计划列表';
|
||||
$lang->block->modules['product']->availableBlocks->plan = "{$lang->storyCommon}列表";
|
||||
$lang->block->modules['product']->availableBlocks->release = '发布列表';
|
||||
$lang->block->modules['project'] = new stdclass();
|
||||
$lang->block->modules['project']->availableBlocks = new stdclass();
|
||||
@@ -479,18 +479,19 @@ $lang->block->typeList->testtask['done'] = '已测版本';
|
||||
$lang->block->typeList->testtask['all'] = '全部';
|
||||
|
||||
$lang->block->modules['program']->moreLinkList = new stdclass();
|
||||
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->statistic = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->program = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallreport = 'weekly|index|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallestimate = 'workestimation|index|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallissue = 'issue|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->waterfallrisk = 'risk|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproject = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumdynamic = 'company|dynamic|';
|
||||
$lang->block->modules['program']->moreLinkList->recentprogram = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->statistic = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->program = 'program|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmireport = 'weekly|index|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmiestimate = 'workestimation|index|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmiissue = 'issue|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->cmmirisk = 'risk|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumlist = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumroadmap = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumtest = 'testtask|browse|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumproduct = 'product|all|';
|
||||
$lang->block->modules['program']->moreLinkList->sprint = 'project|all|';
|
||||
$lang->block->modules['program']->moreLinkList->scrumdynamic = 'company|dynamic|';
|
||||
|
||||
$lang->block->modules['product']->moreLinkList = new stdclass();
|
||||
$lang->block->modules['product']->moreLinkList->list = 'product|all|product=&line=0&status=%s';
|
||||
@@ -522,7 +523,7 @@ $lang->block->gridOptions[4] = '右侧';
|
||||
|
||||
$lang->block->flowchart = array();
|
||||
$lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限');
|
||||
$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', '维护计划', "维护{$lang->storyCommon}", '创建发布');
|
||||
$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护{$lang->planCommon}", "维护{$lang->storyCommon}", '创建发布');
|
||||
$lang->block->flowchart['project'] = array($lang->projectCommon . '经理', '创建' . $lang->projectCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->storyCommon}", '分解任务');
|
||||
$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '更新状态', '完成任务和Bug');
|
||||
$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug');
|
||||
|
||||
@@ -936,7 +936,7 @@ class blockModel extends model
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getScrumprojectParams($module = '')
|
||||
public function getSprintParams($module = '')
|
||||
{
|
||||
$params->count['name'] = $this->lang->block->count;
|
||||
$params->count['control'] = 'input';
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
.hours-statistics{position: relative; padding: 0px 5px 5px; display: table-cell;text-align: center;}
|
||||
.hours-statistics > small {display: block; color: #A6AAB8;}
|
||||
.hours-statistics > span {display: block; color: #3c4353; font-weight: bold;}
|
||||
.tile-amount{font-size: 20px;}
|
||||
</style>
|
||||
<div class="panel-body conatiner-fluid">
|
||||
<div class="table-row">
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The project overview block view file of block module of ZenTaoPMS.
|
||||
* The sprint block view file of block 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)
|
||||
@@ -8,8 +8,8 @@
|
||||
.block-waterfallreport .col-right .tile { width: 20%;}
|
||||
.block-waterfallreport .col-right .tile .tile-title{font-weight: 700;}
|
||||
.block-waterfallreport .progress {position: absolute; left: 45px; top: 90px; right: 40px;}
|
||||
.block-waterfallreport .progress-num{font-size: 26px; font-weight: 700}
|
||||
.block-waterfallreport .col-right .tile-amount{font-size: 22px; font-weight: 700}
|
||||
.block-waterfallreport .progress-num{font-size: 20px; font-weight: 700}
|
||||
.block-waterfallreport .col-right .tile-amount{font-size: 20px}
|
||||
</style>
|
||||
|
||||
<div class="panel-move-handler"><span class='stage text-muted'><?php echo $current;?></span></div>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<?php endif;?>
|
||||
<th class='w-80px'><?php echo $lang->risk->status;?></th>
|
||||
<?php if($longBlock):?>
|
||||
<th class='w-80px'><?php echo $lang->risk->riskindex;?></th>
|
||||
<th class='w-80px'><?php echo $lang->risk->rate;?></th>
|
||||
<th class='w-80px'><?php echo $lang->risk->pri;?></th>
|
||||
<th class='w-120px'><?php echo $lang->risk->assignedTo;?></th>
|
||||
<th class='w-120px'><?php echo $lang->risk->category;?></th>
|
||||
@@ -38,7 +38,7 @@
|
||||
<span class="status-risk status-<?php echo $risk->status?>"><?php echo zget($lang->risk->statusList, $risk->status);?></span>
|
||||
</td>
|
||||
<?php if($longBlock):?>
|
||||
<td class='c-riskindex'><?php echo $risk->riskindex?></td>
|
||||
<td class='c-rate'><?php echo $risk->rate?></td>
|
||||
<td class='c-pri'><?php echo zget($lang->risk->priList, $risk->pri, $risk->pri)?></td>
|
||||
<td><?php echo zget($users, $risk->assignedTo, $risk->assignedTo)?></td>
|
||||
<td class='c-category'><?php echo zget($lang->risk->categoryList, $risk->category, $risk->category)?></td>
|
||||
|
||||
@@ -14,7 +14,7 @@ $lang->bug->common = 'Bug';
|
||||
$lang->bug->id = 'Bug编号';
|
||||
$lang->bug->product = '所属' . $lang->productCommon;
|
||||
$lang->bug->branch = '分支/平台';
|
||||
$lang->bug->productplan = '所属计划';
|
||||
$lang->bug->productplan = '所属' . $lang->planCommon;
|
||||
$lang->bug->module = '所属模块';
|
||||
$lang->bug->moduleAB = '模块';
|
||||
$lang->bug->project = '所属' . $lang->projectCommon;
|
||||
@@ -58,7 +58,7 @@ $lang->bug->resolvedBuild = '解决版本';
|
||||
$lang->bug->resolvedDate = '解决日期';
|
||||
$lang->bug->resolvedDateAB = '解决日期';
|
||||
$lang->bug->deadline = '截止日期';
|
||||
$lang->bug->plan = '所属计划';
|
||||
$lang->bug->plan = '所属' . $lang->planCommon;
|
||||
$lang->bug->closedBy = '由谁关闭';
|
||||
$lang->bug->closedDate = '关闭日期';
|
||||
$lang->bug->duplicateBug = '重复ID';
|
||||
@@ -372,8 +372,8 @@ $lang->bug->action = new stdclass();
|
||||
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解决,方案为 <strong>$extra</strong> $appendLink。', 'extra' => 'resolutionList');
|
||||
$lang->bug->action->tostory = array('main' => '$date, 由 <strong>$actor</strong> 转为<strong> ' .$lang->storyCommon. '</strong>,编号为 <strong>$extra</strong>。');
|
||||
$lang->bug->action->totask = array('main' => '$date, 由 <strong>$actor</strong> 导入为<strong>任务</strong>,编号为 <strong>$extra</strong>。');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->planCommon . ' <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->planCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfrombuild = array('main' => '$date, 由 <strong>$actor</strong> 从版本 <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2release = array('main' => '$date, 由 <strong>$actor</strong> 关联到发布 <strong>$extra</strong>。');
|
||||
|
||||
@@ -122,11 +122,8 @@ $lang->common->common = 'Common Module';
|
||||
$lang->mainNav = new stdclass();
|
||||
$lang->mainNav->my = '<i class="icon icon-menu-my"></i> My|my|index|';
|
||||
$lang->mainNav->program = '<i class="icon icon-menu-project"></i> Program|program|index|';
|
||||
//$lang->mainNav->reporting = '<i class="icon icon-menu-report"></i> Report|report|index|';
|
||||
//$lang->mainNav->attend = '<i class="icon icon-file"></i> Attend|attend|personal|';
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|custom|estimate|';
|
||||
$lang->mainNav->admin = '<i class="icon icon-menu-backend"></i> Admin|admin|index|';
|
||||
//$lang->mainNav->recent = '<i class="icon icon-menu-recent"></i> Recent|recent|index|';
|
||||
|
||||
$lang->reporting = new stdclass();
|
||||
$lang->dividerMenu = ',admin,';
|
||||
@@ -138,9 +135,6 @@ $lang->menu->product = $lang->productCommon . '|product|index|locate=no';
|
||||
$lang->menu->project = 'Iteration|project|index|locate=no';
|
||||
$lang->menu->doc = 'Doc|doc|index|';
|
||||
$lang->menu->qa = 'Qa|qa|index';
|
||||
$lang->menu->company = new stdclass();
|
||||
|
||||
$lang->program = new stdclass();
|
||||
|
||||
/* System menu. */
|
||||
$lang->system = new stdclass();
|
||||
@@ -159,7 +153,6 @@ if(isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum')
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|concept|');
|
||||
|
||||
$lang->system->subMenu->setmodel->waterfall ='waterfall|custom|setwaterfall|';
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|subject|settips|';
|
||||
unset($lang->system->dividerMenu);
|
||||
}
|
||||
@@ -227,29 +220,21 @@ $lang->my = new stdclass();
|
||||
$lang->my->menu = new stdclass();
|
||||
|
||||
$lang->my->menu->index = 'Home|my|index';
|
||||
//$lang->my->menu->todo = 'Todo|my|todo|';
|
||||
$lang->my->menu->effort = 'Effort|my|effort|';
|
||||
//$lang->my->menu->calendar = array('link' => 'Calendar|my|calendar|', 'subModule' => 'todo', 'alias' => 'todo');
|
||||
$lang->my->menu->todo = 'Todo|my|todo|';
|
||||
$lang->my->menu->program = array('link' => 'Program|my|program|');
|
||||
$lang->my->menu->task = array('link' => 'Task|my|task|', 'subModule' => 'task');
|
||||
$lang->my->menu->bug = array('link' => 'Bug|my|bug|', 'subModule' => 'bug');
|
||||
$lang->my->menu->testtask = array('link' => 'Request|my|testtask|', 'subModule' => 'testcase,testtask', 'alias' => 'testcase');
|
||||
$lang->my->menu->requirement = array('link' => "用户需求|my|requirement|", 'subModule' => 'story');
|
||||
$lang->my->menu->story = array('link' => 'Story|my|story|', 'subModule' => 'story');
|
||||
$lang->my->menu->myProject = "{$lang->projectCommon}|my|project|";
|
||||
$lang->my->menu->dynamic = 'Dynamics|my|dynamic|';
|
||||
//$lang->my->menu->profile = array('link' => 'Profile|my|profile', 'alias' => 'editprofile');
|
||||
//$lang->my->menu->changePassword = 'Password|my|changepassword';
|
||||
//$lang->my->menu->manageContacts = 'Contact|my|managecontacts';
|
||||
//$lang->my->menu->score = array('link' => 'Points|my|score', 'subModule' => 'score');
|
||||
|
||||
$lang->my->dividerMenu = ',program,requirement,dynamic,';
|
||||
|
||||
$lang->todo = new stdclass();
|
||||
$lang->todo->menu = $lang->my->menu;
|
||||
|
||||
$lang->score = new stdclass();
|
||||
$lang->score->menu = $lang->my->menu;
|
||||
|
||||
/* Product menu settings. */
|
||||
$lang->product = new stdclass();
|
||||
$lang->product->menu = new stdclass();
|
||||
@@ -452,10 +437,6 @@ $lang->admin->menu = new stdclass();
|
||||
$lang->admin->menu->index = array('link' => 'Home|admin|index', 'alias' => 'register,certifytemail,certifyztmobile,ztcompany');
|
||||
$lang->admin->menu->company = array('link' => 'Company|company|browse|', 'subModule' => ',user,dept,group,', 'alias' => ',dynamic,view,');
|
||||
$lang->admin->menu->message = array('link' => 'Notification|message|index', 'subModule' => 'message,mail,webhook');
|
||||
//$lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule' => 'custom');
|
||||
//$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
|
||||
//$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
|
||||
//$lang->admin->menu->translate = array('link' => 'Translate|dev|translate');
|
||||
$lang->admin->menu->data = array('link' => 'Data|backup|index', 'subModule' => 'backup,action');
|
||||
$lang->admin->menu->safe = array('link' => 'Security|admin|safe', 'alias' => 'checkweak');
|
||||
$lang->admin->menu->system = array('link' => 'System|cron|index', 'subModule' => 'cron');
|
||||
|
||||
@@ -175,7 +175,7 @@ $lang->searchObjects['product'] = $lang->productCommon;
|
||||
$lang->searchObjects['user'] = '用户';
|
||||
$lang->searchObjects['build'] = '版本';
|
||||
$lang->searchObjects['release'] = '发布';
|
||||
$lang->searchObjects['productplan'] = $lang->productCommon . '计划';
|
||||
$lang->searchObjects['productplan'] = $lang->productCommon . $lang->planCommon;
|
||||
$lang->searchObjects['testtask'] = '测试单';
|
||||
$lang->searchObjects['doc'] = '文档';
|
||||
$lang->searchObjects['caselib'] = '用例库';
|
||||
@@ -240,7 +240,7 @@ $lang->product = new stdclass();
|
||||
$lang->product->menu = new stdclass();
|
||||
|
||||
$lang->product->menu->story = array('link' => "{$lang->storyCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
|
||||
$lang->product->menu->plan = array('link' => '计划|productplan|browse|productID=%s', 'subModule' => 'productplan');
|
||||
$lang->product->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan');
|
||||
$lang->product->menu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
|
||||
$lang->product->menu->roadmap = '路线图|product|roadmap|productID=%s';
|
||||
$lang->product->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s";
|
||||
@@ -866,7 +866,7 @@ $lang->budget->menu = $lang->workestimation->menu;
|
||||
$lang->programplan->menu->gantt = array('link' => '甘特图|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=gantt');
|
||||
$lang->programplan->menu->lists = array('link' => '阶段列表|programplan|browse|programID={PROGRAM}&productID={PRODUCT}&type=lists', 'alias' => 'create');
|
||||
|
||||
$lang->waterfallproduct->menu->plan = array('link' => '排期|productplan|browse|productID={PRODUCT}', 'subModule' => 'productplan');
|
||||
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
|
||||
$lang->waterfallproduct->menu->requirement = '用户需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=requirement';
|
||||
$lang->waterfallproduct->menu->story = '软件需求|product|browse|product={PRODUCT}&branch=&browseType=unclosed&queryID=0&storyType=story';
|
||||
$lang->waterfallproduct->menu->track = '跟踪矩阵|story|track|product={PRODUCT}';
|
||||
|
||||
@@ -614,6 +614,7 @@ class commonModel extends model
|
||||
$subLink = helper::createLink($subModule, $subMethod, $subParams);
|
||||
if($subMenuItem->name == 'program')
|
||||
{
|
||||
/* Print program sub menu.*/
|
||||
global $dbh;
|
||||
$program = $dbh->query("SELECT * FROM " . TABLE_PROJECT . " WHERE `id` = '{$app->session->program}'")->fetch();
|
||||
$subActive .= 'dropdown-submenu';
|
||||
@@ -2116,6 +2117,16 @@ EOD;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set main menu by nav group.
|
||||
*
|
||||
* @param string $group
|
||||
* @param string $moduleName
|
||||
* @param string $methodName
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function setMainMenuByGroup($group, $moduleName, $methodName)
|
||||
{
|
||||
global $lang;
|
||||
@@ -2149,6 +2160,14 @@ EOD;
|
||||
if($group == 'program') $lang->menu = self::getProgramMainMenu($moduleName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace menu vars.
|
||||
*
|
||||
* @param object $menus
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function processMenuVars($menus)
|
||||
{
|
||||
global $app, $lang;
|
||||
@@ -2176,6 +2195,14 @@ EOD;
|
||||
return $menus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get program main menu by template.
|
||||
*
|
||||
* @param varchar $moduleName
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function getProgramMainMenu($moduleName)
|
||||
{
|
||||
global $app, $lang, $dbh;
|
||||
@@ -2197,6 +2224,14 @@ EOD;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get program module menu by template.
|
||||
*
|
||||
* @param varchar $moduleName
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function getProgramModuleMenu($moduleName)
|
||||
{
|
||||
global $app, $lang, $dbh;
|
||||
@@ -2211,6 +2246,17 @@ EOD;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get relations for two object.
|
||||
*
|
||||
* @param varchar $AType
|
||||
* @param int $AID
|
||||
* @param varchar $BType
|
||||
* @param int $BID
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getRelations($AType = '', $AID = 0, $BType = '', $BID = 0)
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_RELATION)
|
||||
|
||||
@@ -19,8 +19,8 @@ include 'chosen.html.php';
|
||||
<div id='mainHeader'>
|
||||
<div class='container'>
|
||||
<div id='heading'>
|
||||
<?php if($isProgram) echo $this->loadModel('program')->getSwapper($this->program->getPairs(), $this->session->program, $app->rawModule, $app->rawMethod);?>
|
||||
<?php if($isSystem) echo $this->loadModel('custom')->getSwapper();?>
|
||||
<?php if($isProgram) echo $this->loadModel('program')->getSwitcher($this->program->getPairs(), $this->session->program, $app->rawModule, $app->rawMethod);?>
|
||||
<?php if($isSystem) echo $this->loadModel('custom')->getModeSwitcher();?>
|
||||
</div>
|
||||
<nav id='navbar'><?php commonModel::printMainmenu($app->rawModule, $app->rawMethod);?></nav>
|
||||
<div id='toolbar'>
|
||||
@@ -52,18 +52,24 @@ include 'chosen.html.php';
|
||||
</header>
|
||||
|
||||
<?php endif;?>
|
||||
|
||||
<?php if(isset($this->config->qcVersion)):?>
|
||||
<script>
|
||||
$("#userMenu").append('<button class="btn btn-mini" type="button" id="showSearchGo" style="padding: 2px 3px;"><i class="icon icon-sm icon-search"></i></button>');
|
||||
$("#searchbox").hide();
|
||||
$("#showSearchGo").on("click", function(){$("#searchbox").show(); $("#showSearchGo").hide();});
|
||||
$("#showSearchGo").on("click", function()
|
||||
{
|
||||
$("#searchbox").show();
|
||||
$("#showSearchGo").hide();
|
||||
});
|
||||
|
||||
$("#searchInput").mouseout(function()
|
||||
{
|
||||
var searchValue = $("#searchInput").val();
|
||||
if(searchValue == ''){$("#searchbox").hide(); $("#showSearchGo").show()};
|
||||
if(searchValue == '')
|
||||
{
|
||||
$("#searchbox").hide();
|
||||
$("#showSearchGo").show();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<?php endif;?>
|
||||
<main id='main' <?php if(!empty($config->sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> >
|
||||
<div class='container'>
|
||||
|
||||
@@ -24,8 +24,8 @@ js::set('confirmDelete', $lang->user->confirmDelete);
|
||||
</div>
|
||||
</div>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<?php echo html::a($this->createLink('company', 'browse', 'browseType=inside'), '<span class="text">' . $lang->user->inside . '</span>', '', 'class="btn btn-link inside"');?>
|
||||
<?php echo html::a($this->createLink('company', 'browse', 'browseType=outside'), '<span class="text">' . $lang->user->outside . '</span>', '', 'class="btn btn-link outside"');?>
|
||||
<?php echo html::a($this->createLink('company', 'browse', 'browseType=inside'), '<span class="text">' . $lang->user->inside . '</span>', '', 'class="btn btn-link inside hidden"');?>
|
||||
<?php echo html::a($this->createLink('company', 'browse', 'browseType=outside'), '<span class="text">' . $lang->user->outside . '</span>', '', 'class="btn btn-link outside hidden"');?>
|
||||
<a class="btn btn-link querybox-toggle" id='bysearchTab'><i class="icon icon-search muted"></i> <?php echo $lang->user->search;?></a>
|
||||
</div>
|
||||
<div class='btn-toolbar pull-right'>
|
||||
|
||||
+64
-24
@@ -1,24 +1,67 @@
|
||||
<?php
|
||||
$lang->custom->common = 'Custom';
|
||||
$lang->custom->index = 'Home';
|
||||
$lang->custom->set = 'Customize';
|
||||
$lang->custom->restore = 'Reset to Default';
|
||||
$lang->custom->key = 'Key';
|
||||
$lang->custom->value = 'Value';
|
||||
$lang->custom->flow = 'Concept';
|
||||
$lang->custom->working = 'WorkStyle';
|
||||
$lang->custom->select = 'Select Concept';
|
||||
$lang->custom->branch = 'Multi Branch';
|
||||
$lang->custom->owner = 'Owner';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Language';
|
||||
$lang->custom->setPublic = 'Set Public';
|
||||
$lang->custom->required = 'Required';
|
||||
$lang->custom->score = 'Score';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Reset Score';
|
||||
$lang->custom->scoreTitle = 'Point Feature';
|
||||
$lang->custom->common = 'Custom';
|
||||
$lang->custom->index = 'Home';
|
||||
$lang->custom->set = 'Customize';
|
||||
$lang->custom->restore = 'Reset to Default';
|
||||
$lang->custom->key = 'Key';
|
||||
$lang->custom->value = 'Value';
|
||||
$lang->custom->flow = 'Concept';
|
||||
$lang->custom->working = 'WorkStyle';
|
||||
$lang->custom->select = 'Select Concept';
|
||||
$lang->custom->branch = 'Multi Branch';
|
||||
$lang->custom->owner = 'Owner';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Language';
|
||||
$lang->custom->setPublic = 'Set Public';
|
||||
$lang->custom->required = 'Required';
|
||||
$lang->custom->score = 'Score';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Reset Score';
|
||||
$lang->custom->scoreTitle = 'Point Feature';
|
||||
$lang->custom->setscrum = 'Interval Hint';
|
||||
$lang->custom->setWaterfall = 'Switch Views';
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
$lang->custom->estimateUnit = 'Estimating Unit';
|
||||
$lang->custom->estimateEfficiency = 'Productivity';
|
||||
$lang->custom->estimateCost = 'Unit Labour Cost';
|
||||
$lang->custom->estimateHours = 'Daily Working Hours';
|
||||
$lang->custom->estimateDays = 'Working Days Per Week';
|
||||
$lang->custom->region = 'Interval';
|
||||
$lang->custom->tips = 'Tips';
|
||||
$lang->custom->setTips = 'Set Tips';
|
||||
$lang->custom->isRange = 'Is Target Control';
|
||||
$lang->custom->plan = 'Plan';
|
||||
$lang->custom->planStatus = 'Enable Plan';
|
||||
$lang->custom->concept = 'Concept';
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
$lang->custom->unitList['cost'] = 'Yuan/Hour';
|
||||
$lang->custom->unitList['hours'] = 'Hours';
|
||||
$lang->custom->unitList['days'] = 'Days';
|
||||
$lang->custom->unitList['loc'] = 'KLOC';
|
||||
|
||||
$lang->custom->tipProgressList['SPI'] = 'Schedule Performance Index(SPI)';
|
||||
$lang->custom->tipProgressList['SV'] = 'Schedule Variance(SV%)';
|
||||
|
||||
$lang->custom->tipCostList['CPI'] = 'Cost Performed Index(CPI)';
|
||||
$lang->custom->tipCostList['CV'] = 'Cost Variance(CV%)';
|
||||
|
||||
$lang->custom->planStatusList[0] = 'No';
|
||||
$lang->custom->planStatusList[1] = 'Yes';
|
||||
|
||||
$lang->custom->tipRangeList[0] = 'No';
|
||||
$lang->custom->tipRangeList[1] = 'Yes';
|
||||
|
||||
$lang->custom->regionMustNumber = 'The interval must be a number!';
|
||||
$lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->object['story'] = 'Story';
|
||||
$lang->custom->object['task'] = 'Task';
|
||||
@@ -127,9 +170,6 @@ $lang->custom->weekendList[1] = '1-Day Off';
|
||||
$lang->custom->productProject = new stdclass();
|
||||
$lang->custom->productProject->relation['0_0'] = 'Product - Project';
|
||||
$lang->custom->productProject->relation['0_1'] = 'Product - Iteration';
|
||||
$lang->custom->productProject->relation['1_1'] = 'Project - Iteration';
|
||||
$lang->custom->productProject->relation['0_2'] = 'Product - Sprint';
|
||||
$lang->custom->productProject->relation['1_2'] = 'Project - Sprint';
|
||||
|
||||
$lang->custom->productProject->notice = 'Please select a concept according to your team.';
|
||||
|
||||
@@ -158,6 +198,6 @@ $lang->custom->conceptOptions->story['0'] = 'Requiremenet';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Hour';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Story Point';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point';
|
||||
$lang->custom->conceptOptions->hourPoint['3'] = 'Code Line';
|
||||
|
||||
@@ -198,7 +198,6 @@ $lang->custom->conceptOptions->story['0'] = 'Requiremenet';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Hour';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Story Point';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Function Ponit';
|
||||
$lang->custom->conceptOptions->hourPoint['3'] = 'Code Line';
|
||||
|
||||
+64
-24
@@ -1,24 +1,67 @@
|
||||
<?php
|
||||
$lang->custom->common = 'Personnalisation';
|
||||
$lang->custom->index = 'Accueil';
|
||||
$lang->custom->set = 'Personnaliser';
|
||||
$lang->custom->restore = 'Réinitialiser';
|
||||
$lang->custom->key = 'Clé';
|
||||
$lang->custom->value = 'Valeur';
|
||||
$lang->custom->flow = 'Concept';
|
||||
$lang->custom->working = 'Mode';
|
||||
$lang->custom->select = 'Choix du Concept';
|
||||
$lang->custom->branch = 'Multi-Branches';
|
||||
$lang->custom->owner = 'Propriétaire';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Langue';
|
||||
$lang->custom->setPublic = 'Set Public';
|
||||
$lang->custom->required = 'Champ Obligatoire';
|
||||
$lang->custom->score = 'Point';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Réinit Points';
|
||||
$lang->custom->scoreTitle = 'Fonctionnalité des Points';
|
||||
$lang->custom->common = 'Personnalisation';
|
||||
$lang->custom->index = 'Accueil';
|
||||
$lang->custom->set = 'Personnaliser';
|
||||
$lang->custom->restore = 'Réinitialiser';
|
||||
$lang->custom->key = 'Clé';
|
||||
$lang->custom->value = 'Valeur';
|
||||
$lang->custom->flow = 'Concept';
|
||||
$lang->custom->working = 'Mode';
|
||||
$lang->custom->select = 'Choix du Concept';
|
||||
$lang->custom->branch = 'Multi-Branches';
|
||||
$lang->custom->owner = 'Propriétaire';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Langue';
|
||||
$lang->custom->setPublic = 'Set Public';
|
||||
$lang->custom->required = 'Champ Obligatoire';
|
||||
$lang->custom->score = 'Point';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Réinit Points';
|
||||
$lang->custom->scoreTitle = 'Fonctionnalité des Points';
|
||||
$lang->custom->setscrum = 'Interval Hint';
|
||||
$lang->custom->setWaterfall = 'Switch Views';
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
$lang->custom->estimateUnit = 'Estimating Unit';
|
||||
$lang->custom->estimateEfficiency = 'Productivity';
|
||||
$lang->custom->estimateCost = 'Unit Labour Cost';
|
||||
$lang->custom->estimateHours = 'Daily Working Hours';
|
||||
$lang->custom->estimateDays = 'Working Days Per Week';
|
||||
$lang->custom->region = 'Interval';
|
||||
$lang->custom->tips = 'Tips';
|
||||
$lang->custom->setTips = 'Set Tips';
|
||||
$lang->custom->isRange = 'Is Target Control';
|
||||
$lang->custom->plan = 'Plan';
|
||||
$lang->custom->planStatus = 'Enable Plan';
|
||||
$lang->custom->concept = 'Concept';
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
$lang->custom->unitList['cost'] = 'Yuan/Hour';
|
||||
$lang->custom->unitList['hours'] = 'Hours';
|
||||
$lang->custom->unitList['days'] = 'Days';
|
||||
$lang->custom->unitList['loc'] = 'KLOC';
|
||||
|
||||
$lang->custom->tipProgressList['SPI'] = 'Schedule Performance Index(SPI)';
|
||||
$lang->custom->tipProgressList['SV'] = 'Schedule Variance(SV%)';
|
||||
|
||||
$lang->custom->tipCostList['CPI'] = 'Cost Performed Index(CPI)';
|
||||
$lang->custom->tipCostList['CV'] = 'Cost Variance(CV%)';
|
||||
|
||||
$lang->custom->planStatusList[0] = 'No';
|
||||
$lang->custom->planStatusList[1] = 'Yes';
|
||||
|
||||
$lang->custom->tipRangeList[0] = 'No';
|
||||
$lang->custom->tipRangeList[1] = 'Yes';
|
||||
|
||||
$lang->custom->regionMustNumber = 'The interval must be a number!';
|
||||
$lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->object['story'] = 'Story';
|
||||
$lang->custom->object['task'] = 'Tâche';
|
||||
@@ -127,9 +170,6 @@ $lang->custom->weekendList[1] = '1-Jour';
|
||||
$lang->custom->productProject = new stdclass();
|
||||
$lang->custom->productProject->relation['0_0'] = 'Product - Project';
|
||||
$lang->custom->productProject->relation['0_1'] = 'Product - Iteration';
|
||||
$lang->custom->productProject->relation['1_1'] = 'Project - Iteration';
|
||||
$lang->custom->productProject->relation['0_2'] = 'Product - Sprint';
|
||||
$lang->custom->productProject->relation['1_2'] = 'Project - Sprint';
|
||||
|
||||
$lang->custom->productProject->notice = 'Sélectionnez le concept qui correspond à votre équipe.';
|
||||
|
||||
@@ -158,6 +198,6 @@ $lang->custom->conceptOptions->story['0'] = 'Exigence';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Heures';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Points de Story';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Points de Fonction';
|
||||
$lang->custom->conceptOptions->hourPoint['3'] = 'Code Line';
|
||||
|
||||
+64
-24
@@ -1,24 +1,67 @@
|
||||
<?php
|
||||
$lang->custom->common = 'Tùy biến';
|
||||
$lang->custom->index = 'Trang chủ';
|
||||
$lang->custom->set = 'Tùy biến';
|
||||
$lang->custom->restore = 'Thiết lập lại';
|
||||
$lang->custom->key = 'Khóa';
|
||||
$lang->custom->value = 'Giá trị';
|
||||
$lang->custom->flow = 'Mô hình';
|
||||
$lang->custom->working = 'Chế độ';
|
||||
$lang->custom->select = 'Chọn mô hình';
|
||||
$lang->custom->branch = 'Multi-Branch';
|
||||
$lang->custom->owner = 'Sở hữu';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Ngôn ngữ';
|
||||
$lang->custom->setPublic = 'Thiết lập Public';
|
||||
$lang->custom->required = 'Trường bắt buộc';
|
||||
$lang->custom->score = 'Điểm';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Thiết lập lại điểm';
|
||||
$lang->custom->scoreTitle = 'Tính năng điểm';
|
||||
$lang->custom->common = 'Tùy biến';
|
||||
$lang->custom->index = 'Trang chủ';
|
||||
$lang->custom->set = 'Tùy biến';
|
||||
$lang->custom->restore = 'Thiết lập lại';
|
||||
$lang->custom->key = 'Khóa';
|
||||
$lang->custom->value = 'Giá trị';
|
||||
$lang->custom->flow = 'Mô hình';
|
||||
$lang->custom->working = 'Chế độ';
|
||||
$lang->custom->select = 'Chọn mô hình';
|
||||
$lang->custom->branch = 'Multi-Branch';
|
||||
$lang->custom->owner = 'Sở hữu';
|
||||
$lang->custom->module = 'Module';
|
||||
$lang->custom->section = 'Section';
|
||||
$lang->custom->lang = 'Ngôn ngữ';
|
||||
$lang->custom->setPublic = 'Thiết lập Public';
|
||||
$lang->custom->required = 'Trường bắt buộc';
|
||||
$lang->custom->score = 'Điểm';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Thiết lập lại điểm';
|
||||
$lang->custom->scoreTitle = 'Tính năng điểm';
|
||||
$lang->custom->setscrum = 'Interval Hint';
|
||||
$lang->custom->setWaterfall = 'Switch Views';
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
$lang->custom->estimateUnit = 'Estimating Unit';
|
||||
$lang->custom->estimateEfficiency = 'Productivity';
|
||||
$lang->custom->estimateCost = 'Unit Labour Cost';
|
||||
$lang->custom->estimateHours = 'Daily Working Hours';
|
||||
$lang->custom->estimateDays = 'Working Days Per Week';
|
||||
$lang->custom->region = 'Interval';
|
||||
$lang->custom->tips = 'Tips';
|
||||
$lang->custom->setTips = 'Set Tips';
|
||||
$lang->custom->isRange = 'Is Target Control';
|
||||
$lang->custom->plan = 'Plan';
|
||||
$lang->custom->planStatus = 'Enable Plan';
|
||||
$lang->custom->concept = 'Concept';
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
$lang->custom->unitList['cost'] = 'Yuan/Hour';
|
||||
$lang->custom->unitList['hours'] = 'Hours';
|
||||
$lang->custom->unitList['days'] = 'Days';
|
||||
$lang->custom->unitList['loc'] = 'KLOC';
|
||||
|
||||
$lang->custom->tipProgressList['SPI'] = 'Schedule Performance Index(SPI)';
|
||||
$lang->custom->tipProgressList['SV'] = 'Schedule Variance(SV%)';
|
||||
|
||||
$lang->custom->tipCostList['CPI'] = 'Cost Performed Index(CPI)';
|
||||
$lang->custom->tipCostList['CV'] = 'Cost Variance(CV%)';
|
||||
|
||||
$lang->custom->planStatusList[0] = 'No';
|
||||
$lang->custom->planStatusList[1] = 'Yes';
|
||||
|
||||
$lang->custom->tipRangeList[0] = 'No';
|
||||
$lang->custom->tipRangeList[1] = 'Yes';
|
||||
|
||||
$lang->custom->regionMustNumber = 'The interval must be a number!';
|
||||
$lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->object['story'] = 'Câu chuyện';
|
||||
$lang->custom->object['task'] = 'Nhiệm vụ';
|
||||
@@ -127,9 +170,6 @@ $lang->custom->weekendList[1] = '1 ngày nghỉ';
|
||||
$lang->custom->productProject = new stdclass();
|
||||
$lang->custom->productProject->relation['0_0'] = 'Sản phẩm - Dự án';
|
||||
$lang->custom->productProject->relation['0_1'] = 'Sản phẩm - lặp lại';
|
||||
$lang->custom->productProject->relation['1_1'] = 'Dự án - lặp lại';
|
||||
$lang->custom->productProject->relation['0_2'] = 'Sản phẩm - Sprint';
|
||||
$lang->custom->productProject->relation['1_2'] = 'Dự án - Sprint';
|
||||
|
||||
$lang->custom->productProject->notice = 'Chọn một mô hình phù hợp với doanh nghiệp của bạn.';
|
||||
|
||||
@@ -158,6 +198,6 @@ $lang->custom->conceptOptions->story['0'] = 'Điều kiện';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Câu chuyện';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Giờ';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Điểm';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Function Point';
|
||||
$lang->custom->conceptOptions->hourPoint['3'] = 'Code Line';
|
||||
|
||||
@@ -362,13 +362,13 @@ class customModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get system swapper.
|
||||
* Get system mode switcher.
|
||||
* @param string $module
|
||||
* @param string $method
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getSwapper()
|
||||
public function getModeSwitcher()
|
||||
{
|
||||
$current = (isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum') ? 'Scrum' : 'CMMI';
|
||||
$link = (isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum') ? html::a(helper::createLink('custom', 'setwaterfall'), 'CMMI') : html::a(helper::createLink('custom', 'setscrum'), 'Scrum');
|
||||
|
||||
@@ -349,7 +349,10 @@ class deptModel extends model
|
||||
/**
|
||||
* Get users of a deparment.
|
||||
*
|
||||
* @param int $deptID
|
||||
* @param varchar $browseType inside|outside|all
|
||||
* @param int $deptID
|
||||
* @param object $pager
|
||||
* @param varchar $orderBy
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
@@ -357,7 +360,7 @@ class deptModel extends model
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_USER)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($browseType == 'inside')->andWhere('type')->eq('')->fi()
|
||||
->beginIF($browseType == 'inside')->andWhere('type')->eq('inside')->fi()
|
||||
->beginIF($browseType == 'outside')->andWhere('type')->eq('outside')->fi()
|
||||
->beginIF($deptID)->andWhere('dept')->in($deptID)->fi()
|
||||
->orderBy($orderBy)
|
||||
|
||||
@@ -21,8 +21,6 @@ $config->design->search['fields']['commit'] = $lang->design->submission;
|
||||
$config->design->search['fields']['createdBy'] = $lang->design->createdBy;
|
||||
$config->design->search['fields']['createdDate'] = $lang->design->createdDate;
|
||||
$config->design->search['fields']['assignedTo'] = $lang->design->assignedTo;
|
||||
$config->design->search['fields']['commitBy'] = $lang->design->commitBy;
|
||||
$config->design->search['fields']['commitDate'] = $lang->design->commitDate;
|
||||
$config->design->search['fields']['story'] = $lang->design->story;
|
||||
|
||||
$config->design->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->design->typeList);
|
||||
@@ -31,6 +29,4 @@ $config->design->search['params']['commit'] = array('operator' => 'include'
|
||||
$config->design->search['params']['createdBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->design->search['params']['createdDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->design->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->design->search['params']['commitBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->design->search['params']['commitDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->design->search['params']['story'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* The control file of design module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(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 design
|
||||
@@ -220,13 +220,16 @@ class design extends control
|
||||
*/
|
||||
public function linkCommit($designID = 0, $repoID = 0, $begin = '', $end = '', $recTotal = 0, $recPerPage = 50, $pageID = 1)
|
||||
{
|
||||
/* Init pager and get designs. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
/* Get program and date. */
|
||||
$program = $this->loadModel('project')->getByID($this->session->program);
|
||||
$begin = $begin ? date('Y-m-d', strtotime($begin)) : $program->begin;
|
||||
$end = $end ? date('Y-m-d', strtotime($end)) : helper::today();
|
||||
|
||||
/* Get the repository information through the repoID. */
|
||||
$repos = $this->loadModel('repo')->getRepoPairs($this->session->program);
|
||||
$repoID = $repoID ? $repoID : key($repos);
|
||||
$repo = $repoID ? $this->loadModel('repo')->getRepoByID($repoID) : '';
|
||||
@@ -243,6 +246,7 @@ class design extends control
|
||||
$this->send($result);
|
||||
}
|
||||
|
||||
/* Linked submission. */
|
||||
$linkedRevisions = array();
|
||||
$relations = $this->loadModel('common')->getRelations('design', $designID, 'commit');
|
||||
foreach($relations as $relation) $linkedRevisions[] = $relation->BID;
|
||||
@@ -265,7 +269,29 @@ class design extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* A version of the code base.
|
||||
* Design unlink commits.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param int $commitID
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function unlinkCommit($designID = 0, $commitID = 0, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
die(js::confirm($this->lang->design->confirmUnlink, inlink('unlinkCommit', "designID=$designID&commitID=$commitID&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->design->unlinkCommit($designID, $commitID);
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A version of the repository.
|
||||
*
|
||||
* @param int $repoID
|
||||
* @access public
|
||||
@@ -278,6 +304,31 @@ class design extends control
|
||||
header("location:" . $repoURL);
|
||||
}
|
||||
|
||||
/**
|
||||
* View a design's commit.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function viewCommit($designID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
/* Init pager and get designs. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = pager::init($recTotal, $recPerPage, $pageID);
|
||||
|
||||
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->submission;
|
||||
$this->view->position[] = $this->lang->design->submission;
|
||||
|
||||
$this->view->design = $this->design->getCommit($designID, $pager);
|
||||
$this->view->pager = $pager;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a design.
|
||||
*
|
||||
|
||||
@@ -17,5 +17,12 @@ $('#begin, #end, #repo').change(function()
|
||||
for(i = 0 ; i < endarray.length ; i++) end = end + endarray[i];
|
||||
}
|
||||
|
||||
if(begin > end)
|
||||
{
|
||||
alert(error);
|
||||
location.href = createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repo);
|
||||
die;
|
||||
}
|
||||
|
||||
location.href = createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repo + '&begin=' + begin + '&end=' + end);
|
||||
})
|
||||
|
||||
+17
-13
@@ -27,8 +27,8 @@ $lang->design->desc = 'Description';
|
||||
$lang->design->range = 'Impact';
|
||||
$lang->design->product = 'Linked Product';
|
||||
$lang->design->basicInfo = 'Basic Information';
|
||||
$lang->design->commitDate = 'Committed Date';
|
||||
$lang->design->commitBy = 'Commit By';
|
||||
$lang->design->commitDate = 'Committed Date';
|
||||
$lang->design->affectedStory = "{$lang->storyCommon}";
|
||||
$lang->design->affectedTasks = 'Task';
|
||||
$lang->design->reviewObject = 'Review Object';
|
||||
@@ -38,17 +38,19 @@ $lang->design->basicInfo = 'Basic Information';
|
||||
$lang->design->noAssigned = 'Unassigned';
|
||||
|
||||
/* Action list. */
|
||||
$lang->design->common = 'Design';
|
||||
$lang->design->create = 'Create Design';
|
||||
$lang->design->batchCreate = 'Batch Create';
|
||||
$lang->design->edit = 'Edit';
|
||||
$lang->design->delete = 'Delete';
|
||||
$lang->design->view = 'View';
|
||||
$lang->design->browse = 'List';
|
||||
$lang->design->commit = 'Link Commit';
|
||||
$lang->design->submit = 'Submit Review';
|
||||
$lang->design->assignTo = 'Assign';
|
||||
$lang->design->revision = 'Linked Code';
|
||||
$lang->design->common = 'Design';
|
||||
$lang->design->create = 'Create Design';
|
||||
$lang->design->batchCreate = 'Batch Create';
|
||||
$lang->design->edit = 'Edit';
|
||||
$lang->design->delete = 'Delete';
|
||||
$lang->design->view = 'View';
|
||||
$lang->design->browse = 'List';
|
||||
$lang->design->viewCommit = 'View Commit';
|
||||
$lang->design->linkCommit = 'Link Commit';
|
||||
$lang->design->unlinkCommit = 'Unlink Commit';
|
||||
$lang->design->submit = 'Submit Review';
|
||||
$lang->design->assignTo = 'Assign';
|
||||
$lang->design->revision = 'Linked Code';
|
||||
|
||||
/* Field value. */
|
||||
$lang->design->typeList = array();
|
||||
@@ -69,4 +71,6 @@ $lang->design->featureBar += $lang->design->typeList;
|
||||
$lang->design->errorSelection = 'No record selected!';
|
||||
$lang->design->noDesign = 'No record.';
|
||||
$lang->design->noCommit = 'No record commited.';
|
||||
$lang->design->confirmDelete = 'Do you want to delete this design?';
|
||||
$lang->design->confirmDelete = 'Do you want to delete this design?';
|
||||
$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
|
||||
$lang->design->errorDate = 'The start date can not be greater than the end date.';
|
||||
|
||||
@@ -38,17 +38,19 @@ $lang->design->basicInfo = '基本信息';
|
||||
$lang->design->noAssigned = '未指派';
|
||||
|
||||
/* 动作列表. */
|
||||
$lang->design->common = '设计';
|
||||
$lang->design->create = '创建设计';
|
||||
$lang->design->batchCreate = '批量创建';
|
||||
$lang->design->edit = '变更';
|
||||
$lang->design->delete = '删除';
|
||||
$lang->design->view = '设计概况';
|
||||
$lang->design->browse = '浏览列表';
|
||||
$lang->design->linkCommit = '关联提交';
|
||||
$lang->design->submit = '提交评审';
|
||||
$lang->design->assignTo = '指派';
|
||||
$lang->design->revision = '查看关联代码';
|
||||
$lang->design->common = '设计';
|
||||
$lang->design->create = '创建设计';
|
||||
$lang->design->batchCreate = '批量创建';
|
||||
$lang->design->edit = '变更';
|
||||
$lang->design->delete = '删除';
|
||||
$lang->design->view = '设计概况';
|
||||
$lang->design->browse = '浏览列表';
|
||||
$lang->design->viewCommit = '查看提交';
|
||||
$lang->design->linkCommit = '关联提交';
|
||||
$lang->design->unlinkCommit = '取消关联';
|
||||
$lang->design->submit = '提交评审';
|
||||
$lang->design->assignTo = '指派';
|
||||
$lang->design->revision = '查看关联代码';
|
||||
|
||||
/* 字段取值. */
|
||||
$lang->design->typeList = array();
|
||||
@@ -70,3 +72,5 @@ $lang->design->errorSelection = '还没有选中记录!';
|
||||
$lang->design->noDesign = '暂时没有记录';
|
||||
$lang->design->noCommit = '暂时没有提交记录';
|
||||
$lang->design->confirmDelete = '您确定要删除这个设计吗?';
|
||||
$lang->design->confirmUnlink = '您确定要移除这个提交吗?';
|
||||
$lang->design->errorDate = '开始日期不能大于结束日期';
|
||||
|
||||
+60
-20
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* The model file of design module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(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 design
|
||||
@@ -172,8 +172,6 @@ class designModel extends model
|
||||
*/
|
||||
public function linkCommit($designID = 0, $repoID = 0)
|
||||
{
|
||||
$this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('AID')->eq($designID)->andWhere('BType')->eq('commit')->andWhere('relation')->eq('completedin')->exec();
|
||||
$this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('commit')->andWhere('BID')->eq($designID)->andWhere('BType')->eq('design')->andWhere('relation')->eq('completedfrom')->exec();
|
||||
$revisions = $_POST['revision'];
|
||||
|
||||
foreach($revisions as $revision)
|
||||
@@ -199,28 +197,41 @@ class designModel extends model
|
||||
$this->dao->replace(TABLE_RELATION)->data($data)->autoCheck()->exec();
|
||||
}
|
||||
$design = new stdclass();
|
||||
$design->commit = implode(",", $revisions);
|
||||
$design->commit = $this->dao->select('commit')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch('commit');
|
||||
|
||||
if($design->commit)
|
||||
{
|
||||
$design->commit = implode(",", $revisions) . "," . $design->commit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$design->commit = implode(",", $revisions);
|
||||
}
|
||||
|
||||
$design->commitDate = helper::now();
|
||||
$design->commitBy = $this->app->user->account;
|
||||
$this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->where('id')->eq($designID)->exec();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set product menu.
|
||||
* Unlink commit.
|
||||
*
|
||||
* @param int $productID
|
||||
* @param int $designID
|
||||
* @param int $commitID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setProductMenu($productID = 0)
|
||||
public function unlinkCommit($designID = 0, $commitID = 0)
|
||||
{
|
||||
$programID = $this->session->program;
|
||||
$program = $this->loadModel('project')->getByID($programID);
|
||||
$products = $this->loadModel('product')->getPairs('', $programID);
|
||||
$productID = in_array($productID, array_keys($products)) ? $productID : key($products);
|
||||
/* Delete data in the zt_relation.*/
|
||||
$this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('design')->andwhere('AID')->eq($designID)->andwhere('BType')->eq('commit')->andwhere('relation')->eq('completedin')->andWhere('BID')->eq($commitID)->exec();
|
||||
$this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('commit')->andwhere('BID')->eq($designID)->andwhere('BType')->eq('design')->andwhere('relation')->eq('completedfrom')->andWhere('AID')->eq($commitID)->exec();
|
||||
|
||||
$productID = $this->loadModel('product')->saveState($productID, $products);
|
||||
if($program->category == 'multiple') $this->loadModel('product')->setMenu($products, $productID);
|
||||
/* Commit after unlinking. */
|
||||
$commit = $this->dao->select('BID')->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('AID')->eq($designID)->fetchAll('BID');
|
||||
$commit = implode(",", array_keys($commit));
|
||||
|
||||
$this->dao->update(TABLE_DESIGN)->set('commit')->eq($commit)->where('id')->eq($designID)->exec();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -240,6 +251,7 @@ class designModel extends model
|
||||
$design->commit = '';
|
||||
$relations = $this->loadModel('common')->getRelations('design', $designID, 'commit');
|
||||
foreach($relations as $relation) $design->commit .= html::a(helper::createLink('design', 'revision', "repoID=$relation->BID"), "#$relation->BID", '_blank');
|
||||
|
||||
return $this->loadModel('file')->replaceImgURL($design, 'desc');
|
||||
}
|
||||
|
||||
@@ -312,16 +324,44 @@ class designModel extends model
|
||||
->fetchAll('id');
|
||||
}
|
||||
|
||||
foreach($designs as $id => $design)
|
||||
{
|
||||
$design->commit = '';
|
||||
$relations = $this->loadModel('common')->getRelations('design', $id, 'commit');
|
||||
foreach($relations as $relation) $design->commit .= html::a(helper::createLink('design', 'revision', "repoID=$relation->BID", '', true), "#$relation->BID", '_blank');
|
||||
}
|
||||
|
||||
return $designs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get commit.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param int $pager
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getCommit($designID = 0, $pager = null)
|
||||
{
|
||||
$design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
|
||||
|
||||
$design->commit = $this->dao->select('*')->from(TABLE_REPOHISTORY)->where('id')->in($design->commit)->page($pager)->fetchAll('id');
|
||||
|
||||
return $design;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set product menu.
|
||||
*
|
||||
* @param int $productID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setProductMenu($productID = 0)
|
||||
{
|
||||
$programID = $this->session->program;
|
||||
$program = $this->loadModel('project')->getByID($programID);
|
||||
$products = $this->loadModel('product')->getPairs('', $programID);
|
||||
$productID = in_array($productID, array_keys($products)) ? $productID : key($products);
|
||||
|
||||
$productID = $this->loadModel('product')->saveState($productID, $products);
|
||||
if($program->category == 'multiple') $this->loadModel('product')->setMenu($products, $productID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get designs by search.
|
||||
*
|
||||
|
||||
@@ -42,10 +42,9 @@
|
||||
<?php $vars = "productID=$productID&type=$type¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-left w-60px"> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class="text-left w-60px"> <?php common::printOrderLink('id', $orderBy, $vars, $lang->design->id);?></th>
|
||||
<th class="text-left w-100px"> <?php common::printOrderLink('type', $orderBy, $vars, $lang->design->type);?></th>
|
||||
<th class="text-left"> <?php common::printOrderLink('name', $orderBy, $vars, $lang->design->name);?></th>
|
||||
<th class="text-left w-150px"> <?php common::printOrderLink('commit', $orderBy, $vars, $lang->design->submission);?></th>
|
||||
<th class="text-left w-120px"> <?php common::printOrderLink('createdBy', $orderBy, $vars, $lang->design->createdBy);?></th>
|
||||
<th class="text-left w-150px"> <?php common::printOrderLink('createdDate', $orderBy, $vars, $lang->design->createdDate);?></th>
|
||||
<th class="c-assignedTo w-120px"><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->design->assignedTo);?></th>
|
||||
@@ -58,23 +57,22 @@
|
||||
<td calss="c-id"> <?php printf('%03d', $design->id);?></td>
|
||||
<td class="c-type"> <?php echo zget($lang->design->typeList, $design->type);?></td>
|
||||
<td class="c-name" title="<?php echo $design->name;?>"><?php echo html::a($this->createLink('design', 'view', "id={$design->id}"), $design->name);?></td>
|
||||
<td class="c-commit"> <?php echo $design->commit;?></td>
|
||||
<td class="c-createdBy"> <?php echo $design->createdBy;?></td>
|
||||
<td class="c-createdDate"><?php echo substr($design->createdDate, 0, 11);?></td>
|
||||
<td class="c-assignedTo"> <?php echo $this->design->printAssignedHtml($design, $users);?></td>
|
||||
<td class='c-actions text-center'>
|
||||
<?php
|
||||
$vars = "design={$design->id}";
|
||||
common::printIcon('design', 'edit', $vars, $design, 'list', 'fork', '', '', '', '', '', $design->program);
|
||||
common::printIcon('design', 'linkCommit', $vars, $design, 'list', 'link', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('design', 'delete', $vars, $design, 'list', 'trash', 'hiddenwin', '', '', '', '', $design->program);
|
||||
common::printIcon('design', 'edit', $vars, $design, 'list', 'fork', '', '', '', '', '', $design->program);
|
||||
common::printIcon('design', 'viewCommit', $vars, $design, 'list', 'glasses', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('design', 'delete', $vars, $design, 'list', 'trash', 'hiddenwin', '', '', '', '', $design->program);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='table-footer'>
|
||||
<div class='table-footer table-statistic''>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -54,10 +54,11 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($revisions as $log):?>
|
||||
<?php if(in_array($log->id, $linkedRevisions)) continue;?>
|
||||
<tr>
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' name='revision[]' value="<?php echo $log->id?>" <?php if(in_array($log->revision, $linkedRevisions)) echo 'checked="checked"'?>/>
|
||||
<input type='checkbox' name='revision[]' value="<?php echo $log->id?>"/>
|
||||
<label></label>
|
||||
</div>
|
||||
</td>
|
||||
@@ -84,4 +85,5 @@
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php js::set('designID', $designID);?>
|
||||
<?php js::set('error', $lang->design->errorDate);?>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
* The viewCommit view of design 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 design
|
||||
* @version $Id: commit.html.php 4903 2013-06-26 05:32:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id="mainContent" class="main-table">
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<span class='label label-id'><?php echo $design->id;?></span>
|
||||
<span title='<?php echo $design->name?>'><?php echo $design->name?></span>
|
||||
<small><?php echo $lang->arrow . $lang->design->submission;?></small>
|
||||
</h2>
|
||||
</div>
|
||||
<div class='btn-toolbar pull-right'>
|
||||
<?php common::printLink('design', 'linkCommit', "designID=$design->id", "<i class='icon icon-plus'></i>" . $lang->design->linkCommit, '_blank', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
<?php if(empty($design->commit)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p><span class="text-muted"><?php echo $lang->design->noCommit;?></span></p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<table class='table table-data'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-left"><?php echo $lang->design->submission;?></th>
|
||||
<th class="text-left"><?php echo $lang->design->commitBy;?></th>
|
||||
<th class="text-left"><?php echo $lang->design->commitDate;?></th>
|
||||
<th class="text-center w-50px"> <?php echo $lang->design->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($design->commit as $commit):?>
|
||||
<tr>
|
||||
<td><?php echo html::a(helper::createLink('design', 'revision', "repoID=$commit->id"), "#$commit->id", '_blank');?></td>
|
||||
<td><?php echo $commit->committer;?></td>
|
||||
<td><?php echo substr($commit->time, 0, 11);?></td>
|
||||
<td class="c-actions">
|
||||
<?php common::printIcon('design', 'unlinkCommit', "designID=$design->id&commitID=$commit->id", $design, 'list', 'unlink', 'hiddenwin', 'iframe showinonlybody', true);?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='table-footer table-statistic'>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -302,7 +302,7 @@ class doc extends control
|
||||
if(!$docResult or dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$docID = $docResult['id'];
|
||||
$files = isset($docResult['files']) ? $docResult['files'] : '';
|
||||
$files = zget($docResult, 'files', '');
|
||||
$lib = $this->doc->getLibByID($this->post->lib);
|
||||
if($docResult['status'] == 'exists')
|
||||
{
|
||||
|
||||
@@ -105,7 +105,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<?php $star = strpos($lib->collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?>
|
||||
<?php $collectTitle = strpos($lib->collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?>
|
||||
<tr>
|
||||
<td class="c-name"><?php echo html::a($this->createLink('doc', 'browse', "libID={$lib->id}&browseType=all¶m=0&orderBy=$orderBy&from=$from"), "<i class='icon icon-folder text-yellow'></i> " . $lib->name);?></td>
|
||||
<td class="c-name"><?php echo html::a(inlink('browse', "libID={$lib->id}&browseType=all¶m=0&orderBy=$orderBy&from=$from"), "<i class='icon icon-folder text-yellow'></i> " . $lib->name);?></td>
|
||||
<td class="c-num"></td>
|
||||
<td class="c-user"></td>
|
||||
<td class="c-datetime"></td>
|
||||
@@ -124,9 +124,9 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<?php foreach($attachLibs as $libType => $attachLib):?>
|
||||
<tr>
|
||||
<?php if($libType == 'project'):?>
|
||||
<td class="c-name"><?php echo html::a($this->createLink('doc', 'allLibs', "type=project&product={$currentLib->product}"), "<i class='icon icon-folder text-yellow'></i> " . $attachLib->name);?></td>
|
||||
<td class="c-name"><?php echo html::a(inlink('allLibs', "type=project&product={$currentLib->product}"), "<i class='icon icon-folder text-yellow'></i> " . $attachLib->name);?></td>
|
||||
<?php elseif($libType == 'files'):?>
|
||||
<td class="c-name"><?php echo html::a($this->createLink('doc', 'showFiles', "type=$type&objectID={$currentLib->$type}"), "<i class='icon icon-folder text-yellow'></i> " . $attachLib->name);?></td>
|
||||
<td class="c-name"><?php echo html::a(inlink('showFiles', "type=$type&objectID={$currentLib->$type}"), "<i class='icon icon-folder text-yellow'></i> " . $attachLib->name);?></td>
|
||||
<?php endif;?>
|
||||
<td class="c-num"></td>
|
||||
<td class="c-user"></td>
|
||||
@@ -141,7 +141,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<?php $star = strpos($module->collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?>
|
||||
<?php $collectTitle = strpos($module->collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?>
|
||||
<tr>
|
||||
<td class="c-name"><?php echo html::a($this->createLink('doc', 'browse', "libID=$libID&browseType=bymodule¶m=$module->id&orderBy=$orderBy&from=$from"), "<i class='icon icon-folder text-yellow'></i> " . $module->name);?></td>
|
||||
<td class="c-name"><?php echo html::a(inlink('browse', "libID=$libID&browseType=bymodule¶m=$module->id&orderBy=$orderBy&from=$from"), "<i class='icon icon-folder text-yellow'></i> " . $module->name);?></td>
|
||||
<td class="c-num"></td>
|
||||
<td class="c-user"></td>
|
||||
<td class="c-datetime"></td>
|
||||
@@ -158,7 +158,7 @@ var browseType = '<?php echo $browseType;?>';
|
||||
<?php $star = strpos($doc->collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?>
|
||||
<?php $collectTitle = strpos($doc->collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?>
|
||||
<tr>
|
||||
<td class="c-name"><?php echo html::a($this->createLink('doc', 'view', "docID=$doc->id"), "<i class='icon icon-file-text text-muted'></i> " . $doc->title);?></td>
|
||||
<td class="c-name"><?php echo html::a(inlink('view', "docID=$doc->id"), "<i class='icon icon-file-text text-muted'></i> " . $doc->title);?></td>
|
||||
<td class="c-num"><?php echo $doc->fileSize ? $doc->fileSize : '-';?></td>
|
||||
<td class="c-user"><?php echo zget($users, $doc->addedBy);?></td>
|
||||
<td class="c-datetime"><?php echo formatTime($doc->addedDate, 'y-m-d');?></td>
|
||||
|
||||
@@ -66,19 +66,19 @@ $sideWidth = common::checkNotCN() ? '270' : '238';
|
||||
<?php
|
||||
if($subLibID == 'project')
|
||||
{
|
||||
$subLibLink = $this->createLink('doc', 'allLibs', "type=project&product=$tabMenu->id");
|
||||
$subLibLink = inlink('allLibs', "type=project&product=$tabMenu->id");
|
||||
$activeClass = ($this->methodName == 'alllibs' && $type == 'project' && $$tabValue == $tabMenu->id) ? "class='active'" : '';
|
||||
$icon = 'icon-stack';
|
||||
}
|
||||
elseif($subLibID == 'files')
|
||||
{
|
||||
$subLibLink = $this->createLink('doc', 'showFiles', "type=$tabValue&objectID=$tabMenu->id");
|
||||
$subLibLink = inlink('showFiles', "type=$tabValue&objectID=$tabMenu->id");
|
||||
$activeClass = ($this->methodName == 'showfiles' && $type == $tabValue && $object->id == $tabMenu->id) ? "class='active'" : '';
|
||||
$icon = 'icon-paper-clip';
|
||||
}
|
||||
else
|
||||
{
|
||||
$subLibLink = $this->createLink('doc', 'browse', "libID=$subLibID");
|
||||
$subLibLink = inlink('browse', "libID=$subLibID");
|
||||
$activeClass = ($this->methodName == 'browse' && $browseType != 'bymodule' && $subLibID == $libID) ? "class='active'" : '';
|
||||
$icon = 'icon-folder-outline';
|
||||
}
|
||||
@@ -181,7 +181,7 @@ $sideWidth = common::checkNotCN() ? '270' : '238';
|
||||
<strong><?php echo $lang->doc->customShowLibs;?></strong>
|
||||
</div>
|
||||
<div class='modal-body'>
|
||||
<form action='<?php echo $this->createLink('custom', 'ajaxSetDoc', '');?>' target='hiddenwin' method='post'>
|
||||
<form action='<?php echo $this->createLink('custom', 'ajaxSetDoc');?>' target='hiddenwin' method='post'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<td><?php echo html::checkbox('showLibs', $lang->doc->customShowLibsList, $config->doc->custom->showLibs);?></td>
|
||||
|
||||
@@ -21,14 +21,18 @@ $lang->group->managePrivByGroup = 'Rechte';
|
||||
$lang->group->managePrivByModule = 'Modul Rechte';
|
||||
$lang->group->byModuleTips = '<span class="tips">(SHIFT/STRG für Multi-Select)</span>';
|
||||
$lang->group->manageMember = 'Mitglieder';
|
||||
$lang->group->managePgmAdmin = 'Manage Program Admins';
|
||||
$lang->group->confirmDelete = 'Möchten Sie die Gruppe löschen?';
|
||||
$lang->group->successSaved = 'Gespeichert!';
|
||||
$lang->group->errorNotSaved = 'Fehlgeschlagen. Bitte aktion und Gruppe wählen.';
|
||||
$lang->group->program = 'Manage Programs';
|
||||
$lang->group->viewList = 'Anzeige ist zulässig.';
|
||||
$lang->group->programList = 'Access Program';
|
||||
$lang->group->productList = 'Produkte sind zugänglich.';
|
||||
$lang->group->projectList = 'Projekte sind zugänglich.';
|
||||
$lang->group->dynamic = 'Access Dynamics';
|
||||
$lang->group->noticeVisit = 'Leer bedeutet Zugriff verweigert.';
|
||||
$lang->group->noneProgram = "No Program";
|
||||
$lang->group->noneProduct = "No {$lang->productCommon}";
|
||||
$lang->group->noneProject = "No {$lang->projectCommon}";
|
||||
|
||||
@@ -44,6 +48,7 @@ $lang->group->priv = 'Gruppe';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = 'Gruppenbenutzer';
|
||||
$lang->group->outside = 'Andere Benutzer';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Andere';
|
||||
$lang->group->all = 'Alle';
|
||||
|
||||
|
||||
@@ -21,14 +21,18 @@ $lang->group->managePrivByGroup = 'Gérer Privilèges par Groupe';
|
||||
$lang->group->managePrivByModule = 'Gérer Privilèges par Module';
|
||||
$lang->group->byModuleTips = '<span class="tips">(Shift/Ctrl pour sélection multiple)</span>';
|
||||
$lang->group->manageMember = 'Gérer Membres';
|
||||
$lang->group->managePgmAdmin = 'Manage Program Admins';
|
||||
$lang->group->confirmDelete = "Voulez-vous supprimer ce groupe d'utilisateurs ?";
|
||||
$lang->group->successSaved = 'Sauvé.';
|
||||
$lang->group->errorNotSaved = 'Echec. Veuillez sélectionner actions et groupes.';
|
||||
$lang->group->program = 'Manage Programs';
|
||||
$lang->group->viewList = 'Accès Consultation';
|
||||
$lang->group->programList = 'Access Program';
|
||||
$lang->group->productList = 'Accès ' . $lang->productCommon . 's';
|
||||
$lang->group->projectList = 'Accès ' . $lang->projectCommon . 's';
|
||||
$lang->group->dynamic = 'Accès Historique';
|
||||
$lang->group->noticeVisit = "Blanc signifie « pas de limitation d'accès ».";
|
||||
$lang->group->noneProgram = "No Program";
|
||||
$lang->group->noneProduct = "No {$lang->productCommon}";
|
||||
$lang->group->noneProject = "No {$lang->projectCommon}";
|
||||
|
||||
@@ -44,6 +48,7 @@ $lang->group->priv = 'Groupe de Privilèges';
|
||||
$lang->group->option = 'Option';
|
||||
$lang->group->inside = "Groupe d'utilisateurs";
|
||||
$lang->group->outside = 'Autres utilisateurs';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Autres';
|
||||
$lang->group->all = 'Tous les Privilèges';
|
||||
|
||||
|
||||
@@ -21,14 +21,18 @@ $lang->group->managePrivByGroup = 'Quản lý Privileges by Group';
|
||||
$lang->group->managePrivByModule = 'Quản lý Privileges by Module';
|
||||
$lang->group->byModuleTips = '<span class="tips">(Press Shift/Ctrl to Multi-select)</span>';
|
||||
$lang->group->manageMember = 'Quản lý Members';
|
||||
$lang->group->managePgmAdmin = 'Manage Program Admins';
|
||||
$lang->group->confirmDelete = 'Bạn có muốn xóa người dùng này group?';
|
||||
$lang->group->successSaved = 'Đã lưu.';
|
||||
$lang->group->errorNotSaved = 'Thất bại. Vui lòng select actions and groups.';
|
||||
$lang->group->program = 'Manage Programs';
|
||||
$lang->group->viewList = 'Truy cập Sight';
|
||||
$lang->group->programList = 'Access Program';
|
||||
$lang->group->productList = 'Truy cập Product';
|
||||
$lang->group->projectList = 'Truy cập Project';
|
||||
$lang->group->dynamic = 'Truy cập Dynamics';
|
||||
$lang->group->noticeVisit = 'Blank means no access limit.';
|
||||
$lang->group->noneProgram = "No Program";
|
||||
$lang->group->noneProduct = "Không có {$lang->productCommon}";
|
||||
$lang->group->noneProject = "Không có {$lang->projectCommon}";
|
||||
|
||||
@@ -44,6 +48,7 @@ $lang->group->priv = 'Nhóm quyền';
|
||||
$lang->group->option = 'Tùy chọn';
|
||||
$lang->group->inside = 'Nhóm người dùng';
|
||||
$lang->group->outside = 'Other người dùng';
|
||||
$lang->group->limited = 'Limited Users';
|
||||
$lang->group->other = 'Khác';
|
||||
$lang->group->all = 'Tất cả Privileges';
|
||||
|
||||
|
||||
@@ -42,30 +42,30 @@
|
||||
<td title='<?php echo $group->desc?>'><?php echo $group->desc;?></td>
|
||||
<td title='<?php echo $users;?>' class="text-ellipsis"><?php echo $users;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php if($group->role != 'pgmadmin'):?>
|
||||
<?php $isPgmAdmin = $group->role == 'pgmadmin';?>
|
||||
<?php $disabled = $isPgmAdmin ? 'disabled' : '';?>
|
||||
<?php $lang->group->managepriv = $lang->group->managePrivByGroup;?>
|
||||
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye', '', 'iframe', true);?>
|
||||
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye', '', "iframe $disabled", true);?>
|
||||
<?php common::printIcon('group', 'managepriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
||||
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='90%'");?>
|
||||
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php if($isPgmAdmin):?>
|
||||
<?php common::printIcon('group', 'managePgmAdmin', "groupID=$group->id", $group, 'list', 'persons');?>
|
||||
<?php else:?>
|
||||
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', "iframe", true, "data-width='90%'");?>
|
||||
<?php endif;?>
|
||||
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', "iframe $disabled", true, "data-width='550'");?>
|
||||
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', "iframe $disabled", true, "data-width='550'");?>
|
||||
<?php
|
||||
if(common::hasPriv('group', 'delete'))
|
||||
if(!$isPgmAdmin && common::hasPriv('group', 'delete'))
|
||||
{
|
||||
$deleteURL = $this->createLink('group', 'delete', "groupID=$group->id&confirm=yes");
|
||||
echo html::a("javascript:ajaxDelete(\"$deleteURL\", \"groupList\", confirmDelete)", '<i class="icon icon-trash"></i>', '', "title='{$lang->group->delete}' class='btn'");
|
||||
}
|
||||
elseif($isPgmAdmin)
|
||||
{
|
||||
echo "<button class='btn disabled'><i class='icon icon-trash disabled' title='{$lang->group->delete}'></i></button>";
|
||||
}
|
||||
?>
|
||||
<?php else:?>
|
||||
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye', '', 'disabled');?>
|
||||
<?php common::printIcon('group', 'managepriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
||||
<?php common::printIcon('group', 'managePgmAdmin', "groupID=$group->id", $group, 'list', 'persons');?>
|
||||
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', 'disabled');?>
|
||||
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', 'disabled');?>
|
||||
<?php echo "<button class='btn disabled'><i class='icon icon-trash disabled' title='{$lang->group->delete}'></i></button>";?>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
|
||||
@@ -6,14 +6,21 @@ $lang->holiday->create = 'Create';
|
||||
$lang->holiday->edit = 'Edit';
|
||||
$lang->holiday->delete = 'Delete';
|
||||
|
||||
$lang->holiday->createAction = 'Create Holiday';
|
||||
$lang->holiday->editAction = 'Edit Holiday';
|
||||
$lang->holiday->deleteAction = 'Delete Holiday';
|
||||
|
||||
$lang->holiday->id = 'ID';
|
||||
$lang->holiday->name = 'Name';
|
||||
$lang->holiday->desc = 'Description';
|
||||
$lang->holiday->type = 'Type';
|
||||
$lang->holiday->begin = 'Begin';
|
||||
$lang->holiday->end = 'End';
|
||||
$lang->holiday->all = 'All';
|
||||
|
||||
$lang->holiday->holiday = 'Holiday';
|
||||
|
||||
$lang->holiday->typeList['holiday'] = 'Holiday';
|
||||
$lang->holiday->typeList['working'] = 'Working Day';
|
||||
|
||||
$lang->holiday->emptyTip = 'No Holiday';
|
||||
|
||||
@@ -6,9 +6,9 @@ $lang->holiday->create = 'Create';
|
||||
$lang->holiday->edit = 'Edit';
|
||||
$lang->holiday->delete = 'Delete';
|
||||
|
||||
$lang->holiday->createAction = 'Create Holiday';
|
||||
$lang->holiday->editAction = 'Edit Holiday';
|
||||
$lang->holiday->deleteAction = 'Delete Holiday';
|
||||
$lang->holiday->createAction = 'Create Holiday';
|
||||
$lang->holiday->editAction = 'Edit Holiday';
|
||||
$lang->holiday->deleteAction = 'Delete Holiday';
|
||||
|
||||
$lang->holiday->id = 'ID';
|
||||
$lang->holiday->name = 'Name';
|
||||
|
||||
@@ -6,14 +6,21 @@ $lang->holiday->create = 'Create';
|
||||
$lang->holiday->edit = 'Edit';
|
||||
$lang->holiday->delete = 'Delete';
|
||||
|
||||
$lang->holiday->createAction = 'Create Holiday';
|
||||
$lang->holiday->editAction = 'Edit Holiday';
|
||||
$lang->holiday->deleteAction = 'Delete Holiday';
|
||||
|
||||
$lang->holiday->id = 'ID';
|
||||
$lang->holiday->name = 'Name';
|
||||
$lang->holiday->desc = 'Description';
|
||||
$lang->holiday->type = 'Type';
|
||||
$lang->holiday->begin = 'Begin';
|
||||
$lang->holiday->end = 'End';
|
||||
$lang->holiday->all = 'All';
|
||||
|
||||
$lang->holiday->holiday = 'Holiday';
|
||||
|
||||
$lang->holiday->typeList['holiday'] = 'Holiday';
|
||||
$lang->holiday->typeList['working'] = 'Working Day';
|
||||
|
||||
$lang->holiday->emptyTip = 'No Holiday';
|
||||
|
||||
@@ -6,14 +6,21 @@ $lang->holiday->create = 'Tạo';
|
||||
$lang->holiday->edit = 'Sửa';
|
||||
$lang->holiday->delete = 'Xóa';
|
||||
|
||||
$lang->holiday->createAction = 'Create Holiday';
|
||||
$lang->holiday->editAction = 'Edit Holiday';
|
||||
$lang->holiday->deleteAction = 'Delete Holiday';
|
||||
|
||||
$lang->holiday->id = 'ID';
|
||||
$lang->holiday->name = 'Tên';
|
||||
$lang->holiday->desc = 'Mô tả';
|
||||
$lang->holiday->type = 'Loại';
|
||||
$lang->holiday->begin = 'Bắt đầu';
|
||||
$lang->holiday->end = 'Kết thúc';
|
||||
$lang->holiday->all = 'All';
|
||||
|
||||
$lang->holiday->holiday = 'Ngày lễ';
|
||||
|
||||
$lang->holiday->typeList['holiday'] = 'Ngày lễ';
|
||||
$lang->holiday->typeList['working'] = 'Ngày làm việc';
|
||||
|
||||
$lang->holiday->emptyTip = 'No Holiday';
|
||||
|
||||
@@ -153,32 +153,6 @@ class issueModel extends model
|
||||
return $this->dao->select('id,name')->from(TABLE_ACTIVITY)->where('deleted')->eq('0')->orderBy('id_desc')->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an issue.
|
||||
*
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$now = helper::now();
|
||||
$data = fixer::input('post')
|
||||
->add('createdBy', $this->app->user->account)
|
||||
->add('createdDate', $now)
|
||||
->add('program', $this->session->program)
|
||||
->remove('labels,files')
|
||||
->addIF($this->post->assignedTo, 'assignedBy', $this->app->user->account)
|
||||
->addIF($this->post->assignedTo, 'assignedDate', $now)
|
||||
->stripTags($this->config->issue->editor->create['id'], $this->config->allowedTags)
|
||||
->get();
|
||||
|
||||
$this->dao->insert(TABLE_ISSUE)->data($data)->batchCheck($this->config->issue->create->requiredFields, 'notempty')->exec();
|
||||
$issueID = $this->dao->lastInsertID();
|
||||
$this->loadModel('file')->saveUpload('issue', $issueID);
|
||||
|
||||
return $issueID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update an issue.
|
||||
*
|
||||
|
||||
@@ -132,6 +132,7 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['20.0'][] = array('title'=>'Add program, reset priv.', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.1'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
@@ -132,6 +132,7 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['20.0'][] = array('title'=>'Add program, reset priv.', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.1'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
@@ -132,6 +132,7 @@ $lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
|
||||
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
|
||||
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
|
||||
|
||||
$lang->misc->feature->all['20.0'][] = array('title'=>'Add program, reset priv.', 'desc' => '');
|
||||
$lang->misc->feature->all['12.4.1'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
$lang->misc->feature->all['12.4.stable'][] = array('title'=>'Fix Bug', 'desc' => '');
|
||||
|
||||
@@ -10,6 +10,10 @@ $lang->my->bug = 'Bugs';
|
||||
$lang->my->testTask = 'Builds';
|
||||
$lang->my->testCase = 'Meine Fälle';
|
||||
$lang->my->story = 'Meine Storys';
|
||||
$lang->my->requirement = 'My Requirements';
|
||||
$lang->my->program = 'My Programs';
|
||||
$lang->my->myProgram = "My Programs";
|
||||
$lang->my->createProgram = 'Create Program';
|
||||
$lang->my->myProject = "Meine {$lang->projectCommon}";
|
||||
$lang->my->profile = 'Meine Profil';
|
||||
$lang->my->dynamic = 'Meine Verlauf';
|
||||
|
||||
@@ -10,6 +10,10 @@ $lang->my->bug = 'Mes Bugs';
|
||||
$lang->my->testTask = 'Mes Builds';
|
||||
$lang->my->testCase = 'Mes CasTests';
|
||||
$lang->my->story = 'Mes Stories';
|
||||
$lang->my->requirement = 'My Requirements';
|
||||
$lang->my->program = 'My Programs';
|
||||
$lang->my->myProgram = "My Programs";
|
||||
$lang->my->createProgram = 'Create Program';
|
||||
$lang->my->myProject = "Mes {$lang->projectCommon}s";
|
||||
$lang->my->profile = 'Mon Profil';
|
||||
$lang->my->dynamic = 'Mon Historique';
|
||||
|
||||
@@ -10,6 +10,10 @@ $lang->my->bug = 'Bugs của bạn';
|
||||
$lang->my->testTask = 'Bản dựng của bạn';
|
||||
$lang->my->testCase = 'Tình huống của bạn';
|
||||
$lang->my->story = 'Câu chuyện của bạn';
|
||||
$lang->my->requirement = 'My Requirements';
|
||||
$lang->my->program = 'My Programs';
|
||||
$lang->my->myProgram = "My Programs";
|
||||
$lang->my->createProgram = 'Create Program';
|
||||
$lang->my->myProject = "{$lang->projectCommon} của bạn";
|
||||
$lang->my->profile = 'Hồ sơ của bạn';
|
||||
$lang->my->dynamic = 'Lịch sử của bạn';
|
||||
|
||||
@@ -83,8 +83,8 @@
|
||||
<?php
|
||||
common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug', '', '', '', '', '', $case->program);
|
||||
common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase¶m=$caseID", $case, 'list', 'copy', '', '', '', '', '', $case->program);
|
||||
common::printIcon('testtask', 'runCase', "runID=$runID&caseID=$caseID&version=$case->version", '', 'list', 'play', '', 'iframe', '', "data-width='95%'", '', $case->program);
|
||||
common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', '', "data-width='95%'", '', $case->program);
|
||||
common::printIcon('testtask', 'runCase', "runID=$runID&caseID=$caseID&version=$case->version", '', 'list', 'play', '', 'iframe', true, "data-width='95%'", '', $case->program);
|
||||
common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', true, "data-width='95%'", '', $case->program);
|
||||
common::printIcon('testcase', 'edit', "caseID=$caseID", $case, 'list', 'edit', '', '', '', '', '', $case->program);
|
||||
?>
|
||||
</td>
|
||||
|
||||
@@ -34,7 +34,7 @@ $lang->product->exportAction = "导出{$lang->productCommon}";
|
||||
$lang->product->basicInfo = '基本信息';
|
||||
$lang->product->otherInfo = '其他信息';
|
||||
|
||||
$lang->product->plans = '计划数';
|
||||
$lang->product->plans = "{$lang->planCommon}数";
|
||||
$lang->product->releases = '发布数';
|
||||
$lang->product->docs = '文档数';
|
||||
$lang->product->bugs = '相关Bug';
|
||||
@@ -87,7 +87,7 @@ $lang->product->release = '发布';
|
||||
$lang->product->allRelease = '所有发布';
|
||||
$lang->product->maintain = '维护中';
|
||||
$lang->product->latestDynamic = '最新动态';
|
||||
$lang->product->plan = '计划';
|
||||
$lang->product->plan = $lang->planCommon;
|
||||
$lang->product->iteration = '版本迭代';
|
||||
$lang->product->iterationInfo = '迭代 %s 次';
|
||||
$lang->product->iterationView = '查看详情';
|
||||
@@ -105,7 +105,7 @@ $lang->product->changedStory = '已变更';
|
||||
$lang->product->willClose = '待关闭';
|
||||
$lang->product->closedStory = '已关闭';
|
||||
$lang->product->unclosed = '未关闭';
|
||||
$lang->product->unplan = '未计划';
|
||||
$lang->product->unplan = "未{$lang->planCommon}";
|
||||
$lang->product->viewByUser = '按用户查看';
|
||||
|
||||
$lang->product->allStory = '所有';
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
* @version $Id: zh-cn.php 4659 2013-04-17 06:45:08Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->productplan->common = $lang->productCommon . '计划';
|
||||
$lang->productplan->browse = "浏览计划";
|
||||
$lang->productplan->index = "计划列表";
|
||||
$lang->productplan->create = "创建计划";
|
||||
$lang->productplan->edit = "编辑计划";
|
||||
$lang->productplan->delete = "删除计划";
|
||||
$lang->productplan->view = "计划详情";
|
||||
$lang->productplan->common = $lang->productCommon . $lang->planCommon;
|
||||
$lang->productplan->browse = "浏览{$lang->planCommon}";
|
||||
$lang->productplan->index = "{$lang->planCommon}列表";
|
||||
$lang->productplan->create = "创建{$lang->planCommon}";
|
||||
$lang->productplan->edit = "编辑{$lang->planCommon}";
|
||||
$lang->productplan->delete = "删除{$lang->planCommon}";
|
||||
$lang->productplan->view = "{$lang->planCommon}详情";
|
||||
$lang->productplan->bugSummary = "本页共 <strong>%s</strong> 个Bug";
|
||||
$lang->productplan->basicInfo = '基本信息';
|
||||
$lang->productplan->batchEdit = '批量编辑';
|
||||
@@ -28,21 +28,21 @@ $lang->productplan->batchUnlinkStory = "批量移除{$lang->storyCommon}";
|
||||
$lang->productplan->linkedStories = $lang->storyCommon;
|
||||
$lang->productplan->unlinkedStories = "未关联{$lang->storyCommon}";
|
||||
$lang->productplan->updateOrder = '排序';
|
||||
$lang->productplan->createChildren = "创建子计划";
|
||||
$lang->productplan->createChildren = "创建子{$lang->planCommon}";
|
||||
|
||||
$lang->productplan->linkBug = "关联Bug";
|
||||
$lang->productplan->unlinkBug = "移除Bug";
|
||||
$lang->productplan->batchUnlinkBug = "批量移除Bug";
|
||||
$lang->productplan->linkedBugs = 'Bug';
|
||||
$lang->productplan->unlinkedBugs = '未关联Bug';
|
||||
$lang->productplan->unexpired = '未过期计划';
|
||||
$lang->productplan->all = '所有计划';
|
||||
$lang->productplan->unexpired = "未过期{$lang->planCommon}";
|
||||
$lang->productplan->all = "所有{$lang->planCommon}";
|
||||
|
||||
$lang->productplan->confirmDelete = "您确认删除该计划吗?";
|
||||
$lang->productplan->confirmDelete = "您确认删除该{$lang->planCommon}吗?";
|
||||
$lang->productplan->confirmUnlinkStory = "您确认移除该{$lang->storyCommon}吗?";
|
||||
$lang->productplan->confirmUnlinkBug = "您确认移除该Bug吗?";
|
||||
$lang->productplan->noPlan = '暂时没有计划。';
|
||||
$lang->productplan->cannotDeleteParent = '不能删除父计划';
|
||||
$lang->productplan->noPlan = "暂时没有{$lang->planCommon}。";
|
||||
$lang->productplan->cannotDeleteParent = "不能删除父{$lang->planCommon}";
|
||||
|
||||
$lang->productplan->id = '编号';
|
||||
$lang->productplan->product = $lang->productCommon;
|
||||
@@ -51,15 +51,15 @@ $lang->productplan->title = '名称';
|
||||
$lang->productplan->desc = '描述';
|
||||
$lang->productplan->begin = '开始日期';
|
||||
$lang->productplan->end = '结束日期';
|
||||
$lang->productplan->last = '上次计划';
|
||||
$lang->productplan->last = "上次{$lang->planCommon}";
|
||||
$lang->productplan->future = '待定';
|
||||
$lang->productplan->stories = "{$lang->storyCommon}数";
|
||||
$lang->productplan->bugs = 'Bug数';
|
||||
$lang->productplan->hour = $lang->hourCommon;
|
||||
$lang->productplan->project = $lang->projectCommon;
|
||||
$lang->productplan->parent = "父计划";
|
||||
$lang->productplan->parent = "父{$lang->planCommon}";
|
||||
$lang->productplan->parentAB = "父";
|
||||
$lang->productplan->children = "子计划";
|
||||
$lang->productplan->children = "子{$lang->planCommon}";
|
||||
$lang->productplan->childrenAB = "子";
|
||||
$lang->productplan->order = "排序";
|
||||
$lang->productplan->deleted = "已删除";
|
||||
|
||||
@@ -441,7 +441,7 @@ class programModel extends model
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
public function getSwapper($programs, $programID, $currentModule, $currentMethod, $extra = '')
|
||||
public function getSwitcher($programs, $programID, $currentModule, $currentMethod, $extra = '')
|
||||
{
|
||||
$this->loadModel('project');
|
||||
$currentProgramName = '';
|
||||
|
||||
@@ -117,7 +117,13 @@ $lang->project->aclList['open'] = "Standard (Benutzer mit Rechten für Projek
|
||||
$lang->project->aclList['private'] = "Privat (Nur Teammitglieder)";
|
||||
$lang->project->aclList['custom'] = 'Benutzerdefiniert (Teammitglieder und Whitelist Benutzer haben Zugriff.)';
|
||||
|
||||
/* 方法列表。*/
|
||||
$lang->project->storyPoint = 'Story Point';
|
||||
|
||||
$lang->project->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->project->burnByList['estimate'] = "View by {$lang->planCommon} hours";
|
||||
$lang->project->burnByList['storyPoint'] = 'View by story point';
|
||||
|
||||
/* Method list. */
|
||||
$lang->project->index = "Home";
|
||||
$lang->project->task = 'Aufgaben';
|
||||
$lang->project->groupTask = 'Nach Gruppen';
|
||||
|
||||
@@ -117,6 +117,12 @@ $lang->project->aclList['open'] = "Default (Users who can visit {$lang->proje
|
||||
$lang->project->aclList['private'] = 'Private (For team members only.)';
|
||||
$lang->project->aclList['custom'] = 'Custom (Team members and the whitelist users can access it.)';
|
||||
|
||||
$lang->project->storyPoint = 'Story Point';
|
||||
|
||||
$lang->project->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->project->burnByList['estimate'] = "View by {$lang->planCommon} hours";
|
||||
$lang->project->burnByList['storyPoint'] = 'View by story point';
|
||||
|
||||
/* Method list. */
|
||||
$lang->project->index = "{$lang->projectCommon} Home";
|
||||
$lang->project->task = 'Task List';
|
||||
|
||||
@@ -117,7 +117,13 @@ $lang->project->aclList['open'] = "Défaut (les utilisateurs qui peuvent cons
|
||||
$lang->project->aclList['private'] = "Privé (réservé aux membres de l'équipe.)";
|
||||
$lang->project->aclList['custom'] = "Liste blanche (seuls les membres de l'équipe et de la Liste Blanche peuvent y accéder.)";
|
||||
|
||||
/* 方法列表。 Méthode List */
|
||||
$lang->project->storyPoint = 'Story Point';
|
||||
|
||||
$lang->project->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->project->burnByList['estimate'] = "View by {$lang->planCommon} hours";
|
||||
$lang->project->burnByList['storyPoint'] = 'View by story point';
|
||||
|
||||
/* Méthode List */
|
||||
$lang->project->index = "Accueil {$lang->projectCommon}";
|
||||
$lang->project->task = 'Liste Tâches';
|
||||
$lang->project->groupTask = 'Vision Groupée';
|
||||
|
||||
@@ -117,6 +117,12 @@ $lang->project->aclList['open'] = "Mặc định (Người dùng có thể v
|
||||
$lang->project->aclList['private'] = 'Riêng tư (Chỉ có thành viên nhóm.)';
|
||||
$lang->project->aclList['custom'] = 'Tùy biến (Thành viên nhóm và người dùng dánh sách trắng có thể truy cập nó.)';
|
||||
|
||||
$lang->project->storyPoint = 'Story Point';
|
||||
|
||||
$lang->project->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->project->burnByList['estimate'] = "View by {$lang->planCommon} hours";
|
||||
$lang->project->burnByList['storyPoint'] = 'View by story point';
|
||||
|
||||
/* Method list. */
|
||||
$lang->project->index = "{$lang->projectCommon} Home";
|
||||
$lang->project->task = 'Danh sách nhiệm vụ';
|
||||
|
||||
@@ -120,7 +120,7 @@ $lang->project->aclList['custom'] = "自定义白名单(团队成员和白名
|
||||
$lang->project->storyPoint = '故事点';
|
||||
|
||||
$lang->project->burnByList['left'] = '按剩余工时查看';
|
||||
$lang->project->burnByList['estimate'] = '按计划工时查看';
|
||||
$lang->project->burnByList['estimate'] = "按{$lang->planCommon}工时查看";
|
||||
$lang->project->burnByList['storyPoint'] = '按故事点查看';
|
||||
|
||||
/* 方法列表。*/
|
||||
@@ -142,8 +142,8 @@ $lang->project->doc = '文档列表';
|
||||
$lang->project->doclib = '文档库列表';
|
||||
$lang->project->manageProducts = '关联' . $lang->productCommon;
|
||||
$lang->project->linkStory = "关联{$lang->storyCommon}";
|
||||
$lang->project->linkStoryByPlan = '按照计划关联';
|
||||
$lang->project->linkPlan = '关联计划';
|
||||
$lang->project->linkStoryByPlan = "按照{$lang->planCommon}关联";
|
||||
$lang->project->linkPlan = "关联{$lang->planCommon}";
|
||||
$lang->project->unlinkStoryTasks = "未关联{$lang->storyCommon}任务";
|
||||
$lang->project->linkedProducts = '已关联';
|
||||
$lang->project->unlinkedProducts = '未关联';
|
||||
@@ -172,7 +172,7 @@ $lang->project->unlinkStory = "移除{$lang->storyCommon}";
|
||||
$lang->project->unlinkStoryAB = "移除{$lang->storyCommon}";
|
||||
$lang->project->batchUnlinkStory = "批量移除{$lang->storyCommon}";
|
||||
$lang->project->importTask = '转入任务';
|
||||
$lang->project->importPlanStories = "按计划关联{$lang->storyCommon}";
|
||||
$lang->project->importPlanStories = "按{$lang->planCommon}关联{$lang->storyCommon}";
|
||||
$lang->project->importBug = '导入Bug';
|
||||
$lang->project->updateOrder = "{$lang->projectCommon}排序";
|
||||
$lang->project->tree = '树状图';
|
||||
@@ -182,7 +182,7 @@ $lang->project->treeOnlyTask = '树状图只看任务';
|
||||
$lang->project->treeOnlyStory = "树状图只看{$lang->storyCommon}";
|
||||
$lang->project->storyKanban = "{$lang->storyCommon}看板";
|
||||
$lang->project->storySort = "{$lang->storyCommon}排序";
|
||||
$lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入计划关联的相关' . $lang->storyCommon . '?';
|
||||
$lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入' . $lang->planCommon . '关联的相关' . $lang->storyCommon . '?';
|
||||
$lang->project->iteration = '版本迭代';
|
||||
$lang->project->iterationInfo = '迭代%s次';
|
||||
$lang->project->viewAll = '查看所有';
|
||||
@@ -225,7 +225,7 @@ $lang->project->aboveAllProduct = "以上所有{$lang->productCommon}";
|
||||
$lang->project->aboveAllProject = "以上所有{$lang->projectCommon}";
|
||||
|
||||
/* 页面提示。*/
|
||||
$lang->project->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->storyCommon}全部关联到此{$lang->projectCommon}中";
|
||||
$lang->project->linkStoryByPlanTips = "此操作会将所选{$lang->planCommon}下面的{$lang->storyCommon}全部关联到此{$lang->projectCommon}中";
|
||||
$lang->project->selectProject = "请选择{$lang->projectCommon}";
|
||||
$lang->project->beginAndEnd = '起止时间';
|
||||
$lang->project->begin = '开始日期';
|
||||
|
||||
@@ -71,7 +71,7 @@ $lang->report->taskTotal = "总任务数";
|
||||
$lang->report->manhourTotal = "总工时";
|
||||
$lang->report->validRate = "有效率";
|
||||
$lang->report->validRateTips = "方案为已解决或延期/状态为已解决或已关闭";
|
||||
$lang->report->unplanned = '未计划';
|
||||
$lang->report->unplanned = "未{$lang->planCommon}";
|
||||
$lang->report->workday = '每天工时';
|
||||
$lang->report->diffDays = '工作日天数';
|
||||
|
||||
@@ -82,7 +82,7 @@ $lang->report->typeList['line'] = '折线图';
|
||||
|
||||
$lang->report->conditions = '筛选条件:';
|
||||
$lang->report->closedProduct = '关闭' . $lang->productCommon;
|
||||
$lang->report->overduePlan = '过期计划';
|
||||
$lang->report->overduePlan = "过期{$lang->planCommon}";
|
||||
|
||||
/* daily reminder. */
|
||||
$lang->report->idAB = 'ID';
|
||||
@@ -112,7 +112,7 @@ $lang->report->annualData->consumed = "累计工时数";
|
||||
$lang->report->annualData->foundBugs = "累计创建Bug数";
|
||||
$lang->report->annualData->createdCases = "累计创建用例数";
|
||||
$lang->report->annualData->involvedProducts = "累计参与{$lang->productCommon}数";
|
||||
$lang->report->annualData->createdPlans = "累计创建计划数";
|
||||
$lang->report->annualData->createdPlans = "累计创建{$lang->planCommon}数";
|
||||
$lang->report->annualData->createdStories = "累计创建{$lang->storyCommon}数";
|
||||
|
||||
$lang->report->annualData->productOverview = "{$lang->productCommon}创建{$lang->storyCommon}数及占比";
|
||||
@@ -128,7 +128,7 @@ $lang->report->annualData->finishedTask = '完成任务数';
|
||||
$lang->report->annualData->foundBug = '创建Bug数';
|
||||
$lang->report->annualData->resolvedBug = '解决Bug数';
|
||||
$lang->report->annualData->productName = "{$lang->productCommon}名称";
|
||||
$lang->report->annualData->planCount = '计划数';
|
||||
$lang->report->annualData->planCount = "{$lang->planCommon}数";
|
||||
$lang->report->annualData->storyCount = "{$lang->storyCommon}数";
|
||||
|
||||
$lang->report->annualData->qaData = "累计创建Bug数和创建用例数";
|
||||
|
||||
@@ -21,7 +21,7 @@ $config->risk->search['fields']['strategy'] = $lang->risk->strategy;
|
||||
$config->risk->search['fields']['status'] = $lang->risk->status;
|
||||
$config->risk->search['fields']['impact'] = $lang->risk->impact;
|
||||
$config->risk->search['fields']['probability'] = $lang->risk->probability;
|
||||
$config->risk->search['fields']['riskindex'] = $lang->risk->riskindex;
|
||||
$config->risk->search['fields']['rate'] = $lang->risk->rate;
|
||||
$config->risk->search['fields']['pri'] = $lang->risk->pri;
|
||||
$config->risk->search['fields']['identifiedDate'] = $lang->risk->identifiedDate;
|
||||
$config->risk->search['fields']['prevention'] = $lang->risk->prevention;
|
||||
@@ -45,7 +45,7 @@ $config->risk->search['params']['strategy'] = array('operator' => '=',
|
||||
$config->risk->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->statusList);
|
||||
$config->risk->search['params']['impact'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->impactList);
|
||||
$config->risk->search['params']['probability'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->probabilityList);
|
||||
$config->risk->search['params']['riskindex'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->risk->search['params']['rate'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->risk->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->priList);
|
||||
$config->risk->search['params']['identifiedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->risk->search['params']['prevention'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
$(function()
|
||||
{
|
||||
$('#riskindex').attr('readonly', true);
|
||||
$('#rate').attr('readonly', true);
|
||||
$('#pri').attr('disabled', true);
|
||||
computeIndex();
|
||||
function computeIndex()
|
||||
{
|
||||
var impact = $('#impact').val();
|
||||
var probability = $('#probability').val();
|
||||
var riskindex = parseInt(impact * probability);
|
||||
var rate = parseInt(impact * probability);
|
||||
var pri = '';
|
||||
if(0 < riskindex && riskindex <= 5) pri = 'low';
|
||||
if(5 < riskindex && riskindex <= 12) pri = 'middle';
|
||||
if(15 <= riskindex && riskindex <= 25) pri = 'high';
|
||||
if(0 < rate && rate <= 5) pri = 'low';
|
||||
if(5 < rate && rate <= 12) pri = 'middle';
|
||||
if(15 <= rate && rate <= 25) pri = 'high';
|
||||
|
||||
$('#riskindex').val(riskindex);
|
||||
$('#rate').val(rate);
|
||||
$('#pri').val(pri);
|
||||
$('#pri').trigger("chosen:updated")
|
||||
$('#pri').chosen();
|
||||
|
||||
@@ -9,7 +9,7 @@ $lang->risk->strategy = 'Strategy';
|
||||
$lang->risk->status = 'Status';
|
||||
$lang->risk->impact = 'Impact';
|
||||
$lang->risk->probability = 'Probability';
|
||||
$lang->risk->riskindex = 'Risk Index';
|
||||
$lang->risk->rate = 'Risk Index';
|
||||
$lang->risk->pri = 'Priority';
|
||||
$lang->risk->prevention = 'Mitigation';
|
||||
$lang->risk->remedy = 'Contingency';
|
||||
|
||||
@@ -9,7 +9,7 @@ $lang->risk->strategy = '策略';
|
||||
$lang->risk->status = '状态';
|
||||
$lang->risk->impact = '影响程度';
|
||||
$lang->risk->probability = '发生概率';
|
||||
$lang->risk->riskindex = '风险系数';
|
||||
$lang->risk->rate = '风险系数';
|
||||
$lang->risk->pri = '优先级';
|
||||
$lang->risk->prevention = '处理措施';
|
||||
$lang->risk->remedy = '应急措施';
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<th class='w-80px'><?php common::printOrderLink('strategy', $orderBy, $vars, $lang->risk->strategy);?></th>
|
||||
<th class='w-80px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->risk->status);?></th>
|
||||
<th class='w-120px'><?php common::printOrderLink('identifiedDate', $orderBy, $vars, $lang->risk->identifiedDate);?></th>
|
||||
<th class='w-80px'><?php common::printOrderLink('riskindex', $orderBy, $vars, $lang->risk->riskindex);?></th>
|
||||
<th class='w-80px'><?php common::printOrderLink('rate', $orderBy, $vars, $lang->risk->rate);?></th>
|
||||
<th class='w-80px'><?php common::printOrderLink('pri', $orderBy, $vars, $lang->risk->pri);?></th>
|
||||
<th class='w-120px'><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->risk->assignedTo);?></th>
|
||||
<th class='w-120px'><?php common::printOrderLink('category', $orderBy, $vars, $lang->risk->category);?></th>
|
||||
@@ -67,7 +67,7 @@
|
||||
<td><?php echo zget($lang->risk->strategyList, $risk->strategy);?></td>
|
||||
<td><?php echo zget($lang->risk->statusList, $risk->status);?></td>
|
||||
<td><?php echo $risk->identifiedDate == '0000-00-00' ? '' : $risk->identifiedDate;?></td>
|
||||
<td><?php echo $risk->riskindex;?></td>
|
||||
<td><?php echo $risk->rate;?></td>
|
||||
<td><?php echo zget($lang->risk->priList, $risk->pri)?></td>
|
||||
<td><?php echo $this->risk->printAssignedHtml($risk, $users);;?></td>
|
||||
<td><?php echo zget($lang->risk->categoryList, $risk->category);?></td>
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
<td><?php echo html::select('probability', $lang->risk->probabilityList, 3, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->riskindex;?></th>
|
||||
<td><?php echo html::input('riskindex', '', "class='form-control'");?></td>
|
||||
<th><?php echo $lang->risk->rate;?></th>
|
||||
<td><?php echo html::input('rate', '', "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->pri;?></th>
|
||||
|
||||
@@ -48,11 +48,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->probability;?></th>
|
||||
<td><?php echo html::select('probability', $lang->risk->probabilityList, $risk->impact, "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select('probability', $lang->risk->probabilityList, $risk->probability, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->riskindex;?></th>
|
||||
<td><?php echo html::input('riskindex', $risk->riskindex, "class='form-control'");?></td>
|
||||
<th><?php echo $lang->risk->rate;?></th>
|
||||
<td><?php echo html::input('rate', $risk->rate, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->pri;?></th>
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
</tr>
|
||||
<tr class='track hidden'>
|
||||
<th><?php echo $lang->risk->probability;?></th>
|
||||
<td><?php echo html::select('probability', $lang->risk->probabilityList, $risk->impact, "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select('probability', $lang->risk->probabilityList, $risk->probability, "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr class='track hidden'>
|
||||
<th><?php echo $lang->risk->riskindex;?></th>
|
||||
<td><?php echo html::input('riskindex', $risk->riskindex, "class='form-control'");?></td>
|
||||
<th><?php echo $lang->risk->rate;?></th>
|
||||
<td><?php echo html::input('rate', $risk->rate, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr class='track hidden'>
|
||||
<th><?php echo $lang->risk->pri;?></th>
|
||||
|
||||
@@ -105,8 +105,8 @@
|
||||
<td><?php echo zget($lang->risk->probabilityList, $risk->probability);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->riskindex;?></th>
|
||||
<td><?php echo $risk->riskindex;?></td>
|
||||
<th><?php echo $lang->risk->rate;?></th>
|
||||
<td><?php echo $risk->rate;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->risk->pri;?></th>
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang->score->modules['testcase'] = '用例';
|
||||
$lang->score->modules['testtask'] = '测试单';
|
||||
$lang->score->modules['build'] = 'Build';
|
||||
$lang->score->modules['project'] = '项目';
|
||||
$lang->score->modules['productplan'] = '计划';
|
||||
$lang->score->modules['productplan'] = $lang->planCommon;
|
||||
$lang->score->modules['release'] = '发布';
|
||||
$lang->score->modules['block'] = '区块';
|
||||
$lang->score->modules['search'] = '搜索';
|
||||
@@ -74,7 +74,7 @@ $lang->score->methods['testcase']['create'] = '创建用例';
|
||||
$lang->score->methods['build']['create'] = '创建版本';
|
||||
$lang->score->methods['project']['create'] = '创建项目';
|
||||
$lang->score->methods['project']['close'] = '项目完成';
|
||||
$lang->score->methods['productplan']['create'] = '创建计划';
|
||||
$lang->score->methods['productplan']['create'] = "创建{$lang->planCommon}";
|
||||
$lang->score->methods['release']['create'] = '创建发布';
|
||||
$lang->score->methods['block']['set'] = '区块自定义设置';
|
||||
$lang->score->methods['search']['saveQuery'] = '保存搜索条件';
|
||||
|
||||
@@ -129,6 +129,7 @@ $lang->story->allStories = 'Alle';
|
||||
$lang->story->unclosed = 'Nicht geschlossen';
|
||||
$lang->story->deleted = 'Gelöscht';
|
||||
$lang->story->released = 'Released Linked Stories';
|
||||
$lang->story->storyChanged = 'Requirement Changed';
|
||||
$lang->story->design = 'Designs';
|
||||
$lang->story->case = 'Cases';
|
||||
$lang->story->bug = 'Bugs';
|
||||
|
||||
@@ -129,6 +129,7 @@ $lang->story->allStories = 'Toutes les Stories';
|
||||
$lang->story->unclosed = 'Non Fermées';
|
||||
$lang->story->deleted = 'Supprimée';
|
||||
$lang->story->released = 'Stories Versionnées';
|
||||
$lang->story->storyChanged = 'Requirement Changed';
|
||||
$lang->story->design = 'Designs';
|
||||
$lang->story->case = 'Cases';
|
||||
$lang->story->bug = 'Bugs';
|
||||
|
||||
@@ -129,6 +129,7 @@ $lang->story->allStories = 'Tất cả câu chuyện';
|
||||
$lang->story->unclosed = 'Chưa đóng';
|
||||
$lang->story->deleted = 'Đã xóa';
|
||||
$lang->story->released = 'Đã phát hành';
|
||||
$lang->story->storyChanged = 'Requirement Changed';
|
||||
$lang->story->design = 'Designs';
|
||||
$lang->story->case = 'Cases';
|
||||
$lang->story->bug = 'Bugs';
|
||||
|
||||
@@ -59,7 +59,7 @@ $lang->story->zeroTask = "只列零任务{$lang->storyCommon}";
|
||||
$lang->story->reportChart = "统计报表";
|
||||
$lang->story->reportAction = "统计报表";
|
||||
$lang->story->copyTitle = "同{$lang->storyCommon}名称";
|
||||
$lang->story->batchChangePlan = "批量修改计划";
|
||||
$lang->story->batchChangePlan = "批量修改{$lang->planCommon}";
|
||||
$lang->story->batchChangeBranch = "批量修改分支";
|
||||
$lang->story->batchChangeStage = "批量修改阶段";
|
||||
$lang->story->batchAssignTo = "批量指派";
|
||||
@@ -109,8 +109,8 @@ $lang->story->rejectedReason = '拒绝原因';
|
||||
$lang->story->reviewedBy = '由谁评审';
|
||||
$lang->story->reviewedDate = '评审时间';
|
||||
$lang->story->version = '版本号';
|
||||
$lang->story->plan = '所属计划';
|
||||
$lang->story->planAB = '计划';
|
||||
$lang->story->plan = "所属{$lang->planCommon}";
|
||||
$lang->story->planAB = $lang->planCommon;
|
||||
$lang->story->comment = '备注';
|
||||
$lang->story->children = "子{$lang->storyCommon}";
|
||||
$lang->story->childrenAB = "子";
|
||||
@@ -153,7 +153,7 @@ $lang->story->statusList['changed'] = '已变更';
|
||||
|
||||
$lang->story->stageList[''] = '';
|
||||
$lang->story->stageList['wait'] = '未开始';
|
||||
$lang->story->stageList['planned'] = '已计划';
|
||||
$lang->story->stageList['planned'] = "已{$lang->planCommon}";
|
||||
$lang->story->stageList['projected'] = '已立项';
|
||||
$lang->story->stageList['developing'] = '研发中';
|
||||
$lang->story->stageList['developed'] = '研发完毕';
|
||||
@@ -252,8 +252,8 @@ $lang->story->form->file = "附件,如果该{$lang->storyCommon}有相关
|
||||
$lang->story->action = new stdclass();
|
||||
$lang->story->action->reviewed = array('main' => '$date, 由 <strong>$actor</strong> 记录评审结果,结果为 <strong>$extra</strong>。', 'extra' => 'reviewResultList');
|
||||
$lang->story->action->closed = array('main' => '$date, 由 <strong>$actor</strong> 关闭,原因为 <strong>$extra</strong> $appendLink。', 'extra' => 'reasonList');
|
||||
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->planCommon . ' <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->planCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2project = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->projectCommon . ' <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->projectCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
|
||||
@@ -275,7 +275,7 @@ $lang->story->report->value = "{$lang->storyCommon}数";
|
||||
$lang->story->report->charts['storysPerProduct'] = $lang->productCommon . "{$lang->storyCommon}数量";
|
||||
$lang->story->report->charts['storysPerModule'] = "模块{$lang->storyCommon}数量";
|
||||
$lang->story->report->charts['storysPerSource'] = "按{$lang->storyCommon}来源统计";
|
||||
$lang->story->report->charts['storysPerPlan'] = '按计划进行统计';
|
||||
$lang->story->report->charts['storysPerPlan'] = "按{$lang->planCommon}进行统计";
|
||||
$lang->story->report->charts['storysPerStatus'] = '按状态进行统计';
|
||||
$lang->story->report->charts['storysPerStage'] = '按所处阶段进行统计';
|
||||
$lang->story->report->charts['storysPerPri'] = '按优先级进行统计';
|
||||
@@ -307,7 +307,7 @@ $lang->story->report->storysPerChange = new stdclass();
|
||||
$lang->story->report->storysPerProduct->item = $lang->productCommon;
|
||||
$lang->story->report->storysPerModule->item = '模块';
|
||||
$lang->story->report->storysPerSource->item = '来源';
|
||||
$lang->story->report->storysPerPlan->item = '计划';
|
||||
$lang->story->report->storysPerPlan->item = $lang->planCommon;
|
||||
$lang->story->report->storysPerStatus->item = '状态';
|
||||
$lang->story->report->storysPerStage->item = '阶段';
|
||||
$lang->story->report->storysPerPri->item = '优先级';
|
||||
@@ -333,7 +333,7 @@ $lang->story->report->storysPerChange->graph = new stdclass();
|
||||
$lang->story->report->storysPerProduct->graph->xAxisName = $lang->productCommon;
|
||||
$lang->story->report->storysPerModule->graph->xAxisName = '模块';
|
||||
$lang->story->report->storysPerSource->graph->xAxisName = '来源';
|
||||
$lang->story->report->storysPerPlan->graph->xAxisName = '计划';
|
||||
$lang->story->report->storysPerPlan->graph->xAxisName = $lang->planCommon;
|
||||
$lang->story->report->storysPerStatus->graph->xAxisName = '状态';
|
||||
$lang->story->report->storysPerStage->graph->xAxisName = '所处阶段';
|
||||
$lang->story->report->storysPerPri->graph->xAxisName = '优先级';
|
||||
|
||||
+33
-41
@@ -55,11 +55,10 @@ class taskModel extends model
|
||||
->stripTags($this->config->task->editor->create['id'], $this->config->allowedTags)
|
||||
->join('mailto', ',')
|
||||
->remove('after,files,labels,assignedTo,uid,storyEstimate,storyDesc,storyPri,team,teamEstimate,teamMember,multiple,teams,contactListMenu,selectTestStory,testStory,testPri,testEstStarted,testDeadline,testAssignedTo,testEstimate')
|
||||
->add('version', 1)
|
||||
->get();
|
||||
if($task->type != 'test') $this->post->set('selectTestStory', 0);
|
||||
|
||||
/* Record task version. */
|
||||
if(isset($this->config->qcVersion)) $task->version = 1;
|
||||
if($task->type != 'test') $this->post->set('selectTestStory', 0);
|
||||
|
||||
foreach($this->post->assignedTo as $assignedTo)
|
||||
{
|
||||
@@ -121,26 +120,21 @@ class taskModel extends model
|
||||
$taskID = $this->dao->lastInsertID();
|
||||
|
||||
/* Mark design version.*/
|
||||
if(isset($this->config->qcVersion) && $task->design)
|
||||
if(isset($task->design) && !empty($task->design))
|
||||
{
|
||||
$design = $this->loadModel('design')->getByID($task->design);
|
||||
$this->dao->update(TABLE_TASK)->set('designVersion')->eq($design->version)->where('id')->eq($taskID)->exec();
|
||||
}
|
||||
|
||||
if(isset($this->config->qcVersion))
|
||||
{
|
||||
$taskSpec = new stdClass();
|
||||
$taskSpec->task = $taskID;
|
||||
$taskSpec->version = $task->version;
|
||||
$taskSpec->name = $task->name;
|
||||
$taskSpec->estStarted = $task->estStarted;
|
||||
$taskSpec->deadline = $task->deadline;
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)
|
||||
->autoCheck()
|
||||
->exec();
|
||||
$taskSpec = new stdClass();
|
||||
$taskSpec->task = $taskID;
|
||||
$taskSpec->version = $task->version;
|
||||
$taskSpec->name = $task->name;
|
||||
$taskSpec->estStarted = $task->estStarted;
|
||||
$taskSpec->deadline = $task->deadline;
|
||||
|
||||
if(dao::isError()) return false;
|
||||
}
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)->autoCheck()->exec();
|
||||
if(dao::isError()) return false;
|
||||
|
||||
if($this->post->story) $this->loadModel('story')->setStage($this->post->story);
|
||||
if($this->post->selectTestStory)
|
||||
@@ -371,9 +365,7 @@ class taskModel extends model
|
||||
|
||||
foreach($data as $i => $task)
|
||||
{
|
||||
/* Record task version.*/
|
||||
if(isset($this->config->qcVersion)) $task->version = 1;
|
||||
|
||||
$task->version = 1;
|
||||
$this->dao->insert(TABLE_TASK)->data($task)
|
||||
->autoCheck()
|
||||
->checkIF($task->estimate != '', 'estimate', 'float')
|
||||
@@ -381,22 +373,16 @@ class taskModel extends model
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$taskID = $this->dao->lastInsertID();
|
||||
$taskID = $this->dao->lastInsertID();
|
||||
$taskSpec = new stdClass();
|
||||
$taskSpec->task = $taskID;
|
||||
$taskSpec->version = $task->version;
|
||||
$taskSpec->name = $task->name;
|
||||
$taskSpec->estStarted = $task->estStarted;
|
||||
$taskSpec->deadline = $task->deadline;
|
||||
|
||||
if(isset($this->config->qcVersion))
|
||||
{
|
||||
$taskSpec = new stdClass();
|
||||
$taskSpec->task = $taskID;
|
||||
$taskSpec->version = $task->version;
|
||||
$taskSpec->name = $task->name;
|
||||
$taskSpec->estStarted = $task->estStarted;
|
||||
$taskSpec->deadline = $task->deadline;
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)
|
||||
->autoCheck()
|
||||
->exec();
|
||||
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
}
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)->autoCheck()->exec();
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$childTasks .= $taskID . ',';
|
||||
if($story) $this->story->setStage($task->story);
|
||||
@@ -765,10 +751,11 @@ class taskModel extends model
|
||||
{
|
||||
$oldTask = $this->dao->select('*')->from(TABLE_TASK)->where('id')->eq((int)$taskID)->fetch();
|
||||
if($this->post->estimate < 0 or $this->post->left < 0 or $this->post->consumed < 0)
|
||||
{
|
||||
{
|
||||
dao::$errors[] = $this->lang->task->error->recordMinus;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!empty($_POST['lastEditedDate']) and $oldTask->lastEditedDate != $this->post->lastEditedDate)
|
||||
{
|
||||
dao::$errors[] = $this->lang->error->editedByOther;
|
||||
@@ -869,7 +856,14 @@ class taskModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
/* Record task version.*/
|
||||
/* Mark design version.*/
|
||||
if(isset($task->design) && !empty($task->design))
|
||||
{
|
||||
$design = $this->loadModel('design')->getByID($task->design);
|
||||
$this->dao->update(TABLE_TASK)->set('designVersion')->eq($design->version)->where('id')->eq($taskID)->exec();
|
||||
}
|
||||
|
||||
/* Record task version. */
|
||||
if($oldTask->name != $task->name || $oldTask->estStarted != $task->estStarted || $oldTask->deadline != $task->deadline)
|
||||
{
|
||||
$task->version = $oldTask->version + 1;
|
||||
@@ -879,9 +873,7 @@ class taskModel extends model
|
||||
$taskSpec->name = $task->name;
|
||||
$taskSpec->estStarted = $task->estStarted;
|
||||
$taskSpec->deadline = $task->deadline;
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)
|
||||
->autoCheck()
|
||||
->exec();
|
||||
$this->dao->insert(TABLE_TASKSPEC)->data($taskSpec)->autoCheck()->exec();
|
||||
}
|
||||
|
||||
$projectType = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->project)->fetch('type');
|
||||
@@ -1046,7 +1038,7 @@ class taskModel extends model
|
||||
|
||||
if($oldTask->name != $data->name || $oldTask->estStarted != $data->estStarted || $oldTask->deadline != $data->deadline)
|
||||
{
|
||||
$task->version = $oldTask->version + 1;
|
||||
$task->version = $oldTask->version + 1;
|
||||
$taskSpec = new stdClass();
|
||||
$taskSpec->task = $taskID;
|
||||
$taskSpec->version = $task->version;
|
||||
|
||||
@@ -226,6 +226,7 @@ class testcaseModel extends model
|
||||
|
||||
$data[$i] = new stdclass();
|
||||
$data[$i]->product = $productID;
|
||||
$data[$i]->program = $this->session->program;
|
||||
$data[$i]->branch = $cases->branch[$i];
|
||||
$data[$i]->module = $cases->module[$i];
|
||||
$data[$i]->type = $cases->type[$i];
|
||||
|
||||
@@ -150,6 +150,13 @@ class upgrade extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge program.
|
||||
*
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function mergeProgram($type = 'productline')
|
||||
{
|
||||
if($_POST)
|
||||
|
||||
@@ -3175,7 +3175,7 @@ class upgradeModel extends model
|
||||
$this->saveLogs($this->dao->get());
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add unique key to team table.
|
||||
*
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
*/
|
||||
$lang->user->common = 'Benutzer';
|
||||
$lang->user->id = 'ID';
|
||||
$lang->user->inside = 'Inside Members';
|
||||
$lang->user->outside = 'Outside Members';
|
||||
$lang->user->company = 'Unternehmen';
|
||||
$lang->user->dept = 'Abteilung';
|
||||
$lang->user->account = 'Konto';
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
*/
|
||||
$lang->user->common = 'Utilisateur';
|
||||
$lang->user->id = 'ID';
|
||||
$lang->user->inside = 'Inside Members';
|
||||
$lang->user->outside = 'Outside Members';
|
||||
$lang->user->company = 'Entreprise';
|
||||
$lang->user->dept = 'Compartiment';
|
||||
$lang->user->account = 'Compte';
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
*/
|
||||
$lang->user->common = 'Người dùng';
|
||||
$lang->user->id = 'ID';
|
||||
$lang->user->inside = 'Inside Members';
|
||||
$lang->user->outside = 'Outside Members';
|
||||
$lang->user->company = 'Doanh nghiệp';
|
||||
$lang->user->dept = 'Phòng/Ban';
|
||||
$lang->user->account = 'Tài khoản';
|
||||
|
||||
+15
-7
@@ -51,20 +51,24 @@ class userModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Get users list of current company.
|
||||
* Get inside users list of current company.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getList()
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_USER)->where('deleted')->eq(0)->orderBy('account')->fetchAll();
|
||||
return $this->dao->select('*')->from(TABLE_USER)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('type')->eq('inside')
|
||||
->orderBy('account')
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the account=>realname pairs.
|
||||
*
|
||||
* @param string $params noletter|noempty|nodeleted|noclosed|withguest|pofirst|devfirst|qafirst|pmfirst|realname, can be sets of theme
|
||||
* @param string $params noletter|noempty|nodeleted|noclosed|withguest|pofirst|devfirst|qafirst|pmfirst|realname|outside|inside|all, can be sets of theme
|
||||
* @param string $usersToAppended account1,account2
|
||||
* @param int $maxCount
|
||||
* @access public
|
||||
@@ -79,7 +83,7 @@ class userModel extends model
|
||||
* thus to make sure users of this role at first.
|
||||
*/
|
||||
$fields = 'account, realname, deleted';
|
||||
$type = (strpos($params, 'outside') !== false) ? 'outside' : '';
|
||||
$type = (strpos($params, 'outside') !== false) ? 'outside' : 'inside';
|
||||
if(strpos($params, 'pofirst') !== false) $fields .= ", INSTR(',pd,po,', role) AS roleOrder";
|
||||
if(strpos($params, 'pdfirst') !== false) $fields .= ", INSTR(',po,pd,', role) AS roleOrder";
|
||||
if(strpos($params, 'qafirst') !== false) $fields .= ", INSTR(',qd,qa,', role) AS roleOrder";
|
||||
@@ -199,8 +203,10 @@ class userModel extends model
|
||||
/**
|
||||
* Get users by sql.
|
||||
*
|
||||
* @param int $query
|
||||
* @param int $pager
|
||||
* @param varchar $browseType inside|outside|all
|
||||
* @param int $query
|
||||
* @param object $pager
|
||||
* @param varchar $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -209,7 +215,7 @@ class userModel extends model
|
||||
return $this->dao->select('*')->from(TABLE_USER)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($query)->andWhere($query)->fi()
|
||||
->beginIF($browseType == 'inside')->andWhere('type')->eq('')->fi()
|
||||
->beginIF($browseType == 'inside')->andWhere('type')->eq('inside')->fi()
|
||||
->beginIF($browseType == 'outside')->andWhere('type')->eq('outside')->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
@@ -230,6 +236,7 @@ class userModel extends model
|
||||
|
||||
$user = fixer::input('post')
|
||||
->setDefault('join', '0000-00-00' )
|
||||
->setDefault('type', 'inside' )
|
||||
->setIF($this->post->password1 != false, 'password', substr($this->post->password1, 0, 32))
|
||||
->setIF($this->post->password1 == false, 'password', '')
|
||||
->setIF($this->post->email != false, 'email', trim($this->post->email))
|
||||
@@ -308,6 +315,7 @@ class userModel extends model
|
||||
$data[$i] = new stdclass();
|
||||
$data[$i]->dept = $users->dept[$i] == 'ditto' ? (isset($prev['dept']) ? $prev['dept'] : 0) : $users->dept[$i];
|
||||
$data[$i]->account = $users->account[$i];
|
||||
$data[$i]->type = 'inside';
|
||||
$data[$i]->realname = $users->realname[$i];
|
||||
$data[$i]->role = $role;
|
||||
$data[$i]->group = $users->group[$i] == 'ditto' ? (isset($prev['group']) ? $prev['group'] : '') : $users->group[$i];
|
||||
|
||||
+2
-1
@@ -60,7 +60,8 @@ $status = '';
|
||||
if(!file_exists($checkFileName) or (time() - filemtime($checkFileName)) > 60 * 10) $status = 'createFile';
|
||||
|
||||
$lang = new stdclass();
|
||||
$lang->misc = new stdclass();
|
||||
$lang->misc = new stdclass();
|
||||
$lang->storyCommon = '';
|
||||
include "../module/misc/lang/{$clientLang}.php";
|
||||
if($status == 'createFile')
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
$config = new stdclass();
|
||||
include '../config/config.php';
|
||||
session_name($config->sessionVar);
|
||||
session_start();
|
||||
|
||||
Reference in New Issue
Block a user