diff --git a/config/zentaopms.php b/config/zentaopms.php
index 63fb73f861..5a1b7010c4 100644
--- a/config/zentaopms.php
+++ b/config/zentaopms.php
@@ -186,8 +186,6 @@ define('TABLE_REPOHISTORY', '`' . $config->db->prefix . 'repohistory`');
define('TABLE_REPOFILES', '`' . $config->db->prefix . 'repofiles`');
define('TABLE_REPOBRANCH', '`' . $config->db->prefix . 'repobranch`');
if(!defined('TABLE_LANG')) define('TABLE_LANG', '`' . $config->db->prefix . 'lang`');
-if(!defined('TABLE_DESIGN')) define('TABLE_DESIGN', '`' . $config->db->prefix . 'design`');
-if(!defined('TABLE_DESIGNSPEC')) define('TABLE_DESIGNSPEC', '`' . $config->db->prefix . 'designspec`');
if(!defined('TABLE_PROJECTSPEC')) define('TABLE_PROJECTSPEC', '`' . $config->db->prefix . 'projectspec`');
if(!defined('TABLE_SEARCHINDEX')) define('TABLE_SEARCHINDEX', $config->db->prefix . 'searchindex');
@@ -218,7 +216,6 @@ $config->objectTables['module'] = TABLE_MODULE;
$config->objectTables['caselib'] = TABLE_TESTSUITE;
$config->objectTables['entry'] = TABLE_ENTRY;
$config->objectTables['webhook'] = TABLE_WEBHOOK;
-$config->objectTables['design'] = TABLE_DESIGN;
$config->objectTables['stakeholder'] = TABLE_STAKEHOLDER;
$config->objectTables['job'] = TABLE_JOB;
diff --git a/db/update15.0.sql b/db/update15.0.sql
index 22cb22f4be..3e35881185 100644
--- a/db/update15.0.sql
+++ b/db/update15.0.sql
@@ -86,40 +86,6 @@ CREATE TABLE IF NOT EXISTS `zt_expect` (
`deleted` enum('0','1') NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_design`;
-CREATE TABLE IF NOT EXISTS `zt_design` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `PRJ` varchar(255) NOT NULL,
- `product` varchar(255) NOT NULL,
- `commit` text NOT NULL,
- `commitedBy` varchar(30) NOT NULL,
- `project` mediumint(9) NOT NULL DEFAULT '0',
- `name` varchar(255) NOT NULL,
- `status` varchar(30) NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `assignedBy` varchar(30) NOT NULL,
- `assignedDate` datetime NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- `story` char(30) NOT NULL,
- `desc` text NOT NULL,
- `version` smallint(6) NOT NULL,
- `type` char(30) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-CREATE TABLE IF NOT EXISTS `zt_designspec` (
- `design` mediumint(8) NOT NULL,
- `version` smallint(6) NOT NULL,
- `name` varchar(255) NOT NULL,
- `desc` text NOT NULL,
- `files` varchar(255) NOT NULL,
- UNIQUE KEY `design` (`design`,`version`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-- DROP TABLE IF EXISTS `zt_projectspec`;
CREATE TABLE IF NOT EXISTS `zt_projectspec` (
`project` mediumint(8) NOT NULL,
diff --git a/db/zentao.sql b/db/zentao.sql
index 6329d56e44..036c3ab7f7 100644
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -331,39 +331,6 @@ CREATE TABLE IF NOT EXISTS `zt_dept` (
KEY `parent` (`parent`),
KEY `path` (`path`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_design`;
-CREATE TABLE IF NOT EXISTS `zt_design` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `PRJ` varchar(255) NOT NULL,
- `product` varchar(255) NOT NULL,
- `commit` text NOT NULL,
- `commitedBy` varchar(30) NOT NULL,
- `project` mediumint(9) NOT NULL DEFAULT '0',
- `name` varchar(255) NOT NULL,
- `status` varchar(30) NOT NULL,
- `createdBy` varchar(30) NOT NULL,
- `createdDate` datetime NOT NULL,
- `editedBy` varchar(30) NOT NULL,
- `editedDate` datetime NOT NULL,
- `assignedTo` varchar(30) NOT NULL,
- `assignedBy` varchar(30) NOT NULL,
- `assignedDate` datetime NOT NULL,
- `deleted` enum('0','1') NOT NULL DEFAULT '0',
- `story` char(30) NOT NULL,
- `desc` text NOT NULL,
- `version` smallint(6) NOT NULL,
- `type` char(30) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- DROP TABLE IF EXISTS `zt_designspec`;
-CREATE TABLE IF NOT EXISTS `zt_designspec` (
- `design` mediumint(8) NOT NULL,
- `version` smallint(6) NOT NULL,
- `name` varchar(255) NOT NULL,
- `desc` text NOT NULL,
- `files` varchar(255) NOT NULL,
- UNIQUE KEY `design` (`design`,`version`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- DROP TABLE IF EXISTS `zt_doc`;
CREATE TABLE IF NOT EXISTS `zt_doc` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
diff --git a/framework/base/router.class.php b/framework/base/router.class.php
index a9c4c6cd0a..a7d8b1f7d7 100644
--- a/framework/base/router.class.php
+++ b/framework/base/router.class.php
@@ -846,7 +846,7 @@ class baseRouter
session_start();
/* If request header has token, use it as session for authentication. */
- $this->sessionID = $_SERVER['HTTP_TOKEN'] ? session_id($_SERVER['HTTP_TOKEN']) : session_id();
+ $this->sessionID = isset($_SERVER['HTTP_TOKEN']) ? session_id($_SERVER['HTTP_TOKEN']) : session_id();
if(isset($_GET[$this->config->sessionVar])) helper::restartSession($_GET[$this->config->sessionVar]);
diff --git a/framework/router.class.php b/framework/router.class.php
index c2f8aad0cf..aee3096281 100755
--- a/framework/router.class.php
+++ b/framework/router.class.php
@@ -193,7 +193,7 @@ class router extends baseRouter
/* Record system mode. */
$config->systemMode = $mode;
- if($config->systemMode == 'old') $this->config->executionCommonList = $this->config->projectCommonList;
+ if($config->systemMode == 'classic') $this->config->executionCommonList = $this->config->projectCommonList;
/* Record hour unit. */
$config->hourUnit = 'H';
diff --git a/module/action/model.php b/module/action/model.php
index 7ddda01bbc..6c85085eee 100755
--- a/module/action/model.php
+++ b/module/action/model.php
@@ -208,7 +208,7 @@ class actionModel extends model
*/
public function getList($objectType, $objectID)
{
- if($this->config->systemMode == 'old' and $objectType == 'execution') $objectType = 'project';
+ if($this->config->systemMode == 'classic' and $objectType == 'execution') $objectType = 'project';
$commiters = $this->loadModel('user')->getCommiters();
$actions = $this->dao->select('*')->from(TABLE_ACTION)
->beginIF($objectType == 'project')
diff --git a/module/caselib/model.php b/module/caselib/model.php
index 1398c15317..5a6f46cbc7 100644
--- a/module/caselib/model.php
+++ b/module/caselib/model.php
@@ -234,7 +234,7 @@ class caselibModel extends model
$lib = fixer::input('post')
->stripTags($this->config->caselib->editor->create['id'], $this->config->allowedTags)
->setForce('type', 'library')
- ->setIF($this->config->systemMode == 'new', 'PRJ', $this->session->PRJ)
+ ->setIF($this->config->systemMode == 'new' and $this->lang->navGroup->caselib != 'qa', 'PRJ', $this->session->PRJ)
->add('addedBy', $this->app->user->account)
->add('addedDate', helper::now())
->remove('uid')
@@ -278,7 +278,7 @@ class caselibModel extends model
{
$cases = $this->dao->select('*')->from(TABLE_CASE)
->where('lib')->eq((int)$libID)
- ->beginIF($this->lang->navGroup->caselib != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->caselib != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('product')->eq(0)
->beginIF($moduleIdList)->andWhere('module')->in($moduleIdList)->fi()
->beginIF($browseType == 'wait')->andWhere('status')->eq($browseType)->fi()
@@ -315,7 +315,7 @@ class caselibModel extends model
$cases = $this->dao->select('*')->from(TABLE_CASE)->where($caseQuery)
->beginIF($queryLibID != 'all')->andWhere('lib')->eq((int)$libID)->fi()
- ->beginIF($this->lang->navGroup->caselib != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->caselib != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('product')->eq(0)
->andWhere('deleted')->eq(0)
->orderBy($sort)->page($pager)->fetchAll();
diff --git a/module/common/lang/de.php b/module/common/lang/de.php
index 360fa4cc7f..c0b62c9fc3 100644
--- a/module/common/lang/de.php
+++ b/module/common/lang/de.php
@@ -114,8 +114,6 @@ $lang->future = 'Warte';
$lang->year = 'Jahr';
$lang->workingHour = 'Stunde';
-$lang->generalUR = 'UR/Epic';
-$lang->generalSR = 'SR/Story';
$lang->sprintCommon = $lang->iterationCommon . '/Phase';
$lang->execution = new stdclass();
@@ -650,7 +648,6 @@ $lang->navGroup->review = 'project';
$lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
-$lang->navGroup->design = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -946,7 +943,6 @@ $lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->review = new stdclass();
$lang->milestone = new stdclass();
-$lang->design = new stdclass();
$lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
@@ -956,7 +952,6 @@ $lang->projectstory = new stdclass();
$lang->review->menu = new stdclass();
$lang->milestone->menu = new stdclass();
-$lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
@@ -967,16 +962,9 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->design->menu->all = array('link' => 'All|design|browse|productID={PRODUCT}&browseType=all');
-$lang->design->menu->hlds = array('link' => 'HLDS|design|browse|productID={PRODUCT}&browseType=HLDS');
-$lang->design->menu->dds = array('link' => 'DDS|design|browse|productID={PRODUCT}&browseType=DDS');
-$lang->design->menu->dbds = array('link' => 'DBDS|design|browse|productID={PRODUCT}&browseType=DBDS');
-$lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PRODUCT}&browseType=ADS');
-$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', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
-if($config->systemMode == 'old')
+if($config->systemMode == 'classic')
{
$lang->noMenuModule[] = 'project';
$lang->noMenuModule[] = 'task';
diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index 0fa00044b6..83c54a65fc 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -114,8 +114,6 @@ $lang->future = 'Waiting';
$lang->year = 'Year';
$lang->workingHour = 'Hours';
-$lang->generalUR = 'UR/Epic';
-$lang->generalSR = 'SR/Story';
$lang->sprintCommon = $lang->iterationCommon . '/Phase';
$lang->execution = new stdclass();
@@ -650,7 +648,6 @@ $lang->navGroup->review = 'project';
$lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
-$lang->navGroup->design = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -946,7 +943,6 @@ $lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->review = new stdclass();
$lang->milestone = new stdclass();
-$lang->design = new stdclass();
$lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
@@ -956,7 +952,6 @@ $lang->projectstory = new stdclass();
$lang->review->menu = new stdclass();
$lang->milestone->menu = new stdclass();
-$lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
@@ -967,16 +962,9 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->design->menu->all = array('link' => 'All|design|browse|productID={PRODUCT}&browseType=all');
-$lang->design->menu->hlds = array('link' => 'HLDS|design|browse|productID={PRODUCT}&browseType=HLDS');
-$lang->design->menu->dds = array('link' => 'DDS|design|browse|productID={PRODUCT}&browseType=DDS');
-$lang->design->menu->dbds = array('link' => 'DBDS|design|browse|productID={PRODUCT}&browseType=DBDS');
-$lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PRODUCT}&browseType=ADS');
-$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', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
-if($config->systemMode == 'old')
+if($config->systemMode == 'classic')
{
$lang->noMenuModule[] = 'project';
$lang->noMenuModule[] = 'task';
diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php
index 9e125c202f..ab2d3ef38b 100644
--- a/module/common/lang/fr.php
+++ b/module/common/lang/fr.php
@@ -114,8 +114,6 @@ $lang->future = 'En Attente';
$lang->year = 'Année';
$lang->workingHour = 'Heures';
-$lang->generalUR = 'UR/Epic';
-$lang->generalSR = 'SR/Story';
$lang->sprintCommon = $lang->iterationCommon . '/Phase';
$lang->execution = new stdclass();
@@ -650,7 +648,6 @@ $lang->navGroup->review = 'project';
$lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
-$lang->navGroup->design = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -946,7 +943,6 @@ $lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->review = new stdclass();
$lang->milestone = new stdclass();
-$lang->design = new stdclass();
$lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
@@ -956,7 +952,6 @@ $lang->projectstory = new stdclass();
$lang->review->menu = new stdclass();
$lang->milestone->menu = new stdclass();
-$lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
@@ -967,16 +962,9 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->design->menu->all = array('link' => 'All|design|browse|productID={PRODUCT}&browseType=all');
-$lang->design->menu->hlds = array('link' => 'HLDS|design|browse|productID={PRODUCT}&browseType=HLDS');
-$lang->design->menu->dds = array('link' => 'DDS|design|browse|productID={PRODUCT}&browseType=DDS');
-$lang->design->menu->dbds = array('link' => 'DBDS|design|browse|productID={PRODUCT}&browseType=DBDS');
-$lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PRODUCT}&browseType=ADS');
-$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', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
-if($config->systemMode == 'old')
+if($config->systemMode == 'classic')
{
$lang->noMenuModule[] = 'project';
$lang->noMenuModule[] = 'task';
diff --git a/module/common/lang/menuOrder.php b/module/common/lang/menuOrder.php
index 34a78fc754..2c9ab18059 100644
--- a/module/common/lang/menuOrder.php
+++ b/module/common/lang/menuOrder.php
@@ -10,6 +10,24 @@ $lang->mainNav->menuOrder[60] = 'system';
$lang->mainNav->menuOrder[70] = 'admin';
if($config->systemMode == 'new') $lang->mainNav->menuOrder[10] = 'program';
+/* Waterfall menu order. */
+$lang->waterfall->menuOrder[5] = 'programindex';
+$lang->waterfall->menuOrder[10] = 'programplan';
+$lang->waterfall->menuOrder[15] = 'project';
+$lang->waterfall->menuOrder[20] = 'projectstory';
+$lang->waterfall->menuOrder[25] = 'design';
+$lang->waterfall->menuOrder[30] = 'ci';
+$lang->waterfall->menuOrder[35] = 'track';
+$lang->waterfall->menuOrder[38] = 'review';
+$lang->waterfall->menuOrder[39] = 'cm';
+$lang->waterfall->menuOrder[40] = 'qa';
+$lang->waterfall->menuOrder[45] = 'doc';
+$lang->waterfall->menuOrder[50] = 'projectbuild';
+$lang->waterfall->menuOrder[55] = 'projectrelease';
+$lang->waterfall->menuOrder[60] = 'weekly';
+$lang->waterfall->menuOrder[65] = 'other';
+$lang->waterfall->menuOrder[70] = 'projectsetting';
+
/* Sort of main menu. */
$lang->scrum->menuOrder[5] = 'programindex';
$lang->scrum->menuOrder[10] = 'project';
diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php
index 94461b5d60..5610bb9788 100644
--- a/module/common/lang/vi.php
+++ b/module/common/lang/vi.php
@@ -114,8 +114,6 @@ $lang->future = 'Đang đợi';
$lang->year = 'Năm';
$lang->workingHour = 'giờ';
-$lang->generalUR = 'UR/Epic';
-$lang->generalSR = 'SR/Story';
$lang->sprintCommon = $lang->iterationCommon . '/Phase';
$lang->execution = new stdclass();
@@ -650,7 +648,6 @@ $lang->navGroup->review = 'project';
$lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
-$lang->navGroup->design = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -945,7 +942,6 @@ $lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->review = new stdclass();
$lang->milestone = new stdclass();
-$lang->design = new stdclass();
$lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
@@ -955,7 +951,6 @@ $lang->projectstory = new stdclass();
$lang->review->menu = new stdclass();
$lang->milestone->menu = new stdclass();
-$lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
@@ -966,16 +961,9 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => 'Stakeholder List|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => 'Issue|stakeholder|issue|');
-$lang->design->menu->all = array('link' => 'All|design|browse|productID={PRODUCT}&browseType=all');
-$lang->design->menu->hlds = array('link' => 'HLDS|design|browse|productID={PRODUCT}&browseType=HLDS');
-$lang->design->menu->dds = array('link' => 'DDS|design|browse|productID={PRODUCT}&browseType=DDS');
-$lang->design->menu->dbds = array('link' => 'DBDS|design|browse|productID={PRODUCT}&browseType=DBDS');
-$lang->design->menu->ads = array('link' => 'ADS|design|browse|productID={PRODUCT}&browseType=ADS');
-$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', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
-if($config->systemMode == 'old')
+if($config->systemMode == 'classic')
{
$lang->noMenuModule[] = 'project';
$lang->noMenuModule[] = 'task';
diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php
index 77ce890a28..44cb83090b 100644
--- a/module/common/lang/zh-cn.php
+++ b/module/common/lang/zh-cn.php
@@ -114,8 +114,6 @@ $lang->future = '未来';
$lang->year = '年';
$lang->workingHour = '工时';
-$lang->generalUR = '用需/史诗';
-$lang->generalSR = '软需/故事';
$lang->sprintCommon = $lang->iterationCommon . '/阶段';
$lang->execution = new stdclass();
@@ -648,7 +646,6 @@ $lang->navGroup->review = 'project';
$lang->navGroup->reviewissue = 'project';
$lang->navGroup->milestone = 'project';
$lang->navGroup->pssp = 'project';
-$lang->navGroup->design = 'project';
$lang->navGroup->auditplan = 'project';
$lang->navGroup->cm = 'project';
$lang->navGroup->nc = 'project';
@@ -944,7 +941,6 @@ $lang->waterfall->setMenu = $lang->scrum->setMenu;
$lang->waterfallproduct = new stdclass();
$lang->review = new stdclass();
$lang->milestone = new stdclass();
-$lang->design = new stdclass();
$lang->auditplan = new stdclass();
$lang->cm = new stdclass();
$lang->nc = new stdclass();
@@ -954,7 +950,6 @@ $lang->projectstory = new stdclass();
$lang->review->menu = new stdclass();
$lang->milestone->menu = new stdclass();
-$lang->design->menu = new stdclass();
$lang->auditplan->menu = new stdclass();
$lang->cm->menu = new stdclass();
$lang->pssp->menu = new stdclass();
@@ -965,16 +960,9 @@ $lang->projectstory->menu = new stdclass();
$lang->stakeholder->menu->list = array('link' => '干系人列表|stakeholder|browse|', 'alias' => 'create,edit,view,batchcreate');
$lang->stakeholder->menu->issue = array('link' => '问题管理|stakeholder|issue|');
-$lang->design->menu->all = array('link' => '所有|design|browse|productID={PRODUCT}&browseType=all');
-$lang->design->menu->hlds = array('link' => '概要设计|design|browse|productID={PRODUCT}&browseType=HLDS');
-$lang->design->menu->dds = array('link' => '详细设计|design|browse|productID={PRODUCT}&browseType=DDS');
-$lang->design->menu->dbds = array('link' => '数据库设计|design|browse|productID={PRODUCT}&browseType=DBDS');
-$lang->design->menu->ads = array('link' => '接口设计|design|browse|productID={PRODUCT}&browseType=ADS');
-$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', 'pssp', 'sms', 'message', 'webhook', 'search', 'score', 'stage');
-if($config->systemMode == 'old')
+if($config->systemMode == 'classic')
{
$lang->noMenuModule[] = 'project';
$lang->noMenuModule[] = 'task';
diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php
index 3400801354..4411b9dc2b 100644
--- a/module/common/lang/zh-tw.php
+++ b/module/common/lang/zh-tw.php
@@ -114,8 +114,6 @@ $lang->future = '未來';
$lang->year = '年';
$lang->workingHour = '工時';
-$lang->generalUR = '用需/史詩';
-$lang->generalSR = '軟需/故事';
$lang->sprintCommon = '迭代/階段';
$lang->execution = new stdclass();
diff --git a/module/common/model.php b/module/common/model.php
index 58e3654100..fb9d4e769d 100644
--- a/module/common/model.php
+++ b/module/common/model.php
@@ -1169,7 +1169,7 @@ EOD;
if(strtolower($module) == 'story' and strtolower($method) == 'createcase') ($module = 'testcase') and ($method = 'create');
if(strtolower($module) == 'bug' and strtolower($method) == 'tostory') ($module = 'story') and ($method = 'create');
if(strtolower($module) == 'bug' and strtolower($method) == 'createcase') ($module = 'testcase') and ($method = 'create');
- if($config->systemMode == 'old' and strtolower($module) == 'program' and strpos($method, 'PRJ') === 0) ($module = 'project') and ($method = substr(strtolower($method), 3));
+ if($config->systemMode == 'classic' and strtolower($module) == 'program' and strpos($method, 'PRJ') === 0) ($module = 'project') and ($method = substr(strtolower($method), 3));
if(!commonModel::hasPriv($module, $method, $object)) return false;
$link = helper::createLink($module, $method, $vars, '', $onlyBody, $programID);
diff --git a/module/common/view/header.html.php b/module/common/view/header.html.php
index 768502fb3e..4f5b210944 100755
--- a/module/common/view/header.html.php
+++ b/module/common/view/header.html.php
@@ -24,7 +24,7 @@ $isQa = $rawModule == 'qa';
config->systemMode == 'new'):?>
program->switcherMenu) ? $lang->program->switcherMenu : '';?>
loadModel('program')->getPRJSwitcher($this->session->PRJ, $app->rawModule, $app->rawMethod);?>
- config->systemMode == 'old'):?>
+ config->systemMode == 'classic'):?>
project->switcherMenu) ? $lang->project->switcherMenu : '';;?>
diff --git a/module/custom/control.php b/module/custom/control.php
index e9507c383e..9ad1379ab2 100644
--- a/module/custom/control.php
+++ b/module/custom/control.php
@@ -553,7 +553,7 @@ class custom extends control
if($mode == 'new') die(js::locate($this->createLink('upgrade', 'mergeTips'), 'parent'));
}
- $mode = zget($this->config->global, 'mode', 'old');
+ $mode = zget($this->config->global, 'mode', 'classic');
if($mode == 'new')
{
if(isset($this->config->global->upgradeStep) and $this->config->global->upgradeStep == 'mergeProgram') $this->locate($this->createLink('upgrade', 'mergeProgram'));
diff --git a/module/custom/view/header.html.php b/module/custom/view/header.html.php
index 0b7a3e3da2..b15c85b196 100644
--- a/module/custom/view/header.html.php
+++ b/module/custom/view/header.html.php
@@ -12,7 +12,7 @@
{
common::printLink('custom', $sysObject, "", "{$lang->custom->$sysObject}", '', "class='btn btn-link' id='{$sysObject}Tab'");
}
- if((isset($config->systemMode) and $config->systemMode == 'old') || (isset($config->global->upgradeStep) and $config->global->upgradeStep == 'mergeProgram'))
+ if((isset($config->systemMode) and $config->systemMode == 'classic') || (isset($config->global->upgradeStep) and $config->global->upgradeStep == 'mergeProgram'))
{
common::printLink('custom', 'mode', "", "{$lang->custom->mode}", '', "class='btn btn-link' id='modeTab'");
}
diff --git a/module/datatable/config.php b/module/datatable/config.php
index f3a7990592..f5c03eb4d1 100644
--- a/module/datatable/config.php
+++ b/module/datatable/config.php
@@ -1,5 +1,4 @@
datatable->moduleAlias['product-browse'] = 'story';
-$config->datatable->moduleAlias['projectstory-story'] = 'story';
$config->datatable->moduleAlias['project-task'] = 'task';
$config->datatable->moduleAlias['testtask-cases'] = 'testcase';
diff --git a/module/design/config.php b/module/design/config.php
deleted file mode 100644
index 61486c4830..0000000000
--- a/module/design/config.php
+++ /dev/null
@@ -1,32 +0,0 @@
-design = new stdclass();
-$config->design->editor = new stdclass();
-$config->design->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->design->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
-$config->design->editor->assignto = array('id' => 'comment', 'tools' => 'simpleTools');
-
-$config->design->create = new stdclass();
-$config->design->edit = new stdclass();
-$config->design->create->requiredFields = 'name,type';
-$config->design->edit->requiredFields = 'name,type';
-
-$config->design->affectedFixedNum = 7;
-
-global $lang;
-$config->design->search['module'] = 'design';
-$config->design->search['fields']['id'] = $lang->design->id;
-$config->design->search['fields']['type'] = $lang->design->type;
-$config->design->search['fields']['name'] = $lang->design->name;
-$config->design->search['fields']['commit'] = $lang->design->submission;
-$config->design->search['fields']['createdBy'] = $lang->design->createdBy;
-$config->design->search['fields']['createdDate'] = $lang->design->createdDate;
-$config->design->search['fields']['assignedTo'] = $lang->design->assignedTo;
-$config->design->search['fields']['story'] = $lang->design->story;
-
-$config->design->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->design->typeList);
-$config->design->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->design->search['params']['commit'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
-$config->design->search['params']['createdBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->design->search['params']['createdDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
-$config->design->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
-$config->design->search['params']['story'] = array('operator' => '=', 'control' => 'select', 'values' => '');
diff --git a/module/design/control.php b/module/design/control.php
deleted file mode 100644
index ecc5aee1e9..0000000000
--- a/module/design/control.php
+++ /dev/null
@@ -1,433 +0,0 @@
-
- * @package design
- * @version $Id: control.php 5107 2020-09-02 09:46:12Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-class design extends control
-{
- public $products = array();
-
- /**
- * Construct function, load module auto.
- *
- * @param string $moduleName
- * @param string $methodName
- * @access public
- * @return void
- */
- public function __construct($moduleName = '', $methodName = '')
- {
- parent::__construct($moduleName, $methodName);
- $products = array();
- $this->loadModel('product');
- $this->loadModel('task');
- $this->view->products = $this->products = $this->product->getProductPairsByProject($this->session->PRJ);
- }
-
- /**
- * Browse designs.
- *
- * @param int $productID
- * @param string $type all|bySearch|HLDS|DDS|DBDS|ADS
- * @param string $param
- * @param string $orderBy
- * @param int $recTotal
- * @param int $recPerPage
- * @param int $pageID
- * @access public
- * @return void
- */
- public function browse($productID = 0, $type = 'all', $param = '', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
- {
- /* Save session for design list and process product id. */
- $this->session->set('designList', $this->app->getURI(true));
- $productKeys = array_keys($this->products);
- if(!in_array($productID, $productKeys)) $productID = key($this->products);
- $this->design->setProductMenu($productID);
-
- /* Build the search form. */
- $queryID = ($type == 'bySearch') ? (int)$param : 0;
- $actionURL = $this->createLink('design', 'browse', "productID=$productID&type=bySearch&queryID=myQueryID");
- $this->design->buildSearchForm($queryID, $actionURL);
-
- /* Print top and right actions. */
- $this->lang->TRActions = '
';
- $this->lang->TRActions .= "';
- $this->lang->TRActions .= "';
- $this->lang->TRActions .= '
';
-
- /* Init pager and get designs. */
- $this->app->loadClass('pager', $static = true);
- $pager = pager::init(0, $recPerPage, $pageID);
- $designs = $this->design->getList($this->session->PRJ, $productID, $type, $queryID, $orderBy, $pager);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->browse;
- $this->view->position[] = $this->lang->design->browse;
-
- $this->view->designs = $designs;
- $this->view->type = $type;
- $this->view->param = $param;
- $this->view->orderBy = $orderBy;
- $this->view->productID = $productID;
- $this->view->pager = $pager;
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
-
- $this->display();
- }
-
- /**
- * Create a design.
- *
- * @param int $productID
- * @access public
- * @return void
- */
- public function create($productID = 0)
- {
- if($_POST)
- {
- $designID = $this->design->create();
-
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $this->loadModel('action')->create('design', $designID, 'created');
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- $response['locate'] = $this->createLink('design', 'browse', "productID={$this->post->product}");
- $this->send($response);
- }
-
- array_push($this->lang->noMenuModule, 'design');
- $this->design->setProductMenu($productID);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->create;
- $this->view->position[] = $this->lang->design->create;
-
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
- $this->view->stories = $this->loadModel('story')->getProductStoryPairs($productID);
- $this->view->productID = $productID;
- $this->view->project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
-
- $this->display();
- }
-
- /**
- * Batch create designs.
- *
- * @param int $productID
- * @access public
- * @return void
- */
- public function batchCreate($productID = 0)
- {
- if($_POST)
- {
- $this->design->batchCreate($productID);
-
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- $response['locate'] = inlink('browse', "productID=$productID");
-
- $this->send($response);
- }
- $this->design->setProductMenu($productID);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->batchCreate;
- $this->view->position[] = $this->lang->design->batchCreate;
-
- $this->view->stories = $this->loadModel('story')->getProductStoryPairs($productID);
- $this->view->users = $this->loadModel('user')->getPairs('noclosed');
-
- $this->display();
- }
-
- /**
- * View a design.
- *
- * @param int $designID
- * @access public
- * @return void
- */
- public function view($designID = 0)
- {
- $design = $this->design->getById($designID);
- $this->design->setProductMenu($design->product);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->view;
- $this->view->position[] = $this->lang->design->view;
-
- $this->view->design = $design;
- $this->view->stories = $this->loadModel('story')->getProductStoryPairs($design->product);
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
- $this->view->actions = $this->loadModel('action')->getList('design', $design->id);
-
- $this->display();
- }
-
- /**
- * Edit a design.
- *
- * @param int $designID
- * @access public
- * @return void
- */
- public function edit($designID = 0)
- {
- $design = $this->design->getByID($designID);
- $design = $this->design->getAffectedScope($design);
- $this->design->setProductMenu($design->product);
-
- if($_POST)
- {
- $changes = $this->design->update($designID);
-
- if(dao::isError())
- {
- $response['result'] = 'fail';
- $response['message'] = dao::getError();
- $this->send($response);
- }
-
- if(!empty($changes))
- {
- $actionID = $this->loadModel('action')->create('design', $designID, 'changed');
- $this->action->logHistory($actionID, $changes);
- }
-
- $response['result'] = 'success';
- $response['message'] = $this->lang->saveSuccess;
- $response['locate'] = $this->createLink('design', 'view', "id=$design->id");
- $this->send($response);
- }
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->edit;
- $this->view->position[] = $this->lang->design->edit;
-
- $this->view->design = $design;
- $this->view->project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
- $this->view->stories = $this->loadModel('story')->getProductStoryPairs($design->product);
-
- $this->display();
- }
-
- /**
- * Design link commits.
- *
- * @param int $designID
- * @param int $repoID
- * @param string $begin
- * @param string $end
- * @param int $recTotal
- * @param int $recPerPage
- * @param int $pageID
- * @access public
- * @return void
- */
- public function linkCommit($designID = 0, $repoID = 0, $begin = '', $end = '', $recTotal = 0, $recPerPage = 50, $pageID = 1)
- {
- $design = $this->design->getById($designID);
- $this->design->setProductMenu($design->product);
-
- /* Get project and date. */
- $project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
- $begin = $begin ? date('Y-m-d', strtotime($begin)) : $project->begin;
- $end = $end ? date('Y-m-d', strtotime($end)) : helper::today();
-
- /* Get the repository information through the repoID. */
- $repos = $this->loadModel('repo')->getRepoPairs($this->session->PRJ);
- $repoID = $repoID ? $repoID : key($repos);
-
- if(empty($repoID)) die(js::locate(helper::createLink('repo', 'create')));
-
- $repo = $this->loadModel('repo')->getRepoByID($repoID);
- $revisions = $this->repo->getCommits($repo, '', 'HEAD', '', '', $begin, $end);
-
- if($_POST)
- {
- $this->design->linkCommit($designID, $repoID);
-
- $result['result'] = 'success';
- $result['message'] = $this->lang->saveSuccess;
- $result['locate'] = 'parent';
- $this->send($result);
- }
-
- /* Linked submission. */
- $linkedRevisions = array();
- $relations = $this->loadModel('common')->getRelations('design', $designID, 'commit');
- foreach($relations as $relation) $linkedRevisions[$relation->BID] = $relation->BID;
-
- foreach($revisions as $id => $commit)
- {
- if(isset($linkedRevisions[$commit->id])) unset($revisions[$id]);
- }
-
- /* Init pager. */
- $this->app->loadClass('pager', $static = true);
- $recTotal = count($revisions);
- $pager = new pager($recTotal, $recPerPage, $pageID);
- $revisions = array_chunk($revisions, $pager->recPerPage);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->linkCommit;
- $this->view->position[] = $this->lang->design->linkCommit;
-
- $this->view->repos = $repos;
- $this->view->repoID = $repoID;
- $this->view->repo = $repo;
- $this->view->revisions = empty($revisions) ? $revisions : $revisions[$pageID - 1];
- $this->view->designID = $designID;
- $this->view->begin = $begin;
- $this->view->end = $end;
- $this->view->design = $this->design->getByID($designID);
- $this->view->pager = $pager;
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
-
- $this->display();
- }
-
- /**
- * Design unlink commits.
- *
- * @param int $designID
- * @param int $commitID
- * @param string $confirm
- * @access public
- * @return void
- */
- public function unlinkCommit($designID = 0, $commitID = 0, $confirm = 'no')
- {
- if($confirm == 'no')
- {
- die(js::confirm($this->lang->design->confirmUnlink, inlink('unlinkCommit', "designID=$designID&commitID=$commitID&confirm=yes")));
- }
- else
- {
- $this->design->unlinkCommit($designID, $commitID);
-
- die(js::reload('parent'));
- }
- }
-
- /**
- * View a design's commit.
- *
- * @param int $designID
- * @param int $recTotal
- * @param int $recPerPage
- * @param int $pageID
- * @access public
- * @return void
- */
- public function viewCommit($designID = 0, $recTotal = 0, $recPerPage = 20, $pageID = 1)
- {
- /* Init pager. */
- $this->app->loadClass('pager', $static = true);
- $pager = pager::init(0, $recPerPage, $pageID);
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->submission;
- $this->view->position[] = $this->lang->design->submission;
-
- $this->view->design = $this->design->getCommit($designID, $pager);
- $this->view->pager = $pager;
- $this->view->users = $this->loadModel('user')->getPairs('noletter');
-
- $this->display();
- }
-
- /**
- * A version of the repository.
- *
- * @param int $repoID
- * @access public
- * @return void
- */
- public function revision($repoID = 0)
- {
- $repo = $this->dao->select('*')->from(TABLE_REPOHISTORY)->where('id')->eq($repoID)->fetch();
- $repoURL = $this->createLink('repo', 'revision', "repoID=$repo->repo&revistion=$repo->revision");
- header("location:" . $repoURL);
- }
-
- /**
- * Delete a design.
- *
- * @param int $designID
- * @param string $confirm
- * @access public
- * @return void
- */
- public function delete($designID = 0, $confirm = 'no')
- {
- if($confirm == 'no')
- {
- die(js::confirm($this->lang->design->confirmDelete, inlink('delete', "designID=$designID&confirm=yes")));
- }
- else
- {
- $this->design->delete(TABLE_DESIGN, $designID);
- $this->dao->delete()->from(TABLE_RELATION)->where('Atype')->eq('design')->andWhere('AID')->eq($designID)->andWhere('Btype')->eq('commit')->andwhere('relation')->eq('completedin')->exec();
- $this->dao->delete()->from(TABLE_RELATION)->where('Atype')->eq('commit')->andWhere('BID')->eq($designID)->andWhere('Btype')->eq('design')->andwhere('relation')->eq('completedfrom')->exec();
-
- die(js::locate($this->session->designList, 'parent'));
- }
- }
-
- /**
- * Update assign of design.
- *
- * @param int $designID
- * @access public
- * @return void
- */
- public function assignTo($designID = 0)
- {
- if($_POST)
- {
- $changes = $this->design->assign($designID);
- if(dao::isError()) die(js::error(dao::getError()));
-
- $this->loadModel('action');
- if(!empty($changes))
- {
- $actionID = $this->action->create('design', $designID, '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('design', 'browse'), 'parent'));
- }
-
- $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->assignedTo;
- $this->view->position[] = $this->lang->design->assignedTo;
-
- $this->view->design = $this->design->getById($designID);
- $this->view->users = $this->loadModel('user')->getPairs();
- $this->display();
- }
-}
diff --git a/module/design/css/browse.css b/module/design/css/browse.css
deleted file mode 100644
index b3ee542a8e..0000000000
--- a/module/design/css/browse.css
+++ /dev/null
@@ -1,3 +0,0 @@
-#featurebar {display:inline-block;}
-#querybox #searchform {border-bottom: 1px solid #ddd; margin-bottom: 20px;}
-#designTable td {white-space:nowrap; text-overflow:ellipsis; overflow: hidden}
diff --git a/module/design/css/edit.css b/module/design/css/edit.css
deleted file mode 100644
index 98893529a9..0000000000
--- a/module/design/css/edit.css
+++ /dev/null
@@ -1 +0,0 @@
-.tabs .tab-pane .table{border: 1px solid #ddd; border-top: none}
diff --git a/module/design/css/linkcommit.css b/module/design/css/linkcommit.css
deleted file mode 100644
index d1a2a856a5..0000000000
--- a/module/design/css/linkcommit.css
+++ /dev/null
@@ -1,8 +0,0 @@
-#mainContent {min-height: 350px;}
-.searchBox{min-height: 45px;}
-.searchBox .srearch-date{float: left; width: 20%}
-.searchBox h4{float:left;display: inline-block}
-.searchBox span{float:left;line-height:30px}
-#logForm .table thead th{background: #efefef}
-#begin{margin-right:5px}
-#end{margin-left:5px}
diff --git a/module/design/js/browse.js b/module/design/js/browse.js
deleted file mode 100644
index 67aeb16078..0000000000
--- a/module/design/js/browse.js
+++ /dev/null
@@ -1,5 +0,0 @@
-$(function()
-{
- $('#subNavbar .nav li').removeClass('active');
- $('#subNavbar .nav li[data-id=' + type + ']').addClass('active');
-})
diff --git a/module/design/js/common.js b/module/design/js/common.js
deleted file mode 100644
index 228284b775..0000000000
--- a/module/design/js/common.js
+++ /dev/null
@@ -1,16 +0,0 @@
-$(document).on('click', '.ajaxPager', function()
-{
- $('#logBox').load($(this).attr('href'));
- return false;
-})
-$('#product').change(function()
-{
- productID = $(this).val();
- var link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID);
- $.post(link, function(data)
- {
- $('#story').replaceWith(data);
- $('#story_chosen').remove();
- $('#story').chosen();
- })
-})
diff --git a/module/design/js/linkcommit.js b/module/design/js/linkcommit.js
deleted file mode 100644
index 66527962f7..0000000000
--- a/module/design/js/linkcommit.js
+++ /dev/null
@@ -1,28 +0,0 @@
-$('#begin, #end, #repo').change(function()
-{
- var begin = $('#begin').val();
- var end = $('#end').val();
- var repo = $('#repo').val();
-
- if(begin.indexOf('-') != -1)
- {
- var beginarray = begin.split("-");
- var begin = '';
- for(i = 0; i < beginarray.length; i++) begin = begin + beginarray[i];
- }
- if(end.indexOf('-') != -1)
- {
- var endarray = end.split("-");
- var end = '';
- for(i = 0 ; i < endarray.length ; i++) end = end + endarray[i];
- }
-
- if(begin > end)
- {
- alert(errorDate);
- location.href = createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repo);
- die;
- }
-
- location.href = createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repo + '&begin=' + begin + '&end=' + end);
-})
diff --git a/module/design/lang/de.php b/module/design/lang/de.php
deleted file mode 100644
index 27564bc73a..0000000000
--- a/module/design/lang/de.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: en.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 字段列表. */
-$lang->design->id = 'ID';
-$lang->design->name = 'Name';
-$lang->design->story = 'Story';
-$lang->design->type = 'Type';
-$lang->design->ditto = 'Ditto';
-$lang->design->submission = 'Commit';
-$lang->design->version = 'Revision';
-$lang->design->assignedTo = 'AssignedTo';
-$lang->design->actions = 'Actions';
-$lang->design->byQuery = 'Search';
-$lang->design->products = 'Linked Product';
-$lang->design->story = 'Linked Story';
-$lang->design->file = 'File';
-$lang->design->desc = 'Description';
-$lang->design->range = 'Impact';
-$lang->design->product = 'Linked Product';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->commitBy = 'Commit By';
-$lang->design->commitDate = 'Committed Date';
-$lang->design->affectedStory = "{$lang->SRCommon}";
-$lang->design->affectedTasks = 'Task';
-$lang->design->reviewObject = 'Review Object';
-$lang->design->createdBy = 'CreatedBy';
-$lang->design->createdDate = 'CreatedDate';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->noAssigned = 'Unassigned';
-$lang->design->comment = 'Comment';
-
-/* 动作列表. */
-$lang->design->common = 'Design';
-$lang->design->create = 'Create Design';
-$lang->design->batchCreate = 'Batch Create';
-$lang->design->edit = 'Edit';
-$lang->design->delete = 'Delete';
-$lang->design->view = 'View';
-$lang->design->browse = 'List';
-$lang->design->viewCommit = 'View Commit';
-$lang->design->linkCommit = 'Link Commit';
-$lang->design->unlinkCommit = 'Unlink Commit';
-$lang->design->submit = 'Submit Review';
-$lang->design->assignTo = 'Assign';
-$lang->design->revision = 'Linked Code';
-
-/* 字段取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = 'High-Level';
-$lang->design->typeList['DDS'] = 'Detailed';
-$lang->design->typeList['DBDS'] = 'Database';
-$lang->design->typeList['ADS'] = 'API';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = 'All';
-$lang->design->rangeList['assign'] = 'Selected';
-
-$lang->design->featureBar['all'] = 'All';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = 'No record selected!';
-$lang->design->noDesign = 'No record.';
-$lang->design->noCommit = 'No record commited.';
-$lang->design->confirmDelete = 'Do you want to delete this design?';
-$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
-$lang->design->errorDate = 'The start date can not be greater than the end date.';
-$lang->design->deleted = 'Deleted';
diff --git a/module/design/lang/en.php b/module/design/lang/en.php
deleted file mode 100644
index 27564bc73a..0000000000
--- a/module/design/lang/en.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: en.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 字段列表. */
-$lang->design->id = 'ID';
-$lang->design->name = 'Name';
-$lang->design->story = 'Story';
-$lang->design->type = 'Type';
-$lang->design->ditto = 'Ditto';
-$lang->design->submission = 'Commit';
-$lang->design->version = 'Revision';
-$lang->design->assignedTo = 'AssignedTo';
-$lang->design->actions = 'Actions';
-$lang->design->byQuery = 'Search';
-$lang->design->products = 'Linked Product';
-$lang->design->story = 'Linked Story';
-$lang->design->file = 'File';
-$lang->design->desc = 'Description';
-$lang->design->range = 'Impact';
-$lang->design->product = 'Linked Product';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->commitBy = 'Commit By';
-$lang->design->commitDate = 'Committed Date';
-$lang->design->affectedStory = "{$lang->SRCommon}";
-$lang->design->affectedTasks = 'Task';
-$lang->design->reviewObject = 'Review Object';
-$lang->design->createdBy = 'CreatedBy';
-$lang->design->createdDate = 'CreatedDate';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->noAssigned = 'Unassigned';
-$lang->design->comment = 'Comment';
-
-/* 动作列表. */
-$lang->design->common = 'Design';
-$lang->design->create = 'Create Design';
-$lang->design->batchCreate = 'Batch Create';
-$lang->design->edit = 'Edit';
-$lang->design->delete = 'Delete';
-$lang->design->view = 'View';
-$lang->design->browse = 'List';
-$lang->design->viewCommit = 'View Commit';
-$lang->design->linkCommit = 'Link Commit';
-$lang->design->unlinkCommit = 'Unlink Commit';
-$lang->design->submit = 'Submit Review';
-$lang->design->assignTo = 'Assign';
-$lang->design->revision = 'Linked Code';
-
-/* 字段取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = 'High-Level';
-$lang->design->typeList['DDS'] = 'Detailed';
-$lang->design->typeList['DBDS'] = 'Database';
-$lang->design->typeList['ADS'] = 'API';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = 'All';
-$lang->design->rangeList['assign'] = 'Selected';
-
-$lang->design->featureBar['all'] = 'All';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = 'No record selected!';
-$lang->design->noDesign = 'No record.';
-$lang->design->noCommit = 'No record commited.';
-$lang->design->confirmDelete = 'Do you want to delete this design?';
-$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
-$lang->design->errorDate = 'The start date can not be greater than the end date.';
-$lang->design->deleted = 'Deleted';
diff --git a/module/design/lang/fr.php b/module/design/lang/fr.php
deleted file mode 100644
index 27564bc73a..0000000000
--- a/module/design/lang/fr.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: en.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 字段列表. */
-$lang->design->id = 'ID';
-$lang->design->name = 'Name';
-$lang->design->story = 'Story';
-$lang->design->type = 'Type';
-$lang->design->ditto = 'Ditto';
-$lang->design->submission = 'Commit';
-$lang->design->version = 'Revision';
-$lang->design->assignedTo = 'AssignedTo';
-$lang->design->actions = 'Actions';
-$lang->design->byQuery = 'Search';
-$lang->design->products = 'Linked Product';
-$lang->design->story = 'Linked Story';
-$lang->design->file = 'File';
-$lang->design->desc = 'Description';
-$lang->design->range = 'Impact';
-$lang->design->product = 'Linked Product';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->commitBy = 'Commit By';
-$lang->design->commitDate = 'Committed Date';
-$lang->design->affectedStory = "{$lang->SRCommon}";
-$lang->design->affectedTasks = 'Task';
-$lang->design->reviewObject = 'Review Object';
-$lang->design->createdBy = 'CreatedBy';
-$lang->design->createdDate = 'CreatedDate';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->noAssigned = 'Unassigned';
-$lang->design->comment = 'Comment';
-
-/* 动作列表. */
-$lang->design->common = 'Design';
-$lang->design->create = 'Create Design';
-$lang->design->batchCreate = 'Batch Create';
-$lang->design->edit = 'Edit';
-$lang->design->delete = 'Delete';
-$lang->design->view = 'View';
-$lang->design->browse = 'List';
-$lang->design->viewCommit = 'View Commit';
-$lang->design->linkCommit = 'Link Commit';
-$lang->design->unlinkCommit = 'Unlink Commit';
-$lang->design->submit = 'Submit Review';
-$lang->design->assignTo = 'Assign';
-$lang->design->revision = 'Linked Code';
-
-/* 字段取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = 'High-Level';
-$lang->design->typeList['DDS'] = 'Detailed';
-$lang->design->typeList['DBDS'] = 'Database';
-$lang->design->typeList['ADS'] = 'API';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = 'All';
-$lang->design->rangeList['assign'] = 'Selected';
-
-$lang->design->featureBar['all'] = 'All';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = 'No record selected!';
-$lang->design->noDesign = 'No record.';
-$lang->design->noCommit = 'No record commited.';
-$lang->design->confirmDelete = 'Do you want to delete this design?';
-$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
-$lang->design->errorDate = 'The start date can not be greater than the end date.';
-$lang->design->deleted = 'Deleted';
diff --git a/module/design/lang/vi.php b/module/design/lang/vi.php
deleted file mode 100644
index 27564bc73a..0000000000
--- a/module/design/lang/vi.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: en.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 字段列表. */
-$lang->design->id = 'ID';
-$lang->design->name = 'Name';
-$lang->design->story = 'Story';
-$lang->design->type = 'Type';
-$lang->design->ditto = 'Ditto';
-$lang->design->submission = 'Commit';
-$lang->design->version = 'Revision';
-$lang->design->assignedTo = 'AssignedTo';
-$lang->design->actions = 'Actions';
-$lang->design->byQuery = 'Search';
-$lang->design->products = 'Linked Product';
-$lang->design->story = 'Linked Story';
-$lang->design->file = 'File';
-$lang->design->desc = 'Description';
-$lang->design->range = 'Impact';
-$lang->design->product = 'Linked Product';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->commitBy = 'Commit By';
-$lang->design->commitDate = 'Committed Date';
-$lang->design->affectedStory = "{$lang->SRCommon}";
-$lang->design->affectedTasks = 'Task';
-$lang->design->reviewObject = 'Review Object';
-$lang->design->createdBy = 'CreatedBy';
-$lang->design->createdDate = 'CreatedDate';
-$lang->design->basicInfo = 'Basic Information';
-$lang->design->noAssigned = 'Unassigned';
-$lang->design->comment = 'Comment';
-
-/* 动作列表. */
-$lang->design->common = 'Design';
-$lang->design->create = 'Create Design';
-$lang->design->batchCreate = 'Batch Create';
-$lang->design->edit = 'Edit';
-$lang->design->delete = 'Delete';
-$lang->design->view = 'View';
-$lang->design->browse = 'List';
-$lang->design->viewCommit = 'View Commit';
-$lang->design->linkCommit = 'Link Commit';
-$lang->design->unlinkCommit = 'Unlink Commit';
-$lang->design->submit = 'Submit Review';
-$lang->design->assignTo = 'Assign';
-$lang->design->revision = 'Linked Code';
-
-/* 字段取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = 'High-Level';
-$lang->design->typeList['DDS'] = 'Detailed';
-$lang->design->typeList['DBDS'] = 'Database';
-$lang->design->typeList['ADS'] = 'API';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = 'All';
-$lang->design->rangeList['assign'] = 'Selected';
-
-$lang->design->featureBar['all'] = 'All';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = 'No record selected!';
-$lang->design->noDesign = 'No record.';
-$lang->design->noCommit = 'No record commited.';
-$lang->design->confirmDelete = 'Do you want to delete this design?';
-$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
-$lang->design->errorDate = 'The start date can not be greater than the end date.';
-$lang->design->deleted = 'Deleted';
diff --git a/module/design/lang/zh-cn.php b/module/design/lang/zh-cn.php
deleted file mode 100644
index f09b50f01d..0000000000
--- a/module/design/lang/zh-cn.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: zh-cn.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 字段列表. */
-$lang->design->id = '编号';
-$lang->design->name = '设计名称';
-$lang->design->story = '需求';
-$lang->design->type = '设计类型';
-$lang->design->ditto = '同上';
-$lang->design->submission = '相关提交';
-$lang->design->version = '版本号';
-$lang->design->assignedTo = '指派给';
-$lang->design->actions = '操作';
-$lang->design->byQuery = '搜索';
-$lang->design->products = '所属产品';
-$lang->design->story = '相关需求';
-$lang->design->file = '附件';
-$lang->design->desc = '设计描述';
-$lang->design->range = '影响范围';
-$lang->design->product = '所属产品';
-$lang->design->basicInfo = '基础信息';
-$lang->design->commitBy = '由谁提交';
-$lang->design->commitDate = '提交时间';
-$lang->design->affectedStory = "影响{$lang->SRCommon}";
-$lang->design->affectedTasks = '影响任务';
-$lang->design->reviewObject = '评审对象';
-$lang->design->createdBy = '由谁创建';
-$lang->design->createdDate = '创建时间';
-$lang->design->basicInfo = '基本信息';
-$lang->design->noAssigned = '未指派';
-$lang->design->comment = '注释';
-
-/* 动作列表. */
-$lang->design->common = '设计';
-$lang->design->create = '创建设计';
-$lang->design->batchCreate = '批量创建';
-$lang->design->edit = '变更';
-$lang->design->delete = '删除';
-$lang->design->view = '设计概况';
-$lang->design->browse = '浏览列表';
-$lang->design->viewCommit = '查看提交';
-$lang->design->linkCommit = '关联提交';
-$lang->design->unlinkCommit = '取消关联';
-$lang->design->submit = '提交评审';
-$lang->design->assignTo = '指派';
-$lang->design->revision = '查看关联代码';
-
-/* 字段取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = '概要设计';
-$lang->design->typeList['DDS'] = '详细设计';
-$lang->design->typeList['DBDS'] = '数据库设计';
-$lang->design->typeList['ADS'] = '接口设计';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = '全部记录';
-$lang->design->rangeList['assign'] = '选中记录';
-
-$lang->design->featureBar['all'] = '所有';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = '还没有选中记录!';
-$lang->design->noDesign = '暂时没有记录';
-$lang->design->noCommit = '暂时没有提交记录';
-$lang->design->confirmDelete = '您确定要删除这个设计吗?';
-$lang->design->confirmUnlink = '您确定要移除这个提交吗?';
-$lang->design->errorDate = '开始日期不能大于结束日期';
-$lang->design->deleted = '已删除';
diff --git a/module/design/lang/zh-tw.php b/module/design/lang/zh-tw.php
deleted file mode 100644
index b5877740ed..0000000000
--- a/module/design/lang/zh-tw.php
+++ /dev/null
@@ -1,78 +0,0 @@
-
- * @package design
- * @version $Id: zh-tw.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-/* 欄位列表. */
-$lang->design->id = '編號';
-$lang->design->name = '設計名稱';
-$lang->design->story = '需求';
-$lang->design->type = '設計類型';
-$lang->design->ditto = '同上';
-$lang->design->submission = '相關提交';
-$lang->design->version = '版本號';
-$lang->design->assignedTo = '指派給';
-$lang->design->actions = '操作';
-$lang->design->byQuery = '搜索';
-$lang->design->products = '所屬產品';
-$lang->design->story = '相關需求';
-$lang->design->file = '附件';
-$lang->design->desc = '設計描述';
-$lang->design->range = '影響範圍';
-$lang->design->product = '所屬產品';
-$lang->design->basicInfo = '基礎信息';
-$lang->design->commitBy = '由誰提交';
-$lang->design->commitDate = '提交時間';
-$lang->design->affectedStory = "影響{$lang->SRCommon}";
-$lang->design->affectedTasks = '影響任務';
-$lang->design->reviewObject = '評審對象';
-$lang->design->createdBy = '由誰創建';
-$lang->design->createdDate = '創建時間';
-$lang->design->basicInfo = '基本信息';
-$lang->design->noAssigned = '未指派';
-$lang->design->comment = '註釋';
-
-/* 動作列表. */
-$lang->design->common = '設計';
-$lang->design->create = '創建設計';
-$lang->design->batchCreate = '批量創建';
-$lang->design->edit = '變更';
-$lang->design->delete = '刪除';
-$lang->design->view = '設計概況';
-$lang->design->browse = '瀏覽列表';
-$lang->design->viewCommit = '查看提交';
-$lang->design->linkCommit = '關聯提交';
-$lang->design->unlinkCommit = '取消關聯';
-$lang->design->submit = '提交評審';
-$lang->design->assignTo = '指派';
-$lang->design->revision = '查看關聯代碼';
-
-/* 欄位取值. */
-$lang->design->typeList = array();
-$lang->design->typeList[''] = '';
-$lang->design->typeList['HLDS'] = '概要設計';
-$lang->design->typeList['DDS'] = '詳細設計';
-$lang->design->typeList['DBDS'] = '資料庫設計';
-$lang->design->typeList['ADS'] = '介面設計';
-
-$lang->design->rangeList = array();
-$lang->design->rangeList['all'] = '全部記錄';
-$lang->design->rangeList['assign'] = '選中記錄';
-
-$lang->design->featureBar['all'] = '所有';
-$lang->design->featureBar += $lang->design->typeList;
-
-/* 提示信息. */
-$lang->design->errorSelection = '還沒有選中記錄!';
-$lang->design->noDesign = '暫時沒有記錄';
-$lang->design->noCommit = '暫時沒有提交記錄';
-$lang->design->confirmDelete = '您確定要刪除這個設計嗎?';
-$lang->design->confirmUnlink = '您確定要移除這個提交嗎?';
-$lang->design->errorDate = '開始日期不能大於結束日期';
-$lang->design->deleted = '已刪除';
diff --git a/module/design/model.php b/module/design/model.php
deleted file mode 100644
index 4d61aeec0b..0000000000
--- a/module/design/model.php
+++ /dev/null
@@ -1,445 +0,0 @@
-
- * @package design
- * @version $Id: model.php 5107 2020-09-02 09:46:12Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-stripTags('desc', $this->config->allowedTags)
- ->add('createdBy', $this->app->user->account)
- ->add('createdDate', helper::now())
- ->add('PRJ', $this->session->PRJ)
- ->add('version', 1)
- ->remove('files,labels')
- ->get();
-
- $design = $this->loadModel('file')->processImgURL($design, 'desc', $this->post->uid);
- $this->dao->insert(TABLE_DESIGN)->data($design)
- ->autoCheck()
- ->batchCheck($this->config->design->create->requiredFields, 'notempty')
- ->exec();
-
- if(!dao::isError())
- {
- $designID = $this->dao->lastInsertID();
- $this->file->updateObjectID($this->post->uid, $designID, 'design');
- $files = $this->file->saveUpload('design', $designID);
-
- $spec = new stdclass();
- $spec->design = $designID;
- $spec->version = 1;
- $spec->name = $design->name;
- $spec->desc = $design->desc;
- $spec->files = empty($files) ? '' : implode(',', array_keys($files));
- $this->dao->insert(TABLE_DESIGNSPEC)->data($spec)->exec();
-
- return $designID;
- }
-
- return false;
- }
-
- /**
- * Batch create designs.
- *
- * @param int $productID
- * @access public
- * @return bool
- */
- public function batchCreate($productID = 0)
- {
- $data = fixer::input('post')->get();
-
- $this->loadModel('action');
- foreach($data->name as $i => $name)
- {
- if(!trim($name)) continue;
-
- $design = new stdclass();
- $design->story = isset($data->story[$i]) ? $data->story[$i] : '';
- $design->type = $data->type[$i];
- $design->name = $name;
- $design->product = $productID;
- $design->PRJ = $this->session->PRJ;
- $design->createdBy = $this->app->user->account;
- $design->createdDate = helper::now();
-
- $this->dao->insert(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck($this->config->design->create->requiredFields, 'notempty')->exec();
-
- $designID = $this->dao->lastInsertID();
- $this->action->create('design', $designID, 'Opened');
- }
-
- return true;
- }
-
- /**
- * Update a design.
- *
- * @param int $designID
- * @access public
- * @return bool
- */
- public function update($designID = 0)
- {
- $oldDesign = $this->getByID($designID);
- $design = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::now())
- ->stripTags($this->config->design->editor->edit['id'], $this->config->allowedTags)
- ->remove('file,files,labels,children,toList')
- ->get();
-
- $design = $this->loadModel('file')->processImgURL($design, 'desc', $this->post->uid);
- $this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck('name,type', 'notempty')->where('id')->eq($designID)->exec();
-
- if(!dao::isError())
- {
- $this->file->updateObjectID($this->post->uid, $designID, 'design');
- $files = $this->file->saveUpload('design', $designID);
- $designChanged = ($oldDesign->name != $design->name || $oldDesign->desc != $design->desc || !empty($files));
-
- if($designChanged)
- {
- $design = $this->getByID($designID);
- $version = $design->version + 1;
- $spec = new stdclass();
- $spec->design = $designID;
- $spec->version = $version;
- $spec->name = $design->name;
- $spec->desc = $design->desc;
- $spec->files = empty($files) ? '' : implode(',', array_keys($files));
- $this->dao->insert(TABLE_DESIGNSPEC)->data($spec)->exec();
-
- $this->dao->update(TABLE_DESIGN)->set('version')->eq($version)->where('id')->eq($designID)->exec();
- }
-
- return common::createChanges($oldDesign, $design);
- }
-
- return false;
- }
-
- /**
- * Assign a design.
- *
- * @param int $designID
- * @access public
- * @return array|bool
- */
- public function assign($designID = 0)
- {
- $oldDesign = $this->getByID($designID);
-
- $design = fixer::input('post')
- ->add('editedBy', $this->app->user->account)
- ->add('editedDate', helper::today())
- ->setDefault('assignedDate', helper::today())
- ->stripTags($this->config->design->editor->assignto['id'], $this->config->allowedTags)
- ->remove('uid,comment,files,label')
- ->get();
-
- $this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->where('id')->eq((int)$designID)->exec();
-
- if(!dao::isError()) return common::createChanges($oldDesign, $design);
- return false;
- }
-
- /**
- * LinkCommit a design.
- *
- * @param int $designID
- * @param int $repoID
- * @access public
- * @return void
- */
- public function linkCommit($designID = 0, $repoID = 0)
- {
- $revisions = $_POST['revision'];
-
- foreach($revisions as $revision)
- {
- $data = new stdclass();
- $data->PRJ = $this->session->PRJ;
- $data->product = $this->session->product;
- $data->AType = 'design';
- $data->AID = $designID;
- $data->BType = 'commit';
- $data->BID = $revision;
- $data->relation = 'completedin';
- $data->extra = $repoID;
-
- $this->dao->replace(TABLE_RELATION)->data($data)->autoCheck()->exec();
-
- $data->AType = 'commit';
- $data->AID = $revision;
- $data->BType = 'design';
- $data->BID = $designID;
- $data->relation = 'completedfrom';
-
- $this->dao->replace(TABLE_RELATION)->data($data)->autoCheck()->exec();
- }
-
- $oldCommit = $this->dao->findByID($designID)->from(TABLE_DESIGN)->fetch('commit');
- $revisions = join(',', $revisions);
- $commit = $oldCommit ? $oldCommit . ',' . $revisions : $revisions;
-
- $design = new stdclass();
- $design->commit = $commit;
- $design->commitedBy = $this->app->user->account;
- $this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->where('id')->eq($designID)->exec();
- }
-
- /**
- * Unlink commit.
- *
- * @param int $designID
- * @param int $commitID
- * @access public
- * @return void
- */
- public function unlinkCommit($designID = 0, $commitID = 0)
- {
- /* Delete data in the zt_relation.*/
- $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('design')->andwhere('AID')->eq($designID)->andwhere('BType')->eq('commit')->andwhere('relation')->eq('completedin')->andWhere('BID')->eq($commitID)->exec();
- $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('commit')->andwhere('BID')->eq($designID)->andwhere('BType')->eq('design')->andwhere('relation')->eq('completedfrom')->andWhere('AID')->eq($commitID)->exec();
-
- /* Commit after unlinking. */
- $commit = $this->dao->select('BID')->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('AID')->eq($designID)->andWhere('BType')->eq('commit')->andwhere('relation')->eq('completedin')->fetchAll('BID');
- $commit = implode(",", array_keys($commit));
-
- $this->dao->update(TABLE_DESIGN)->set('commit')->eq($commit)->where('id')->eq($designID)->exec();
- }
-
- /**
- * Get a design by id.
- *
- * @param int $designID
- * @access public
- * @return object
- */
- public function getByID($designID = 0)
- {
- $design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
- $design->files = $this->loadModel('file')->getByObject('design', $designID);
- $design->productName = $this->dao->findByID($design->product)->from(TABLE_PRODUCT)->fetch('name');
-
-
- $design->commit = '';
- $relations = $this->loadModel('common')->getRelations('design', $designID, 'commit');
- foreach($relations as $relation) $design->commit .= html::a(helper::createLink('design', 'revision', "repoID=$relation->BID"), "#$relation->BID", '_blank');
-
- return $this->loadModel('file')->replaceImgURL($design, 'desc');
- }
-
- /**
- * Get design pairs.
- *
- * @param int $productID
- * @param string $type all|HLDS|DDS|DBDS|ADS
- * @access public
- * @return object
- */
- public function getPairs($productID = 0, $type = 'all')
- {
- $designs = $this->dao->select('id, name')->from(TABLE_DESIGN)
- ->where('product')->eq($productID)
- ->andWhere('deleted')->eq(0)
- ->andWhere('type')->eq($type)
- ->fetchPairs();
- foreach($designs as $id => $name) $designs[$id] = $id . ':' . $name;
-
- return $designs;
- }
-
- /**
- * Get affected scope.
- *
- * @param int $design
- * @access public
- * @return object
- */
- public function getAffectedScope($design = 0)
- {
- /* Get affected tasks. */
- $design->tasks = $this->dao->select('*')->from(TABLE_TASK)
- ->where('deleted')->eq(0)
- ->andWhere('status')->ne('closed')
- ->andWhere('design')->eq($design->id)
- ->orderBy('id desc')->fetchAll();
-
- return $design;
- }
-
- /**
- * Get design list.
- *
- * @param int $productID
- * @param int $projectID
- * @param string $type all|bySearch|HLDS|DDS|DBDS|ADS
- * @param int $param
- * @param string $orderBy
- * @param int $pager
- * @access public
- * @return array
- */
- public function getList($projectID = 0, $productID = 0, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
- {
- if($type == 'bySearch')
- {
- $designs = $this->getBySearch($projectID, $productID, $param, $orderBy, $pager);
- }
- else
- {
- $designs = $this->dao->select('*')->from(TABLE_DESIGN)
- ->where('deleted')->eq(0)
- ->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
- ->beginIF($type != 'all')->andWhere('type')->in($type)->fi()
- ->andWhere('product')->eq($productID)
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll('id');
- }
-
- return $designs;
- }
-
- /**
- * Get commit.
- *
- * @param int $designID
- * @param int $pager
- * @access public
- * @return object
- */
- public function getCommit($designID = 0, $pager = null)
- {
- $design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
-
- $design->commit = $this->dao->select('*')->from(TABLE_REPOHISTORY)->where('id')->in($design->commit)->page($pager)->fetchAll('id');
-
- return $design;
- }
-
- /**
- * Get designs by search.
- *
- * @param int $projectID
- * @param int $productID
- * @param int $queryID
- * @param string $orderBy
- * @param int $pager
- * @access public
- * @return object
- */
- public function getBySearch($projectID = 0, $productID = 0, $queryID = 0, $orderBy = 'id_desc', $pager = null)
- {
- if($queryID)
- {
- $query = $this->loadModel('search')->getQuery($queryID);
- if($query)
- {
- $this->session->set('designQuery', $query->sql);
- $this->session->set('designForm', $query->form);
- }
- else
- {
- $this->session->set('designQuery', ' 1 = 1');
- }
- }
- else
- {
- if($this->session->designQuery == false) $this->session->set('designQuery', ' 1 = 1');
- }
-
- $designQuery = $this->session->designQuery;
-
- $designs = $this->dao->select('*')->from(TABLE_DESIGN)
- ->where($designQuery)
- ->andWhere('deleted')->eq('0')
- ->andWhere('PRJ')->eq($projectID)
- ->andWhere('product')->eq($productID)
- ->orderBy($orderBy)
- ->page($pager)
- ->fetchAll('id');
-
- return $designs;
- }
-
- /**
- * Set product menu.
- *
- * @param int $productID
- * @access public
- * @return void
- */
- public function setProductMenu($productID = 0)
- {
- $products = $this->loadModel('product')->getPairs();
- $productID = in_array($productID, array_keys($products)) ? $productID : key($products);
-
- $productID = $this->loadModel('product')->saveState($productID, $products);
- $this->loadModel('product')->setMenu($products, $productID);
- }
-
- /**
- * Build search form.
- *
- * @param int $queryID
- * @param string $actionURL
- * @access public
- * @return void
- */
- public function buildSearchForm($queryID = 0, $actionURL = '')
- {
- $this->config->design->search['actionURL'] = $actionURL;
- $this->config->design->search['queryID'] = $queryID;
-
- $this->loadModel('search')->setSearchParams($this->config->design->search);
- }
-
- /**
- * Print assignedTo html.
- *
- * @param object $design
- * @param array $users
- * @access public
- * @return string
- */
- public function printAssignedHtml($design = '', $users = '')
- {
- $btnTextClass = '';
- $assignedToText = zget($users, $design->assignedTo);
-
- if(empty($design->assignedTo))
- {
- $btnTextClass = 'text-primary';
- $assignedToText = $this->lang->design->noAssigned;
- }
- if($design->assignedTo == $this->app->user->account) $btnTextClass = 'text-red';
-
- $btnClass = $design->assignedTo == 'closed' ? ' disabled' : '';
- $btnClass = "iframe btn btn-icon-left btn-sm {$btnClass}";
- $assignToLink = helper::createLink('design', 'assignTo', "designID=$design->id", '', true);
- $assignToHtml = html::a($assignToLink, " {$assignedToText}", '', "class='$btnClass'");
-
- echo !common::hasPriv('design', 'assignTo', $design) ? "{$assignedToText}" : $assignToHtml;
- }
-}
diff --git a/module/design/view/assignto.html.php b/module/design/view/assignto.html.php
deleted file mode 100644
index aa68967212..0000000000
--- a/module/design/view/assignto.html.php
+++ /dev/null
@@ -1,40 +0,0 @@
-
- * @package design
- * @version $Id: assignto.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name'>" . $design->name . '';?>
-
-
-
-
-
diff --git a/module/design/view/batchcreate.html.php b/module/design/view/batchcreate.html.php
deleted file mode 100644
index 283f3286c5..0000000000
--- a/module/design/view/batchcreate.html.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
- * @package design
- * @version $Id: batchcreate.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
design->batchCreate;?>
-
-
-
diff --git a/module/design/view/browse.html.php b/module/design/view/browse.html.php
deleted file mode 100644
index a72248ac6a..0000000000
--- a/module/design/view/browse.html.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
- * @package design
- * @version $Id: browse.html.php 5102 2020-09-03 10:59:54Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
diff --git a/module/design/view/create.html.php b/module/design/view/create.html.php
deleted file mode 100644
index 258cfb5dfa..0000000000
--- a/module/design/view/create.html.php
+++ /dev/null
@@ -1,62 +0,0 @@
-
- * @package design
- * @version $Id: create.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
design->create;?>
-
-
-
-
-
diff --git a/module/design/view/edit.html.php b/module/design/view/edit.html.php
deleted file mode 100644
index 867f7656ec..0000000000
--- a/module/design/view/edit.html.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
- * @package design
- * @version $Id: edit.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
design->edit;?>
-
-
-
-
-
diff --git a/module/design/view/linkcommit.html.php b/module/design/view/linkcommit.html.php
deleted file mode 100644
index c318513078..0000000000
--- a/module/design/view/linkcommit.html.php
+++ /dev/null
@@ -1,88 +0,0 @@
-
- * @package design
- * @version $Id: linkcommit.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
- id;?>
- name?>
- arrow . $lang->design->linkCommit;?>
-
-
-
-
-
-
-
-
- repo->maintain . ': ';?> |
- |
-
- design->commitDate . ':';?>
-
- ~
-
- |
-
-
-
-
-
-
-
-design->errorDate);?>
-
diff --git a/module/design/view/view.html.php b/module/design/view/view.html.php
deleted file mode 100644
index 06ba48d76a..0000000000
--- a/module/design/view/view.html.php
+++ /dev/null
@@ -1,91 +0,0 @@
-
- * @package design
- * @version $Id: view.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
-
-
design->desc;?>
-
- desc;?>
-
-
- fetch('file', 'printFiles', array('files' => $design->files, 'fieldset' => 'true'));?>
-
-
-
-
- session->designList);?>
-
";?>
- deleted):?>
- id", $design, 'button', '', '', 'iframe showinonlybody', true);
- common::printIcon('design', 'linkCommit', "designID=$design->id", $design, 'button', 'link', '', 'iframe showinonlybody', true);
- common::printIcon('design', 'edit', "designID=$design->id", $design, 'button', 'fork');
- common::printIcon('design', 'delete', "designID=$design->id", $design, 'button', 'trash', 'hiddenwin');
- ?>
-
-
-
-
-
-
-
-
design->basicInfo;?>
-
-
-
- | design->type;?> |
- design->typeList, $design->type);?> |
-
-
- | design->product;?> |
- productName;?> |
-
-
- | design->story;?> |
- story ? html::a($this->createLink('story', 'view', "id=$design->story"), zget($stories, $design->story)) : '';?> |
-
-
- | design->submission;?> |
- commit;?> |
-
-
- | design->createdBy;?> |
- createdBy);?> |
-
-
- | design->createdDate;?> |
- createdDate, 0, 11);?> |
-
-
-
-
-
-
-
-
diff --git a/module/design/view/viewcommit.html.php b/module/design/view/viewcommit.html.php
deleted file mode 100644
index 883dcd88b5..0000000000
--- a/module/design/view/viewcommit.html.php
+++ /dev/null
@@ -1,63 +0,0 @@
-
- * @package design
- * @version $Id: viewcommit.html.php 4903 2020-09-02 09:32:59Z tianshujie@easycorp.ltd $
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
- id;?>
- name?>
- arrow . $lang->design->submission;?>
-
-
-
- id", "" . $lang->design->linkCommit, '_blank', "class='btn btn-primary'");?>
-
- commit)):?>
-
-
-
-
-
- | design->submission;?> |
- design->commitBy;?> |
- design->commitDate;?> |
- design->comment;?> |
- design->actions;?> |
-
-
-
- commit as $commit):?>
-
- | id"), "#$commit->id", '_blank');?> |
- committer, $commit->committer);?> |
- time, 0, 11);?> |
- comment;?> |
-
- id&commitID=$commit->id", $design, 'list', 'unlink', 'hiddenwin', 'iframe showinonlybody', true);?>
- |
-
-
-
-
-
-
-
-
diff --git a/module/doc/control.php b/module/doc/control.php
index 78c93a92d5..d8ce9663f7 100644
--- a/module/doc/control.php
+++ b/module/doc/control.php
@@ -125,7 +125,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $lib->project);
$this->lang->set('menugroup.doc', 'project');
}
@@ -362,7 +362,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $lib->project);
$this->lang->set('menugroup.doc', 'project');
@@ -449,7 +449,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $objectID);
$this->lang->set('menugroup.doc', 'project');
}
@@ -515,7 +515,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $objectID);
$this->lang->set('menugroup.doc', 'project');
}
@@ -845,7 +845,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $objectID);
$this->lang->set('menugroup.doc', 'project');
}
@@ -945,7 +945,7 @@ class doc extends control
$this->lang->navGroup->doc = 'project';
$this->lang->doc->menu = $this->lang->project->menu;
$this->lang->doc->menuOrder = $this->lang->project->menuOrder;
- if($this->config->systemMode == 'old') $this->lang->noMenuModule[] = 'doc';
+ if($this->config->systemMode == 'classic') $this->lang->noMenuModule[] = 'doc';
$this->project->setMenu($this->project->getExecutionsByProject($this->session->PRJ, 'all', 0, true), $objectID);
$this->lang->set('menugroup.doc', 'project');
}
diff --git a/module/group/control.php b/module/group/control.php
index b37da3bf52..3059ff31cc 100644
--- a/module/group/control.php
+++ b/module/group/control.php
@@ -183,7 +183,7 @@ class group extends control
$group = $this->group->getById($groupID);
$groupPrivs = $this->group->getPrivs($groupID);
- if($this->config->systemMode == 'old')
+ if($this->config->systemMode == 'classic')
{
if(isset($groupPrivs['program']['prjbrowse']))
{
diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php
index 58b3c97e16..05c1a62f35 100644
--- a/module/group/lang/resource.php
+++ b/module/group/lang/resource.php
@@ -60,7 +60,6 @@ $lang->moduleOrder[190] = 'backup';
$lang->moduleOrder[195] = 'cron';
$lang->moduleOrder[200] = 'dev';
$lang->moduleOrder[205] = 'message';
-$lang->moduleOrder[210] = 'design';
$lang->resource = new stdclass();
@@ -571,10 +570,10 @@ $lang->resource->project->storySort = 'storySort';
$lang->resource->project->whitelist = 'whitelist';
$lang->resource->project->addWhitelist = 'addWhitelist';
$lang->resource->project->unbindWhielist = 'unbindWhielist';
-if($config->systemMode == 'old') $lang->resource->project->list = 'list';
+if($config->systemMode == 'classic') $lang->resource->project->list = 'list';
$lang->project->methodOrder[0] = 'index';
-if($config->systemMode == 'old') $lang->project->methodOrder[1] = 'list';
+if($config->systemMode == 'classic') $lang->project->methodOrder[1] = 'list';
$lang->project->methodOrder[5] = 'view';
$lang->project->methodOrder[10] = 'browse';
$lang->project->methodOrder[15] = 'create';
@@ -624,32 +623,6 @@ $lang->project->methodOrder[230] = 'whitelist';
$lang->project->methodOrder[235] = 'addWhitelist';
$lang->project->methodOrder[240] = 'unbindWhielist';
-/* Design. */
-$lang->resource->design = new stdclass();
-$lang->resource->design->browse = 'browse';
-$lang->resource->design->view = 'view';
-$lang->resource->design->create = 'create';
-$lang->resource->design->batchCreate = 'batchCreate';
-$lang->resource->design->edit = 'edit';
-$lang->resource->design->assignTo = 'assignTo';
-$lang->resource->design->delete = 'delete';
-$lang->resource->design->linkCommit = 'linkCommit';
-$lang->resource->design->viewCommit = 'viewCommit';
-$lang->resource->design->unlinkCommit = 'unlinkCommit';
-$lang->resource->design->revision = 'revision';
-
-$lang->design->methodOrder[5] = 'browse';
-$lang->design->methodOrder[10] = 'view';
-$lang->design->methodOrder[15] = 'create';
-$lang->design->methodOrder[20] = 'batchCreate';
-$lang->design->methodOrder[25] = 'edit';
-$lang->design->methodOrder[30] = 'assignTo';
-$lang->design->methodOrder[35] = 'delete';
-$lang->design->methodOrder[40] = 'linkCommit';
-$lang->design->methodOrder[45] = 'viewCommit';
-$lang->design->methodOrder[50] = 'unlinkCommit';
-$lang->design->methodOrder[55] = 'revision';
-
/* Task. */
$lang->resource->task = new stdclass();
$lang->resource->task->create = 'create';
diff --git a/module/group/model.php b/module/group/model.php
index 2c2f8a130b..5bcfbfacb3 100644
--- a/module/group/model.php
+++ b/module/group/model.php
@@ -332,7 +332,7 @@ class groupModel extends model
}
}
- if($this->config->systemMode == 'old')
+ if($this->config->systemMode == 'classic')
{
$prjBrowse = $this->dao->select('module')->from(TABLE_GROUPPRIV)
->where('module')->eq('program')
diff --git a/module/personnel/control.php b/module/personnel/control.php
index b055adbac7..77a3daea9c 100644
--- a/module/personnel/control.php
+++ b/module/personnel/control.php
@@ -157,8 +157,8 @@ class personnel extends control
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => $this->getError()));
$locateLink = $this->session->whitelistBrowse ? $this->session->whitelistBrowse : $this->createLink($module, 'whitelist', "objectID=$objectID");
- $openModule = $module == 'program' ? ($from == 'PRJ' || $from == 'my' ? '#open=project' : '#open=program') : '';
- $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locateLink . $openModule));
+ $openGroup = $module == 'program' ? ($from == 'PRJ' || $from == 'my' ? '#open=project' : '#open=program') : '';
+ $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locateLink . $openGroup));
}
$this->loadModel('dept');
diff --git a/module/personnel/view/whitelist.html.php b/module/personnel/view/whitelist.html.php
index c9c77d4eb9..243d1badf2 100644
--- a/module/personnel/view/whitelist.html.php
+++ b/module/personnel/view/whitelist.html.php
@@ -12,17 +12,17 @@
?>
-
+
goback, '', 'class="btn btn-secondary"');?>
- createLink($module, $moduleMethod, $vars), '' . $lang->personnel->whitelist . '', '', "class='btn btn-link btn-active-text' $openModule");?>
+ createLink($module, $moduleMethod, $vars), '' . $lang->personnel->whitelist . '', '', "class='btn btn-link btn-active-text' $openGroup");?>
- " . $lang->personnel->addWhitelist, '', "class='btn btn-primary' $openModule");?>
+ " . $lang->personnel->addWhitelist, '', "class='btn btn-primary' $openGroup");?>
@@ -61,7 +61,7 @@
createLink($module, 'unbindWhielist', "id=$user->id&confirm=no"), '', 'hiddenwin', "title='{$lang->personnel->delete}' class='{$deleteClass}' $openModule");
+ echo html::a($this->createLink($module, 'unbindWhielist', "id=$user->id&confirm=no"), '', 'hiddenwin', "title='{$lang->personnel->delete}' class='{$deleteClass}' $openGroup");
?>
|
diff --git a/module/product/control.php b/module/product/control.php
index c0ad2a19f5..f370edb422 100644
--- a/module/product/control.php
+++ b/module/product/control.php
@@ -360,21 +360,21 @@ class product extends control
/* Init vars. */
$product = $this->product->getById($productID);
- $notRemovePRJ = array();
+ $unmodifiableProjects = array();
$canChangePGM = true;
$singleLinkProjects = array();
$multipleLinkProjects = array();
$linkStoriesProjects = array();
/* Link the projects stories under this product. */
- $notRemovePRJ = $this->dao->select('t1.*')->from(TABLE_PROJECTSTORY)->alias('t1')
+ $unmodifiableProjects = $this->dao->select('t1.*')->from(TABLE_PROJECTSTORY)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->where('t1.product')->eq($productID)
->andWhere('t2.type')->eq('project')
->andWhere('t2.deleted')->eq('0')
->fetchPairs('project', 'product');
- if(!empty($notRemovePRJ)) $canChangePGM = false;
+ if(!empty($unmodifiableProjects)) $canChangePGM = false;
/* Get the projects linked with this product. */
$projectPairs = $this->dao->select('t2.id,t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
@@ -403,7 +403,7 @@ class product extends control
}
else
{
- if(isset($notRemovePRJ[$projectID])) $linkStoriesProjects[$projectID] = $projectName;
+ if(isset($unmodifiableProjects[$projectID])) $linkStoriesProjects[$projectID] = $projectName;
}
}
}
@@ -470,7 +470,7 @@ class product extends control
$lines = array();
if($product->program) $lines = array('') + $this->product->getLinePairs($product->program);
- if($this->config->systemMode == 'old') $lines = array('') + $this->product->getLinePairs();
+ if($this->config->systemMode == 'classic') $lines = array('') + $this->product->getLinePairs();
$this->view->title = $this->lang->product->edit . $this->lang->colon . $product->name;
$this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $product->name);
@@ -901,15 +901,15 @@ class product extends control
$moduleGroup = in_array($moduleGroup, array('product', 'qa'))? $moduleGroup : 'project';
$products = $moduleGroup == 'project' ? $this->product->getProductsByProject($this->session->PRJ) : $this->product->getList();
- $this->view->link = $this->product->getProductLink($module, $method, $extra);
- $this->view->productID = $productID;
- $this->view->module = $module;
- $this->view->method = $method;
- $this->view->extra = $extra;
- $this->view->products = $products;
- $this->view->projectID = $moduleGroup == 'project' ? $this->session->PRJ : 0;
- $this->view->programs = $this->loadModel('program')->getPGMOption();
- $this->view->openModule = $moduleGroup;
+ $this->view->link = $this->product->getProductLink($module, $method, $extra);
+ $this->view->productID = $productID;
+ $this->view->module = $module;
+ $this->view->method = $method;
+ $this->view->extra = $extra;
+ $this->view->products = $products;
+ $this->view->projectID = $moduleGroup == 'project' ? $this->session->PRJ : 0;
+ $this->view->programs = $this->loadModel('program')->getPGMOption();
+ $this->view->openGroup = $moduleGroup;
$this->display();
}
diff --git a/module/product/lang/de.php b/module/product/lang/de.php
index de95c0bb3f..e4c55d4e42 100644
--- a/module/product/lang/de.php
+++ b/module/product/lang/de.php
@@ -72,6 +72,7 @@ $lang->product->accessDenied = "Sie haben keinen Zugriff auf {$lang->product
$lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together.";
$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding";
$lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
+$lang->product->changePGMError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->id = 'ID';
$lang->product->program = "Program";
diff --git a/module/product/lang/en.php b/module/product/lang/en.php
index 3c52dec259..621454ee9e 100644
--- a/module/product/lang/en.php
+++ b/module/product/lang/en.php
@@ -72,6 +72,7 @@ $lang->product->accessDenied = "You have no access to the {$lang->productCom
$lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together.";
$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding";
$lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
+$lang->product->changePGMError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->id = 'ID';
$lang->product->program = "Program";
diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php
index c48823fd1a..d043611d18 100644
--- a/module/product/lang/fr.php
+++ b/module/product/lang/fr.php
@@ -72,6 +72,7 @@ $lang->product->accessDenied = "Vous n'avez pas accès au {$lang->productCom
$lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together.";
$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding";
$lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
+$lang->product->changePGMError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->id = 'ID';
$lang->product->program = "Program";
diff --git a/module/product/lang/vi.php b/module/product/lang/vi.php
index 2b0abf70ba..f06c1ccc78 100644
--- a/module/product/lang/vi.php
+++ b/module/product/lang/vi.php
@@ -72,6 +72,7 @@ $lang->product->accessDenied = "Bạn không có quyền truy cập tới {
$lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together.";
$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding";
$lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set.";
+$lang->product->changePGMError = "The {$lang->SRCommon} of this {$lang->productCommon} has been linked to the project, please unlink it before proceeding";
$lang->product->id = 'ID';
$lang->product->program = "Program";
diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php
index b6412c30de..dc24cf0507 100644
--- a/module/product/lang/zh-cn.php
+++ b/module/product/lang/zh-cn.php
@@ -72,6 +72,7 @@ $lang->product->accessDenied = "您无权访问该{$lang->productCommon}";
$lang->product->PGMChangeTip = "如下项目只关联了该{$lang->productCommon}, 将直接转移至新项目集下。";
$lang->product->notChangePGMTip = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到如下项目,请取消关联后再操作";
$lang->product->confirmChangePGM = "如下项目既关联了该{$lang->productCommon}又关联了其他{$lang->productCommon},请确认是否继续关联该{$lang->productCommon},勾选后将取消与其他{$lang->productCommon}的关联关系,同时转移至新项目集下。";
+$lang->product->changePGMError = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到项目,请取消关联后再操作";
$lang->product->id = '编号';
$lang->product->program = "所属项目集";
diff --git a/module/product/model.php b/module/product/model.php
index 38f1dc9629..f973e75870 100644
--- a/module/product/model.php
+++ b/module/product/model.php
@@ -556,6 +556,7 @@ class productModel extends model
{
$productID = (int)$productID;
$oldProduct = $this->dao->findById($productID)->from(TABLE_PRODUCT)->fetch();
+
$product = fixer::input('post')
->setIF($this->post->acl == 'open', 'whitelist', '')
->setDefault('line', 0)
@@ -564,6 +565,22 @@ class productModel extends model
->remove('uid,changeProjects')
->get();
+ if($product->program != $oldProduct->program)
+ {
+ /* Link the projects stories under this product. */
+ $unmodifiableProjects = $this->dao->select('t1.*')->from(TABLE_PROJECTSTORY)->alias('t1')
+ ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
+ ->where('t1.product')->eq($productID)
+ ->andWhere('t2.type')->eq('project')
+ ->andWhere('t2.deleted')->eq('0')
+ ->fetchPairs('project', 'product');
+ if(!empty($unmodifiableProjects))
+ {
+ dao::$errors[] = $this->lang->product->changePGMError;
+ return false;
+ }
+ }
+
$product = $this->loadModel('file')->processImgURL($product, $this->config->product->editor->edit['id'], $this->post->uid);
$this->dao->update(TABLE_PRODUCT)->data($product)->autoCheck()
->batchCheck($this->config->product->edit->requiredFields, 'notempty')
diff --git a/module/product/view/ajaxgetdropmenu.html.php b/module/product/view/ajaxgetdropmenu.html.php
index b5fa80fce9..b21c10ebac 100644
--- a/module/product/view/ajaxgetdropmenu.html.php
+++ b/module/product/view/ajaxgetdropmenu.html.php
@@ -27,19 +27,19 @@ foreach($products as $product)
{
$objectID = ($product->type != 'platform' && $module == 'branch' && $method == 'manage') ? $productID : $product->id;
$linkHtml = $this->product->setParamsForLink($module, $link, $projectID, $product->id);
- $myProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "class='text-important' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openModule'");
+ $myProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "class='text-important' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openGroup'");
}
else if($product->status == 'normal' and !($product->PO == $this->app->user->account))
{
$objectID = ($product->type != 'platform' && $module == 'branch' && $method == 'manage') ? $productID : $product->id;
$linkHtml = $this->product->setParamsForLink($module, $link, $projectID, $product->id);
- $normalProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openModule'");
+ $normalProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openGroup'");
}
else if($product->status == 'closed')
{
$objectID = ($product->type != 'platform' && $module == 'branch' && $method == 'manage') ? $productID : $product->id;
$linkHtml = $this->product->setParamsForLink($module, $link, $projectID, $objectID);
- $closedProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "title='{$productName}' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openModule'");
+ $closedProductsHtml .= html::a($linkHtml, html::icon($lang->icons['product']) . ' ' . $productName, '', "title='{$productName}' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-group='$openGroup'");
}
}
?>
diff --git a/module/product/view/view.html.php b/module/product/view/view.html.php
index 4aac6648b7..723a77177f 100644
--- a/module/product/view/view.html.php
+++ b/module/product/view/view.html.php
@@ -13,7 +13,7 @@
>
-
+
@@ -141,11 +141,6 @@
printExtendFields($product, 'div', "position=right&inForm=0&inCell=1");?>
-
-
- createLink('action', 'comment', "objectType=product&objectID=$product->id");?>
-
-
+
+
+
+
+ createLink('action', 'comment', "objectType=product&objectID=$product->id");?>
+
+
+
+
diff --git a/module/program/control.php b/module/program/control.php
index 20445b881e..f544e641b7 100644
--- a/module/program/control.php
+++ b/module/program/control.php
@@ -763,12 +763,12 @@ class program extends control
*/
public function index($projectID = 0)
{
- $project = $this->program->getPRJByID($projectID);
- if(empty($project) || $project->type != 'project') die(js::error($this->lang->notFound) . js::locate('back'));
-
$this->lang->navGroup->program = 'project';
$projectID = $this->program->savePRJState($projectID, $this->program->getPRJPairs());
+ $project = $this->program->getPRJByID($projectID);
+ if(empty($project) || $project->type != 'project') die(js::error($this->lang->notFound) . js::locate('back'));
+
if(!$projectID) $this->locate($this->createLink('program', 'PRJbrowse'));
setCookie("lastPRJ", $projectID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
diff --git a/module/program/model.php b/module/program/model.php
index 2cc4237685..452c1f3fe1 100644
--- a/module/program/model.php
+++ b/module/program/model.php
@@ -926,7 +926,8 @@ class programModel extends model
->beginIF($this->config->systemMode == 'new')->andWhere('type')->eq('project')->fi()
->beginIF($browseType != 'all')->andWhere('status')->eq($browseType)->fi()
->beginIF($path)->andWhere('path')->like($path . '%')->fi()
- ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
+ ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('id')->in($this->app->user->view->projects)->fi()
+ ->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('id')->in($this->app->user->view->sprints)->fi()
->beginIF($this->cookie->PRJMine or $PRJMine)
->andWhere('openedBy', true)->eq($this->app->user->account)
->orWhere('PM')->eq($this->app->user->account)
@@ -1958,9 +1959,9 @@ class programModel extends model
echo "
";
}
- $from = $project->from == 'PRJ' ? 'PRJ' : 'pgmproject';
- $openModule = $project->from == 'PRJ' ? 'project' : 'program';
- common::printIcon('program', 'PRJEdit', "projectID=$project->id&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$openModule", '', $project->id);
+ $from = $project->from == 'PRJ' ? 'PRJ' : 'pgmproject';
+ $openGroup = $project->from == 'PRJ' ? 'project' : 'program';
+ common::printIcon('program', 'PRJEdit', "projectID=$project->id&from=$from", $project, 'list', 'edit', '', '', '', "data-group=$openGroup", '', $project->id);
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'group', '', '', '', '', $this->lang->project->team, $project->id);
if($this->config->systemMode == 'new') common::printIcon('program', 'PRJGroup', "projectID=$project->id&programID=$programID", $project, 'list', 'lock', '', '', '', '', '', $project->id);
@@ -1969,8 +1970,8 @@ class programModel extends model
echo "
";
echo "";
echo "";
echo "
";
diff --git a/module/program/view/prjview.html.php b/module/program/view/prjview.html.php
index 397c4f67ba..0c8cc9cb3d 100644
--- a/module/program/view/prjview.html.php
+++ b/module/program/view/prjview.html.php
@@ -178,23 +178,23 @@
project->begin;?> |
begin;?> |
project->totalEstimate;?> |
-
totalEstimate;?> |
+
totalEstimate . $lang->project->workHour;?> |
| project->end;?> |
end;?> |
project->totalConsumed;?> |
- totalConsumed;?> |
+ totalConsumed . $lang->project->workHour;?> |
| project->totalDays;?> |
days;?> |
project->totalLeft;?> |
- totalLeft;?> |
+ totalLeft . $lang->project->workHour;?> |
| project->totalHours;?> |
- totalHours;?> |
+ totalHours . $lang->project->workHour;?> |
diff --git a/module/project/control.php b/module/project/control.php
index 5e05525523..a30509981f 100644
--- a/module/project/control.php
+++ b/module/project/control.php
@@ -42,7 +42,7 @@ class project extends control
$this->projects = $this->project->getExecutionPairs($this->session->PRJ, 'all', 'nocode');
if(!$this->projects and $this->methodName != 'index' and $this->methodName != 'create' and $this->app->getViewType() != 'mhtml') $this->locate($this->createLink('project', 'create'));
}
- $this->objectType = $this->config->systemMode == 'old' ? 'project' : 'exection';
+ $this->objectType = $this->config->systemMode == 'classic' ? 'project' : 'exection';
}
/**
diff --git a/module/project/model.php b/module/project/model.php
index d74152fead..44b3c62f97 100644
--- a/module/project/model.php
+++ b/module/project/model.php
@@ -203,7 +203,7 @@ class projectModel extends model
$currentProjectName = '';
if(isset($currentProject->name)) $currentProjectName = $currentProject->name;
- if($this->config->systemMode == 'old')
+ if($this->config->systemMode == 'classic')
{
$this->session->set('moreProjectLink', $this->app->getURI(true));
$output = "
- config->systemMode == 'old' or $project->grade == 1):?>
+ config->systemMode == 'classic' or $project->grade == 1):?>
project->unlinkedProducts;?>
diff --git a/module/projectstory/lang/de.php b/module/projectstory/lang/de.php
index ce7db80304..b2377070e6 100644
--- a/module/projectstory/lang/de.php
+++ b/module/projectstory/lang/de.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = 'Anforderungen an Projekte';
$lang->projectstory->index = 'Fordern Sie Homepage';
$lang->projectstory->view = 'Story Detail';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = 'Matrix der Verfolgung';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
diff --git a/module/projectstory/lang/en.php b/module/projectstory/lang/en.php
index 20ca0d72b2..eaca6a34fd 100644
--- a/module/projectstory/lang/en.php
+++ b/module/projectstory/lang/en.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = 'Project Requirements';
$lang->projectstory->index = 'Request Home';
$lang->projectstory->view = 'Story Detail';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = 'Tracking Matrix';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
diff --git a/module/projectstory/lang/fr.php b/module/projectstory/lang/fr.php
index 5f0933d2ca..e63f508d4f 100644
--- a/module/projectstory/lang/fr.php
+++ b/module/projectstory/lang/fr.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = 'Exigences du projet';
$lang->projectstory->index = 'Exigences Accueil';
$lang->projectstory->view = 'Story Detail';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = 'Matrice de suivi';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
diff --git a/module/projectstory/lang/vi.php b/module/projectstory/lang/vi.php
index f87e63f934..cff6a5b845 100644
--- a/module/projectstory/lang/vi.php
+++ b/module/projectstory/lang/vi.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = 'Yêu cầu dự án';
$lang->projectstory->index = 'Yêu cầu trang nhà';
$lang->projectstory->view = 'Story Detail';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = 'Theo dõi ma trận';
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
diff --git a/module/projectstory/lang/zh-cn.php b/module/projectstory/lang/zh-cn.php
index 6d5218b319..495979caeb 100644
--- a/module/projectstory/lang/zh-cn.php
+++ b/module/projectstory/lang/zh-cn.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = '项目需求';
$lang->projectstory->index = '需求主页';
$lang->projectstory->view = '需求详情';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = '矩阵';
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
diff --git a/module/projectstory/lang/zh-tw.php b/module/projectstory/lang/zh-tw.php
index ebcb3d8011..645cd80cf5 100644
--- a/module/projectstory/lang/zh-tw.php
+++ b/module/projectstory/lang/zh-tw.php
@@ -2,7 +2,6 @@
$lang->projectstory->common = '項目需求';
$lang->projectstory->index = '需求主頁';
$lang->projectstory->view = '需求詳情';
-$lang->projectstory->story = $lang->generalSR;
$lang->projectstory->track = '矩陣';
$lang->projectstory->linkStory = '關聯' . $lang->SRCommon;
$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
diff --git a/module/report/control.php b/module/report/control.php
index fa8921a146..1db4730b69 100644
--- a/module/report/control.php
+++ b/module/report/control.php
@@ -71,12 +71,16 @@ class report extends control
/**
* Product information report.
*
+ * @params string $conditions
* @access public
* @return void
*/
public function productSummary($conditions = '')
{
$this->app->loadLang('story');
+ $this->app->loadLang('product');
+ $this->app->loadLang('productplan');
+
$this->view->title = $this->lang->report->productSummary;
$this->view->position[] = $this->lang->report->productSummary;
$this->view->products = $this->report->getProducts($conditions);
diff --git a/module/report/css/common.css b/module/report/css/common.css
index 99914392e7..1754597633 100644
--- a/module/report/css/common.css
+++ b/module/report/css/common.css
@@ -4,6 +4,8 @@
.date{width:80px;}
ul li{list-style:none;}
+.side-col {padding-right: 20px; width: 15%;}
+#sidebar>.cell {width: 100%;}
#productList p{margin:2px 0;}
.table-bordered, .outer.with-side .main, .outer.with-side > form > .table, .outer.with-side > .table{border: none}
diff --git a/module/report/view/blockreportlist.html.php b/module/report/view/blockreportlist.html.php
index 1e9394db18..2a9b0b9c6e 100644
--- a/module/report/view/blockreportlist.html.php
+++ b/module/report/view/blockreportlist.html.php
@@ -1,19 +1,29 @@
-
-
-
report->list;?>
+
+
+
+
+
+
+ reportList->$submenu->lists);
+ foreach($lang->reportList->$submenu->lists as $list)
+ {
+ $list .= '|';
+ list($label, $module, $method, $params) = explode('|', $list);
+ $class = $label == $title ? 'selected' : '';
+ if(common::hasPriv($module, $method)) echo html::a($this->createLink($module, $method, $params), ' ' . $label, '', "class='$class' title='$label'");
+ }
+ ?>
+
+
-
-
- reportList->$submenu->lists);
- foreach($lang->reportList->$submenu->lists as $list)
- {
- $list .= '|';
- list($label, $module, $method, $params) = explode('|', $list);
- $class = $label == $title ? 'selected' : '';
- if(common::hasPriv($module, $method)) echo html::a($this->createLink($module, $method, $params), '
' . $label, '', "class='$class' title='$label'");
- }
- ?>
+
+
+ PRO isINT)) ? $lang->report->proVersionEn : $lang->report->proVersion;?>
diff --git a/module/report/view/bugassign.html.php b/module/report/view/bugassign.html.php
index efe10ee87d..a65207bd39 100644
--- a/module/report/view/bugassign.html.php
+++ b/module/report/view/bugassign.html.php
@@ -1,12 +1,7 @@
-
+
diff --git a/module/report/view/bugcreate.html.php b/module/report/view/bugcreate.html.php
index 10bbd909e2..84c0e71b0f 100644
--- a/module/report/view/bugcreate.html.php
+++ b/module/report/view/bugcreate.html.php
@@ -1,13 +1,8 @@
-
+
diff --git a/module/report/view/productsummary.html.php b/module/report/view/productsummary.html.php
index cc8ee7b415..c6a18768e5 100644
--- a/module/report/view/productsummary.html.php
+++ b/module/report/view/productsummary.html.php
@@ -3,13 +3,8 @@
-
+
diff --git a/module/report/view/projectdeviation.html.php b/module/report/view/projectdeviation.html.php
index 1c9253c93f..bb2d9d28ec 100644
--- a/module/report/view/projectdeviation.html.php
+++ b/module/report/view/projectdeviation.html.php
@@ -3,13 +3,8 @@
array(), 'data' => array());?>
-
+
diff --git a/module/report/view/workload.html.php b/module/report/view/workload.html.php
index af9ae20f12..26f7f1c9ef 100644
--- a/module/report/view/workload.html.php
+++ b/module/report/view/workload.html.php
@@ -2,13 +2,8 @@
project->weekend);?>
-
+
diff --git a/module/story/control.php b/module/story/control.php
index 5d1f5964c3..59fd014da1 100644
--- a/module/story/control.php
+++ b/module/story/control.php
@@ -327,33 +327,36 @@ class story extends control
* @param int $branch
* @param int $moduleID
* @param int $storyID
- * @param int $project
+ * @param int $projectID
* @param int $plan
* @param string $type requirement|story
* @access public
* @return void
*/
- public function batchCreate($productID = 0, $branch = 0, $moduleID = 0, $storyID = 0, $project = 0, $plan = 0, $type = 'story')
+ public function batchCreate($productID = 0, $branch = 0, $moduleID = 0, $storyID = 0, $projectID = 0, $plan = 0, $type = 'story')
{
$this->lang->product->menu = $this->lang->product->viewMenu;
$this->lang->product->switcherMenu = $this->product->getSwitcher($productID);
$this->lang->product->mainMenuAction = $this->product->getProductMainAction();
- if($project)
+ if($projectID)
{
- $prj = $this->dao->findById((int)$project)->from(TABLE_PROJECT)->fetch();
- if($prj->type == 'project')
+ $projects = $this->loadModel('project')->getExecutionPairs();
+ $this->project->setMenu($projects, $projectID);
+
+ $project = $this->dao->findById((int)$projectID)->from(TABLE_PROJECT)->fetch();
+ if($project->type == 'project')
{
$this->app->rawModule = 'projectstory';
$this->lang->navGroup->story = 'project';
- $this->lang->product->menu = $this->lang->menu->{$prj->model};
+ $this->lang->product->menu = $this->lang->menu->{$project->model};
}
else
{
$this->app->rawModule = 'project';
$this->lang->navGroup->story = 'project';
}
- $this->view->project = $prj;
+ $this->view->project = $project;
}
/* Clear title when switching products and set the session for the current product. */
@@ -378,12 +381,12 @@ class story extends control
foreach($mails as $mail) $stories[] = $mail->storyID;
/* Project or execution linked stories. */
- if($project)
+ if($projectID)
{
$products = array();
foreach($mails as $story) $products[$story->storyID] = $productID;
- $this->loadModel('project')->linkStory($project, $stories, $products);
- if($project != $this->session->PRJ) $this->loadModel('project')->linkStory($this->session->PRJ, $stories, $products);
+ $this->loadModel('project')->linkStory($projectID, $stories, $products);
+ if($projectID != $this->session->PRJ) $this->loadModel('project')->linkStory($this->session->PRJ, $stories, $products);
}
/* If storyID not equal zero, subdivide this story to child stories and close it. */
@@ -399,11 +402,11 @@ class story extends control
{
die(js::locate(inlink('view', "storyID=$storyID"), 'parent'));
}
- elseif($project)
+ elseif($projectID)
{
setcookie('storyModuleParam', 0, 0, $this->config->webRoot, '', false, false);
- $moduleName = $prj->type == 'project' ? 'projectstory' : 'project';
- $param = $prj->type == 'project' ? "productID=$productID" : "projectID=$project&orderBy=id_desc&browseType=unclosed";
+ $moduleName = $project->type == 'project' ? 'projectstory' : 'project';
+ $param = $project->type == 'project' ? "productID=$productID" : "projectID=$projectID&orderBy=id_desc&browseType=unclosed";
$link = $this->createLink($moduleName, 'story', $param);
die(js::locate($link, 'parent'));
}
@@ -494,7 +497,7 @@ class story extends control
$this->view->branch = $branch;
$this->view->branches = $this->loadModel('branch')->getPairs($productID);
/* When the user is product owner or add story in project or not set review, the default is not to review. */
- $this->view->needReview = ($this->app->user->account == $product->PO || $project > 0 || $this->config->story->needReview == 0) ? 0 : 1;
+ $this->view->needReview = ($this->app->user->account == $product->PO || $projectID > 0 || $this->config->story->needReview == 0) ? 0 : 1;
$this->display();
}
diff --git a/module/story/model.php b/module/story/model.php
index b92761810c..8c6bc48855 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -3279,12 +3279,12 @@ class storyModel extends model
$canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchChangeStage or $canBatchChangeBranch or $canBatchChangeModule or $canBatchChangePlan or $canBatchAssignTo or $canBatchUnlinkStory);
- $module = $this->app->rawModule == 'projectstory' ? 'projectstory' : 'story';
- $canView = common::hasPriv($module, 'view');
- $openModule = $this->app->rawModule == 'projectstory' ? 'project' : 'product';
- $storyLink = helper::createLink($module, 'view', "storyID=$story->id");
- $account = $this->app->user->account;
- $id = $col->id;
+ $module = $this->app->rawModule == 'projectstory' ? 'projectstory' : 'story';
+ $canView = common::hasPriv($module, 'view');
+ $openGroup = $this->app->rawModule == 'projectstory' ? 'project' : 'product';
+ $storyLink = helper::createLink($module, 'view', "storyID=$story->id");
+ $account = $this->app->user->account;
+ $id = $col->id;
if($col->show)
{
$class = "c-{$id}";
@@ -3347,7 +3347,7 @@ class storyModel extends model
case 'id':
if($canBatchAction)
{
- echo html::checkbox('storyIdList', array($story->id => '')) . html::a($storyLink, sprintf('%03d', $story->id), '', "data-group='$openModule'");
+ echo html::checkbox('storyIdList', array($story->id => '')) . html::a($storyLink, sprintf('%03d', $story->id), '', "data-group='$openGroup'");
}
else
{
@@ -3365,7 +3365,7 @@ class storyModel extends model
if($story->branch and isset($branches[$story->branch])) echo "
{$branches[$story->branch]} ";
if($story->module and isset($modulePairs[$story->module])) echo "
{$modulePairs[$story->module]} ";
if($story->parent > 0) echo '
' . $this->lang->story->childrenAB . ' ';
- echo $canView ? html::a($storyLink, $story->title, '', "style='color: $story->color' data-group='$openModule'") : "
{$story->title}";
+ echo $canView ? html::a($storyLink, $story->title, '', "style='color: $story->color' data-group='$openGroup'") : "
{$story->title}";
if(!empty($story->children)) echo '
';
break;
case 'plan':
@@ -3649,12 +3649,15 @@ class storyModel extends model
$stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id);
$stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id);
$stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id);
- $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
- $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION)
- ->where('AType')->eq('design')
- ->andWhere('BType')->eq('commit')
- ->andWhere('AID')->in(array_keys($stories[$id]->designs))
- ->fetchPairs();
+ if(isset($this->config->maxVersion))
+ {
+ $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
+ $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION)
+ ->where('AType')->eq('design')
+ ->andWhere('BType')->eq('commit')
+ ->andWhere('AID')->in(array_keys($stories[$id]->designs))
+ ->fetchPairs();
+ }
}
$requirement->track = $stories;
@@ -3680,12 +3683,15 @@ class storyModel extends model
$stories[$id]->cases = $this->loadModel('testcase')->getStoryCases($id);
$stories[$id]->bugs = $this->loadModel('bug')->getStoryBugs($id);
$stories[$id]->tasks = $this->loadModel('task')->getStoryTasks($id);
- $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
- $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION)
- ->where('AType')->eq('design')
- ->andWhere('BType')->eq('commit')
- ->andWhere('AID')->in(array_keys($stories[$id]->designs))
- ->fetchPairs();
+ if(isset($this->config->maxVersion))
+ {
+ $stories[$id]->designs = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
+ $stories[$id]->revisions = $this->dao->select('BID, extra')->from(TABLE_RELATION)
+ ->where('AType')->eq('design')
+ ->andWhere('BType')->eq('commit')
+ ->andWhere('AID')->in(array_keys($stories[$id]->designs))
+ ->fetchPairs();
+ }
}
$requirements['noRequirement'] = $stories;
@@ -3711,12 +3717,16 @@ class storyModel extends model
foreach($stories as $id => $title)
{
$track[$id] = new stdclass();
- $track[$id]->title = $title;
- $track[$id]->case = $this->loadModel('testcase')->getStoryCases($id);
- $track[$id]->bug = $this->loadModel('bug')->getStoryBugs($id);
- $track[$id]->design = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
- $track[$id]->story = $this->getByID($id);
- $track[$id]->revision = $this->dao->select('BID, extra')->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('BType')->eq('commit')->andWhere('AID')->in(array_keys($track[$id]->design))->fetchPairs();
+ $track[$id]->title = $title;
+ $track[$id]->case = $this->loadModel('testcase')->getStoryCases($id);
+ $track[$id]->bug = $this->loadModel('bug')->getStoryBugs($id);
+ $track[$id]->story = $this->getByID($id);
+ $track[$id]->task = $this->loadModel('task')->getStoryTasks($id);
+ if(isset($this->config->maxVersion))
+ {
+ $track[$id]->design = $this->dao->select('id, name')->from(TABLE_DESIGN)->where('story')->eq($id)->fetchAll('id');
+ $track[$id]->revision = $this->dao->select('BID, extra')->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('BType')->eq('commit')->andWhere('AID')->in(array_keys($track[$id]->design))->fetchPairs();
+ }
}
return $track;
diff --git a/module/story/view/track.html.php b/module/story/view/track.html.php
index f25ed35313..f58bb53ee4 100644
--- a/module/story/view/track.html.php
+++ b/module/story/view/track.html.php
@@ -44,7 +44,9 @@
story->design;?> |
story->case;?> |
+ maxVersion)):?>
story->repoCommit;?> |
+
story->bug;?> |
@@ -81,6 +83,7 @@
createLink('testcase', 'view', "caseID=$caseID", '', false, $case->PRJ), $case->title, '', "title='$case->title'") . '
';?>
+ maxVersion)):?>
revisions as $revision => $repoID):?>
|
+
bugs as $bugID => $bug):?>
createLink('bug', 'view', "bugID=$bugID"), $bug->title, '', "title='$bug->title'") . ' ';?>
@@ -101,9 +105,9 @@
| |
|
|
-
|
maxVersion)):?>
|
+
|
diff --git a/module/story/view/view.html.php b/module/story/view/view.html.php
index b1eeb9efbd..9280aea0d7 100644
--- a/module/story/view/view.html.php
+++ b/module/story/view/view.html.php
@@ -50,14 +50,14 @@
app->rawModule == 'projectstory')
{
$otherParam = "storyID=&projectID={$this->session->PRJ}";
- $openModule = 'project';
+ $openGroup = 'project';
}
?>
- product}&branch={$story->branch}&moduleID={$story->module}&$otherParam", "
" . $lang->story->create, '', "class='btn btn-primary' data-group='$openModule'"); ?>
+ product}&branch={$story->branch}&moduleID={$story->module}&$otherParam", "
" . $lang->story->create, '', "class='btn btn-primary' data-group='$openGroup'"); ?>
diff --git a/module/task/control.php b/module/task/control.php
index 2161dc0b99..b0bd27fb45 100644
--- a/module/task/control.php
+++ b/module/task/control.php
@@ -206,7 +206,7 @@ class task extends control
$this->view->title = $title;
$this->view->position = $position;
$this->view->project = $project;
- $this->view->projects = $this->config->systemMode == 'old' ? $projects : $this->loadModel('project')->getExecutionsByProject($this->session->PRJ, 'all', 0, true);
+ $this->view->projects = $this->config->systemMode == 'classic' ? $projects : $this->loadModel('project')->getExecutionsByProject($this->session->PRJ, 'all', 0, true);
$this->view->task = $task;
$this->view->users = $users;
$this->view->stories = $stories;
@@ -392,7 +392,7 @@ class task extends control
$this->view->users = $this->loadModel('user')->getPairs('nodeleted', "{$this->view->task->openedBy},{$this->view->task->canceledBy},{$this->view->task->closedBy}");
$this->view->showAllModule = isset($this->config->project->task->allModule) ? $this->config->project->task->allModule : '';
$this->view->modules = $this->tree->getTaskOptionMenu($this->view->task->project, 0, 0, $this->view->showAllModule ? 'allModule' : '');
- $this->view->projects = $this->config->systemMode == 'old' ? $this->project->getExecutionPairs() : $this->loadModel('project')->getExecutionsByProject($this->session->PRJ, 'all', 0, true);
+ $this->view->projects = $this->config->systemMode == 'classic' ? $this->project->getExecutionPairs() : $this->loadModel('project')->getExecutionsByProject($this->session->PRJ, 'all', 0, true);
$this->display();
}
diff --git a/module/testsuite/model.php b/module/testsuite/model.php
index 737050518b..f73a5f6338 100644
--- a/module/testsuite/model.php
+++ b/module/testsuite/model.php
@@ -133,7 +133,7 @@ class testsuiteModel extends model
{
return $this->dao->select("*")->from(TABLE_TESTSUITE)
->where('product')->eq((int)$productID)
- ->beginIF($this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('deleted')->eq(0)
->andWhere("(`type` = 'public' OR (`type` = 'private' and addedBy = '{$this->app->user->account}'))")
->orderBy($orderBy)
@@ -242,7 +242,7 @@ class testsuiteModel extends model
$cases = $this->dao->select('t1.*,t2.version as caseVersion')->from(TABLE_CASE)->alias('t1')
->leftJoin(TABLE_SUITECASE)->alias('t2')->on('t1.id=t2.case')
->where('t2.suite')->eq($suiteID)
- ->andWhere('t1.PRJ')->eq($this->session->PRJ)
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testsuite != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
->andWhere('t1.product')->eq($suite->product)
->andWhere('t1.product')->eq($suite->product)
->andWhere('t1.deleted')->eq(0)
@@ -286,7 +286,7 @@ class testsuiteModel extends model
$linkedCases = $this->getLinkedCases($suite->id, 'id_desc', null, $append = false);
$cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
->andWhere('id')->notIN(array_keys($linkedCases))
- ->beginIF($this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('deleted')->eq(0)
->orderBy('id desc')
->page($pager)
@@ -323,7 +323,7 @@ class testsuiteModel extends model
{
$importedCases = $this->dao->select('fromCaseID')->from(TABLE_CASE)
->where('product')->eq($productID)
- ->andWhere('PRJ')->eq($this->session->PRJ)
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('lib')->eq($libID)
->andWhere('fromCaseID')->ne('')
->andWhere('deleted')->eq(0)
@@ -357,7 +357,7 @@ class testsuiteModel extends model
return $this->dao->select('*')->from(TABLE_CASE)->where('deleted')->eq(0)
->beginIF($browseType != 'bysearch')->andWhere('lib')->eq($libID)->fi()
->beginIF($browseType == 'bysearch')->andWhere($query)->fi()
- ->andWhere('PRJ')->eq($this->session->PRJ)
+ ->begin($this->config->systemMode == 'new' and $this->lang->navGroup->testsuite != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('product')->eq(0)
->andWhere('id')->notIN($importedCases)
->orderBy($orderBy)
diff --git a/module/testsuite/view/view.html.php b/module/testsuite/view/view.html.php
index f1615d117e..c9730c2fe2 100644
--- a/module/testsuite/view/view.html.php
+++ b/module/testsuite/view/view.html.php
@@ -60,12 +60,12 @@
idAB);?>
-
priAB);?> |
-
testcase->module);?> |
-
testcase->title);?> |
-
testcase->type);?> |
-
statusAB);?> |
-
testcase->lastRunResult);?> |
+
priAB);?> |
+
testcase->module);?> |
+
testcase->title);?> |
+
testcase->type);?> |
+
statusAB);?> |
+
testcase->lastRunResult);?> |
testcase->bugsAB;?> |
testcase->resultsAB;?> |
testcase->stepNumberAB;?> |
diff --git a/module/testtask/control.php b/module/testtask/control.php
index 2b0b5ae9cb..264757b558 100644
--- a/module/testtask/control.php
+++ b/module/testtask/control.php
@@ -1217,10 +1217,10 @@ class testtask extends control
}
/**
- * Ajax get test tasks
- *
- * @param int $productID
- * @param int $projectID
+ * Ajax get test tasks.
+ *
+ * @param int $productID
+ * @param int $projectID
* @access public
* @return void
*/
diff --git a/module/testtask/model.php b/module/testtask/model.php
index 8ba40def67..5a0bda95e1 100644
--- a/module/testtask/model.php
+++ b/module/testtask/model.php
@@ -203,7 +203,7 @@ class testtaskModel extends model
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t5')->on('t1.project = t5.project and t1.product = t5.product')
->where('t1.deleted')->eq(0)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
->andWhere('t1.auto')->ne('unit')
->beginIF(!$this->app->user->admin)->andWhere('t3.id')->in("0,{$this->app->user->view->sprints}")->fi()
->beginIF($scopeAndStatus[0] == 'local')->andWhere('t1.product')->eq((int)$productID)->fi()
@@ -239,7 +239,7 @@ class testtaskModel extends model
->leftJoin(TABLE_BUILD)->alias('t4')->on('t1.build = t4.id')
->where('t1.deleted')->eq(0)
->andWhere('t1.product')->eq($productID)
- ->andWhere('t1.PRJ')->eq($this->session->PRJ)
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
->andWhere('t1.auto')->eq('unit')
->beginIF($browseType != 'all' and $browseType != 'newest' and $beginAndEnd)
->andWhere('t1.end')->ge($beginAndEnd['begin'])
@@ -293,11 +293,11 @@ class testtaskModel extends model
}
/**
- * Get testtask pairs
- *
- * @param int $productID
- * @param int $projectID
- * @param string $appendIdList
+ * Get testtask pairs.
+ *
+ * @param int $productID
+ * @param int $projectID
+ * @param string $appendIdList
* @param string $params noempty
* @access public
* @return array
@@ -455,7 +455,7 @@ class testtaskModel extends model
{
return $this->dao->select('*')->from(TABLE_CASE)->where($query)
->andWhere('id')->notIN($linkedCases)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('status')->ne('wait')
->andWhere('type')->ne('unit')
->beginIF($task->branch)->andWhere('branch')->in("0,$task->branch")->fi()
@@ -484,7 +484,7 @@ class testtaskModel extends model
{
$cases = $this->dao->select('*')->from(TABLE_CASE)
->where($query)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('product')->eq($productID)
->andWhere('status')->ne('wait')
->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
@@ -517,7 +517,7 @@ class testtaskModel extends model
if($bugs)
{
$cases = $this->dao->select('*')->from(TABLE_CASE)->where($query)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('PRJ')->eq($this->session->PRJ)->fi()
->andWhere('product')->eq($productID)
->andWhere('status')->ne('wait')
->beginIF($linkedCases)->andWhere('id')->notIN($linkedCases)->fi()
@@ -550,7 +550,7 @@ class testtaskModel extends model
return $this->dao->select('t1.*,t2.version as version')->from(TABLE_CASE)->alias('t1')
->leftJoin(TABLE_SUITECASE)->alias('t2')->on('t1.id=t2.case')
->where($query)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
->andWhere('t2.suite')->eq((int)$suite)
->andWhere('t1.product')->eq($productID)
->andWhere('status')->ne('wait')
@@ -585,7 +585,7 @@ class testtaskModel extends model
->where($query)
->andWhere('t1.id')->notin($linkedCases)
->andWhere('t2.task')->eq($testTask)
- ->beginIF($this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
+ ->beginIF($this->config->systemMode == 'new' and $this->lang->navGroup->testtask != 'qa')->andWhere('t1.PRJ')->eq($this->session->PRJ)->fi()
->andWhere('t1.status')->ne('wait')
->page($pager)
->fetchAll();
diff --git a/module/tree/control.php b/module/tree/control.php
index e0120056a0..16d5fe17e9 100644
--- a/module/tree/control.php
+++ b/module/tree/control.php
@@ -16,9 +16,11 @@ class tree extends control
/**
* Module browse.
*
- * @param int $rootID
+ * @param int $rootID
* @param string $viewType story|bug|case|doc
- * @param int $currentModuleID
+ * @param int $currentModuleID
+ * @param int $branch
+ * @param string $from
* @access public
* @return void
*/
diff --git a/module/tree/js/browse.js b/module/tree/js/browse.js
index 5738cfee20..2661c9b8ab 100644
--- a/module/tree/js/browse.js
+++ b/module/tree/js/browse.js
@@ -63,15 +63,13 @@ function syncProductOrProject(obj, type)
$('#copyModule').bind('click', function(){syncModule(obj.value, viewType)});
}
-function toggleCopy()
+function toggleCopy(toggle)
{
- var $copy = $('.table-row.copy');
- if($copy.size() == 0) return false;
- $copy.toggle();
+ $('.table-row.copy').toggle(toggle);
}
$(document).ready(function()
{
- toggleCopy();
+ toggleCopy(false);
$('[data-id="edit"] a').modalTrigger({type: 'iframe', width: 500});
});
diff --git a/module/tree/view/browse.html.php b/module/tree/view/browse.html.php
index 7746f937ea..d69ea8c7b3 100644
--- a/module/tree/view/browse.html.php
+++ b/module/tree/view/browse.html.php
@@ -104,7 +104,7 @@ li.tree-item-story > .tree-actions .tree-action[data-type=delete]{display:none;}
-
+
diff --git a/module/upgrade/lang/zh-cn.php b/module/upgrade/lang/zh-cn.php
index 4ad3208cf2..945f9643d5 100644
--- a/module/upgrade/lang/zh-cn.php
+++ b/module/upgrade/lang/zh-cn.php
@@ -73,11 +73,11 @@ $lang->upgrade->mergeProgramDesc = << 可以选择这些迭代归属于某个新项目下。
EOD;
-$lang->upgrade->to15Mode['old'] = '保持老版本的习惯';
-$lang->upgrade->to15Mode['new'] = '全新项目集管理模式';
+$lang->upgrade->to15Mode['classic'] = '保持老版本的习惯';
+$lang->upgrade->to15Mode['new'] = '全新项目集管理模式';
-$lang->upgrade->selectedModeTips['old'] = '后续您还可以在后台-自定义里面切换为全新项目集管理的模式。';
-$lang->upgrade->selectedModeTips['new'] = '切换为项目集管理模式需要对之前的数据进行归并处理,系统会引导您完成这个操作。';
+$lang->upgrade->selectedModeTips['classic'] = '后续您还可以在后台-自定义里面切换为全新项目集管理的模式。';
+$lang->upgrade->selectedModeTips['new'] = '切换为项目集管理模式需要对之前的数据进行归并处理,系统会引导您完成这个操作。';
$lang->upgrade->line = '产品线';
$lang->upgrade->program = '目标项目集和项目';
diff --git a/module/upgrade/view/to15guide.html.php b/module/upgrade/view/to15guide.html.php
index 03d2ef6c21..c2a12b312f 100644
--- a/module/upgrade/view/to15guide.html.php
+++ b/module/upgrade/view/to15guide.html.php
@@ -18,8 +18,8 @@
upgrade->to15Desc;?>
- upgrade->to15Mode, 'old');?>
- upgrade->selectedModeTips['old'];?>
+ upgrade->to15Mode, 'classic');?>
+ upgrade->selectedModeTips['classic'];?>
diff --git a/module/user/css/profile.css b/module/user/css/profile.css
index ea41c2106a..1fe2d2d83e 100644
--- a/module/user/css/profile.css
+++ b/module/user/css/profile.css
@@ -1,12 +1,12 @@
-.main-header{margin-bottom: 10px;}
-.row table{width: 94%; margin-left: 3%;}
-.row th{width: 17%; line-height: 30px; padding-right: 20px; text-align: right; font-weight: 500;}
-.row td{width: 33%; text-align: left; font-weight: 700;}
-.main-actions{margin: 20px 0 20px 0; text-align: center;}
-.user-title{margin: 10px 10px -10px 10px; font-size: 14px; font-weight: bold; padding-left: 10px;}
-.avatar{display: inline-block; width: 50px; height: 50px; line-height: 50px;}
-.user-name{margin-left: 15px; font-weight: bold;}
-.user-name, .user-role{font-size: 16px; vertical-align: top; line-height: 50px;}
-.line{border-top: 1px solid #eee; margin: 10px;}
-#avatarUploadBtn{padding: 4px 12px; position: relative; left: 32px; bottom: 30px;}
-#avatarForm{height: 10px}
+.main-header {margin-bottom: 10px;}
+.row table {width: 94%; margin-left: 3%;}
+.row th {width: 17%; line-height: 30px; padding-right: 20px; text-align: right; font-weight: 500;}
+.row td {width: 33%; text-align: left; font-weight: 700;}
+.main-actions {margin: 20px 0 20px 0; text-align: center;}
+.user-title {margin: 10px 10px -10px 10px; font-size: 14px; font-weight: bold; padding-left: 10px;}
+.avatar {display: inline-block; width: 50px; height: 50px; line-height: 50px;}
+.user-name {margin-left: 15px; font-weight: bold;}
+.user-name, .user-role {font-size: 16px; vertical-align: top; line-height: 50px;}
+.line {border-top: 1px solid #eee; margin: 10px;}
+#avatarUploadBtn {padding: 4px 12px; position: relative; left: 32px; bottom: 30px;}
+#avatarForm {height: 10px}
diff --git a/module/user/model.php b/module/user/model.php
index 1091a48d9a..90144f7878 100644
--- a/module/user/model.php
+++ b/module/user/model.php
@@ -1548,7 +1548,7 @@ class userModel extends model
if($allProducts === null) $allProducts = $this->dao->select('id,PO,QD,RD,createdBy,acl,whitelist,program,createdBy')->from(TABLE_PRODUCT)->where('acl')->ne('open')->fetchAll('id');
if($allProjects === null) $allProjects = $this->dao->select('id,PO,PM,QD,RD,acl,type,path,parent,openedBy')->from(TABLE_PROJECT)->where('acl')->ne('open')->andWhere('type')->eq('project')->fetchAll('id');
if($allPrograms === null) $allPrograms = $this->dao->select('id,PO,PM,QD,RD,acl,type,path,openedBy')->from(TABLE_PROJECT)->where('acl')->ne('open')->andWhere('type')->eq('program')->fetchAll('id');
- if($allSprints === null) $allSprints = $this->dao->select('id,PO,PM,QD,RD,acl,project,path,parent,type,openedBy')->from(TABLE_PROJECT)->where('acl')->eq('private')->andWhere('type')->in('sprint,stage')->fetchAll('id');
+ if($allSprints === null) $allSprints = $this->dao->select('id,PO,PM,QD,RD,acl,project,path,parent,type,openedBy')->from(TABLE_PROJECT)->where('acl')->eq('private')->beginIF($this->config->systemMode == 'new')->andWhere('type')->in('sprint,stage')->fi()->fetchAll('id');
/* Get teams. */
if($teams === null)
@@ -1777,9 +1777,8 @@ class userModel extends model
/* Set opened sprints and stages into userview. */
$openedSprints = $this->dao->select('id')->from(TABLE_PROJECT)
->where('acl')->eq('open')
- ->andWhere('type')
- ->in('sprint,stage')
- ->andWhere('project')->in($userView->projects)
+ ->beginIF($this->config->systemMode == 'new')->andWhere('type')->in('sprint,stage')->fi()
+ ->beginIF($this->config->systemMode == 'new')->andWhere('project')->in($userView->projects)->fi()
->fetchAll('id');
$openedSprints = join(',', array_keys($openedSprints));
|