diff --git a/db/update15.0.sql b/db/update15.0.sql
index 2e54dbd49b..a8c199b968 100644
--- a/db/update15.0.sql
+++ b/db/update15.0.sql
@@ -118,79 +118,6 @@ CREATE TABLE IF NOT EXISTS `zt_designspec` (
UNIQUE KEY `design` (`design`,`version`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_issue`;
-CREATE TABLE IF NOT EXISTS `zt_issue` (
- `id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
- `resolvedBy` varchar(30) NOT NULL,
- `PRJ` varchar(255) NOT NULL,
- `title` varchar(255) NOT NULL,
- `desc` text NOT NULL,
- `pri` char(30) NOT NULL,
- `severity` char(30) NOT NULL,
- `type` char(30) NOT NULL,
- `activity` varchar(255) NOT NULL,
- `deadline` date NOT NULL,
- `resolution` char(30) NOT NULL,
- `resolutionComment` text NOT NULL,
- `objectID` varchar(255) NOT NULL,
- `resolvedDate` date NOT NULL,
- `status` varchar(30) NOT NULL,
- `owner` varchar(255) NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `activateBy` varchar(30) NOT NULL,
- `activateDate` date NOT NULL,
- `closedBy` varchar(30) NOT NULL,
- `closedDate` date NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `assignedBy` varchar(30) NOT NULL,
- `assignedDate` datetime NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `zt_risk` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `PRJ` varchar(255) NOT NULL,
- `name` varchar(255) NOT NULL,
- `source` char(30) NOT NULL,
- `category` char(30) NOT NULL,
- `strategy` char(30) NOT NULL,
- `status` varchar(30) NOT NULL DEFAULT 'active',
- `impact` char(30) NOT NULL,
- `probability` char(30) NOT NULL,
- `rate` char(30) NOT NULL,
- `pri` char(30) NOT NULL,
- `identifiedDate` date NOT NULL,
- `prevention` text NOT NULL,
- `remedy` text NOT NULL,
- `plannedClosedDate` date NOT NULL,
- `actualClosedDate` date NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `resolution` text NOT NULL,
- `resolvedBy` varchar(30) NOT NULL,
- `activateBy` varchar(30) NOT NULL,
- `activateDate` date NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `cancelBy` varchar(30) NOT NULL,
- `cancelDate` date NOT NULL,
- `cancelReason` char(30) NOT NULL,
- `closedBy` char(30) NOT NULL,
- `closedDate` date NOT NULL,
- `hangupBy` varchar(30) NOT NULL,
- `hangupDate` date NOT NULL,
- `trackedBy` varchar(30) NOT NULL,
- `trackedDate` date NOT NULL,
- `assignedDate` date NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-- DROP TABLE IF EXISTS `zt_projectspec`;
CREATE TABLE IF NOT EXISTS `zt_projectspec` (
`project` mediumint(8) NOT NULL,
@@ -337,8 +264,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'my', 'preference'),
(1, 'my', 'uploadAvatar'),
(1, 'user', 'execution'),
-(1, 'user', 'issue'),
-(1, 'user', 'risk'),
(1, 'user', 'cropAvatar'),
(1, 'program', 'PRJView'),
(1, 'search', 'index'),
@@ -351,8 +276,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(2, 'my', 'preference'),
(2, 'my', 'uploadAvatar'),
(2, 'user', 'execution'),
-(2, 'user', 'issue'),
-(2, 'user', 'risk'),
(2, 'user', 'cropAvatar'),
(2, 'search', 'index'),
(3, 'product', 'dashboard'),
@@ -363,8 +286,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(3, 'my', 'preference'),
(3, 'my', 'uploadAvatar'),
(3, 'user', 'execution'),
-(3, 'user', 'issue'),
-(3, 'user', 'risk'),
(3, 'user', 'cropAvatar'),
(3, 'search', 'index'),
(4, 'product', 'dashboard'),
@@ -375,8 +296,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(4, 'my', 'preference'),
(4, 'my', 'uploadAvatar'),
(4, 'user', 'execution'),
-(4, 'user', 'issue'),
-(4, 'user', 'risk'),
(4, 'user', 'cropAvatar'),
(4, 'program', 'PRJView'),
(4, 'search', 'index'),
@@ -390,8 +309,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(5, 'my', 'preference'),
(5, 'my', 'uploadAvatar'),
(5, 'user', 'execution'),
-(5, 'user', 'issue'),
-(5, 'user', 'risk'),
(5, 'user', 'cropAvatar'),
(5, 'program', 'PRJView'),
(5, 'search', 'index'),
@@ -403,8 +320,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(6, 'my', 'preference'),
(6, 'my', 'uploadAvatar'),
(6, 'user', 'execution'),
-(6, 'user', 'issue'),
-(6, 'user', 'risk'),
(6, 'user', 'cropAvatar'),
(6, 'program', 'PRJView'),
(6, 'search', 'index'),
@@ -418,8 +333,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'my', 'preference'),
(7, 'my', 'uploadAvatar'),
(7, 'user', 'execution'),
-(7, 'user', 'issue'),
-(7, 'user', 'risk'),
(7, 'user', 'cropAvatar'),
(7, 'program', 'PRJView'),
(7, 'search', 'index'),
@@ -431,8 +344,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(8, 'my', 'preference'),
(8, 'my', 'uploadAvatar'),
(8, 'user', 'execution'),
-(8, 'user', 'issue'),
-(8, 'user', 'risk'),
(8, 'user', 'cropAvatar'),
(8, 'program', 'PRJView'),
(8, 'search', 'index'),
@@ -446,8 +357,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(9, 'my', 'preference'),
(9, 'my', 'uploadAvatar'),
(9, 'user', 'execution'),
-(9, 'user', 'issue'),
-(9, 'user', 'risk'),
(9, 'user', 'cropAvatar'),
(9, 'program', 'PRJView'),
(9, 'search', 'index'),
@@ -459,8 +368,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(10, 'my', 'preference'),
(10, 'my', 'uploadAvatar'),
(10, 'user', 'execution'),
-(10, 'user', 'issue'),
-(10, 'user', 'risk'),
(10, 'user', 'cropAvatar'),
(10, 'search', 'index'),
(11, 'product', 'dashboard'),
@@ -471,8 +378,6 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(11, 'my', 'preference'),
(11, 'my', 'uploadAvatar'),
(11, 'user', 'execution'),
-(11, 'user', 'issue'),
-(11, 'user', 'risk'),
(11, 'user', 'cropAvatar');
INSERT INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) VALUES
diff --git a/db/zentao.sql b/db/zentao.sql
index 911f168876..0e2998ad6f 100644
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -540,38 +540,6 @@ CREATE TABLE IF NOT EXISTS `zt_history` (
PRIMARY KEY (`id`),
KEY `action` (`action`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_issue`;
-CREATE TABLE IF NOT EXISTS `zt_issue` (
- `id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
- `resolvedBy` varchar(30) NOT NULL,
- `PRJ` varchar(255) NOT NULL,
- `title` varchar(255) NOT NULL,
- `desc` text NOT NULL,
- `pri` char(30) NOT NULL,
- `severity` char(30) NOT NULL,
- `type` char(30) NOT NULL,
- `activity` varchar(255) NOT NULL,
- `deadline` date NOT NULL,
- `resolution` char(30) NOT NULL,
- `resolutionComment` text NOT NULL,
- `objectID` varchar(255) NOT NULL,
- `resolvedDate` date NOT NULL,
- `status` varchar(30) NOT NULL,
- `owner` varchar(255) NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `activateBy` varchar(30) NOT NULL,
- `activateDate` date NOT NULL,
- `closedBy` varchar(30) NOT NULL,
- `closedDate` date NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `assignedBy` varchar(30) NOT NULL,
- `assignedDate` datetime NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_jenkins`;
CREATE TABLE IF NOT EXISTS `zt_jenkins` (
`id` smallint(8) unsigned NOT NULL AUTO_INCREMENT,
@@ -875,46 +843,6 @@ CREATE TABLE IF NOT EXISTS `zt_repohistory` (
KEY `repo` (`repo`),
KEY `revision` (`revision`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_risk`;
-CREATE TABLE IF NOT EXISTS `zt_risk` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `PRJ` varchar(255) NOT NULL,
- `name` varchar(255) NOT NULL,
- `source` char(30) NOT NULL,
- `category` char(30) NOT NULL,
- `strategy` char(30) NOT NULL,
- `status` varchar(30) NOT NULL DEFAULT 'active',
- `impact` char(30) NOT NULL,
- `probability` char(30) NOT NULL,
- `rate` char(30) NOT NULL,
- `pri` char(30) NOT NULL,
- `identifiedDate` date NOT NULL,
- `prevention` text NOT NULL,
- `remedy` text NOT NULL,
- `plannedClosedDate` date NOT NULL,
- `actualClosedDate` date NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `resolution` text NOT NULL,
- `resolvedBy` varchar(30) NOT NULL,
- `activateBy` varchar(30) NOT NULL,
- `activateDate` date NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `closedBy` varchar(30) NOT NULL,
- `closedDate` date NOT NULL,
- `cancelBy` varchar(30) NOT NULL,
- `cancelDate` date NOT NULL,
- `cancelReason` char(30) NOT NULL,
- `hangupBy` varchar(30) NOT NULL,
- `hangupDate` date NOT NULL,
- `trackedBy` varchar(30) NOT NULL,
- `trackedDate` date NOT NULL,
- `assignedDate` date NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_stakeholder`;
CREATE TABLE IF NOT EXISTS `zt_stakeholder` (
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
diff --git a/module/common/lang/de.php b/module/common/lang/de.php
index b4eb551631..087aff2b3a 100644
--- a/module/common/lang/de.php
+++ b/module/common/lang/de.php
@@ -250,8 +250,6 @@ $lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
-$lang->searchObjects['issue'] = 'Issue';
-$lang->searchObjects['risk'] = 'Risk';
$lang->searchTips = 'ID (strg+g)';
/* Code formats for import. */
@@ -316,11 +314,6 @@ $lang->my->workMenu->story = "$lang->SRCommon|my|work|mode=story";
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase&type=assigntome';
$lang->my->workMenu->testtask = 'Test Task|my|work|mode=testtask&type=wait';
-if($config->systemMode == 'new')
-{
- $lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
- $lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
-}
$lang->my->contributeMenu = new stdclass();
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
@@ -329,11 +322,6 @@ $lang->my->contributeMenu->story = "$lang->SRCommon|my|contribute|mode=sto
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testtask&type=openedbyme';
$lang->my->contributeMenu->testtask = 'Test Task|my|contribute|mode=testtask&type=done';
-if($config->systemMode == 'new')
-{
- $lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
- $lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
-}
$lang->my->dividerMenu = ',myProject,team,';
@@ -683,8 +671,6 @@ $lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
$lang->navGroup->design = 'project';
-$lang->navGroup->issue = 'project';
-$lang->navGroup->risk = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -936,6 +922,7 @@ $lang->menu->scrum->projectbuild = array('link' => 'Build|projectbuild|browse|
$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse');
$lang->menu->scrum->projectsetting = array('link' => 'Setting|program|prjview|project={PROJECT}', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv,prjwhitelist,prjaddwhitelist');
+$lang->scrum = new stdclass();
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => 'View|program|prjview|project={PROJECT}');
$lang->scrum->setMenu->products = array('link' => 'Product|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
@@ -954,8 +941,6 @@ $lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
$lang->pssp = new stdclass();
-$lang->issue = new stdclass();
-$lang->risk = new stdclass();
$lang->stakeholder = new stdclass();
$lang->durationestimation = new stdclass();
$lang->projectstory = new stdclass();
@@ -969,8 +954,6 @@ $lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
-$lang->issue->menu = new stdclass();
-$lang->risk->menu = new stdclass();
$lang->stakeholder->menu = new stdclass();
$lang->waterfallproduct->menu = new stdclass();
$lang->durationestimation->menu = new stdclass();
@@ -997,7 +980,7 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
if($config->systemMode == 'old')
{
$lang->noMenuModule[] = 'project';
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index b75d99008e..359fa4de08 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -250,8 +250,6 @@ $lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
-$lang->searchObjects['issue'] = 'Issue';
-$lang->searchObjects['risk'] = 'Risk';
$lang->searchTips = 'ID (ctrl+g)';
/* Code formats for import. */
@@ -316,11 +314,6 @@ $lang->my->workMenu->story = "$lang->SRCommon|my|work|mode=story";
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase&type=assigntome';
$lang->my->workMenu->testtask = 'Test Task|my|work|mode=testtask&type=wait';
-if($config->systemMode == 'new')
-{
- $lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
- $lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
-}
$lang->my->contributeMenu = new stdclass();
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
@@ -329,11 +322,6 @@ $lang->my->contributeMenu->story = "$lang->SRCommon|my|contribute|mode=sto
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testtask&type=openedbyme';
$lang->my->contributeMenu->testtask = 'Test Task|my|contribute|mode=testtask&type=done';
-if($config->systemMode == 'new')
-{
- $lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
- $lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
-}
$lang->my->dividerMenu = ',myProject,team,';
@@ -683,8 +671,6 @@ $lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
$lang->navGroup->design = 'project';
-$lang->navGroup->issue = 'project';
-$lang->navGroup->risk = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -936,6 +922,7 @@ $lang->menu->scrum->projectbuild = array('link' => 'Build|projectbuild|browse|
$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse');
$lang->menu->scrum->projectsetting = array('link' => 'Setting|program|prjview|project={PROJECT}', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv,prjwhitelist,prjaddwhitelist');
+$lang->scrum = new stdclass();
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => 'View|program|prjview|project={PROJECT}');
$lang->scrum->setMenu->products = array('link' => 'Product|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
@@ -954,8 +941,6 @@ $lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
$lang->pssp = new stdclass();
-$lang->issue = new stdclass();
-$lang->risk = new stdclass();
$lang->stakeholder = new stdclass();
$lang->durationestimation = new stdclass();
$lang->projectstory = new stdclass();
@@ -969,8 +954,6 @@ $lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
-$lang->issue->menu = new stdclass();
-$lang->risk->menu = new stdclass();
$lang->stakeholder->menu = new stdclass();
$lang->waterfallproduct->menu = new stdclass();
$lang->durationestimation->menu = new stdclass();
@@ -997,7 +980,7 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
if($config->systemMode == 'old')
{
$lang->noMenuModule[] = 'project';
diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php
index 70d5edfbbf..14f71167f1 100644
--- a/module/common/lang/fr.php
+++ b/module/common/lang/fr.php
@@ -250,8 +250,6 @@ $lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
-$lang->searchObjects['issue'] = 'Issue';
-$lang->searchObjects['risk'] = 'Risk';
$lang->searchTips = 'ID (ctrl+g)';
/* Code formats for import. */
@@ -316,11 +314,6 @@ $lang->my->workMenu->story = "$lang->SRCommon|my|work|mode=story";
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase&type=assigntome';
$lang->my->workMenu->testtask = 'Test Task|my|work|mode=testtask&type=wait';
-if($config->systemMode == 'new')
-{
- $lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
- $lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
-}
$lang->my->contributeMenu = new stdclass();
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
@@ -329,11 +322,6 @@ $lang->my->contributeMenu->story = "$lang->SRCommon|my|contribute|mode=sto
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testtask&type=openedbyme';
$lang->my->contributeMenu->testtask = 'Test Task|my|contribute|mode=testtask&type=done';
-if($config->systemMode == 'new')
-{
- $lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
- $lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
-}
$lang->my->dividerMenu = ',myProject,team,';
@@ -683,8 +671,6 @@ $lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
$lang->navGroup->design = 'project';
-$lang->navGroup->issue = 'project';
-$lang->navGroup->risk = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -936,6 +922,7 @@ $lang->menu->scrum->projectbuild = array('link' => 'Build|projectbuild|browse|
$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse');
$lang->menu->scrum->projectsetting = array('link' => 'Setting|program|prjview|project={PROJECT}', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv,prjwhitelist,prjaddwhitelist');
+$lang->scrum = new stdclass();
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => 'View|program|prjview|project={PROJECT}');
$lang->scrum->setMenu->products = array('link' => 'Product|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
@@ -954,8 +941,6 @@ $lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
$lang->pssp = new stdclass();
-$lang->issue = new stdclass();
-$lang->risk = new stdclass();
$lang->stakeholder = new stdclass();
$lang->durationestimation = new stdclass();
$lang->projectstory = new stdclass();
@@ -969,8 +954,6 @@ $lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
-$lang->issue->menu = new stdclass();
-$lang->risk->menu = new stdclass();
$lang->stakeholder->menu = new stdclass();
$lang->waterfallproduct->menu = new stdclass();
$lang->durationestimation->menu = new stdclass();
@@ -997,7 +980,7 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
if($config->systemMode == 'old')
{
$lang->noMenuModule[] = 'project';
diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php
index 7115a32b9a..2de695ab63 100644
--- a/module/common/lang/vi.php
+++ b/module/common/lang/vi.php
@@ -250,8 +250,6 @@ $lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = 'Project';
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
-$lang->searchObjects['issue'] = 'Issue';
-$lang->searchObjects['risk'] = 'Risk';
$lang->searchTips = 'ID (ctrl+g)';
/* Code formats for import. */
@@ -316,11 +314,6 @@ $lang->my->workMenu->story = "$lang->SRCommon|my|work|mode=story";
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
$lang->my->workMenu->testcase = 'Test Case|my|work|mode=testcase&type=assigntome';
$lang->my->workMenu->testtask = 'Test Task|my|work|mode=testtask&type=wait';
-if($config->systemMode == 'new')
-{
- $lang->my->workMenu->issue = 'Issue|my|work|mode=issue';
- $lang->my->workMenu->risk = 'Risk|my|work|mode=risk';
-}
$lang->my->contributeMenu = new stdclass();
$lang->my->contributeMenu->task = 'Task|my|contribute|mode=task';
@@ -329,11 +322,6 @@ $lang->my->contributeMenu->story = "$lang->SRCommon|my|contribute|mode=sto
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
$lang->my->contributeMenu->testcase = 'Test Case|my|contribute|mode=testtask&type=openedbyme';
$lang->my->contributeMenu->testtask = 'Test Task|my|contribute|mode=testtask&type=done';
-if($config->systemMode == 'new')
-{
- $lang->my->contributeMenu->issue = 'Issue|my|contribute|mode=issue';
- $lang->my->contributeMenu->risk = 'Risk|my|contribute|mode=risk';
-}
$lang->my->dividerMenu = ',myProject,team,';
@@ -683,8 +671,6 @@ $lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
$lang->navGroup->design = 'project';
-$lang->navGroup->issue = 'project';
-$lang->navGroup->risk = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -936,6 +922,7 @@ $lang->menu->scrum->projectbuild = array('link' => 'Build|projectbuild|browse|
$lang->menu->scrum->projectrelease = array('link' => 'Release|projectrelease|browse');
$lang->menu->scrum->projectsetting = array('link' => 'Setting|program|prjview|project={PROJECT}', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv,prjwhitelist,prjaddwhitelist');
+$lang->scrum = new stdclass();
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => 'View|program|prjview|project={PROJECT}');
$lang->scrum->setMenu->products = array('link' => 'Product|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
@@ -954,8 +941,6 @@ $lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
$lang->pssp = new stdclass();
-$lang->issue = new stdclass();
-$lang->risk = new stdclass();
$lang->stakeholder = new stdclass();
$lang->durationestimation = new stdclass();
$lang->projectstory = new stdclass();
@@ -969,8 +954,6 @@ $lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
-$lang->issue->menu = new stdclass();
-$lang->risk->menu = new stdclass();
$lang->stakeholder->menu = new stdclass();
$lang->waterfallproduct->menu = new stdclass();
$lang->durationestimation->menu = new stdclass();
@@ -997,7 +980,7 @@ $lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PR
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
if($config->systemMode == 'old')
{
$lang->noMenuModule[] = 'project';
diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index 568b33220a..320b1ff279 100644
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -249,8 +249,6 @@ $lang->searchObjects['program'] = '项目集';
$lang->searchObjects['project'] = '项目';
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = '用户';
-$lang->searchObjects['issue'] = '问题';
-$lang->searchObjects['risk'] = '风险';
$lang->searchTips = '编号(ctrl+g)';
/* 导入支持的编码格式。*/
@@ -315,11 +313,6 @@ $lang->my->workMenu->story = "$lang->SRCommon|my|work|mode=story";
$lang->my->workMenu->bug = 'Bug|my|work|mode=bug';
$lang->my->workMenu->testcase = '用例|my|work|mode=testcase&type=assigntome';
$lang->my->workMenu->testtask = '测试单|my|work|mode=testtask&type=wait';
-if($config->systemMode == 'new')
-{
- $lang->my->workMenu->issue = '问题|my|work|mode=issue';
- $lang->my->workMenu->risk = '风险|my|work|mode=risk';
-}
$lang->my->contributeMenu = new stdclass();
$lang->my->contributeMenu->task = '任务|my|contribute|mode=task';
@@ -328,11 +321,6 @@ $lang->my->contributeMenu->story = "$lang->SRCommon|my|contribute|mode=sto
$lang->my->contributeMenu->bug = 'Bug|my|contribute|mode=bug';
$lang->my->contributeMenu->testcase = '用例|my|contribute|mode=testcase&type=openedbyme';
$lang->my->contributeMenu->testtask = '测试单|my|contribute|mode=testtask&type=done';
-if($config->systemMode == 'new')
-{
- $lang->my->contributeMenu->issue = '问题|my|contribute|mode=issue';
- $lang->my->contributeMenu->risk = '风险|my|contribute|mode=risk';
-}
$lang->my->dividerMenu = ',myProject,team,';
@@ -681,8 +669,6 @@ $lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
$lang->navGroup->design = 'project';
-$lang->navGroup->issue = 'project';
-$lang->navGroup->risk = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -934,6 +920,7 @@ $lang->menu->scrum->projectbuild = array('link' => '版本|projectbuild|browse
$lang->menu->scrum->projectrelease = array('link' => '发布|projectrelease|browse');
$lang->menu->scrum->projectsetting = array('link' => '设置|program|prjview|project={PROJECT}', 'alias' => 'prjedit,prjmanageproducts,prjgroup,prjmanagemembers,prjmanageview,prjmanagepriv,prjwhitelist,prjaddwhitelist');
+$lang->scrum = new stdclass();
$lang->scrum->setMenu = new stdclass();
$lang->scrum->setMenu->view = array('link' => '概况|program|prjview|project={PROJECT}', 'alias' => 'prjedit');
$lang->scrum->setMenu->products = array('link' => '产品|program|PRJManageProducts|project={PROJECT}', 'alias' => 'prjmanageproducts');
@@ -952,8 +939,6 @@ $lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
$lang->pssp = new stdclass();
-$lang->issue = new stdclass();
-$lang->risk = new stdclass();
$lang->stakeholder = new stdclass();
$lang->durationestimation = new stdclass();
$lang->projectstory = new stdclass();
@@ -967,8 +952,6 @@ $lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
-$lang->issue->menu = new stdclass();
-$lang->risk->menu = new stdclass();
$lang->stakeholder->menu = new stdclass();
$lang->waterfallproduct->menu = new stdclass();
$lang->durationestimation->menu = new stdclass();
@@ -995,7 +978,7 @@ $lang->design->menu->ads = array('link' => '接口设计|design|browse|prod
$lang->design->menu->bysearch = array('link' => ' ' . $lang->searchAB . '');
$lang->nc->menu = $lang->auditplan->menu;
-$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
+$lang->noMenuModule = array('report', 'my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'projectrelease', 'projectstory', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
if($config->systemMode == 'old')
{
$lang->noMenuModule[] = 'project';
diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php
index ec6ce63fd9..43b6e0520a 100644
--- a/module/group/lang/resource.php
+++ b/module/group/lang/resource.php
@@ -63,8 +63,6 @@ $lang->moduleOrder[205] = 'message';
$lang->moduleOrder[210] = 'design';
$lang->moduleOrder[215] = 'programplan';
-$lang->moduleOrder[220] = 'issue';
-$lang->moduleOrder[225] = 'risk';
$lang->moduleOrder[235] = 'budget';
$lang->moduleOrder[240] = 'workestimation';
@@ -103,8 +101,6 @@ $lang->resource->my->bug = 'bug';
$lang->resource->my->testtask = 'testtask';
$lang->resource->my->testcase = 'testcase';
$lang->resource->my->execution = 'execution';
-$lang->resource->my->issue = 'issue';
-$lang->resource->my->risk = 'risk';
$lang->my->methodOrder[1] = 'index';
$lang->my->methodOrder[5] = 'todo';
@@ -128,8 +124,6 @@ $lang->my->methodOrder[90] = 'bug';
$lang->my->methodOrder[95] = 'testtask';
$lang->my->methodOrder[100] = 'testcase';
$lang->my->methodOrder[105] = 'execution';
-$lang->my->methodOrder[110] = 'issue';
-$lang->my->methodOrder[115] = 'risk';
/* Todo. */
$lang->resource->todo = new stdclass();
@@ -298,34 +292,6 @@ $lang->issue->methodOrder[50] = 'activate';
$lang->issue->methodOrder[55] = 'resolve';
$lang->issue->methodOrder[60] = 'view';
-/* Risk . */
-$lang->resource->risk = new stdclass();
-$lang->resource->risk->browse = 'browse';
-$lang->resource->risk->create = 'create';
-$lang->resource->risk->edit = 'edit';
-$lang->resource->risk->delete = 'delete';
-$lang->resource->risk->activate = 'activate';
-$lang->resource->risk->close = 'close';
-$lang->resource->risk->hangup = 'hangup';
-$lang->resource->risk->batchCreate = 'batchCreate';
-$lang->resource->risk->cancel = 'cancel';
-$lang->resource->risk->track = 'track';
-$lang->resource->risk->view = 'view';
-$lang->resource->risk->assignTo = 'assignTo';
-
-$lang->risk->methodOrder[5] = 'browse';
-$lang->risk->methodOrder[10] = 'create';
-$lang->risk->methodOrder[15] = 'edit';
-$lang->risk->methodOrder[20] = 'delete';
-$lang->risk->methodOrder[25] = 'activate';
-$lang->risk->methodOrder[30] = 'close';
-$lang->risk->methodOrder[35] = 'hangup';
-$lang->risk->methodOrder[40] = 'batchCreate';
-$lang->risk->methodOrder[45] = 'cancel';
-$lang->risk->methodOrder[50] = 'track';
-$lang->risk->methodOrder[55] = 'view';
-$lang->risk->methodOrder[60] = 'assignTo';
-
/* Product. */
$lang->resource->product = new stdclass();
$lang->resource->product->index = 'index';
@@ -1308,8 +1274,6 @@ $lang->resource->user->bug = 'bug';
$lang->resource->user->testTask = 'testTask';
$lang->resource->user->testCase = 'testCase';
$lang->resource->user->execution = 'execution';
-$lang->resource->user->issue = 'issue';
-$lang->resource->user->risk = 'risk';
$lang->resource->user->dynamic = 'dynamic';
$lang->resource->user->cropAvatar = 'cropAvatar';
$lang->resource->user->profile = 'profile';
diff --git a/module/issue/config.php b/module/issue/config.php
deleted file mode 100644
index 2fa6a121c4..0000000000
--- a/module/issue/config.php
+++ /dev/null
@@ -1,42 +0,0 @@
-issue->create = new stdclass();
-$config->issue->edit = new stdclass();
-
-$config->issue->create->requiredFields = 'title,type,severity';
-$config->issue->edit->requiredFields = 'title,type,severity';
-
-$config->issue->editor = new stdclass();
-$config->issue->editor->view = array('id' => 'comment,lastComment', 'tools' => 'simpleTools');
-$config->issue->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->issue->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->issue->editor->confirm = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->issue->editor->cancel = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->issue->editor->resolve = array('id' => 'spec,verify,steps,desc,resolutionComment', 'tools' => 'simpleTools');
-
-global $lang;
-
-$config->issue->search['module'] = 'issue';
-
-$config->issue->search['fields']['title'] = $lang->issue->title;
-$config->issue->search['fields']['id'] = $lang->issue->id;
-$config->issue->search['fields']['pri'] = $lang->issue->pri;
-$config->issue->search['fields']['severity'] = $lang->issue->severity;
-$config->issue->search['fields']['type'] = $lang->issue->type;
-$config->issue->search['fields']['ceratedBy'] = $lang->issue->createdBy;
-$config->issue->search['fields']['createdDate'] = $lang->issue->createdDate;
-$config->issue->search['fields']['closedBy'] = $lang->issue->closedBy;
-$config->issue->search['fields']['closedDate'] = $lang->issue->closedDate;
-$config->issue->search['fields']['assignedTo'] = $lang->issue->assignedTo;
-$config->issue->search['fields']['assignedDate'] = $lang->issue->assignedDate;
-
-$config->issue->search['params']['title'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->issue->search['params']['id'] = array('operator' => '=', 'control' => 'input', 'values' => '');
-$config->issue->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->issue->priList);
-$config->issue->search['params']['severity'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->issue->severityList);
-$config->issue->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->issue->typeList);
-$config->issue->search['params']['ceratedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->issue->search['params']['createdDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->issue->search['params']['closeBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->issue->search['params']['closedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->issue->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->issue->search['params']['assignedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
diff --git a/module/issue/control.php b/module/issue/control.php
deleted file mode 100644
index 056a788f74..0000000000
--- a/module/issue/control.php
+++ /dev/null
@@ -1,518 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-class issue extends control
-{
- /**
- * Get issue list data.
- *
- * @param string $browseType bySearch|open|assignTo|closed|suspended|canceled
- * @param int $param
- * @param string $orderBy
- * @param int $recTotal
- * @param int $recPerPage
- * @param int $pageID
- * @access public
- * @return void
- */
- public function browse($browseType = 'all', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
- {
- $uri = $this->app->getURI(true);
- $this->session->set('issueList', $uri);
-
- /* Load pager */
- $this->app->loadClass('pager', true);
- $pager = pager::init($recTotal, $recPerPage, $pageID);
-
- /* Build the search form. */
- $browseType = strtolower($browseType);
- $queryID = ($browseType == 'bysearch') ? (int)$param : 0;
- $actionURL = $this->createLink('issue', 'browse', "browseType=bysearch&queryID=myQueryID");
- $this->issue->buildSearchForm($actionURL, $queryID);
-
- $this->view->title = $this->lang->issue->common . $this->lang->colon . $this->lang->issue->browse;
- $this->view->position[] = $this->lang->issue->browse;
-
- $this->view->pager = $pager;
- $this->view->param = $param;
- $this->view->orderBy = $orderBy;
- $this->view->browseType = $browseType;
- $this->view->issueList = $this->issue->getList($this->session->PRJ, $browseType, $queryID, $orderBy, $pager);
- $this->view->users = $this->loadModel('user')->getPairs('noletter|pofirst|nodeleted');
-
- $this->display();
- }
-
- /**
- * Create an issue.
- *
- * @param string $from issue|stakeholder
- * @param string $owner
- * @access public
- * @return void
- */
- public function create($from = 'issue', $owner = '')
- {
- if($_POST)
- {
- $issueID = $this->issue->create();
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
- $this->loadModel('action')->create('issue', $issueID, 'Opened');
- $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('browse', 'browseType=all')));
- }
-
- $this->view->title = $this->lang->issue->common . $this->lang->colon . $this->lang->issue->create;
- $this->view->position[] = $this->lang->issue->common;
- $this->view->position[] = $this->lang->issue->create;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
- $this->view->owners = $this->loadModel('stakeholder')->getStakeholders4Issue();
- $this->view->from = $from;
- $this->view->owner = $owner;
-
- $this->display();
- }
-
- /**
- * Batch create issues.
- *
- * @access public
- * @return void
- */
- public function batchCreate()
- {
- if($_POST)
- {
- $issues = $this->issue->batchCreate();
- foreach($issues as $issue) $this->loadModel('action')->create('issue', $issue, 'Opened');
-
- die(js::locate($this->inLink('browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->issue->common . $this->lang->colon . $this->lang->issue->batchCreate;
- $this->view->position[] = $this->lang->issue->common;
- $this->view->position[] = $this->lang->issue->batchCreate;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
-
- $this->display();
- }
-
- /**
- * Delete an issue.
- *
- * @param int $issueID
- * @param string $confirm yes|no
- * @access public
- * @return void
- */
- public function delete($issueID = 0, $confirm = 'no')
- {
- if($confirm == 'no')
- {
- die(js::confirm($this->lang->issue->confirmDelete, inLink('delete', "issueID=$issueID&confirm=yes")));
- }
- else
- {
- $this->issue->delete(TABLE_ISSUE, $issueID);
- die(js::locate(inLink('browse'), 'parent'));
- }
- }
-
- /**
- * Edit an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function edit($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->update($issueID);
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
-
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Edited');
- $this->action->logHistory($actionID, $changes);
- $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('browse', 'browseType=all')));
- }
-
- $this->view->title = $this->lang->issue->common . $this->lang->colon . $this->lang->issue->edit;
- $this->view->position[] = $this->lang->issue->common;
- $this->view->position[] = $this->lang->issue->edit;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
- $this->view->issue = $this->issue->getByID($issueID);
-
- $this->display();
- }
-
- /**
- * Assign an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function assignTo($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->assignTo($issueID);
-
- if(dao::isError()) die(js::error(dao::getError()));
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Assigned', '', $this->post->assignedTo);
-
- $this->action->logHistory($actionID, $changes);
- die(js::closeModal('parent.parent', 'this'));
- }
-
- $this->view->issue = $this->issue->getByID($issueID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
-
- $this->display();
- }
-
- /**
- * Close an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function close($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->close($issueID);
-
- if(dao::isError()) die(js::error(dao::getError()));
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Closed');
-
- $this->action->logHistory($actionID, $changes);
- die(js::closeModal('parent.parent', 'this'));
- }
-
- $this->view->issue = $this->issue->getByID($issueID);
- $this->display();
- }
-
- /**
- * Confirm the issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function confirm($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->confirm($issueID);
-
- if(dao::isError()) die(js::error(dao::getError()));
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Confirmed');
-
- $this->action->logHistory($actionID, $changes);
- die(js::closeModal('parent.parent', 'this'));
- }
-
- $this->view->issue = $this->issue->getByID($issueID);
- $this->display();
- }
-
- /**
- * Cancel an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function cancel($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->cancel($issueID);
-
- if(dao::isError()) die(js::error(dao::getError()));
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Canceled');
-
- $this->action->logHistory($actionID, $changes);
- die(js::closeModal('parent.parent', 'this'));
- }
-
- $this->view->issue = $this->issue->getByID($issueID);
-
- $this->display();
- }
-
- /**
- * Activate an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function activate($issueID)
- {
- if($_POST)
- {
- $changes = $this->issue->activate($issueID);
-
- if(dao::isError()) die(js::error(dao::getError()));
- $actionID = $this->loadModel('action')->create('issue', $issueID, 'Activated');
-
- $this->action->logHistory($actionID, $changes);
- die(js::closeModal('parent.parent', 'this'));
- }
-
- $this->view->issue = $this->issue->getByID($issueID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
-
- $this->display();
- }
-
- /**
- * Resolve an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function resolve($issueID)
- {
- if($_POST)
- {
- $data = fixer::input('post')->stripTags('steps', $this->config->allowedTags)->get();
- $resolution = $data->resolution;
- unset($_POST['resolution'], $_POST['resolvedBy'], $_POST['resolvedDate']);
-
- $objectID = '';
- if($resolution == 'totask')
- {
- $objectID = $this->issue->createTask($issueID);
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
-
- $objectLink = html::a($this->createLink('task', 'view', "id=$objectID"), $this->post->name);
- $comment = sprintf($this->lang->issue->logComments[$resolution], $objectLink, "data-toggle='modal'");
-
- $this->loadModel('action')->create('task', $objectID, 'Opened', '');
- $this->loadModel('action')->create('issue', $issueID, 'Resolved', $comment);
- }
-
- if($resolution == 'tostory')
- {
- $objectID = $this->issue->createStory($issueID);
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
- $objectLink = html::a($this->createLink('story', 'view', "id=$objectID"), $this->post->title, "data-toggle='modal'");
- $comment = sprintf($this->lang->issue->logComments[$resolution], $objectLink);
-
- $this->loadModel('action')->create('story', $objectID, 'Opened', '');
- $this->loadModel('action')->create('issue', $issueID, 'Resolved', $comment);
- }
-
- if($resolution == 'tobug')
- {
- $objectID = $this->issue->createBug($issueID);
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
- $objectLink = html::a($this->createLink('bug', 'view', "id=$objectID"), $this->post->title, "data-toggle='modal'");
- $comment = sprintf($this->lang->issue->logComments[$resolution], $objectLink);
-
- $this->loadModel('action')->create('bug', $objectID, 'Opened', '');
- $this->loadModel('action')->create('issue', $issueID, 'Resolved', $comment);
- }
-
- if($resolution == 'torisk')
- {
- $objectID = $this->issue->createRisk($issueID);
- if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
- $objectLink = html::a($this->createLink('risk', 'view', "id=$objectID"), $this->post->name, '', "class='iframe'");
- $comment = sprintf($this->lang->issue->logComments[$resolution], $objectLink);
-
- $this->loadModel('action')->create('risk', $objectID, 'Opened', '');
- $this->loadModel('action')->create('issue', $issueID, 'Resolved', $comment);
- }
-
- $this->issue->resolve($issueID, $data);
- if($resolution == 'resolved') $this->loadModel('action')->create('issue', $issueID, 'Resolved');
- $this->dao->update(TABLE_ISSUE)->set('objectID')->eq($objectID)->where('id')->eq($issueID)->exec();
-
- if(isonlybody()) $this->send(array('locate' => 'parent', 'message' => $this->lang->saveSuccess, 'result' => 'success'));
- die(js::locate(inLink('browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->issue->resolve;
- $this->view->issue = $this->issue->getByID($issueID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
-
- $this->display();
- }
-
- /**
- * Get different types of resolution forms.
- *
- * @access public
- * @return void
- */
- public function ajaxGetResolveForm()
- {
- $data = fixer::input('post')->get();
- $issue = $this->issue->getByID($data->issueID);
- $users = $this->loadModel('user')->getPairs('noclosed|nodeleted');
-
- $task = new stdClass();
- $task->module = 0;
- $task->assignedTo = '';
- $task->name = $issue->title;
- $task->type = '';
- $task->estimate = '';
- $task->desc = $issue->desc;
- $task->estStarted = '';
- $task->deadline = '';
-
- $this->view->resolution = $data->mode;
- $this->view->issue = $issue;
- $this->view->users = $users;
- $this->view->task = $task;
-
- if(in_array($data->mode, array('tostory', 'tobug', 'totask')))
- {
- $this->loadModel('task');
- $this->loadModel('tree');
- $this->loadModel('project');
- $projects = $this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true);
-
- $projectID = $this->session->project;
- $projectID = isset($projects[$projectID]) ? $projectID : key($projects);
-
- $moduleOptionMenu = array('' => '/');
- if($data->mode == 'totask') $moduleOptionMenu = $this->tree->getOptionMenu($projectID, 'task');
-
- $this->view->moduleOptionMenu = $moduleOptionMenu;
- $this->view->showAllModule = 'allModule';;
- $this->view->projects = $projects;
- $this->view->projectID = $projectID;
- $this->view->moduleID = 0;
- $this->view->branch = 0;
- }
-
- if(in_array($data->mode, array('tostory', 'tobug')))
- {
- $products = $this->loadModel('product')->getProductPairsByProject($this->session->PRJ);
- $productID = $this->session->product;
- $productID = isset($products[$productID]) ? $productID : key($products);
- $branches = $this->loadModel('branch')->getPairs($productID, 'noempty');
-
- $module = $data->mode == 'tostory' ? 'story' : 'bug';
- $moduleOptionMenu = $this->tree->getOptionMenu($productID, $module);
-
- $this->view->moduleOptionMenu = $moduleOptionMenu;
- $this->view->branches = $branches;
- $this->view->products = $products;
- $this->view->productID = $productID;
- }
-
- switch($data->mode)
- {
- case 'totask':
- $this->loadModel('story');
-
- $this->view->project = $this->project->getById($projectID);
- $this->view->members = $this->project->getTeamMemberPairs($projectID, 'nodeleted');
- $this->view->stories = $this->story->getProjectStoryPairs($projectID, 0, 0);
- $this->view->showFields = $this->config->task->custom->createFields;
-
- $this->display('issue', 'taskform');
- break;
- case 'tobug':
- $this->loadModel('bug');
- $this->view->builds = $this->loadModel('build')->getProductBuildPairs($productID, '', 'noempty,noterminate,nodone');
- $this->view->buildID = 0;
- $this->view->showFields = $this->config->bug->custom->createFields;
-
- $this->display('issue', 'bugform');
- break;
- case 'tostory':
- $this->loadModel('story');
- $this->view->plans = $this->loadModel('productplan')->getPairsForStory($productID, key($branches), true);
- $this->view->showFields = $this->config->story->custom->createFields;
- $this->display('issue', 'storyform');
- break;
- case 'torisk':
- $this->app->loadLang('risk');
- $this->display('issue', 'riskform');
- break;
- case 'resolved':
- $this->display('issue', 'resolveform');
- break;
- }
- }
-
- /**
- * AJAX: return issues of a user in html select.
- *
- * @param int $userID
- * @param string $id
- * @param string $status
- * @access public
- * @return void
- */
- public function ajaxGetUserIssues($userID = '', $id = '', $status = 'all')
- {
- if($userID == '') $userID = $this->app->user->id;
- $user = $this->loadModel('user')->getById($userID, 'id');
- $account = $user->account;
-
- $issues = $this->issue->getUserIssuePairs($account, 0, $status);
-
- if($id) die(html::select("issues[$id]", $issues, '', 'class="form-control"'));
- die(html::select('issue', $issues, '', 'class=form-control'));
- }
-
- /**
- * View an issue.
- *
- * @param int $issueID
- * @access public
- * @return void
- */
- public function view($issueID)
- {
- /* Set actions and get issue by id. */
- $issue = $this->issue->getByID($issueID);
- if(!$issue) die(js::error($this->lang->notFound) . js::locate('back'));
-
- $this->session->PRJ = $issue->PRJ;
- $this->commonAction($issueID, 'issue');
-
- $this->view->title = $this->lang->issue->common . $this->lang->colon . $issue->title;
- $this->view->position[] = $this->lang->issue->common;
- $this->view->position[] = $this->lang->issue->basicInfo;
-
- $this->view->users = $this->loadModel('user')->getPairs('noletter|pofirst|nodeleted');
- $this->view->issue = $issue;
- $this->display();
- }
-
- /**
- * Common actions of issue module.
- *
- * @param int $issueID
- * @param int $object
- * @access public
- * @return void
- */
- public function commonAction($issueID, $object)
- {
- $this->view->actions = $this->loadModel('action')->getList($object, $issueID);
- }
-}
diff --git a/module/issue/lang/de.php b/module/issue/lang/de.php
deleted file mode 100644
index 2414f419e8..0000000000
--- a/module/issue/lang/de.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = 'Issue';
-$lang->issue->browse = 'List';
-$lang->issue->resolvedBy = 'Resolved By';
-$lang->issue->project = 'Linked Project';
-$lang->issue->title = 'Title';
-$lang->issue->desc = 'Description';
-$lang->issue->pri = 'Priority';
-$lang->issue->severity = 'Severity';
-$lang->issue->type = 'Type';
-$lang->issue->effectedArea = 'Impact';
-$lang->issue->activity = 'Activities';
-$lang->issue->deadline = 'Deadline';
-$lang->issue->resolution = 'Resolution';
-$lang->issue->resolutionComment = 'Comment';
-$lang->issue->resolvedDate = 'Resolved Date';
-$lang->issue->status = 'Status';
-$lang->issue->createdBy = 'CreatedBy';
-$lang->issue->createdDate = 'CreatedDate';
-$lang->issue->owner = 'Owner';
-$lang->issue->editedBy = 'EditedBy';
-$lang->issue->editedDate = 'EditedDate';
-$lang->issue->activateBy = 'ActivatedBy';
-$lang->issue->activateDate = 'ActivatedDate';
-$lang->issue->closedBy = 'ClosedBy';
-$lang->issue->closedDate = 'ClosedDate';
-$lang->issue->assignedTo = 'AssignedTo';
-$lang->issue->assignedBy = 'AssignedBy';
-$lang->issue->assignedDate = 'AssignedDate';
-$lang->issue->resolve = 'Resolved';
-$lang->issue->id = 'ID';
-$lang->issue->confirm = 'Confirm';
-
-$lang->issue->view = 'Issue Details';
-$lang->issue->close = 'Closed';
-$lang->issue->cancel = 'Cancel';
-$lang->issue->delete = 'Delete';
-$lang->issue->search = 'Search';
-$lang->issue->basicInfo = 'Basic Information';
-$lang->issue->activate = 'Activate';
-$lang->issue->assignTo = 'Assign';
-$lang->issue->create = 'Create Issue';
-$lang->issue->edit = 'Edit';
-$lang->issue->batchCreate = 'Batch Create';
-$lang->issue->deleted = 'Deleted';
-
-$lang->issue->labelList['all'] = 'All';
-$lang->issue->labelList['open'] = 'Open';
-$lang->issue->labelList['assignto'] = 'AssignedToMe';
-$lang->issue->labelList['closed'] = 'Closed';
-$lang->issue->labelList['suspended'] = 'Suspended';
-$lang->issue->labelList['canceled'] = 'Canceled';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '1';
-$lang->issue->severityList['2'] = '2';
-$lang->issue->severityList['3'] = '3';
-$lang->issue->severityList['4'] = '4';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = 'Design';
-$lang->issue->typeList['code'] = 'Code';
-$lang->issue->typeList['performance'] = 'Performance';
-$lang->issue->typeList['version'] = 'Version';
-$lang->issue->typeList['storyadd'] = 'New Story';
-$lang->issue->typeList['storychanged'] = 'Story Change';
-$lang->issue->typeList['storyremoved'] = 'Story Deleted';
-$lang->issue->typeList['data'] = 'Data';
-
-$lang->issue->resolutionList['resolved'] = 'Resolved';
-$lang->issue->resolutionList['tostory'] = 'To Story';
-$lang->issue->resolutionList['tobug'] = 'To Bug';
-$lang->issue->resolutionList['torisk'] = 'To Risk';
-$lang->issue->resolutionList['totask'] = 'To Task';
-
-$lang->issue->statusList['unconfirmed'] = 'Unconfirmed';
-$lang->issue->statusList['confirmed'] = 'Confirmed';
-$lang->issue->statusList['resolved'] = 'Resolved';
-$lang->issue->statusList['canceled'] = 'Canceled';
-$lang->issue->statusList['closed'] = 'Closed';
-$lang->issue->statusList['active'] = 'Active';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = 'Resolved';
-$lang->issue->resolveMethods['totask'] = 'To Task';
-$lang->issue->resolveMethods['tobug'] = 'To Bug';
-$lang->issue->resolveMethods['tostory'] = 'To Story';
-$lang->issue->resolveMethods['torisk'] = 'To Risk';
-
-$lang->issue->confirmDelete = 'Do you want to delete this issue?';
-$lang->issue->typeEmpty = 'ID: %s Type cannot be empty.';
-$lang->issue->titleEmpty = 'ID: %s Title cannot be empty.';
-$lang->issue->severityEmpty = 'ID: %s Severity cannot be empty.';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = " created Task %s";
-$lang->issue->logComments['tostory'] = " created Story %s";
-$lang->issue->logComments['tobug'] = " created Bug %s" ;
-$lang->issue->logComments['torisk'] = " created Risk %s";
diff --git a/module/issue/lang/en.php b/module/issue/lang/en.php
deleted file mode 100644
index 2414f419e8..0000000000
--- a/module/issue/lang/en.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = 'Issue';
-$lang->issue->browse = 'List';
-$lang->issue->resolvedBy = 'Resolved By';
-$lang->issue->project = 'Linked Project';
-$lang->issue->title = 'Title';
-$lang->issue->desc = 'Description';
-$lang->issue->pri = 'Priority';
-$lang->issue->severity = 'Severity';
-$lang->issue->type = 'Type';
-$lang->issue->effectedArea = 'Impact';
-$lang->issue->activity = 'Activities';
-$lang->issue->deadline = 'Deadline';
-$lang->issue->resolution = 'Resolution';
-$lang->issue->resolutionComment = 'Comment';
-$lang->issue->resolvedDate = 'Resolved Date';
-$lang->issue->status = 'Status';
-$lang->issue->createdBy = 'CreatedBy';
-$lang->issue->createdDate = 'CreatedDate';
-$lang->issue->owner = 'Owner';
-$lang->issue->editedBy = 'EditedBy';
-$lang->issue->editedDate = 'EditedDate';
-$lang->issue->activateBy = 'ActivatedBy';
-$lang->issue->activateDate = 'ActivatedDate';
-$lang->issue->closedBy = 'ClosedBy';
-$lang->issue->closedDate = 'ClosedDate';
-$lang->issue->assignedTo = 'AssignedTo';
-$lang->issue->assignedBy = 'AssignedBy';
-$lang->issue->assignedDate = 'AssignedDate';
-$lang->issue->resolve = 'Resolved';
-$lang->issue->id = 'ID';
-$lang->issue->confirm = 'Confirm';
-
-$lang->issue->view = 'Issue Details';
-$lang->issue->close = 'Closed';
-$lang->issue->cancel = 'Cancel';
-$lang->issue->delete = 'Delete';
-$lang->issue->search = 'Search';
-$lang->issue->basicInfo = 'Basic Information';
-$lang->issue->activate = 'Activate';
-$lang->issue->assignTo = 'Assign';
-$lang->issue->create = 'Create Issue';
-$lang->issue->edit = 'Edit';
-$lang->issue->batchCreate = 'Batch Create';
-$lang->issue->deleted = 'Deleted';
-
-$lang->issue->labelList['all'] = 'All';
-$lang->issue->labelList['open'] = 'Open';
-$lang->issue->labelList['assignto'] = 'AssignedToMe';
-$lang->issue->labelList['closed'] = 'Closed';
-$lang->issue->labelList['suspended'] = 'Suspended';
-$lang->issue->labelList['canceled'] = 'Canceled';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '1';
-$lang->issue->severityList['2'] = '2';
-$lang->issue->severityList['3'] = '3';
-$lang->issue->severityList['4'] = '4';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = 'Design';
-$lang->issue->typeList['code'] = 'Code';
-$lang->issue->typeList['performance'] = 'Performance';
-$lang->issue->typeList['version'] = 'Version';
-$lang->issue->typeList['storyadd'] = 'New Story';
-$lang->issue->typeList['storychanged'] = 'Story Change';
-$lang->issue->typeList['storyremoved'] = 'Story Deleted';
-$lang->issue->typeList['data'] = 'Data';
-
-$lang->issue->resolutionList['resolved'] = 'Resolved';
-$lang->issue->resolutionList['tostory'] = 'To Story';
-$lang->issue->resolutionList['tobug'] = 'To Bug';
-$lang->issue->resolutionList['torisk'] = 'To Risk';
-$lang->issue->resolutionList['totask'] = 'To Task';
-
-$lang->issue->statusList['unconfirmed'] = 'Unconfirmed';
-$lang->issue->statusList['confirmed'] = 'Confirmed';
-$lang->issue->statusList['resolved'] = 'Resolved';
-$lang->issue->statusList['canceled'] = 'Canceled';
-$lang->issue->statusList['closed'] = 'Closed';
-$lang->issue->statusList['active'] = 'Active';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = 'Resolved';
-$lang->issue->resolveMethods['totask'] = 'To Task';
-$lang->issue->resolveMethods['tobug'] = 'To Bug';
-$lang->issue->resolveMethods['tostory'] = 'To Story';
-$lang->issue->resolveMethods['torisk'] = 'To Risk';
-
-$lang->issue->confirmDelete = 'Do you want to delete this issue?';
-$lang->issue->typeEmpty = 'ID: %s Type cannot be empty.';
-$lang->issue->titleEmpty = 'ID: %s Title cannot be empty.';
-$lang->issue->severityEmpty = 'ID: %s Severity cannot be empty.';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = " created Task %s";
-$lang->issue->logComments['tostory'] = " created Story %s";
-$lang->issue->logComments['tobug'] = " created Bug %s" ;
-$lang->issue->logComments['torisk'] = " created Risk %s";
diff --git a/module/issue/lang/fr.php b/module/issue/lang/fr.php
deleted file mode 100644
index 2414f419e8..0000000000
--- a/module/issue/lang/fr.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = 'Issue';
-$lang->issue->browse = 'List';
-$lang->issue->resolvedBy = 'Resolved By';
-$lang->issue->project = 'Linked Project';
-$lang->issue->title = 'Title';
-$lang->issue->desc = 'Description';
-$lang->issue->pri = 'Priority';
-$lang->issue->severity = 'Severity';
-$lang->issue->type = 'Type';
-$lang->issue->effectedArea = 'Impact';
-$lang->issue->activity = 'Activities';
-$lang->issue->deadline = 'Deadline';
-$lang->issue->resolution = 'Resolution';
-$lang->issue->resolutionComment = 'Comment';
-$lang->issue->resolvedDate = 'Resolved Date';
-$lang->issue->status = 'Status';
-$lang->issue->createdBy = 'CreatedBy';
-$lang->issue->createdDate = 'CreatedDate';
-$lang->issue->owner = 'Owner';
-$lang->issue->editedBy = 'EditedBy';
-$lang->issue->editedDate = 'EditedDate';
-$lang->issue->activateBy = 'ActivatedBy';
-$lang->issue->activateDate = 'ActivatedDate';
-$lang->issue->closedBy = 'ClosedBy';
-$lang->issue->closedDate = 'ClosedDate';
-$lang->issue->assignedTo = 'AssignedTo';
-$lang->issue->assignedBy = 'AssignedBy';
-$lang->issue->assignedDate = 'AssignedDate';
-$lang->issue->resolve = 'Resolved';
-$lang->issue->id = 'ID';
-$lang->issue->confirm = 'Confirm';
-
-$lang->issue->view = 'Issue Details';
-$lang->issue->close = 'Closed';
-$lang->issue->cancel = 'Cancel';
-$lang->issue->delete = 'Delete';
-$lang->issue->search = 'Search';
-$lang->issue->basicInfo = 'Basic Information';
-$lang->issue->activate = 'Activate';
-$lang->issue->assignTo = 'Assign';
-$lang->issue->create = 'Create Issue';
-$lang->issue->edit = 'Edit';
-$lang->issue->batchCreate = 'Batch Create';
-$lang->issue->deleted = 'Deleted';
-
-$lang->issue->labelList['all'] = 'All';
-$lang->issue->labelList['open'] = 'Open';
-$lang->issue->labelList['assignto'] = 'AssignedToMe';
-$lang->issue->labelList['closed'] = 'Closed';
-$lang->issue->labelList['suspended'] = 'Suspended';
-$lang->issue->labelList['canceled'] = 'Canceled';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '1';
-$lang->issue->severityList['2'] = '2';
-$lang->issue->severityList['3'] = '3';
-$lang->issue->severityList['4'] = '4';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = 'Design';
-$lang->issue->typeList['code'] = 'Code';
-$lang->issue->typeList['performance'] = 'Performance';
-$lang->issue->typeList['version'] = 'Version';
-$lang->issue->typeList['storyadd'] = 'New Story';
-$lang->issue->typeList['storychanged'] = 'Story Change';
-$lang->issue->typeList['storyremoved'] = 'Story Deleted';
-$lang->issue->typeList['data'] = 'Data';
-
-$lang->issue->resolutionList['resolved'] = 'Resolved';
-$lang->issue->resolutionList['tostory'] = 'To Story';
-$lang->issue->resolutionList['tobug'] = 'To Bug';
-$lang->issue->resolutionList['torisk'] = 'To Risk';
-$lang->issue->resolutionList['totask'] = 'To Task';
-
-$lang->issue->statusList['unconfirmed'] = 'Unconfirmed';
-$lang->issue->statusList['confirmed'] = 'Confirmed';
-$lang->issue->statusList['resolved'] = 'Resolved';
-$lang->issue->statusList['canceled'] = 'Canceled';
-$lang->issue->statusList['closed'] = 'Closed';
-$lang->issue->statusList['active'] = 'Active';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = 'Resolved';
-$lang->issue->resolveMethods['totask'] = 'To Task';
-$lang->issue->resolveMethods['tobug'] = 'To Bug';
-$lang->issue->resolveMethods['tostory'] = 'To Story';
-$lang->issue->resolveMethods['torisk'] = 'To Risk';
-
-$lang->issue->confirmDelete = 'Do you want to delete this issue?';
-$lang->issue->typeEmpty = 'ID: %s Type cannot be empty.';
-$lang->issue->titleEmpty = 'ID: %s Title cannot be empty.';
-$lang->issue->severityEmpty = 'ID: %s Severity cannot be empty.';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = " created Task %s";
-$lang->issue->logComments['tostory'] = " created Story %s";
-$lang->issue->logComments['tobug'] = " created Bug %s" ;
-$lang->issue->logComments['torisk'] = " created Risk %s";
diff --git a/module/issue/lang/vi.php b/module/issue/lang/vi.php
deleted file mode 100644
index 2414f419e8..0000000000
--- a/module/issue/lang/vi.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = 'Issue';
-$lang->issue->browse = 'List';
-$lang->issue->resolvedBy = 'Resolved By';
-$lang->issue->project = 'Linked Project';
-$lang->issue->title = 'Title';
-$lang->issue->desc = 'Description';
-$lang->issue->pri = 'Priority';
-$lang->issue->severity = 'Severity';
-$lang->issue->type = 'Type';
-$lang->issue->effectedArea = 'Impact';
-$lang->issue->activity = 'Activities';
-$lang->issue->deadline = 'Deadline';
-$lang->issue->resolution = 'Resolution';
-$lang->issue->resolutionComment = 'Comment';
-$lang->issue->resolvedDate = 'Resolved Date';
-$lang->issue->status = 'Status';
-$lang->issue->createdBy = 'CreatedBy';
-$lang->issue->createdDate = 'CreatedDate';
-$lang->issue->owner = 'Owner';
-$lang->issue->editedBy = 'EditedBy';
-$lang->issue->editedDate = 'EditedDate';
-$lang->issue->activateBy = 'ActivatedBy';
-$lang->issue->activateDate = 'ActivatedDate';
-$lang->issue->closedBy = 'ClosedBy';
-$lang->issue->closedDate = 'ClosedDate';
-$lang->issue->assignedTo = 'AssignedTo';
-$lang->issue->assignedBy = 'AssignedBy';
-$lang->issue->assignedDate = 'AssignedDate';
-$lang->issue->resolve = 'Resolved';
-$lang->issue->id = 'ID';
-$lang->issue->confirm = 'Confirm';
-
-$lang->issue->view = 'Issue Details';
-$lang->issue->close = 'Closed';
-$lang->issue->cancel = 'Cancel';
-$lang->issue->delete = 'Delete';
-$lang->issue->search = 'Search';
-$lang->issue->basicInfo = 'Basic Information';
-$lang->issue->activate = 'Activate';
-$lang->issue->assignTo = 'Assign';
-$lang->issue->create = 'Create Issue';
-$lang->issue->edit = 'Edit';
-$lang->issue->batchCreate = 'Batch Create';
-$lang->issue->deleted = 'Deleted';
-
-$lang->issue->labelList['all'] = 'All';
-$lang->issue->labelList['open'] = 'Open';
-$lang->issue->labelList['assignto'] = 'AssignedToMe';
-$lang->issue->labelList['closed'] = 'Closed';
-$lang->issue->labelList['suspended'] = 'Suspended';
-$lang->issue->labelList['canceled'] = 'Canceled';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '1';
-$lang->issue->severityList['2'] = '2';
-$lang->issue->severityList['3'] = '3';
-$lang->issue->severityList['4'] = '4';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = 'Design';
-$lang->issue->typeList['code'] = 'Code';
-$lang->issue->typeList['performance'] = 'Performance';
-$lang->issue->typeList['version'] = 'Version';
-$lang->issue->typeList['storyadd'] = 'New Story';
-$lang->issue->typeList['storychanged'] = 'Story Change';
-$lang->issue->typeList['storyremoved'] = 'Story Deleted';
-$lang->issue->typeList['data'] = 'Data';
-
-$lang->issue->resolutionList['resolved'] = 'Resolved';
-$lang->issue->resolutionList['tostory'] = 'To Story';
-$lang->issue->resolutionList['tobug'] = 'To Bug';
-$lang->issue->resolutionList['torisk'] = 'To Risk';
-$lang->issue->resolutionList['totask'] = 'To Task';
-
-$lang->issue->statusList['unconfirmed'] = 'Unconfirmed';
-$lang->issue->statusList['confirmed'] = 'Confirmed';
-$lang->issue->statusList['resolved'] = 'Resolved';
-$lang->issue->statusList['canceled'] = 'Canceled';
-$lang->issue->statusList['closed'] = 'Closed';
-$lang->issue->statusList['active'] = 'Active';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = 'Resolved';
-$lang->issue->resolveMethods['totask'] = 'To Task';
-$lang->issue->resolveMethods['tobug'] = 'To Bug';
-$lang->issue->resolveMethods['tostory'] = 'To Story';
-$lang->issue->resolveMethods['torisk'] = 'To Risk';
-
-$lang->issue->confirmDelete = 'Do you want to delete this issue?';
-$lang->issue->typeEmpty = 'ID: %s Type cannot be empty.';
-$lang->issue->titleEmpty = 'ID: %s Title cannot be empty.';
-$lang->issue->severityEmpty = 'ID: %s Severity cannot be empty.';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = " created Task %s";
-$lang->issue->logComments['tostory'] = " created Story %s";
-$lang->issue->logComments['tobug'] = " created Bug %s" ;
-$lang->issue->logComments['torisk'] = " created Risk %s";
diff --git a/module/issue/lang/zh-cn.php b/module/issue/lang/zh-cn.php
deleted file mode 100644
index b55f3da1a4..0000000000
--- a/module/issue/lang/zh-cn.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = '问题';
-$lang->issue->browse = '问题列表';
-$lang->issue->resolvedBy = '解决者';
-$lang->issue->project = '所属项目';
-$lang->issue->title = '标题';
-$lang->issue->desc = '描述';
-$lang->issue->pri = '优先级';
-$lang->issue->severity = '严重程度';
-$lang->issue->type = '类别';
-$lang->issue->effectedArea = '受影响的活动';
-$lang->issue->activity = '活动列表';
-$lang->issue->deadline = '计划解决日期';
-$lang->issue->resolution = '解决方式';
-$lang->issue->resolutionComment = '解决方案';
-$lang->issue->resolvedDate = '实际解决日期';
-$lang->issue->status = '结果';
-$lang->issue->createdBy = '由谁创建';
-$lang->issue->createdDate = '创建日期';
-$lang->issue->owner = '提出人';
-$lang->issue->editedBy = '由谁编辑';
-$lang->issue->editedDate = '编辑日期';
-$lang->issue->activateBy = '由谁激活';
-$lang->issue->activateDate = '激活日期';
-$lang->issue->closedBy = '由谁关闭';
-$lang->issue->closedDate = '关闭日期';
-$lang->issue->assignedTo = '指派给';
-$lang->issue->assignedBy = '由谁指派';
-$lang->issue->assignedDate = '指派时间';
-$lang->issue->resolve = '解决';
-$lang->issue->id = '编号';
-$lang->issue->confirm = '确认';
-
-$lang->issue->view = '问题详情';
-$lang->issue->close = '关闭';
-$lang->issue->cancel = '取消';
-$lang->issue->delete = '删除';
-$lang->issue->search = '搜索';
-$lang->issue->basicInfo = '基本信息';
-$lang->issue->activate = '激活';
-$lang->issue->assignTo = '指派';
-$lang->issue->create = '新建问题';
-$lang->issue->edit = '编辑';
-$lang->issue->batchCreate = '批量新建';
-$lang->issue->deleted = '已删除';
-
-$lang->issue->labelList['all'] = '全部';
-$lang->issue->labelList['open'] = '开放';
-$lang->issue->labelList['assignto'] = '指派给我';
-$lang->issue->labelList['closed'] = '已关闭';
-$lang->issue->labelList['suspended'] = '已挂起';
-$lang->issue->labelList['canceled'] = '已取消';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '严重';
-$lang->issue->severityList['2'] = '较严重';
-$lang->issue->severityList['3'] = '较小';
-$lang->issue->severityList['4'] = '建议';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = '设计问题';
-$lang->issue->typeList['code'] = '程序缺陷';
-$lang->issue->typeList['performance'] = '性能问题';
-$lang->issue->typeList['version'] = '版本控制';
-$lang->issue->typeList['storyadd'] = '需求新增';
-$lang->issue->typeList['storychanged'] = '需求修改';
-$lang->issue->typeList['storyremoved'] = '需求删除';
-$lang->issue->typeList['data'] = '数据问题';
-
-$lang->issue->resolutionList['resolved'] = '已解决';
-$lang->issue->resolutionList['tostory'] = '转需求';
-$lang->issue->resolutionList['tobug'] = '转BUG';
-$lang->issue->resolutionList['torisk'] = '转风险';
-$lang->issue->resolutionList['totask'] = '转任务';
-
-$lang->issue->statusList['unconfirmed'] = '待确认';
-$lang->issue->statusList['confirmed'] = '已确认';
-$lang->issue->statusList['resolved'] = '已解决';
-$lang->issue->statusList['canceled'] = '取消';
-$lang->issue->statusList['closed'] = '已关闭';
-$lang->issue->statusList['active'] = '激活';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = '已解决';
-$lang->issue->resolveMethods['totask'] = '转任务';
-$lang->issue->resolveMethods['tobug'] = '转BUG';
-$lang->issue->resolveMethods['tostory'] = '转需求';
-$lang->issue->resolveMethods['torisk'] = '转风险';
-
-$lang->issue->confirmDelete = '您确认删除该问题?';
-$lang->issue->typeEmpty = 'ID:%s的类别不能为空。';
-$lang->issue->titleEmpty = 'ID:%s的标题不能为空。';
-$lang->issue->severityEmpty = 'ID:%s的严重程度不能为空。';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = "创建了任务:%s。";
-$lang->issue->logComments['tostory'] = "创建了需求:%s。";
-$lang->issue->logComments['tobug'] = "创建了BUG:%s。";
-$lang->issue->logComments['torisk'] = "创建了风险:%s。";
diff --git a/module/issue/lang/zh-tw.php b/module/issue/lang/zh-tw.php
deleted file mode 100644
index d02c07606d..0000000000
--- a/module/issue/lang/zh-tw.php
+++ /dev/null
@@ -1,115 +0,0 @@
-
- * @package issue
- * @version $Id
- * @link http://www.zentao.net
- */
-$lang->issue->common = '問題';
-$lang->issue->browse = '問題列表';
-$lang->issue->resolvedBy = '解決者';
-$lang->issue->project = '所屬項目';
-$lang->issue->title = '標題';
-$lang->issue->desc = '描述';
-$lang->issue->pri = '優先順序';
-$lang->issue->severity = '嚴重程度';
-$lang->issue->type = '類別';
-$lang->issue->effectedArea = '受影響的活動';
-$lang->issue->activity = '活動列表';
-$lang->issue->deadline = '計劃解決日期';
-$lang->issue->resolution = '解決方式';
-$lang->issue->resolutionComment = '解決方案';
-$lang->issue->resolvedDate = '實際解決日期';
-$lang->issue->status = '結果';
-$lang->issue->createdBy = '由誰創建';
-$lang->issue->createdDate = '創建日期';
-$lang->issue->owner = '提出人';
-$lang->issue->editedBy = '由誰編輯';
-$lang->issue->editedDate = '編輯日期';
-$lang->issue->activateBy = '由誰激活';
-$lang->issue->activateDate = '激活日期';
-$lang->issue->closedBy = '由誰關閉';
-$lang->issue->closedDate = '關閉日期';
-$lang->issue->assignedTo = '指派給';
-$lang->issue->assignedBy = '由誰指派';
-$lang->issue->assignedDate = '指派時間';
-$lang->issue->resolve = '解決';
-$lang->issue->id = '編號';
-$lang->issue->confirm = '確認';
-
-$lang->issue->view = '問題詳情';
-$lang->issue->close = '關閉';
-$lang->issue->cancel = '取消';
-$lang->issue->delete = '刪除';
-$lang->issue->search = '搜索';
-$lang->issue->basicInfo = '基本信息';
-$lang->issue->activate = '激活';
-$lang->issue->assignTo = '指派';
-$lang->issue->create = '新建問題';
-$lang->issue->edit = '編輯';
-$lang->issue->batchCreate = '批量新建';
-$lang->issue->deleted = '已刪除';
-
-$lang->issue->labelList['all'] = '全部';
-$lang->issue->labelList['open'] = '開放';
-$lang->issue->labelList['assignto'] = '指派給我';
-$lang->issue->labelList['closed'] = '已關閉';
-$lang->issue->labelList['suspended'] = '已掛起';
-$lang->issue->labelList['canceled'] = '已取消';
-
-$lang->issue->priList[''] = '';
-$lang->issue->priList['1'] = 1;
-$lang->issue->priList['2'] = 2;
-$lang->issue->priList['3'] = 3;
-$lang->issue->priList['4'] = 4;
-
-$lang->issue->severityList[''] = '';
-$lang->issue->severityList['1'] = '嚴重';
-$lang->issue->severityList['2'] = '較嚴重';
-$lang->issue->severityList['3'] = '較小';
-$lang->issue->severityList['4'] = '建議';
-
-$lang->issue->typeList[''] = '';
-$lang->issue->typeList['design'] = '設計問題';
-$lang->issue->typeList['code'] = '程序缺陷';
-$lang->issue->typeList['performance'] = '性能問題';
-$lang->issue->typeList['version'] = '版本控制';
-$lang->issue->typeList['storyadd'] = '需求新增';
-$lang->issue->typeList['storychanged'] = '需求修改';
-$lang->issue->typeList['storyremoved'] = '需求刪除';
-$lang->issue->typeList['data'] = '數據問題';
-
-$lang->issue->resolutionList['resolved'] = '已解決';
-$lang->issue->resolutionList['tostory'] = '轉需求';
-$lang->issue->resolutionList['tobug'] = '轉BUG';
-$lang->issue->resolutionList['torisk'] = '轉風險';
-$lang->issue->resolutionList['totask'] = '轉任務';
-
-$lang->issue->statusList['unconfirmed'] = '待確認';
-$lang->issue->statusList['confirmed'] = '已確認';
-$lang->issue->statusList['resolved'] = '已解決';
-$lang->issue->statusList['canceled'] = '取消';
-$lang->issue->statusList['closed'] = '已關閉';
-$lang->issue->statusList['active'] = '激活';
-
-$lang->issue->resolveMethods = array();
-$lang->issue->resolveMethods['resolved'] = '已解決';
-$lang->issue->resolveMethods['totask'] = '轉任務';
-$lang->issue->resolveMethods['tobug'] = '轉BUG';
-$lang->issue->resolveMethods['tostory'] = '轉需求';
-$lang->issue->resolveMethods['torisk'] = '轉風險';
-
-$lang->issue->confirmDelete = '您確認刪除該問題?';
-$lang->issue->typeEmpty = 'ID:%s的類別不能為空。';
-$lang->issue->titleEmpty = 'ID:%s的標題不能為空。';
-$lang->issue->severityEmpty = 'ID:%s的嚴重程度不能為空。';
-
-$lang->issue->logComments = array();
-$lang->issue->logComments['totask'] = "創建了任務:%s。";
-$lang->issue->logComments['tostory'] = "創建了需求:%s。";
-$lang->issue->logComments['tobug'] = "創建了BUG:%s。";
-$lang->issue->logComments['torisk'] = "創建了風險:%s。";
diff --git a/module/issue/model.php b/module/issue/model.php
deleted file mode 100644
index 79ed9e84b8..0000000000
--- a/module/issue/model.php
+++ /dev/null
@@ -1,520 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-add('createdBy', $this->app->user->account)
- ->add('createdDate', $now)
- ->add('status', 'unconfirmed')
- ->add('PRJ', $this->session->PRJ)
- ->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($issue)->batchCheck($this->config->issue->create->requiredFields, 'notempty')->exec();
- $issueID = $this->dao->lastInsertID();
- $this->loadModel('file')->saveUpload('issue', $issueID);
-
- return $issueID;
- }
-
- /**
- * Get stakeholder issue list data.
- *
- * @param string $owner
- * @param string $activityID
- * @param object $pager
- * @access public
- * @return object
- */
- public function getStakeholderIssue($owner = '', $activityID = 0, $pager = null)
- {
- $issueList = $this->dao->select('*')->from(TABLE_ISSUE)
- ->where('deleted')->eq('0')
- ->beginIF($owner)->andWhere('owner')->eq($owner)->fi()
- ->beginIF($activityID)->andWhere('activity')->eq($activityID)->fi()
- ->orderBy('id_desc')
- ->page($pager)
- ->fetchAll();
-
- return $issueList;
- }
-
- /**
- * Get a issue details.
- *
- * @param int $issueID
- * @access public
- * @return object|bool
- */
- public function getByID($issueID)
- {
- $issue = $this->dao->select('*')->from(TABLE_ISSUE)->where('id')->eq($issueID)->fetch();
- if(!$issue) return false;
-
- $issue->files = $this->loadModel('file')->getByObject('issue', $issue->id);
- return $issue;
- }
-
- /**
- * Get issue list data.
- *
- * @param int $projectID
- * @param string $browseType bySearch|open|assignTo|closed|suspended|canceled
- * @param int $queryID
- * @param string $orderBy
- * @param object $pager
- * @access public
- * @return object
- */
- public function getList($projectID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null)
- {
- $issueQuery = '';
- if($browseType == 'bysearch')
- {
- $query = $queryID ? $this->loadModel('search')->getQuery($queryID) : '';
- if($query)
- {
- $this->session->set('issueQuery', $query->sql);
- $this->session->set('issueForm', $query->form);
- }
- if($this->session->issueQuery == false) $this->session->set('issueQuery', ' 1=1');
- $issueQuery = $this->session->issueQuery;
- }
-
- $issueList = $this->dao->select('*')->from(TABLE_ISSUE)
- ->where('deleted')->eq('0')
- ->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
- ->beginIF($browseType == 'open')->andWhere('status')->eq('active')->fi()
- ->beginIF($browseType == 'assignto')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
- ->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
- ->beginIF($browseType == 'suspended')->andWhere('status')->eq('suspended')->fi()
- ->beginIF($browseType == 'canceled')->andWhere('status')->eq('canceled')->fi()
- ->beginIF($browseType == 'bysearch')->andWhere($issueQuery)->fi()
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll();
-
- return $issueList;
- }
-
- /**
- * Get the issue in the block.
- *
- * @param int $projectID
- * @param string $browseType open|assignto|closed|suspended|canceled
- * @param int $limit
- * @param string $orderBy
- * @access public
- * @return array
- */
- public function getBlockIssues($projectID = 0, $browseType = 'all', $limit = 15, $orderBy = 'id_desc')
- {
- $issueList = $this->dao->select('*')->from(TABLE_ISSUE)
- ->where('deleted')->eq('0')
- ->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
- ->beginIF($browseType == 'open')->andWhere('status')->eq('active')->fi()
- ->beginIF($browseType == 'assignto')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
- ->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
- ->beginIF($browseType == 'suspended')->andWhere('status')->eq('suspended')->fi()
- ->beginIF($browseType == 'canceled')->andWhere('status')->eq('canceled')->fi()
- ->orderBy($orderBy)
- ->limit($limit)
- ->fetchAll();
-
- return $issueList;
- }
-
- /**
- * Get user issues.
- *
- * @param string $browseType open|assignto|closed|suspended|canceled
- * @param string $account
- * @param string $orderBy
- * @param object $pager
- * @access public
- * @return array
- */
- public function getUserIssues($type = 'assignedTo', $account = '', $orderBy = 'id_desc', $pager)
- {
- if(empty($account)) $account = $this->app->user->account;
-
- $issueList = $this->dao->select('*')->from(TABLE_ISSUE)
- ->where('deleted')->eq('0')
- ->andWhere($type)->eq($account)->fi()
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll();
-
- return $issueList;
- }
-
- /**
- * Get activity list.
- *
- * @access public
- * @return object
- */
- public function getActivityPairs()
- {
- return $this->dao->select('id,name')->from(TABLE_ACTIVITY)->where('deleted')->eq('0')->orderBy('id_desc')->fetchPairs();
- }
-
- /**
- * Get issue pairs of a user.
- *
- * @param string $account
- * @param int $limit
- * @param string $status all|unconfirmed|active|suspended|resolved|closed|canceled
- * @param array $skipProjectIDList
- * @access public
- * @return array
- */
- public function getUserIssuePairs($account, $limit = 0, $status = 'all', $skipProjectIDList = array())
- {
- $stmt = $this->dao->select('t1.id, t1.title, t2.name as project')
- ->from(TABLE_ISSUE)->alias('t1')
- ->leftjoin(TABLE_PROJECT)->alias('t2')->on('t1.PRJ = t2.id')
- ->where('t1.assignedTo')->eq($account)
- ->andWhere('t1.deleted')->eq(0)
- ->beginIF($status != 'all')->andWhere('t1.status')->in($status)->fi()
- ->beginIF(!empty($skipProjectIDList))->andWhere('t1.PRJ')->notin($skipProjectIDList)->fi()
- ->beginIF($limit)->limit($limit)->fi()
- ->query();
-
- $issues = array();
- while($issue = $stmt->fetch())
- {
- $issues[$issue->id] = $issue->project . ' / ' . $issue->title;
- }
- return $issues;
- }
-
- /**
- * Update an issue.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function update($issueID)
- {
- $oldIssue = $this->getByID($issueID);
-
- $now = helper::now();
- $issue = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', $now)
- ->remove('labels,files')
- ->addIF($this->post->assignedTo, 'assignedBy', $this->app->user->account)
- ->addIF($this->post->assignedTo, 'assignedDate', $now)
- ->stripTags($this->config->issue->editor->edit['id'], $this->config->allowedTags)
- ->get();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)
- ->where('id')->eq($issueID)
- ->batchCheck($this->config->issue->edit->requiredFields, 'notempty')
- ->exec();
-
- $this->loadModel('file')->saveUpload('issue', $issueID);
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Update assignor.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function assignTo($issueID)
- {
- $oldIssue = $this->getByID($issueID);
-
- $now = helper::now();
- $issue = fixer::input('post')
- ->add('assignedBy', $this->app->user->account)
- ->add('assignedDate', $now)
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', $now)
- ->get();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Close an issue.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function close($issueID)
- {
- $oldIssue = $this->getByID($issueID);
- $issue = fixer::input('post')
- ->add('closedBy', $this->app->user->account)
- ->add('status', 'closed')
- ->add('assignedTo', 'closed')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::now())
- ->get();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Confirm an issue.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function confirm($issueID)
- {
- $oldIssue = $this->getByID($issueID);
- $issue = fixer::input('post')
- ->add('status', 'confirmed')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::now())
- ->get();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Cancel an issue.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function cancel($issueID)
- {
- $oldIssue = $this->getByID($issueID);
- $issue = fixer::input('post')
- ->add('status', 'canceled')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::now())
- ->get();
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Activate an issue.
- *
- * @param int $issueID
- * @access public
- * @return array
- */
- public function activate($issueID)
- {
- $oldIssue = $this->getByID($issueID);
-
- $now = helper::now();
- $issue = fixer::input('post')
- ->add('status', 'active')
- ->add('activateBy', $this->app->user->account)
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', $now)
- ->add('assignedBy', $this->app->user->account)
- ->add('assignedDate', $now)
- ->addIF($this->post->assignedTo == '', 'assignedTo', $this->app->user->account)
- ->get();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
-
- return common::createChanges($oldIssue, $issue);
- }
-
- /**
- * Batch create issue.
- *
- * @access public
- * @return array
- */
- public function batchCreate()
- {
- $now = helper::now();
- $data = fixer::input('post')->get();
-
- $issues = array();
- foreach($data->dataList as $index => $issue)
- {
- if(!trim($issue['title'])) continue;
-
- $issue['createdBy'] = $this->app->user->account;
- $issue['createdDate'] = $now;
- $issue['PRJ'] = $this->session->PRJ;
- $issue['status'] = 'unconfirmed';
-
- if($issue['assignedTo'])
- {
- $issue['assignedBy'] = $this->app->user->account;
- $issue['assignedDate'] = $now;
- }
-
- if(empty($issue['title'])) die(js::error(sprintf($this->lang->issue->titleEmpty, $index)));
- if(empty($issue['type'])) die(js::error(sprintf($this->lang->issue->typeEmpty, $index)));
- if(empty($issue['severity'])) die(js::error(sprintf($this->lang->issue->severityEmpty, $index)));
-
- $issues[] = $issue;
- }
-
- $issueIdList = array();
- foreach($issues as $issue)
- {
- $this->dao->insert(TABLE_ISSUE)->data($issue)->exec();
- $issueIdList[] = $this->dao->lastInsertId();
- }
-
- return $issueIdList;
- }
-
- /**
- * Resolve an issue.
- *
- * @param int $issueID
- * @param object $data
- * @access public
- * @return void
- */
- public function resolve($issueID, $data)
- {
- $issue = new stdClass();
- $issue->resolution = $data->resolution;
- $issue->resolutionComment = isset($data->resolutionComment) ? $data->resolutionComment : '';
- $issue->resolvedBy = $data->resolvedBy;
- $issue->resolvedDate = $data->resolvedDate;
- $issue->status = 'resolved';
- $issue->editedBy = $this->app->user->account;
- $issue->editedDate = helper::now();
-
- $this->dao->update(TABLE_ISSUE)->data($issue)->where('id')->eq($issueID)->exec();
- }
-
- /**
- * Create an task.
- *
- * @access public
- * @return object
- */
- public function createTask()
- {
- $projectID = $this->post->project;
- $tasks = $this->loadModel('task')->create($projectID);
- if(dao::isError()) return false;
-
- $task = current($tasks);
- return $task['id'];
- }
-
- /**
- * Create a story.
- *
- * @access public
- * @return int
- */
- public function createStory()
- {
- $storyResult = $this->loadModel('story')->create();
- if(dao::isError()) return false;
- return $storyResult['id'];
- }
-
- /**
- * Create a bug.
- *
- * @access public
- * @return int
- */
- public function createBug()
- {
- $bugResult = $this->loadModel('bug')->create();
- if(dao::isError()) return false;
- return $bugResult['id'];
- }
-
- /**
- * Create a risk.
- *
- * @access public
- * @return int
- */
- public function createRisk()
- {
- $riskID = $this->loadModel('risk')->create();
- if(dao::isError()) return false;
- return $riskID;
- }
-
- /**
- * Build issue search form.
- *
- * @param string $actionURL
- * @param int $queryID
- * @access public
- * @return void
- */
- public function buildSearchForm($actionURL, $queryID)
- {
- $this->config->issue->search['actionURL'] = $actionURL;
- $this->config->issue->search['queryID'] = $queryID;
-
- $this->loadModel('search')->setSearchParams($this->config->issue->search);
- }
-
- /**
- * Adjust the action is clickable.
- *
- * @param object $issue
- * @param string $action
- *
- * @access public
- * @return bool
- */
- public static function isClickable($issue, $action)
- {
- $action = strtolower($action);
-
- if($action == 'confirm') return $issue->status == 'unconfirmed';
- if($action == 'resolve') return $issue->status == 'active' || $issue->status == 'confirmed';
- if($action == 'close') return $issue->status != 'closed';
- if($action == 'activate') return $issue->status == 'closed';
- if($action == 'cancel') return $issue->status != 'canceled' && $issue->status != 'closed';
- if($action == 'assignto') return $issue->status != 'closed';
-
- return true;
- }
-}
diff --git a/module/issue/view/activate.html.php b/module/issue/view/activate.html.php
deleted file mode 100644
index 529ee9ee98..0000000000
--- a/module/issue/view/activate.html.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
- * @package issue
- * @version $Id: complete.html.php 935 2010-07-06 07:49:24Z jajacn@126.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/assignto.html.php b/module/issue/view/assignto.html.php
deleted file mode 100644
index e351322e9c..0000000000
--- a/module/issue/view/assignto.html.php
+++ /dev/null
@@ -1,39 +0,0 @@
-
- * @package issue
- * @version $Id: complete.html.php 935 2010-07-06 07:49:24Z jajacn@126.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/batchcreate.html.php b/module/issue/view/batchcreate.html.php
deleted file mode 100644
index 455be770c8..0000000000
--- a/module/issue/view/batchcreate.html.php
+++ /dev/null
@@ -1,52 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
issue->batchCreate;?>
-
-
-
-
diff --git a/module/issue/view/browse.html.php b/module/issue/view/browse.html.php
deleted file mode 100644
index 1eba1dec63..0000000000
--- a/module/issue/view/browse.html.php
+++ /dev/null
@@ -1,93 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
- " . $lang->issue->batchCreate, '', "class='btn btn-secondary'");?>
- " . $lang->issue->create, '', "class='btn btn-primary'");?>
-
-
-
-
-
-
-
-
-
- noData;?>
- createLink('issue', 'create'), ' ' . $lang->issue->create, '', 'class="btn btn-info"')?>
-
-
-
-
-
diff --git a/module/issue/view/bugform.html.php b/module/issue/view/bugform.html.php
deleted file mode 100644
index 848d9da0c5..0000000000
--- a/module/issue/view/bugform.html.php
+++ /dev/null
@@ -1,747 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
- | issue->resolution;?> |
-
- issue->resolveMethods, $resolution, 'class="form-control chosen" onchange="getSolutions()"');?>
- |
-
-
- | bug->product;?> |
-
-
-
- session->currentProductType != 'normal' and isset($products[$productID])):?>
-
-
-
- |
-
-
- bug->module?>
- ";
- echo html::a($this->createLink('tree', 'browse', "rootID=$productID&view=bug¤tModuleID=0&branch=$branch", '', true), $lang->tree->manage, '', "class='text-primary' data-toggle='modal' data-type='iframe' data-width='95%'");
- echo ' ';
- echo html::a("javascript:void(0)", $lang->refresh, '', "class='refresh' onclick='loadProductModules($productID)'");
- echo '';
- }
- ?>
-
- |
-
-
- | bug->type;?> |
-
-
-
-
- bug->typeList, '', "class='form-control'");?>
-
- bug->os?>
- bug->osList, '', "class='form-control w-120px'");?>
-
-
- bug->browser?>
- bug->browserList, '', "class='form-control w-100px'");?>
-
-
- |
-
-
- | bug->project;?> |
- |
-
-
- |
-
-
- | bug->lblAssignedTo;?> |
-
-
-
- bug->allUsers, "class='btn btn-default' onclick='loadAllUsers()' data-toggle='tooltip'");?>
-
- |
-
-
-
-
- bug->deadline?>
- deadline, "class='form-control form-date'");?>
-
- |
-
-
-
- | bug->title;?> |
-
-
- |
-
-
- | bug->steps;?> |
-
- desc, "rows='10' class='form-control'");?>
- |
-
-
- | issue->resolvedBy;?> |
-
- app->user->account, "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedDate;?> |
-
-
-
-
-
- |
-
-
- |
-
-
- |
-
-bug->placeholder);
-js::set('page', 'create');
-js::set('createRelease', $lang->release->create);
-js::set('createBuild', $lang->build->create);
-js::set('refresh', $lang->refresh);
-?>
-
diff --git a/module/issue/view/cancel.html.php b/module/issue/view/cancel.html.php
deleted file mode 100644
index 7dc8853439..0000000000
--- a/module/issue/view/cancel.html.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
- * @package issue
- * @version $Id: complete.html.php 935 2010-07-06 07:49:24Z jajacn@126.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/close.html.php b/module/issue/view/close.html.php
deleted file mode 100644
index 4dc4522c2e..0000000000
--- a/module/issue/view/close.html.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
- * @package issue
- * @version $Id: complete.html.php 935 2010-07-06 07:49:24Z jajacn@126.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/confirm.html.php b/module/issue/view/confirm.html.php
deleted file mode 100644
index 7dc8853439..0000000000
--- a/module/issue/view/confirm.html.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
- * @package issue
- * @version $Id: complete.html.php 935 2010-07-06 07:49:24Z jajacn@126.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/create.html.php b/module/issue/view/create.html.php
deleted file mode 100644
index e58fc385c1..0000000000
--- a/module/issue/view/create.html.php
+++ /dev/null
@@ -1,83 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-
->
-
-
-
issue->create;?>
-
-
-
-
-
diff --git a/module/issue/view/edit.html.php b/module/issue/view/edit.html.php
deleted file mode 100644
index f62f72a1d7..0000000000
--- a/module/issue/view/edit.html.php
+++ /dev/null
@@ -1,75 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
diff --git a/module/issue/view/resolve.html.php b/module/issue/view/resolve.html.php
deleted file mode 100644
index 576ee8776c..0000000000
--- a/module/issue/view/resolve.html.php
+++ /dev/null
@@ -1,131 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-id);
-echo js::set('resolveLink', $this->createLink('issue', 'ajaxGetResolveForm'));
-;?>
-
-
-
-
- id;?>
- title'>" . $issue->title . '';?>
-
-
-
-
-
-
diff --git a/module/issue/view/resolveform.html.php b/module/issue/view/resolveform.html.php
deleted file mode 100644
index c94d9bde61..0000000000
--- a/module/issue/view/resolveform.html.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
- | issue->resolution;?> |
-
- issue->resolveMethods, 'resolved', 'class="form-control chosen" onchange="getSolutions()"');?>
- |
-
-
- | issue->resolutionComment;?> |
- |
-
-
- | issue->resolvedBy;?> |
-
- app->user->account, "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedDate;?> |
-
-
-
-
-
- |
-
-
- |
-
-
- |
-
diff --git a/module/issue/view/riskform.html.php b/module/issue/view/riskform.html.php
deleted file mode 100644
index 3223151754..0000000000
--- a/module/issue/view/riskform.html.php
+++ /dev/null
@@ -1,63 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
- | issue->resolution;?> |
-
- issue->resolveMethods, $resolution, 'class="form-control chosen" onchange="getSolutions()"');?>
- |
-
-
- | risk->name;?> |
-
- title, "class='form-control'");?>
- |
-
-
- | risk->source;?> |
-
- risk->sourceList, '', "class='form-control chosen'");?>
- |
-
-
- | risk->category;?> |
-
- risk->categoryList, '', "class='form-control chosen'");?>
- |
-
-
- | risk->strategy;?> |
-
- risk->strategyList, '', "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedBy;?> |
-
- app->user->account, "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedDate;?> |
-
-
-
-
-
- |
-
-
- |
-
-
- |
-
diff --git a/module/issue/view/storyform.html.php b/module/issue/view/storyform.html.php
deleted file mode 100644
index 4718ee93f2..0000000000
--- a/module/issue/view/storyform.html.php
+++ /dev/null
@@ -1,242 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
- | issue->resolution;?> |
-
- issue->resolveMethods, $resolution, 'class="form-control chosen" onchange="getSolutions()"');?>
- |
-
-
- | story->product;?> |
-
-
-
- session->currentProductType != 'normal' and isset($products[$productID])):?>
-
-
-
- |
-
-
- story->module;?>
- ";
- echo html::a($this->createLink('tree', 'browse', "rootID=$productID&view=bug¤tModuleID=0&branch=$branch", '', true), $lang->tree->manage, '', "class='text-primary' data-toggle='modal' data-type='iframe' data-width='90%'");
- echo ' ';
- echo html::a("javascript:void(0)", $lang->refresh, '', "class='refresh' onclick='loadProductModules($productID)'");
- echo '';
- }
- ?>
-
- |
-
-
- | story->planAB;?> |
-
-
- ";
- echo html::a($this->createLink('productplan', 'create', "productID=$productID&branch=$branch", '', true), "", '', "class='btn btn-icon' data-toggle='modal' data-type='iframe' data-width='95%' title='{$lang->productplan->create}'");
- echo ' ';
- echo "";
- echo html::a("javascript:void(0)", "", '', "class='btn btn-icon refresh' data-toggle='tooltip' title='{$lang->refresh}' onclick='loadProductPlans($productID)'");
- echo ' ';
- }
- ?>
-
- |
-
-
-
- |
-
-
-
- | story->reviewedBy;?> |
- |
- story->checkForceReview()):?>
-
-
-
-
-
- |
-
-
-
- | story->title;?> |
-
-
- |
-
-
- | story->spec;?> |
-
- desc, "rows='9' class='form-control kindeditor disabled-ie-placeholder' hidefocus='true' placeholder='" . htmlspecialchars($lang->story->specTemplate . "\n" . $lang->noticePasteImg) . "'");?>
- |
-
-
-
- | story->verify;?> |
- |
-
-
-
- | issue->resolvedBy;?> |
-
- app->user->account, "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedDate;?> |
-
-
-
-
-
- |
-
-
- |
-
-
-
- |
-
-story->module);?>
-
diff --git a/module/issue/view/taskform.html.php b/module/issue/view/taskform.html.php
deleted file mode 100644
index 15e87b9b22..0000000000
--- a/module/issue/view/taskform.html.php
+++ /dev/null
@@ -1,157 +0,0 @@
-
- * @package issue
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
- | issue->resolution;?> |
-
- issue->resolveMethods, $resolution, 'class="form-control chosen" onchange="getSolutions()"');?>
- |
-
-
- | task->project;?> |
- | | |
-
-
- | task->type;?> |
- task->typeList, $task->type, "class='form-control chosen'");?> |
-
- |
-
-
- | task->module;?> |
- module, "class='form-control chosen'");?> |
-
-
- >
-
- |
- |
-
-
- | task->assignedTo;?> |
-
-
- |
-
-
- | task->name;?> |
-
-
- |
-
-
- | task->desc;?> |
-
- desc, "rows='10' class='form-control'");?>
- |
-
-
-
-
- | task->datePlan;?> |
-
-
-
- estStarted, "class='form-control form-date' placeholder='{$lang->task->estStarted}'");?>
-
-
-
- ~
-
-
-
- deadline, "class='form-control form-date' placeholder='{$lang->task->deadline}'");?>
-
-
- |
-
-
-
- | issue->resolvedBy;?> |
-
- app->user->account, "class='form-control chosen'");?>
- |
-
-
- | issue->resolvedDate;?> |
-
-
-
-
-
- |
-
-
- |
-
-
-
- |
-
-
diff --git a/module/issue/view/view.html.php b/module/issue/view/view.html.php
deleted file mode 100644
index 8e8137d096..0000000000
--- a/module/issue/view/view.html.php
+++ /dev/null
@@ -1,170 +0,0 @@
-
- * @package issue
- * @version $Id: view.html.php 4488 2013-02-27 02:54:49Z chencongzhi520@gmail.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-session->issueList != false ? $app->session->issueList : $this->createLink('issue', 'browse');
-$createLink = $this->createLink('issue', 'create');
-
-$dateFiled = array('deadline', 'resolvedDate', 'createdDate', 'editedDate', 'activateDate', 'closedDate', 'assignedDate');
-foreach($issue as $field => $value)
-{
- if(in_array($field, $dateFiled) && strpos($value, '0000') === 0) $issue->$field = '';
-}
-?>
-
-
-
-
- {$lang->issue->create}", '', "class='btn btn-primary'");?>
-
-
-
-
-
-
-
-
issue->desc;?>
-
- desc) ? $issue->desc : '
' . $lang->noData . '
';?>
-
-
- files):?>
-
fetch('file', 'printFiles', array('files' => $issue->files, 'fieldset' => 'true'));?>
-
-
- createLink('action', 'comment', "objectType=issue&objectID=$issue->id");?>
-
-
-
-
-
";?>
- deleted):?>
- id";
- common::printIcon('issue', 'confirm', $params, $issue, 'button', 'start', '', 'iframe showinonlybody', true);
- common::printIcon('issue', 'resolve', $params, $issue, 'button', 'checked', '', 'iframe showinonlybody', true);
- common::printIcon('issue', 'assignTo', $params, $issue, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('issue', 'cancel', $params, $issue, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('issue', 'close', $params, $issue, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('issue', 'activate', $params, $issue, 'button', '', '', 'iframe showinonlybody', true);
- echo "
";
- common::printIcon('issue', 'edit', $params, $issue);
- common::printIcon('issue', 'delete', $params, $issue, 'button', 'trash', 'hiddenwin');
- ?>
-
-
-
-
-
-
-
- issue->basicInfo;?>
-
-
-
-
- | issue->id;?> |
- id;?> |
-
-
- | issue->type;?> |
- issue->typeList, $issue->type);?> |
-
-
- | issue->severity;?> |
- issue->severityList, $issue->severity);?> |
-
-
- | issue->pri;?> |
- pri;?> |
-
-
- | issue->deadline;?> |
- deadline;?> |
-
-
- | issue->resolvedDate;?> |
- resolvedDate;?> |
-
-
- | issue->owner;?> |
- owner);?> |
-
-
- | issue->assignedTo;?> |
- assignedTo);?> |
-
-
- | issue->createdBy;?> |
- createdBy);?> |
-
-
- | issue->createdDate;?> |
- createdDate;?> |
-
-
- | issue->editedBy;?> |
- editedBy);?> |
-
-
- | issue->editedDate;?> |
- editedDate;?> |
-
-
- | issue->assignedBy;?> |
- assignedBy);?> |
-
-
- | issue->assignedDate;?> |
- assignedDate;?> |
-
-
- | issue->closedDate;?> |
- closedDate;?> |
-
-
- | issue->activateBy;?> |
- activateBy);?> |
-
-
- | issue->activateDate;?> |
- activateDate;?> |
-
-
- | issue->closedBy;?> |
- closedBy);?> |
-
-
- | issue->status;?> |
- issue->statusList, $issue->status);?> |
-
-
-
-
-
-
-
-
diff --git a/module/my/view/issue.html.php b/module/my/view/issue.html.php
deleted file mode 100644
index 58944e7770..0000000000
--- a/module/my/view/issue.html.php
+++ /dev/null
@@ -1,87 +0,0 @@
-
- * @package my
- * @version $Id
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
- {$pager->recTotal}";
- if($app->rawMethod == 'work') echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->my->taskMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
- if($app->rawMethod == 'contribute')
- {
- echo html::a(inlink($app->rawMethod, "mode=$mode&type=createdBy"), "{$lang->my->taskMenu->openedByMe}" . ($type == 'createdBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'createdBy' ? ' btn-active-text' : '') . "'");
- echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
- }
- ?>
-
-
-
-
diff --git a/module/my/view/risk.html.php b/module/my/view/risk.html.php
deleted file mode 100644
index 13cb92228c..0000000000
--- a/module/my/view/risk.html.php
+++ /dev/null
@@ -1,94 +0,0 @@
-
- * @package my
- * @version $Id
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- {$pager->recTotal}";
- if($app->rawMethod == 'work') echo html::a(inlink($app->rawMethod, "mode=$mode&type=assignedTo"), "{$lang->my->taskMenu->assignedToMe}" . ($type == 'assignedTo' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'assignedTo' ? ' btn-active-text' : '') . "'");
- if($app->rawMethod == 'contribute')
- {
- echo html::a(inlink($app->rawMethod, "mode=$mode&type=createdBy"), "{$lang->my->taskMenu->openedByMe}" . ($type == 'createdBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'createdBy' ? ' btn-active-text' : '') . "'");
- echo html::a(inlink($app->rawMethod, "mode=$mode&type=closedBy"), "{$lang->my->taskMenu->closedByMe}" . ($type == 'closedBy' ? $recTotalLabel : ''), '', "class='btn btn-link" . ($type == 'closedBy' ? ' btn-active-text' : '') . "'");
- }
- ?>
-
-
-
-
diff --git a/module/program/control.php b/module/program/control.php
index dc3a3063b3..4a1117393a 100644
--- a/module/program/control.php
+++ b/module/program/control.php
@@ -968,7 +968,7 @@ class program extends control
/* Navigation stay in program when enter from program list. */
if($from == 'PRJ')
{
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
$this->lang->navGroup->program = 'project';
@@ -1115,7 +1115,7 @@ class program extends control
{
$this->app->loadLang('bug');
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
@@ -1160,7 +1160,7 @@ class program extends control
public function PRJGroup($projectID = 0, $programID = 0)
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
@@ -1217,7 +1217,7 @@ class program extends control
public function PRJManageView($groupID, $projectID, $programID)
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
@@ -1255,7 +1255,7 @@ class program extends control
public function PRJManagePriv($type = 'byGroup', $param = 0, $menu = '', $version = '')
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
@@ -1325,7 +1325,7 @@ class program extends control
public function PRJManageMembers($projectID, $dept = '')
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
@@ -1678,7 +1678,7 @@ class program extends control
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
@@ -1709,7 +1709,7 @@ class program extends control
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
@@ -1751,7 +1751,7 @@ class program extends control
if($from == 'PRJ')
{
$this->lang->navGroup->program = 'project';
- $this->lang->program->menu = $this->lang->waterfall->setMenu;
+ $this->lang->program->menu = $this->lang->scrum->setMenu;
$moduleIndex = array_search('program', $this->lang->noMenuModule);
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
}
diff --git a/module/risk/config.php b/module/risk/config.php
deleted file mode 100644
index f8ea45342e..0000000000
--- a/module/risk/config.php
+++ /dev/null
@@ -1,63 +0,0 @@
-risk->editor = new stdclass();
-$config->risk->editor->create = array('id' => 'prevention,remedy', 'tools' => 'simpleTools');
-$config->risk->editor->edit = array('id' => 'prevention,remedy,resolution', 'tools' => 'simpleTools');
-$config->risk->editor->assignto = array('id' => 'comment', 'tools' => 'simpleTools');
-$config->risk->editor->cancel = array('id' => 'comment', 'tools' => 'simpleTools');
-$config->risk->editor->close = array('id' => 'resolution', 'tools' => 'simpleTools');
-$config->risk->editor->track = array('id' => 'prevention,resolution,comment', 'tools' => 'simpleTools');
-$config->risk->editor->view = array('id' => 'lastComment', 'tools' => 'simpleTools');
-
-$config->risk->create = new stdclass();
-$config->risk->create->requiredFields = 'name';
-
-global $lang;
-$config->risk->search['module'] = 'risk';
-$config->risk->search['fields']['id'] = $lang->risk->id;
-$config->risk->search['fields']['name'] = $lang->risk->name;
-$config->risk->search['fields']['source'] = $lang->risk->source;
-$config->risk->search['fields']['category'] = $lang->risk->category;
-$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']['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;
-$config->risk->search['fields']['remedy'] = $lang->risk->remedy;
-$config->risk->search['fields']['resolution'] = $lang->risk->resolution;
-$config->risk->search['fields']['plannedClosedDate'] = $lang->risk->plannedClosedDate;
-$config->risk->search['fields']['actualClosedDate'] = $lang->risk->actualClosedDate;
-$config->risk->search['fields']['createdBy'] = $lang->risk->createdBy;
-$config->risk->search['fields']['createdDate'] = $lang->risk->createdDate;
-$config->risk->search['fields']['resolvedBy'] = $lang->risk->resolvedBy;
-$config->risk->search['fields']['activateBy'] = $lang->risk->activateBy;
-$config->risk->search['fields']['assignedTo'] = $lang->risk->assignedTo;
-$config->risk->search['fields']['cancelBy'] = $lang->risk->cancelBy;
-$config->risk->search['fields']['hangupBy'] = $lang->risk->hangupBy;
-$config->risk->search['fields']['trackedBy'] = $lang->risk->trackedBy;
-
-$config->risk->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->risk->search['params']['source'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->sourceList);
-$config->risk->search['params']['category'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->categoryList);
-$config->risk->search['params']['strategy'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->risk->strategyList);
-$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']['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' => '');
-$config->risk->search['params']['remedy'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->risk->search['params']['plannedClosedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->risk->search['params']['actualClosedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->risk->search['params']['createdBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['createdDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->risk->search['params']['resolution'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->risk->search['params']['resolvedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['activateBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['cancelBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['hangupBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->risk->search['params']['trackedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
diff --git a/module/risk/control.php b/module/risk/control.php
deleted file mode 100644
index 97e77b2109..0000000000
--- a/module/risk/control.php
+++ /dev/null
@@ -1,428 +0,0 @@
-
- * @package risk
- * @version $Id: control.php 5107 2020-09-04 09:06:12Z lyc $
- * @link http://www.zentao.net
- */
-class risk extends control
-{
- /**
- * Browse risks.
- *
- * @param string $browseType
- * @param string $param
- * @param string $orderBy
- * @param int $recTotal
- * @param int $recPerPage
- * @param int $pageID
- * @access public
- * @return void
- */
- public function browse($browseType = 'all', $param = '', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
- {
- $uri = $this->app->getURI(true);
- $this->session->set('riskList', $uri);
-
- /* Build the search form. */
- $queryID = ($browseType == 'bysearch') ? (int)$param : 0;
- $actionURL = $this->createLink('risk', 'browse', "browseType=bysearch&queryID=myQueryID");
- $this->risk->buildSearchForm($queryID, $actionURL);
-
- /* Load pager. */
- $this->app->loadClass('pager', $static = true);
- if($this->app->getViewType() == 'mhtml') $recPerPage = 10;
- $pager = pager::init($recTotal, $recPerPage, $pageID);
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->browse;
- $this->view->position[] = $this->lang->risk->browse;
- $this->view->risks = $this->risk->getList($this->session->PRJ, $browseType, $param, $orderBy, $pager);
- $this->view->browseType = $browseType;
- $this->view->param = $param;
- $this->view->orderBy = $orderBy;
- $this->view->pager = $pager;
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
-
- $this->display();
- }
-
- /**
- * Create a risk.
- *
- * @access public
- * @return void
- */
- public function create()
- {
- if($_POST)
- {
- $riskID = $this->risk->create();
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- if(!$riskID)
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $this->loadModel('action')->create('risk', $riskID, 'Opened');
- $response['locate'] = inlink('browse');
- $this->send($response);
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->create;
- $this->view->position[] = $this->lang->risk->create;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->display();
- }
-
- /**
- * Edit a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function edit($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->update($riskID);
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $this->loadModel('action');
- if(!empty($changes))
- {
- $actionID = $this->action->create('risk', $riskID, 'Edited');
- $this->action->logHistory($actionID, $changes);
- }
-
- $response['locate'] = inlink('browse');
- $this->send($response);
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->edit;
- $this->view->position[] = $this->lang->risk->edit;
-
- $this->view->risk = $this->risk->getById($riskID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->display();
- }
-
- /**
- * View a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function view($riskID)
- {
- $risk = $this->risk->getById($riskID);
- if(empty($risk)) die(js::error($this->lang->notFound) . js::locate('back'));
-
- $this->session->PRJ = $risk->PRJ;
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->view;
- $this->view->position[] = $this->lang->risk->view;
- $this->view->risk = $risk;
- $this->view->actions = $this->loadModel('action')->getList('risk', $riskID);
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
-
- $this->display();
- }
-
- /**
- * Batch create risks.
- *
- * @access public
- * @return void
- */
- public function batchCreate()
- {
- if($_POST)
- {
- $this->risk->batchCreate();
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $response['locate'] = inlink('browse');
- $this->send($response);
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->batchCreate;
- $this->view->position[] = $this->lang->risk->batchCreate;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->display();
- }
-
- /**
- * Delete a risk.
- *
- * @param int $riskID
- * @param string $confirm
- * @access public
- * @return void
- */
- public function delete($riskID, $confirm = 'no')
- {
- if($confirm == 'no')
- {
- die(js::confirm($this->lang->risk->confirmDelete, $this->createLink('risk', 'delete', "risk=$riskID&confirm=yes"), ''));
- }
- else
- {
- $this->risk->delete(TABLE_RISK, $riskID);
-
- die(js::locate(inlink('browse'), 'parent'));
- }
- }
-
- /**
- * Track a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function track($riskID)
- {
- if($_POST)
- {
- $changes = array();
- if($this->post->isChange) $changes = $this->risk->track($riskID);
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $this->loadModel('action');
- if(!empty($changes) or $_POST['comment'])
- {
- $actionID = $this->action->create('risk', $riskID, 'Tracked', $_POST['comment']);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) $this->send(array('locate' => 'parent', 'message' => $this->lang->saveSuccess, 'result' => 'success'));
- $this->send(array('locate' => inlink('browse')));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->track;
- $this->view->position[] = $this->lang->risk->track;
-
- $this->view->risk = $this->risk->getById($riskID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->display();
- }
-
- /**
- * Update assign of risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function assignTo($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->assign($riskID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('risk', $riskID, 'Assigned', $this->post->comment, $this->post->assignedTo);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) die(js::closeModal('parent.parent', 'this'));
- die(js::locate($this->createLink('risk', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->assignedTo;
- $this->view->position[] = $this->lang->risk->assignedTo;
-
- $this->view->risk = $this->risk->getById($riskID);
- $this->view->users = $this->loadModel('user')->getPairs();
- $this->display();
- }
-
-
- /**
- * Cancel a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function cancel($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->cancel($riskID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('risk', $riskID, 'Canceled', $this->post->comment);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) die(js::closeModal('parent.parent', 'this'));
- die(js::locate($this->createLink('risk', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->cancel;
- $this->view->position[] = $this->lang->risk->cancel;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->view->risk = $this->risk->getById($riskID);
- $this->display();
- }
-
- /**
- * Close a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function close($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->close($riskID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('risk', $riskID, 'Closed', $this->post->comment);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) die(js::closeModal('parent.parent', 'this'));
- die(js::locate($this->createLink('risk', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->close;
- $this->view->position[] = $this->lang->risk->close;
-
- $this->view->users = $this->loadModel('user')->getPairs();
- $this->view->risk = $this->risk->getById($riskID);
- $this->display();
- }
-
- /**
- * Hangup a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function hangup($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->hangup($riskID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('risk', $riskID, 'Hangup', $this->post->comment);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) die(js::closeModal('parent.parent', 'this'));
- die(js::locate($this->createLink('risk', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->hangup;
- $this->view->position[] = $this->lang->risk->hangup;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->view->risk = $this->risk->getById($riskID);
- $this->display();
- }
-
- /**
- * Activate a risk.
- *
- * @param int $riskID
- * @access public
- * @return void
- */
- public function activate($riskID)
- {
- if($_POST)
- {
- $changes = $this->risk->activate($riskID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('risk', $riskID, 'Activated', $this->post->comment);
- $this->action->logHistory($actionID, $changes);
- }
-
- if(isonlybody()) die(js::closeModal('parent.parent', 'this'));
- die(js::locate($this->createLink('risk', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->risk->common . $this->lang->colon . $this->lang->risk->activate;
- $this->view->position[] = $this->lang->risk->activate;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->view->risk = $this->risk->getById($riskID);
- $this->display();
- }
-
- /**
- * AJAX: return risks of a user in html select.
- *
- * @param int $userID
- * @param string $id
- * @param string $status
- * @access public
- * @return void
- */
- public function ajaxGetUserRisks($userID = '', $id = '', $status = 'all')
- {
- if($userID == '') $userID = $this->app->user->id;
- $user = $this->loadModel('user')->getById($userID, 'id');
- $account = $user->account;
-
- $risks = $this->risk->getUserRiskPairs($account, 0, $status);
-
- if($id) die(html::select("risks[$id]", $risks, '', 'class="form-control"'));
- die(html::select('risk', $risks, '', 'class=form-control'));
- }
-}
-
diff --git a/module/risk/css/common.css b/module/risk/css/common.css
deleted file mode 100644
index 69254149ea..0000000000
--- a/module/risk/css/common.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.pri-low {color: #000000;}
-.pri-middle {color: #FF9900;}
-.pri-high {color: #E53333;}
diff --git a/module/risk/js/common.js b/module/risk/js/common.js
deleted file mode 100644
index 5fcd5aeaa8..0000000000
--- a/module/risk/js/common.js
+++ /dev/null
@@ -1,32 +0,0 @@
-$(function()
-{
- $('#rate').attr('readonly', true);
- $('#pri').attr('disabled', true);
- computeIndex();
- function computeIndex()
- {
- var impact = $('#impact').val();
- var probability = $('#probability').val();
- var rate = parseInt(impact * probability);
- var pri = '';
- var priColor = '';
- if(0 < rate && rate <= 5) pri = 'low';
- if(5 < rate && rate <= 12) pri = 'middle';
- if(15 <= rate && rate <= 25) pri = 'high';
-
- if(pri == 'low') priColor = 'pri-low';
- if(pri == 'middle') priColor = 'pri-middle';
- if(pri == 'high') priColor = 'pri-high';
-
- $('#rate').val(rate);
- $('#pri').val(pri);
- $('#pri').trigger("chosen:updated")
- $('#pri').chosen();
- $('#pri').attr('disabled', true);
- $('#priValue .chosen-container-single .chosen-single>span').attr("class", priColor);
- $('input[name="pri"]').remove();
- $('#pri').after("");
- }
-
- $('#impact, #probability').change(function(){computeIndex()});
-})
diff --git a/module/risk/js/track.js b/module/risk/js/track.js
deleted file mode 100644
index ee7a922ec5..0000000000
--- a/module/risk/js/track.js
+++ /dev/null
@@ -1,14 +0,0 @@
-function refreshPage(obj)
-{
- var value = obj.value;
- if(value == 0)
- {
- $('.track').addClass('hidden');
- $('.not-track').removeClass('hidden');
- }
- else
- {
- $('.not-track').addClass('hidden');
- $('.track').removeClass('hidden');
- }
-}
diff --git a/module/risk/lang/de.php b/module/risk/lang/de.php
deleted file mode 100644
index 86afc560fa..0000000000
--- a/module/risk/lang/de.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = 'Risk';
-$lang->risk->source = 'Source';
-$lang->risk->id = 'ID';
-$lang->risk->name = 'Name';
-$lang->risk->category = 'Type';
-$lang->risk->strategy = 'Strategy';
-$lang->risk->status = 'Status';
-$lang->risk->impact = 'Impact';
-$lang->risk->probability = 'Probability';
-$lang->risk->rate = 'Risk Index';
-$lang->risk->pri = 'Priority';
-$lang->risk->prevention = 'Mitigation';
-$lang->risk->remedy = 'Contingency';
-$lang->risk->identifiedDate = 'Identified';
-$lang->risk->plannedClosedDate = 'Deadline';
-$lang->risk->assignedTo = 'AssignedTo';
-$lang->risk->assignedDate = 'AssignedDate';
-$lang->risk->createdBy = 'CreatedBy';
-$lang->risk->createdDate = 'CreatedDate';
-$lang->risk->noAssigned = 'Unassigned';
-$lang->risk->cancelBy = 'CanceledBy';
-$lang->risk->cancelDate = 'CanceledDate';
-$lang->risk->cancelReason = 'Cancel Reason';
-$lang->risk->resolvedBy = 'ResolvedBy';
-$lang->risk->closedDate = 'ClosedDate';
-$lang->risk->actualClosedDate = 'Closed Date';
-$lang->risk->resolution = 'Resolution';
-$lang->risk->hangupBy = 'SuspendedBy';
-$lang->risk->hangupDate = 'SuspendedDate';
-$lang->risk->activateBy = 'ActivatedBy';
-$lang->risk->activateDate = 'ActivatedDate';
-$lang->risk->isChange = 'Any change?';
-$lang->risk->trackedBy = 'TrackedBy';
-$lang->risk->trackedDate = 'TrackedDate';
-$lang->risk->editedBy = 'EditedBy';
-$lang->risk->editedDate = 'EditedDate';
-$lang->risk->legendBasicInfo = 'Basic Info.';
-$lang->risk->legendLifeTime = 'About Risk';
-$lang->risk->confirmDelete = 'Do you want to delelte this risk?';
-$lang->risk->deleted = 'Deleted';
-
-/* Actions */
-$lang->risk->batchCreate = 'Batch Create';
-$lang->risk->create = 'Create Risk';
-$lang->risk->edit = 'Edit Risk';
-$lang->risk->browse = 'Risks';
-$lang->risk->view = 'Details';
-$lang->risk->activate = 'Active';
-$lang->risk->hangup = 'Suspend';
-$lang->risk->close = 'Close';
-$lang->risk->cancel = 'Cancle';
-$lang->risk->track = 'Track';
-$lang->risk->assignTo = 'Assign';
-$lang->risk->delete = 'Delete';
-$lang->risk->byQuery = 'Search';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, suspended by $actor.' . "\n";
-$lang->risk->action->tracked = '$date, tracked by $actor.' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = 'Business';
-$lang->risk->sourceList['team'] = 'Project Team';
-$lang->risk->sourceList['logistic'] = 'Project Logistics';
-$lang->risk->sourceList['manage'] = 'Management';
-$lang->risk->sourceList['sourcing'] = 'Supplier-Procurement';
-$lang->risk->sourceList['outsourcing'] = 'Supplier-Outsourcing';
-$lang->risk->sourceList['customer'] = 'Customer';
-$lang->risk->sourceList['others'] = 'Other';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = 'Technology';
-$lang->risk->categoryList['manage'] = 'Management';
-$lang->risk->categoryList['business'] = 'Business';
-$lang->risk->categoryList['requirement'] = 'Requirement';
-$lang->risk->categoryList['resource'] = 'Resource';
-$lang->risk->categoryList['others'] = 'Other';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = 'High';
-$lang->risk->priList['middle'] = 'Medium';
-$lang->risk->priList['low'] = 'Low';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = 'Active';
-$lang->risk->statusList['closed'] = 'Closed';
-$lang->risk->statusList['hangup'] = 'Suspended';
-$lang->risk->statusList['canceled'] = 'Canceled';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = 'Avoidance';
-$lang->risk->strategyList['mitigation'] = 'Mitigation';
-$lang->risk->strategyList['transference'] = 'Transfer';
-$lang->risk->strategyList['acceptance'] = 'Acceptance';
-
-$lang->risk->isChangeList[0] = 'No';
-$lang->risk->isChangeList[1] = 'Yes';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = 'Dispear';
-$lang->risk->cancelReasonList['mistake'] = 'Mistake';
-
-$lang->risk->featureBar['browse']['all'] = 'All';
-$lang->risk->featureBar['browse']['active'] = 'Active';
-$lang->risk->featureBar['browse']['assignTo'] = 'AssignToMe';
-$lang->risk->featureBar['browse']['closed'] = 'Closed';
-$lang->risk->featureBar['browse']['hangup'] = 'Suspended';
-$lang->risk->featureBar['browse']['canceled'] = 'Canceled';
diff --git a/module/risk/lang/en.php b/module/risk/lang/en.php
deleted file mode 100644
index 86afc560fa..0000000000
--- a/module/risk/lang/en.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = 'Risk';
-$lang->risk->source = 'Source';
-$lang->risk->id = 'ID';
-$lang->risk->name = 'Name';
-$lang->risk->category = 'Type';
-$lang->risk->strategy = 'Strategy';
-$lang->risk->status = 'Status';
-$lang->risk->impact = 'Impact';
-$lang->risk->probability = 'Probability';
-$lang->risk->rate = 'Risk Index';
-$lang->risk->pri = 'Priority';
-$lang->risk->prevention = 'Mitigation';
-$lang->risk->remedy = 'Contingency';
-$lang->risk->identifiedDate = 'Identified';
-$lang->risk->plannedClosedDate = 'Deadline';
-$lang->risk->assignedTo = 'AssignedTo';
-$lang->risk->assignedDate = 'AssignedDate';
-$lang->risk->createdBy = 'CreatedBy';
-$lang->risk->createdDate = 'CreatedDate';
-$lang->risk->noAssigned = 'Unassigned';
-$lang->risk->cancelBy = 'CanceledBy';
-$lang->risk->cancelDate = 'CanceledDate';
-$lang->risk->cancelReason = 'Cancel Reason';
-$lang->risk->resolvedBy = 'ResolvedBy';
-$lang->risk->closedDate = 'ClosedDate';
-$lang->risk->actualClosedDate = 'Closed Date';
-$lang->risk->resolution = 'Resolution';
-$lang->risk->hangupBy = 'SuspendedBy';
-$lang->risk->hangupDate = 'SuspendedDate';
-$lang->risk->activateBy = 'ActivatedBy';
-$lang->risk->activateDate = 'ActivatedDate';
-$lang->risk->isChange = 'Any change?';
-$lang->risk->trackedBy = 'TrackedBy';
-$lang->risk->trackedDate = 'TrackedDate';
-$lang->risk->editedBy = 'EditedBy';
-$lang->risk->editedDate = 'EditedDate';
-$lang->risk->legendBasicInfo = 'Basic Info.';
-$lang->risk->legendLifeTime = 'About Risk';
-$lang->risk->confirmDelete = 'Do you want to delelte this risk?';
-$lang->risk->deleted = 'Deleted';
-
-/* Actions */
-$lang->risk->batchCreate = 'Batch Create';
-$lang->risk->create = 'Create Risk';
-$lang->risk->edit = 'Edit Risk';
-$lang->risk->browse = 'Risks';
-$lang->risk->view = 'Details';
-$lang->risk->activate = 'Active';
-$lang->risk->hangup = 'Suspend';
-$lang->risk->close = 'Close';
-$lang->risk->cancel = 'Cancle';
-$lang->risk->track = 'Track';
-$lang->risk->assignTo = 'Assign';
-$lang->risk->delete = 'Delete';
-$lang->risk->byQuery = 'Search';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, suspended by $actor.' . "\n";
-$lang->risk->action->tracked = '$date, tracked by $actor.' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = 'Business';
-$lang->risk->sourceList['team'] = 'Project Team';
-$lang->risk->sourceList['logistic'] = 'Project Logistics';
-$lang->risk->sourceList['manage'] = 'Management';
-$lang->risk->sourceList['sourcing'] = 'Supplier-Procurement';
-$lang->risk->sourceList['outsourcing'] = 'Supplier-Outsourcing';
-$lang->risk->sourceList['customer'] = 'Customer';
-$lang->risk->sourceList['others'] = 'Other';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = 'Technology';
-$lang->risk->categoryList['manage'] = 'Management';
-$lang->risk->categoryList['business'] = 'Business';
-$lang->risk->categoryList['requirement'] = 'Requirement';
-$lang->risk->categoryList['resource'] = 'Resource';
-$lang->risk->categoryList['others'] = 'Other';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = 'High';
-$lang->risk->priList['middle'] = 'Medium';
-$lang->risk->priList['low'] = 'Low';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = 'Active';
-$lang->risk->statusList['closed'] = 'Closed';
-$lang->risk->statusList['hangup'] = 'Suspended';
-$lang->risk->statusList['canceled'] = 'Canceled';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = 'Avoidance';
-$lang->risk->strategyList['mitigation'] = 'Mitigation';
-$lang->risk->strategyList['transference'] = 'Transfer';
-$lang->risk->strategyList['acceptance'] = 'Acceptance';
-
-$lang->risk->isChangeList[0] = 'No';
-$lang->risk->isChangeList[1] = 'Yes';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = 'Dispear';
-$lang->risk->cancelReasonList['mistake'] = 'Mistake';
-
-$lang->risk->featureBar['browse']['all'] = 'All';
-$lang->risk->featureBar['browse']['active'] = 'Active';
-$lang->risk->featureBar['browse']['assignTo'] = 'AssignToMe';
-$lang->risk->featureBar['browse']['closed'] = 'Closed';
-$lang->risk->featureBar['browse']['hangup'] = 'Suspended';
-$lang->risk->featureBar['browse']['canceled'] = 'Canceled';
diff --git a/module/risk/lang/fr.php b/module/risk/lang/fr.php
deleted file mode 100644
index 86afc560fa..0000000000
--- a/module/risk/lang/fr.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = 'Risk';
-$lang->risk->source = 'Source';
-$lang->risk->id = 'ID';
-$lang->risk->name = 'Name';
-$lang->risk->category = 'Type';
-$lang->risk->strategy = 'Strategy';
-$lang->risk->status = 'Status';
-$lang->risk->impact = 'Impact';
-$lang->risk->probability = 'Probability';
-$lang->risk->rate = 'Risk Index';
-$lang->risk->pri = 'Priority';
-$lang->risk->prevention = 'Mitigation';
-$lang->risk->remedy = 'Contingency';
-$lang->risk->identifiedDate = 'Identified';
-$lang->risk->plannedClosedDate = 'Deadline';
-$lang->risk->assignedTo = 'AssignedTo';
-$lang->risk->assignedDate = 'AssignedDate';
-$lang->risk->createdBy = 'CreatedBy';
-$lang->risk->createdDate = 'CreatedDate';
-$lang->risk->noAssigned = 'Unassigned';
-$lang->risk->cancelBy = 'CanceledBy';
-$lang->risk->cancelDate = 'CanceledDate';
-$lang->risk->cancelReason = 'Cancel Reason';
-$lang->risk->resolvedBy = 'ResolvedBy';
-$lang->risk->closedDate = 'ClosedDate';
-$lang->risk->actualClosedDate = 'Closed Date';
-$lang->risk->resolution = 'Resolution';
-$lang->risk->hangupBy = 'SuspendedBy';
-$lang->risk->hangupDate = 'SuspendedDate';
-$lang->risk->activateBy = 'ActivatedBy';
-$lang->risk->activateDate = 'ActivatedDate';
-$lang->risk->isChange = 'Any change?';
-$lang->risk->trackedBy = 'TrackedBy';
-$lang->risk->trackedDate = 'TrackedDate';
-$lang->risk->editedBy = 'EditedBy';
-$lang->risk->editedDate = 'EditedDate';
-$lang->risk->legendBasicInfo = 'Basic Info.';
-$lang->risk->legendLifeTime = 'About Risk';
-$lang->risk->confirmDelete = 'Do you want to delelte this risk?';
-$lang->risk->deleted = 'Deleted';
-
-/* Actions */
-$lang->risk->batchCreate = 'Batch Create';
-$lang->risk->create = 'Create Risk';
-$lang->risk->edit = 'Edit Risk';
-$lang->risk->browse = 'Risks';
-$lang->risk->view = 'Details';
-$lang->risk->activate = 'Active';
-$lang->risk->hangup = 'Suspend';
-$lang->risk->close = 'Close';
-$lang->risk->cancel = 'Cancle';
-$lang->risk->track = 'Track';
-$lang->risk->assignTo = 'Assign';
-$lang->risk->delete = 'Delete';
-$lang->risk->byQuery = 'Search';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, suspended by $actor.' . "\n";
-$lang->risk->action->tracked = '$date, tracked by $actor.' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = 'Business';
-$lang->risk->sourceList['team'] = 'Project Team';
-$lang->risk->sourceList['logistic'] = 'Project Logistics';
-$lang->risk->sourceList['manage'] = 'Management';
-$lang->risk->sourceList['sourcing'] = 'Supplier-Procurement';
-$lang->risk->sourceList['outsourcing'] = 'Supplier-Outsourcing';
-$lang->risk->sourceList['customer'] = 'Customer';
-$lang->risk->sourceList['others'] = 'Other';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = 'Technology';
-$lang->risk->categoryList['manage'] = 'Management';
-$lang->risk->categoryList['business'] = 'Business';
-$lang->risk->categoryList['requirement'] = 'Requirement';
-$lang->risk->categoryList['resource'] = 'Resource';
-$lang->risk->categoryList['others'] = 'Other';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = 'High';
-$lang->risk->priList['middle'] = 'Medium';
-$lang->risk->priList['low'] = 'Low';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = 'Active';
-$lang->risk->statusList['closed'] = 'Closed';
-$lang->risk->statusList['hangup'] = 'Suspended';
-$lang->risk->statusList['canceled'] = 'Canceled';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = 'Avoidance';
-$lang->risk->strategyList['mitigation'] = 'Mitigation';
-$lang->risk->strategyList['transference'] = 'Transfer';
-$lang->risk->strategyList['acceptance'] = 'Acceptance';
-
-$lang->risk->isChangeList[0] = 'No';
-$lang->risk->isChangeList[1] = 'Yes';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = 'Dispear';
-$lang->risk->cancelReasonList['mistake'] = 'Mistake';
-
-$lang->risk->featureBar['browse']['all'] = 'All';
-$lang->risk->featureBar['browse']['active'] = 'Active';
-$lang->risk->featureBar['browse']['assignTo'] = 'AssignToMe';
-$lang->risk->featureBar['browse']['closed'] = 'Closed';
-$lang->risk->featureBar['browse']['hangup'] = 'Suspended';
-$lang->risk->featureBar['browse']['canceled'] = 'Canceled';
diff --git a/module/risk/lang/vi.php b/module/risk/lang/vi.php
deleted file mode 100644
index 86afc560fa..0000000000
--- a/module/risk/lang/vi.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = 'Risk';
-$lang->risk->source = 'Source';
-$lang->risk->id = 'ID';
-$lang->risk->name = 'Name';
-$lang->risk->category = 'Type';
-$lang->risk->strategy = 'Strategy';
-$lang->risk->status = 'Status';
-$lang->risk->impact = 'Impact';
-$lang->risk->probability = 'Probability';
-$lang->risk->rate = 'Risk Index';
-$lang->risk->pri = 'Priority';
-$lang->risk->prevention = 'Mitigation';
-$lang->risk->remedy = 'Contingency';
-$lang->risk->identifiedDate = 'Identified';
-$lang->risk->plannedClosedDate = 'Deadline';
-$lang->risk->assignedTo = 'AssignedTo';
-$lang->risk->assignedDate = 'AssignedDate';
-$lang->risk->createdBy = 'CreatedBy';
-$lang->risk->createdDate = 'CreatedDate';
-$lang->risk->noAssigned = 'Unassigned';
-$lang->risk->cancelBy = 'CanceledBy';
-$lang->risk->cancelDate = 'CanceledDate';
-$lang->risk->cancelReason = 'Cancel Reason';
-$lang->risk->resolvedBy = 'ResolvedBy';
-$lang->risk->closedDate = 'ClosedDate';
-$lang->risk->actualClosedDate = 'Closed Date';
-$lang->risk->resolution = 'Resolution';
-$lang->risk->hangupBy = 'SuspendedBy';
-$lang->risk->hangupDate = 'SuspendedDate';
-$lang->risk->activateBy = 'ActivatedBy';
-$lang->risk->activateDate = 'ActivatedDate';
-$lang->risk->isChange = 'Any change?';
-$lang->risk->trackedBy = 'TrackedBy';
-$lang->risk->trackedDate = 'TrackedDate';
-$lang->risk->editedBy = 'EditedBy';
-$lang->risk->editedDate = 'EditedDate';
-$lang->risk->legendBasicInfo = 'Basic Info.';
-$lang->risk->legendLifeTime = 'About Risk';
-$lang->risk->confirmDelete = 'Do you want to delelte this risk?';
-$lang->risk->deleted = 'Deleted';
-
-/* Actions */
-$lang->risk->batchCreate = 'Batch Create';
-$lang->risk->create = 'Create Risk';
-$lang->risk->edit = 'Edit Risk';
-$lang->risk->browse = 'Risks';
-$lang->risk->view = 'Details';
-$lang->risk->activate = 'Active';
-$lang->risk->hangup = 'Suspend';
-$lang->risk->close = 'Close';
-$lang->risk->cancel = 'Cancle';
-$lang->risk->track = 'Track';
-$lang->risk->assignTo = 'Assign';
-$lang->risk->delete = 'Delete';
-$lang->risk->byQuery = 'Search';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, suspended by $actor.' . "\n";
-$lang->risk->action->tracked = '$date, tracked by $actor.' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = 'Business';
-$lang->risk->sourceList['team'] = 'Project Team';
-$lang->risk->sourceList['logistic'] = 'Project Logistics';
-$lang->risk->sourceList['manage'] = 'Management';
-$lang->risk->sourceList['sourcing'] = 'Supplier-Procurement';
-$lang->risk->sourceList['outsourcing'] = 'Supplier-Outsourcing';
-$lang->risk->sourceList['customer'] = 'Customer';
-$lang->risk->sourceList['others'] = 'Other';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = 'Technology';
-$lang->risk->categoryList['manage'] = 'Management';
-$lang->risk->categoryList['business'] = 'Business';
-$lang->risk->categoryList['requirement'] = 'Requirement';
-$lang->risk->categoryList['resource'] = 'Resource';
-$lang->risk->categoryList['others'] = 'Other';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = 'High';
-$lang->risk->priList['middle'] = 'Medium';
-$lang->risk->priList['low'] = 'Low';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = 'Active';
-$lang->risk->statusList['closed'] = 'Closed';
-$lang->risk->statusList['hangup'] = 'Suspended';
-$lang->risk->statusList['canceled'] = 'Canceled';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = 'Avoidance';
-$lang->risk->strategyList['mitigation'] = 'Mitigation';
-$lang->risk->strategyList['transference'] = 'Transfer';
-$lang->risk->strategyList['acceptance'] = 'Acceptance';
-
-$lang->risk->isChangeList[0] = 'No';
-$lang->risk->isChangeList[1] = 'Yes';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = 'Dispear';
-$lang->risk->cancelReasonList['mistake'] = 'Mistake';
-
-$lang->risk->featureBar['browse']['all'] = 'All';
-$lang->risk->featureBar['browse']['active'] = 'Active';
-$lang->risk->featureBar['browse']['assignTo'] = 'AssignToMe';
-$lang->risk->featureBar['browse']['closed'] = 'Closed';
-$lang->risk->featureBar['browse']['hangup'] = 'Suspended';
-$lang->risk->featureBar['browse']['canceled'] = 'Canceled';
diff --git a/module/risk/lang/zh-cn.php b/module/risk/lang/zh-cn.php
deleted file mode 100644
index 60aa443e0d..0000000000
--- a/module/risk/lang/zh-cn.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = '风险';
-$lang->risk->source = '来源';
-$lang->risk->id = '编号';
-$lang->risk->name = '风险名称';
-$lang->risk->category = '类型';
-$lang->risk->strategy = '策略';
-$lang->risk->status = '状态';
-$lang->risk->impact = '影响程度';
-$lang->risk->probability = '发生概率';
-$lang->risk->rate = '风险系数';
-$lang->risk->pri = '优先级';
-$lang->risk->prevention = '预防措施';
-$lang->risk->remedy = '应急措施';
-$lang->risk->identifiedDate = '识别日期';
-$lang->risk->plannedClosedDate = '计划关闭日期';
-$lang->risk->assignedTo = '指派给';
-$lang->risk->assignedDate = '指派日期';
-$lang->risk->createdBy = '由谁创建';
-$lang->risk->createdDate = '创建日期';
-$lang->risk->noAssigned = '未指派';
-$lang->risk->cancelBy = '由谁取消';
-$lang->risk->cancelDate = '取消日期';
-$lang->risk->cancelReason = '取消原因';
-$lang->risk->resolvedBy = '解决者';
-$lang->risk->closedDate = '关闭日期';
-$lang->risk->actualClosedDate = '实际关闭日期';
-$lang->risk->resolution = '解决措施';
-$lang->risk->hangupBy = '由谁挂起';
-$lang->risk->hangupDate = '挂起日期';
-$lang->risk->activateBy = '由谁激活';
-$lang->risk->activateDate = '激活日期';
-$lang->risk->isChange = '风险是否变化';
-$lang->risk->trackedBy = '由谁跟踪';
-$lang->risk->trackedDate = '跟踪日期';
-$lang->risk->editedBy = '由谁编辑';
-$lang->risk->editedDate = '编辑日期';
-$lang->risk->legendBasicInfo = '基本信息';
-$lang->risk->legendLifeTime = '风险的一生';
-$lang->risk->confirmDelete = '您确认删除该风险吗?';
-$lang->risk->deleted = '已删除';
-
-/* Actions */
-$lang->risk->batchCreate = '批量添加';
-$lang->risk->create = '添加风险';
-$lang->risk->edit = '编辑风险';
-$lang->risk->browse = '浏览列表';
-$lang->risk->view = '风险详情';
-$lang->risk->activate = '激活';
-$lang->risk->hangup = '挂起';
-$lang->risk->close = '关闭';
-$lang->risk->cancel = '取消';
-$lang->risk->track = '跟踪';
-$lang->risk->assignTo = '指派';
-$lang->risk->delete = '删除';
-$lang->risk->byQuery = '搜索';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, 由 $actor 挂起。' . "\n";
-$lang->risk->action->tracked = '$date, 由 $actor 跟踪。' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = '业务部门';
-$lang->risk->sourceList['team'] = '项目组';
-$lang->risk->sourceList['logistic'] = '项目保障科室';
-$lang->risk->sourceList['manage'] = '管理层';
-$lang->risk->sourceList['sourcing'] = '供应商-采购';
-$lang->risk->sourceList['outsourcing'] = '供应商-外包';
-$lang->risk->sourceList['customer'] = '外部客户';
-$lang->risk->sourceList['others'] = '其他';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = '技术类';
-$lang->risk->categoryList['manage'] = '管理类';
-$lang->risk->categoryList['business'] = '业务类';
-$lang->risk->categoryList['requirement'] = '需求类';
-$lang->risk->categoryList['resource'] = '资源类';
-$lang->risk->categoryList['others'] = '其他';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = '高';
-$lang->risk->priList['middle'] = '中';
-$lang->risk->priList['low'] = '低';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = '开放';
-$lang->risk->statusList['closed'] = '关闭';
-$lang->risk->statusList['hangup'] = '挂起';
-$lang->risk->statusList['canceled'] = '取消';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = '规避';
-$lang->risk->strategyList['mitigation'] = '缓解';
-$lang->risk->strategyList['transference'] = '转移';
-$lang->risk->strategyList['acceptance'] = '接受';
-
-$lang->risk->isChangeList[0] = '否';
-$lang->risk->isChangeList[1] = '是';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = '风险自行消失';
-$lang->risk->cancelReasonList['mistake'] = '识别错误';
-
-$lang->risk->featureBar['browse']['all'] = '所有';
-$lang->risk->featureBar['browse']['active'] = '开放';
-$lang->risk->featureBar['browse']['assignTo'] = '指派给我';
-$lang->risk->featureBar['browse']['closed'] = '已关闭';
-$lang->risk->featureBar['browse']['hangup'] = '已挂起';
-$lang->risk->featureBar['browse']['canceled'] = '已取消';
diff --git a/module/risk/lang/zh-tw.php b/module/risk/lang/zh-tw.php
deleted file mode 100644
index ce8cdc4163..0000000000
--- a/module/risk/lang/zh-tw.php
+++ /dev/null
@@ -1,121 +0,0 @@
-risk->common = '風險';
-$lang->risk->source = '來源';
-$lang->risk->id = '編號';
-$lang->risk->name = '風險名稱';
-$lang->risk->category = '類型';
-$lang->risk->strategy = '策略';
-$lang->risk->status = '狀態';
-$lang->risk->impact = '影響程度';
-$lang->risk->probability = '發生概率';
-$lang->risk->rate = '風險係數';
-$lang->risk->pri = '優先順序';
-$lang->risk->prevention = '預防措施';
-$lang->risk->remedy = '應急措施';
-$lang->risk->identifiedDate = '識別日期';
-$lang->risk->plannedClosedDate = '計劃關閉日期';
-$lang->risk->assignedTo = '指派給';
-$lang->risk->assignedDate = '指派日期';
-$lang->risk->createdBy = '由誰創建';
-$lang->risk->createdDate = '創建日期';
-$lang->risk->noAssigned = '未指派';
-$lang->risk->cancelBy = '由誰取消';
-$lang->risk->cancelDate = '取消日期';
-$lang->risk->cancelReason = '取消原因';
-$lang->risk->resolvedBy = '解決者';
-$lang->risk->closedDate = '關閉日期';
-$lang->risk->actualClosedDate = '實際關閉日期';
-$lang->risk->resolution = '解決措施';
-$lang->risk->hangupBy = '由誰掛起';
-$lang->risk->hangupDate = '掛起日期';
-$lang->risk->activateBy = '由誰激活';
-$lang->risk->activateDate = '激活日期';
-$lang->risk->isChange = '風險是否變化';
-$lang->risk->trackedBy = '由誰跟蹤';
-$lang->risk->trackedDate = '跟蹤日期';
-$lang->risk->editedBy = '由誰編輯';
-$lang->risk->editedDate = '編輯日期';
-$lang->risk->legendBasicInfo = '基本信息';
-$lang->risk->legendLifeTime = '風險的一生';
-$lang->risk->confirmDelete = '您確認刪除該風險嗎?';
-$lang->risk->deleted = '已刪除';
-
-/* Actions */
-$lang->risk->batchCreate = '批量添加';
-$lang->risk->create = '添加風險';
-$lang->risk->edit = '編輯風險';
-$lang->risk->browse = '瀏覽列表';
-$lang->risk->view = '風險詳情';
-$lang->risk->activate = '激活';
-$lang->risk->hangup = '掛起';
-$lang->risk->close = '關閉';
-$lang->risk->cancel = '取消';
-$lang->risk->track = '跟蹤';
-$lang->risk->assignTo = '指派';
-$lang->risk->delete = '刪除';
-$lang->risk->byQuery = '搜索';
-
-$lang->risk->action = new stdclass();
-$lang->risk->action->hangup = '$date, 由 $actor 掛起。' . "\n";
-$lang->risk->action->tracked = '$date, 由 $actor 跟蹤。' . "\n";
-
-$lang->risk->sourceList[''] = '';
-$lang->risk->sourceList['business'] = '業務部門';
-$lang->risk->sourceList['team'] = '項目組';
-$lang->risk->sourceList['logistic'] = '項目保障科室';
-$lang->risk->sourceList['manage'] = '管理層';
-$lang->risk->sourceList['sourcing'] = '供應商-採購';
-$lang->risk->sourceList['outsourcing'] = '供應商-外包';
-$lang->risk->sourceList['customer'] = '外部客戶';
-$lang->risk->sourceList['others'] = '其他';
-
-$lang->risk->categoryList[''] = '';
-$lang->risk->categoryList['technical'] = '技術類';
-$lang->risk->categoryList['manage'] = '管理類';
-$lang->risk->categoryList['business'] = '業務類';
-$lang->risk->categoryList['requirement'] = '需求類';
-$lang->risk->categoryList['resource'] = '資源類';
-$lang->risk->categoryList['others'] = '其他';
-
-$lang->risk->impactList[1] = 1;
-$lang->risk->impactList[2] = 2;
-$lang->risk->impactList[3] = 3;
-$lang->risk->impactList[4] = 4;
-$lang->risk->impactList[5] = 5;
-
-$lang->risk->probabilityList[1] = 1;
-$lang->risk->probabilityList[2] = 2;
-$lang->risk->probabilityList[3] = 3;
-$lang->risk->probabilityList[4] = 4;
-$lang->risk->probabilityList[5] = 5;
-
-$lang->risk->priList['high'] = '高';
-$lang->risk->priList['middle'] = '中';
-$lang->risk->priList['low'] = '低';
-
-$lang->risk->statusList[''] = '';
-$lang->risk->statusList['active'] = '開放';
-$lang->risk->statusList['closed'] = '關閉';
-$lang->risk->statusList['hangup'] = '掛起';
-$lang->risk->statusList['canceled'] = '取消';
-
-$lang->risk->strategyList[''] = '';
-$lang->risk->strategyList['avoidance'] = '規避';
-$lang->risk->strategyList['mitigation'] = '緩解';
-$lang->risk->strategyList['transference'] = '轉移';
-$lang->risk->strategyList['acceptance'] = '接受';
-
-$lang->risk->isChangeList[0] = '否';
-$lang->risk->isChangeList[1] = '是';
-
-$lang->risk->cancelReasonList[''] = '';
-$lang->risk->cancelReasonList['disappeared'] = '風險自行消失';
-$lang->risk->cancelReasonList['mistake'] = '識別錯誤';
-
-$lang->risk->featureBar['browse']['all'] = '所有';
-$lang->risk->featureBar['browse']['active'] = '開放';
-$lang->risk->featureBar['browse']['assignTo'] = '指派給我';
-$lang->risk->featureBar['browse']['closed'] = '已關閉';
-$lang->risk->featureBar['browse']['hangup'] = '已掛起';
-$lang->risk->featureBar['browse']['canceled'] = '已取消';
diff --git a/module/risk/model.php b/module/risk/model.php
deleted file mode 100644
index 4c460a02ea..0000000000
--- a/module/risk/model.php
+++ /dev/null
@@ -1,476 +0,0 @@
-
- * @package risk
- * @version $Id: model.php 5079 2020-09-04 09:08:34Z lyc $
- * @link http://www.zentao.net
- */
-?>
-add('PRJ', $this->session->PRJ)
- ->add('createdBy', $this->app->user->account)
- ->add('createdDate', helper::today())
- ->stripTags($this->config->risk->editor->create['id'], $this->config->allowedTags)
- ->remove('uid')
- ->get();
-
- $risk = $this->loadModel('file')->processImgURL($risk, $this->config->risk->editor->create['id'], $this->post->uid);
- $this->dao->insert(TABLE_RISK)->data($risk)->autoCheck()->batchCheck($this->config->risk->create->requiredFields, 'notempty')->exec();
-
- if(!dao::isError()) return $this->dao->lastInsertID();
- return false;
- }
-
- /**
- * Batch create risk.
- *
- * @access public
- * @return bool
- */
- public function batchCreate()
- {
- $data = fixer::input('post')->get();
-
- $this->loadModel('action');
- foreach($data->name as $i => $name)
- {
- if(!$name) continue;
-
- $risk = new stdclass();
- $risk->name = $name;
- $risk->source = $data->source[$i];
- $risk->category = $data->category[$i];
- $risk->strategy = $data->strategy[$i];
- $risk->PRJ = $this->session->PRJ;
- $risk->createdBy = $this->app->user->account;
- $risk->createdDate = helper::today();
-
- $this->dao->insert(TABLE_RISK)->data($risk)->autoCheck()->exec();
-
- $riskID = $this->dao->lastInsertID();
- $this->action->create('risk', $riskID, 'Opened');
- }
-
- return true;
- }
-
- /**
- * Update a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function update($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->stripTags($this->config->risk->editor->edit['id'], $this->config->allowedTags)
- ->remove('uid')
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Track a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function track($riskID)
- {
- $oldRisk = $this->dao->select('*')->from(TABLE_RISK)->where('id')->eq((int)$riskID)->fetch();
-
- $risk = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->stripTags($this->config->risk->editor->track['id'], $this->config->allowedTags)
- ->remove('isChange,comment,uid,files,label')
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Get risks List.
- *
- * @param int $projectID
- * @param string $browseType
- * @param string $param
- * @param string $orderBy
- * @param int $pager
- * @access public
- * @return object
- */
- public function getList($projectID, $browseType = '', $param = '', $orderBy = 'id_desc', $pager = null)
- {
- if($browseType == 'bysearch') return $this->getBySearch($projectID, $param, $orderBy, $pager);
-
- return $this->dao->select('*')->from(TABLE_RISK)
- ->where('deleted')->eq(0)
- ->beginIF($browseType != 'all' and $browseType != 'assignTo')->andWhere('status')->eq($browseType)->fi()
- ->beginIF($browseType == 'assignTo')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
- ->andWhere('PRJ')->eq($projectID)
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll('id');
- }
-
- /**
- * Get risks by search
- *
- * @param int $projectID
- * @param string $queryID
- * @param string $orderBy
- * @param int $pager
- * @access public
- * @return object
- */
- public function getBySearch($projectID, $queryID = '', $orderBy = 'id_desc', $pager = null)
- {
- if($queryID && $queryID != 'myQueryID')
- {
- $query = $this->loadModel('search')->getQuery($queryID);
- if($query)
- {
- $this->session->set('riskQuery', $query->sql);
- $this->session->set('riskForm', $query->form);
- }
- else
- {
- $this->session->set('riskQuery', ' 1 = 1');
- }
- }
- else
- {
- if($this->session->riskQuery == false) $this->session->set('riskQuery', ' 1 = 1');
- }
-
- $riskQuery = $this->session->riskQuery;
-
- return $this->dao->select('*')->from(TABLE_RISK)
- ->where($riskQuery)
- ->andWhere('deleted')->eq('0')
- ->andWhere('PRJ')->eq($projectID)
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll('id');
- }
-
- /**
- * Get risks of pairs
- *
- * @param int $projectID
- * @access public
- * @return object
- */
- public function getPairs($projectID)
- {
- return $this->dao->select('id, name')->from(TABLE_RISK)
- ->where('deleted')->eq(0)
- ->andWhere('PRJ')->eq($projectID)
- ->fetchPairs();
- }
-
- /**
- * Get risk by ID
- *
- * @param int $riskID
- * @access public
- * @return object
- */
- public function getByID($riskID)
- {
- return $this->dao->select('*')->from(TABLE_RISK)->where('id')->eq((int)$riskID)->fetch();
- }
-
- /**
- * Get block risks
- *
- * @param int $projectID
- * @param string $browseType
- * @param int $limit
- * @param string $orderBy
- * @access public
- * @return object
- */
- public function getBlockRisks($projectID, $browseType = 'all', $limit = 15, $orderBy = 'id_desc')
- {
- return $this->dao->select('*')->from(TABLE_RISK)
- ->where('PRJ')->eq($projectID)
- ->beginIF($browseType != 'all' and $browseType != 'assignTo')->andWhere('status')->eq($browseType)->fi()
- ->beginIF($browseType == 'assignTo')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
- ->andWhere('deleted')->eq('0')
- ->orderBy($orderBy)
- ->limit($limit)
- ->fetchAll();
- }
-
- /**
- * Get user risks.
- *
- * @param string $type open|assignto|closed|suspended|canceled
- * @param string $account
- * @param string $orderBy
- * @param object $pager
- * @access public
- * @return object
- */
- public function getUserRisks($type = 'assignedTo', $account = '', $orderBy = 'id_desc', $pager)
- {
- if(empty($account)) $account = $this->app->user->account;
-
- $riskList = $this->dao->select('*')->from(TABLE_RISK)
- ->where('deleted')->eq('0')
- ->andWhere($type)->eq($account)->fi()
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll();
-
- return $riskList;
- }
-
- /**
- * Get risk pairs of a user.
- *
- * @param string $account
- * @param int $limit
- * @param string $status all|active|closed|hangup|canceled
- * @param array $skipProjectIDList
- * @access public
- * @return array
- */
- public function getUserRiskPairs($account, $limit = 0, $status = 'all', $skipProjectIDList = array())
- {
- $stmt = $this->dao->select('t1.id, t1.name, t2.name as project')
- ->from(TABLE_RISK)->alias('t1')
- ->leftjoin(TABLE_PROJECT)->alias('t2')->on('t1.PRJ = t2.id')
- ->where('t1.assignedTo')->eq($account)
- ->andWhere('t1.deleted')->eq(0)
- ->beginIF($status != 'all')->andWhere('t1.status')->in($status)->fi()
- ->beginIF(!empty($skipProjectIDList))->andWhere('t1.PRJ')->notin($skipProjectIDList)->fi()
- ->beginIF($limit)->limit($limit)->fi()
- ->query();
-
- $risks = array();
- while($risk = $stmt->fetch())
- {
- $risks[$risk->id] = $risk->project . ' / ' . $risk->name;
- }
- return $risks;
- }
-
- /**
- * Print assignedTo html
- *
- * @param int $risk
- * @param int $users
- * @access public
- * @return string
- */
- public function printAssignedHtml($risk, $users)
- {
- $btnTextClass = '';
- $assignedToText = zget($users, $risk->assignedTo);
-
- if(empty($risk->assignedTo))
- {
- $btnTextClass = 'text-primary';
- $assignedToText = $this->lang->risk->noAssigned;
- }
- if($risk->assignedTo == $this->app->user->account) $btnTextClass = 'text-red';
-
- $btnClass = $risk->assignedTo == 'closed' ? ' disabled' : '';
- $btnClass = "iframe btn btn-icon-left btn-sm {$btnClass}";
- $assignToLink = helper::createLink('risk', 'assignTo', "riskID=$risk->id", '', true);
- $assignToHtml = html::a($assignToLink, " {$assignedToText}", '', "class='$btnClass'");
-
- echo !common::hasPriv('risk', 'assignTo', $risk) ? "{$assignedToText}" : $assignToHtml;
- }
-
- /**
- * Assign a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function assign($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->setDefault('assignedDate', helper::today())
- ->stripTags($this->config->risk->editor->assignto['id'], $this->config->allowedTags)
- ->remove('uid,comment,files,label')
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Cancel a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function cancel($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->setDefault('status','canceled')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->stripTags($this->config->risk->editor->cancel['id'], $this->config->allowedTags)
- ->remove('uid,comment')
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Close a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function close($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->setDefault('status','closed')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->add('closedBy', $this->app->user->account)
- ->add('closedDate', helper::today())
- ->add('assignedTo', 'closed')
- ->stripTags($this->config->risk->editor->close['id'], $this->config->allowedTags)
- ->remove('uid,comment')
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Hangup a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function hangup($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->setDefault('status','hangup')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Activate a risk.
- *
- * @param int $riskID
- * @access public
- * @return array|bool
- */
- public function activate($riskID)
- {
- $oldRisk = $this->getByID($riskID);
-
- $risk = fixer::input('post')
- ->setDefault('status','active')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->get();
-
- $this->dao->update(TABLE_RISK)->data($risk)->autoCheck()->where('id')->eq((int)$riskID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldRisk, $risk);
- return false;
- }
-
- /**
- * Adjust the action is clickable.
- *
- * @param int $risk
- * @param int $action
- * @static
- * @access public
- * @return bool
- */
- public static function isClickable($risk, $action)
- {
- $action = strtolower($action);
-
- if($action == 'cancel' or $action == 'close') return $risk->status != 'canceled' and $risk->status != 'closed';
- if($action == 'hangup') return $risk->status == 'active';
- if($action == 'activate') return $risk->status != 'active';
-
- return true;
- }
-
- /**
- * Build search form.
- *
- * @param int $queryID
- * @param string $actionURL
- * @access public
- * @return void
- */
- public function buildSearchForm($queryID, $actionURL)
- {
- $this->config->risk->search['actionURL'] = $actionURL;
- $this->config->risk->search['queryID'] = $queryID;
-
- $this->loadModel('search')->setSearchParams($this->config->risk->search);
- }
-}
diff --git a/module/risk/view/activate.html.php b/module/risk/view/activate.html.php
deleted file mode 100644
index 97586ed923..0000000000
--- a/module/risk/view/activate.html.php
+++ /dev/null
@@ -1,42 +0,0 @@
-
- * @package risk
- * @version $Id: activate.html.php 4903 2020-09-04 09:11:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name'>" . $risk->name . '';?>
-
-
-
-
-
-
diff --git a/module/risk/view/assignto.html.php b/module/risk/view/assignto.html.php
deleted file mode 100644
index 37cd511150..0000000000
--- a/module/risk/view/assignto.html.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
- * @package risk
- * @version $Id: assignto.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
- id;?>
- name'>" . $risk->name . '';?>
-
-
-
-
-
-
diff --git a/module/risk/view/batchcreate.html.php b/module/risk/view/batchcreate.html.php
deleted file mode 100644
index 0c10450c01..0000000000
--- a/module/risk/view/batchcreate.html.php
+++ /dev/null
@@ -1,48 +0,0 @@
-
- * @package risk
- * @version $Id: batchcreate.html.php 4903 2020-09-04 09:13:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
risk->batchCreate;?>
-
-
-
-
diff --git a/module/risk/view/browse.html.php b/module/risk/view/browse.html.php
deleted file mode 100644
index dd34da638b..0000000000
--- a/module/risk/view/browse.html.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * @package risk
- * @version $Id: browse.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
- moduleName, $this->methodName);
- foreach($menus as $menuItem)
- {
- $active = $menuItem->name == $browseType ? ' btn-active-text' : '';
- echo html::a($this->createLink('risk', 'browse', "browseType=$menuItem->name"), "
{$menuItem->text}", '', "class='btn btn-link $active'");
- }
- ?>
-
risk->byQuery;?>
-
-
- " . $lang->risk->batchCreate, '', "class='btn btn-primary'");?>
- " . $lang->risk->create, '', "class='btn btn-primary'");?>
-
-
-
-
-
-
-
- noData;?>
-
- createLink('risk', 'create'), " " . $lang->risk->create, '', "class='btn btn-info'");?>
-
-
-
-
-
- recTotal}&recPerPage={$pager->recPerPage}";?>
-
-
- | risk->id);?> |
- risk->name);?> |
- risk->strategy);?> |
- risk->status);?> |
- risk->identifiedDate);?> |
- risk->rate);?> |
- risk->pri);?> |
- risk->assignedTo);?> |
- risk->category);?> |
- actions;?> |
-
-
-
-
-
- | id;?> |
- createLink('risk', 'view', "riskID=$risk->id"), $risk->name);?> |
- risk->strategyList, $risk->strategy);?> |
- risk->statusList, $risk->status);?> |
- identifiedDate == '0000-00-00' ? '' : $risk->identifiedDate;?> |
- rate;?> |
- pri == 'middle') $priColor = 'pri-middle';
- if($risk->pri == 'high') $priColor = 'pri-high';
- ?>
- " . zget($lang->risk->priList, $risk->pri) . "";?> |
- risk->printAssignedHtml($risk, $users);;?> |
- risk->categoryList, $risk->category);?> |
-
- id";
- common::printIcon('risk', 'track', $params, $risk, "list", 'checked', '', 'iframe', true);
- common::printIcon('risk', 'close', $params, $risk, "list", '', '', 'iframe', true);
- common::printIcon('risk', 'cancel', $params, $risk, "list", '', '', 'iframe', true);
- common::printIcon('risk', 'hangup', $params, $risk, "list", 'arrow-up', '', 'iframe', true);
- common::printIcon('risk', 'activate', $params, $risk, "list", '', '', 'iframe', true);
- common::printIcon('risk', 'edit', $params, $risk, "list");
- ?>
- |
-
-
-
-
-
-
-
-
diff --git a/module/risk/view/cancel.html.php b/module/risk/view/cancel.html.php
deleted file mode 100644
index 61559973c2..0000000000
--- a/module/risk/view/cancel.html.php
+++ /dev/null
@@ -1,51 +0,0 @@
-
- * @package risk
- * @version $Id: cancel.html.php 4903 2020 09:21:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name'>" . $risk->name . '';?>
-
-
-
-
-
-
diff --git a/module/risk/view/close.html.php b/module/risk/view/close.html.php
deleted file mode 100644
index 09af49e926..0000000000
--- a/module/risk/view/close.html.php
+++ /dev/null
@@ -1,45 +0,0 @@
-
- * @package risk
- * @version $Id: close.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name'>" . $risk->name . '';?>
-
-
-
-
-
-
diff --git a/module/risk/view/create.html.php b/module/risk/view/create.html.php
deleted file mode 100644
index 26f7a1c1aa..0000000000
--- a/module/risk/view/create.html.php
+++ /dev/null
@@ -1,83 +0,0 @@
-
- * @package risk
- * @version $Id: create.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
risk->create;?>
-
-
-
-
-
diff --git a/module/risk/view/edit.html.php b/module/risk/view/edit.html.php
deleted file mode 100644
index 4adc98f8fe..0000000000
--- a/module/risk/view/edit.html.php
+++ /dev/null
@@ -1,103 +0,0 @@
-
- * @package risk
- * @version $Id: edit.html.php 4903 2020-09-04 09:32:59Z wyd621@gmail.com $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
diff --git a/module/risk/view/hangup.html.php b/module/risk/view/hangup.html.php
deleted file mode 100644
index 25df9e6dd9..0000000000
--- a/module/risk/view/hangup.html.php
+++ /dev/null
@@ -1,47 +0,0 @@
-
- * @package risk
- * @version $Id: hangup.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name'>" . $risk->name . '';?>
-
-
-
-
-
-
diff --git a/module/risk/view/track.html.php b/module/risk/view/track.html.php
deleted file mode 100644
index 8d2c2d8fa3..0000000000
--- a/module/risk/view/track.html.php
+++ /dev/null
@@ -1,86 +0,0 @@
-
- * @package risk
- * @version $Id: track.html.php 4903 2020-09-04 09:32:59Z lyc $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
diff --git a/module/risk/view/view.html.php b/module/risk/view/view.html.php
deleted file mode 100644
index f694d39de1..0000000000
--- a/module/risk/view/view.html.php
+++ /dev/null
@@ -1,219 +0,0 @@
-
- * @package view
- * @version $Id
- * @link http://www.zentao.net
- */
-?>
-
-
-session->riskList != false ? $app->session->riskList : $this->createLink('risk', 'browse');?>
-
-
-
-
-
-
-
risk->prevention;?>
-
prevention;?>
-
-
-
risk->remedy;?>
-
remedy;?>
-
-
-
risk->resolution;?>
-
resolution;?>
-
-
-
-
-
-
-
";?>
- deleted):?>
- id", $risk, "button", 'checked', '', 'iframe showinonlybody', true);
- common::printIcon('risk', 'assignTo', "riskID=$risk->id", $risk, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('risk', 'cancel', "riskID=$risk->id", $risk, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('risk', 'close', "riskID=$risk->id", $risk, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('risk', 'hangup', "riskID=$risk->id", $risk, 'button', 'arrow-up', '', 'iframe showinonlybody', true);
- common::printIcon('risk', 'activate', "riskID=$risk->id", $risk, 'button', '', '', 'iframe showinonlybody', true);
- echo "
";
- common::printIcon('risk', 'edit', "riskID=$risk->id", $risk);
- common::printIcon('risk', 'delete', "riskID=$risk->id", $risk, 'button', 'trash', 'hiddenwin');
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
- | risk->id;?> |
- id;?> |
-
-
- | risk->source;?> |
- risk->sourceList, $risk->source);?> |
-
-
- | risk->category;?> |
- risk->categoryList, $risk->category);?> |
-
-
- | risk->strategy;?> |
- risk->strategyList, $risk->strategy);?> |
-
-
- | risk->status;?> |
- processStatus('risk', $risk);?> |
-
-
- | risk->impact;?> |
- risk->impactList, $risk->impact);?> |
-
-
- | risk->probability;?> |
- risk->probabilityList, $risk->probability);?> |
-
-
- | risk->rate;?> |
- rate;?> |
-
-
- | risk->pri;?> |
- pri == 'low' ? '3' : ($risk->pri == 'middle' ? '2' : '1');?>
- ' title='risk->priList, $risk->pri)?>'>risk->priList, $risk->pri)?> |
-
-
- | risk->identifiedDate;?> |
- identifiedDate == '0000-00-00' ? '' : $risk->identifiedDate;?> |
-
-
- | risk->plannedClosedDate;?> |
- plannedClosedDate == '0000-00-00' ? '' : $risk->plannedClosedDate;?> |
-
-
- | risk->actualClosedDate;?> |
- actualClosedDate == '0000-00-00' ? '' : $risk->actualClosedDate;?> |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- | risk->assignedTo;?> |
- assignedTo);?> |
-
-
- | risk->trackedBy;?> |
- trackedBy);?> |
-
-
- | risk->trackedDate;?> |
- trackedDate == '0000-00-00' ? '' : $risk->trackedDate;?> |
-
-
- | risk->createdBy;?> |
- createdBy);?> |
-
-
- | risk->createdDate;?> |
- createdDate == '0000-00-00' ? '' : $risk->createdDate;?> |
-
-
- | risk->editedBy;?> |
- editedBy);?> |
-
-
- | risk->editedDate;?> |
- editedDate == '0000-00-00' ? '' : $risk->editedDate;?> |
-
-
- | risk->assignedDate;?> |
- assignedDate == '0000-00-00' ? '' : $risk->assignedDate;?> |
-
-
- | risk->resolvedBy;?> |
- resolvedBy);?> |
-
-
- | risk->actualClosedDate;?> |
- actualClosedDate == '0000-00-00' ? '' : $risk->actualClosedDate;?> |
-
-
- | risk->cancelBy;?> |
- cancelBy);?> |
-
-
- | risk->cancelDate;?> |
- cancelDate == '0000-00-00' ? '' : $risk->cancelDate;?> |
-
-
- | risk->cancelReason;?> |
- risk->cancelReasonList, $risk->cancelReason);?> |
-
-
- | risk->hangupBy;?> |
- hangupBy);?> |
-
-
- | risk->hangupDate;?> |
- hangupDate == '0000-00-00' ? '' : $risk->hangupDate;?> |
-
-
- | risk->activateBy;?> |
- activateBy);?> |
-
-
- | risk->activateDate;?> |
- activateDate == '0000-00-00' ? '' : $risk->activateDate;?> |
-
-
-
-
-
-
-
-
-
-
diff --git a/module/search/config.php b/module/search/config.php
index c07e5323f2..44ee1f2592 100644
--- a/module/search/config.php
+++ b/module/search/config.php
@@ -138,20 +138,6 @@ $config->search->fields->execution->content = 'code,desc';
$config->search->fields->execution->addedDate = 'openedDate';
$config->search->fields->execution->editedDate = 'lastEditedDate';
-$config->search->fields->issue = new stdclass();
-$config->search->fields->issue->id = 'id';
-$config->search->fields->issue->title = 'title';
-$config->search->fields->issue->content = 'desc';
-$config->search->fields->issue->addedDate = 'createdDate';
-$config->search->fields->issue->editedDate = 'editedDate';
-
-$config->search->fields->risk = new stdclass();
-$config->search->fields->risk->id = 'id';
-$config->search->fields->risk->title = 'name';
-$config->search->fields->risk->content = 'remedy,prevention';
-$config->search->fields->risk->addedDate = 'createdDate';
-$config->search->fields->risk->editedDate = 'editedDate';
-
/* Set the recPerPage of search. */
$config->search->recPerPage = 10;
diff --git a/module/search/lang/de.php b/module/search/lang/de.php
index c54519796a..9a77a33387 100644
--- a/module/search/lang/de.php
+++ b/module/search/lang/de.php
@@ -89,8 +89,6 @@ $lang->search->modules['program'] = 'Program';
$lang->search->modules['project'] = 'Project';
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = 'Story';
-$lang->search->modules['issue'] = 'Issue';
-$lang->search->modules['risk'] = 'Risk';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
diff --git a/module/search/lang/en.php b/module/search/lang/en.php
index 0f43c6af58..966ac0d437 100644
--- a/module/search/lang/en.php
+++ b/module/search/lang/en.php
@@ -89,8 +89,6 @@ $lang->search->modules['program'] = 'Program';
$lang->search->modules['project'] = 'Project';
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = 'Story';
-$lang->search->modules['issue'] = 'Issue';
-$lang->search->modules['risk'] = 'Risk';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
diff --git a/module/search/lang/fr.php b/module/search/lang/fr.php
index 99c6f9fd3d..ff7c7bd953 100644
--- a/module/search/lang/fr.php
+++ b/module/search/lang/fr.php
@@ -89,8 +89,6 @@ $lang->search->modules['program'] = 'Program';
$lang->search->modules['project'] = 'Project';
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = 'Story';
-$lang->search->modules['issue'] = 'Issue';
-$lang->search->modules['risk'] = 'Risk';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
diff --git a/module/search/lang/vi.php b/module/search/lang/vi.php
index 30c0ef3c75..80e5c14540 100644
--- a/module/search/lang/vi.php
+++ b/module/search/lang/vi.php
@@ -89,8 +89,6 @@ $lang->search->modules['program'] = 'Program';
$lang->search->modules['project'] = 'Project';
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = 'Story';
-$lang->search->modules['issue'] = 'Issue';
-$lang->search->modules['risk'] = 'Risk';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
diff --git a/module/search/lang/zh-cn.php b/module/search/lang/zh-cn.php
index eb60ddf544..13d19f61b9 100644
--- a/module/search/lang/zh-cn.php
+++ b/module/search/lang/zh-cn.php
@@ -89,8 +89,6 @@ $lang->search->modules['program'] = '项目集';
$lang->search->modules['project'] = '项目';
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = '需求';
-$lang->search->modules['issue'] = '问题';
-$lang->search->modules['risk'] = '风险';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
diff --git a/module/todo/control.php b/module/todo/control.php
index 7f88ecb9be..56615c8b73 100644
--- a/module/todo/control.php
+++ b/module/todo/control.php
@@ -191,8 +191,11 @@ class todo extends control
$bugs = $this->bug->getUserBugPairs($account);
$tasks = $this->task->getUserTaskPairs($account, $status);
$storys = $this->loadModel('story')->getUserStoryPairs($account);
- $issues = $this->loadModel('issue')->getUserIssuePairs($account);
- $risks = $this->loadModel('risk')->getUserRiskPairs($account);
+ if(isset($this->config->maxVersion))
+ {
+ $issues = $this->loadModel('issue')->getUserIssuePairs($account);
+ $risks = $this->loadModel('risk')->getUserRiskPairs($account);
+ }
$testtasks = $this->loadModel('testtask')->getUserTestTaskPairs($account);
$reviews = array();
@@ -213,8 +216,11 @@ class todo extends control
if($todo->type == 'story') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_STORY)->fetch('title');
if($todo->type == 'task') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_TASK)->fetch('name');
if($todo->type == 'bug') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_BUG)->fetch('title');
- if($todo->type == 'issue') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_ISSUE)->fetch('title');
- if($todo->type == 'risk') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_RISK)->fetch('name');
+ if(isset($this->config->maxVersion))
+ {
+ if($todo->type == 'issue') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_ISSUE)->fetch('title');
+ if($todo->type == 'risk') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_RISK)->fetch('name');
+ }
if($todo->type == 'review') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_REVIEW)->fetch('title');
if($todo->type == 'testtask') $todo->name = $this->dao->findById($todo->idvalue)->from(TABLE_TESTTASK)->fetch('name');
$todo->begin = $todo->begin ? str_replace(':', '', $todo->begin) : '2400';
@@ -242,8 +248,11 @@ class todo extends control
$this->view->bugs = $bugs;
$this->view->tasks = $tasks;
$this->view->storys = $storys;
- $this->view->issues = $issues;
- $this->view->risks = $risks;
+ if(isset($this->config->maxVersion))
+ {
+ $this->view->issues = $issues;
+ $this->view->risks = $risks;
+ }
$this->view->reviews = $reviews;
$this->view->testtasks = $testtasks;
$this->view->editedTodos = $editedTodos;
@@ -565,8 +574,11 @@ class todo extends control
$bugs = $this->loadModel('bug')->getUserBugPairs($account);
$stories = $this->loadModel('story')->getUserStoryPairs($account, 100, 'story');
$tasks = $this->loadModel('task')->getUserTaskPairs($account);
- $issues = $this->loadModel('issue')->getUserIssuePairs($account);
- $risks = $this->loadModel('risk')->getUserRiskPairs($account);
+ if(isset($this->config->maxVersion))
+ {
+ $issues = $this->loadModel('issue')->getUserIssuePairs($account);
+ $risks = $this->loadModel('risk')->getUserRiskPairs($account);
+ }
$testTasks = $this->loadModel('testtask')->getUserTesttaskPairs($account);
if(isset($this->config->qcVersion)) $reviews = $this->loadModel('review')->getUserReviewPairs($account, 0, 'wait');
$times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
@@ -582,8 +594,12 @@ class todo extends control
if($type == 'bug') $todo->name = isset($bugs[$todo->idvalue]) ? $bugs[$todo->idvalue] . "(#$todo->idvalue)" : '';
if($type == 'story') $todo->name = isset($stories[$todo->idvalue]) ? $stories[$todo->idvalue] . "(#$todo->idvalue)" : '';
if($type == 'task') $todo->name = isset($tasks[$todo->idvalue]) ? $tasks[$todo->idvalue] . "(#$todo->idvalue)" : '';
- if($type == 'issue') $todo->name = isset($issues[$todo->idvalue]) ? $issues[$todo->idvalue] . "(#$todo->idvalue)" : '';
- if($type == 'risk') $todo->name = isset($risks[$todo->idvalue]) ? $risks[$todo->idvalue] . "(#$todo->idvalue)" : '';
+
+ if(isset($this->config->maxVersion))
+ {
+ if($type == 'issue') $todo->name = isset($issues[$todo->idvalue]) ? $issues[$todo->idvalue] . "(#$todo->idvalue)" : '';
+ if($type == 'risk') $todo->name = isset($risks[$todo->idvalue]) ? $risks[$todo->idvalue] . "(#$todo->idvalue)" : '';
+ }
if($type == 'testtask') $todo->name = isset($testTasks[$todo->idvalue]) ? $testTasks[$todo->idvalue] . "(#$todo->idvalue)" : '';
if($type == 'review' && isset($this->config->qcVersion)) $todo->name = isset($reviews[$todo->idvalue]) ? $reviews[$todo->idvalue] . "(#$todo->idvalue)" : '';
diff --git a/module/todo/lang/de.php b/module/todo/lang/de.php
index 88c2819916..26dffdeb3c 100644
--- a/module/todo/lang/de.php
+++ b/module/todo/lang/de.php
@@ -97,8 +97,6 @@ $lang->todo->typeList['cycle'] = 'Wiederkehrend';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = 'Aufgabe';
$lang->todo->typeList['story'] = 'Story';
-$lang->todo->typeList['issue'] = 'Issue';
-$lang->todo->typeList['risk'] = 'Risk';
$lang->todo->typeList['review'] = 'Review';
$lang->todo->typeList['testtask'] = 'Testtask';
diff --git a/module/todo/lang/en.php b/module/todo/lang/en.php
index f365b70978..c1b5da7221 100644
--- a/module/todo/lang/en.php
+++ b/module/todo/lang/en.php
@@ -97,8 +97,6 @@ $lang->todo->typeList['cycle'] = 'Recur';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = 'Task';
$lang->todo->typeList['story'] = 'Story';
-$lang->todo->typeList['issue'] = 'Issue';
-$lang->todo->typeList['risk'] = 'Risk';
$lang->todo->typeList['review'] = 'Review';
$lang->todo->typeList['testtask'] = 'Testtask';
diff --git a/module/todo/lang/fr.php b/module/todo/lang/fr.php
index d0d0ed311e..89ccead940 100644
--- a/module/todo/lang/fr.php
+++ b/module/todo/lang/fr.php
@@ -97,8 +97,6 @@ $lang->todo->typeList['cycle'] = 'Récur';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = 'Tâche';
$lang->todo->typeList['story'] = 'Story';
-$lang->todo->typeList['issue'] = 'Issue';
-$lang->todo->typeList['risk'] = 'Risk';
$lang->todo->typeList['review'] = 'Review';
$lang->todo->typeList['testtask'] = 'Testtask';
diff --git a/module/todo/lang/vi.php b/module/todo/lang/vi.php
index e950d3d79a..7230793679 100644
--- a/module/todo/lang/vi.php
+++ b/module/todo/lang/vi.php
@@ -97,8 +97,6 @@ $lang->todo->typeList['cycle'] = 'Lặp lại';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = 'Nhiệm vụ';
$lang->todo->typeList['story'] = 'Câu chuyện';
-$lang->todo->typeList['issue'] = 'Issue';
-$lang->todo->typeList['risk'] = 'Risk';
$lang->todo->typeList['review'] = 'Review';
$lang->todo->typeList['testtask'] = 'Testtask';
diff --git a/module/todo/lang/zh-cn.php b/module/todo/lang/zh-cn.php
index e5fde201a7..8c4951edb2 100644
--- a/module/todo/lang/zh-cn.php
+++ b/module/todo/lang/zh-cn.php
@@ -97,8 +97,6 @@ $lang->todo->typeList['cycle'] = '周期';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = '任务';
$lang->todo->typeList['story'] = $lang->SRCommon;
-$lang->todo->typeList['issue'] = '问题';
-$lang->todo->typeList['risk'] = '风险';
$lang->todo->typeList['review'] = '评审';
$lang->todo->typeList['testtask'] = '测试单';
diff --git a/module/user/view/featurebar.html.php b/module/user/view/featurebar.html.php
index 0eaffcbe47..069a8338cc 100755
--- a/module/user/view/featurebar.html.php
+++ b/module/user/view/featurebar.html.php
@@ -40,7 +40,7 @@
$active = $methodName == 'execution' ? ' btn-active-text' : '';
common::printLink('user', 'execution', "userID={$user->id}", $label, '', "class='btn btn-link $active'");
- if($this->config->systemMode == 'new')
+ if(isset($this->config->maxVersion))
{
$label = "{$lang->user->issue}";
$active = ($methodName == 'issue' or $methodName == 'issue')? ' btn-active-text' : '';
diff --git a/module/user/view/risk.html.php b/module/user/view/risk.html.php
deleted file mode 100644
index 39b7fe58b6..0000000000
--- a/module/user/view/risk.html.php
+++ /dev/null
@@ -1,81 +0,0 @@
-
- * @package dashboard
- * @version $Id: risk.html.php 4771 2021-01-13 14:18:02Z $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
-
-
-
- id}&type=$type&orderBy=%s&recTotal=$pager->recTotal&recPerPage=$pager->recPerPage&pageID=$pager->pageID"; ?>
-
-
- | risk->id);?> |
- risk->name);?> |
- risk->strategy);?> |
- risk->status);?> |
- risk->identifiedDate);?> |
- risk->rate);?> |
- risk->pri);?> |
- risk->category);?> |
-
-
-
-
-
- | id;?> |
- createLink('risk', 'view', "riskID=$risk->id"), $risk->name, '', "data-group='project'");?> |
- risk->strategyList, $risk->strategy);?> |
- risk->statusList, $risk->status);?> |
- identifiedDate == '0000-00-00' ? '' : $risk->identifiedDate;?> |
- rate;?> |
- pri == 'middle') $priColor = 'pri-middle';
- if($risk->pri == 'high') $priColor = 'pri-high';
- ?>
- " . zget($lang->risk->priList, $risk->pri) . "";?> |
- risk->categoryList, $risk->category);?> |
-
-
-
-
-
-
-
-
-
-