From b83692f5f7307f60ba9e3b4ac0a7a527cef83fc4 Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Tue, 2 Mar 2021 09:26:12 +0800 Subject: [PATCH 01/23] * Modify the variable name. --- module/product/control.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/module/product/control.php b/module/product/control.php index c0ad2a19f5..98c14c1169 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; } } } From 72d695e8c8136df5b507e771d041a3da9f1a202c Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Tue, 2 Mar 2021 09:12:28 +0800 Subject: [PATCH 02/23] * Finish task #36361. --- module/common/lang/menuOrder.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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'; From 32d050147d917993a1aa8c85328c160066213596 Mon Sep 17 00:00:00 2001 From: Yagami <976204163@qq.com> Date: Tue, 2 Mar 2021 09:37:04 +0800 Subject: [PATCH 03/23] * Finish task #36362. --- config/zentaopms.php | 3 - db/update15.0.sql | 34 -- db/zentao.sql | 33 -- module/common/lang/de.php | 10 - module/common/lang/en.php | 10 - module/common/lang/fr.php | 10 - module/common/lang/vi.php | 10 - module/common/lang/zh-cn.php | 10 - module/design/config.php | 32 -- module/design/control.php | 433 ----------------------- module/design/css/browse.css | 3 - module/design/css/edit.css | 1 - module/design/css/linkcommit.css | 8 - module/design/js/browse.js | 5 - module/design/js/common.js | 16 - module/design/js/linkcommit.js | 28 -- module/design/lang/de.php | 78 ----- module/design/lang/en.php | 78 ----- module/design/lang/fr.php | 78 ----- module/design/lang/vi.php | 78 ----- module/design/lang/zh-cn.php | 78 ----- module/design/lang/zh-tw.php | 78 ----- module/design/model.php | 445 ------------------------ module/design/view/assignto.html.php | 40 --- module/design/view/batchcreate.html.php | 44 --- module/design/view/browse.html.php | 64 ---- module/design/view/create.html.php | 62 ---- module/design/view/edit.html.php | 99 ------ module/design/view/linkcommit.html.php | 88 ----- module/design/view/view.html.php | 91 ----- module/design/view/viewcommit.html.php | 63 ---- module/group/lang/resource.php | 27 -- module/story/model.php | 46 ++- module/story/view/track.html.php | 6 +- 34 files changed, 33 insertions(+), 2156 deletions(-) delete mode 100644 module/design/config.php delete mode 100644 module/design/control.php delete mode 100644 module/design/css/browse.css delete mode 100644 module/design/css/edit.css delete mode 100644 module/design/css/linkcommit.css delete mode 100644 module/design/js/browse.js delete mode 100644 module/design/js/common.js delete mode 100644 module/design/js/linkcommit.js delete mode 100644 module/design/lang/de.php delete mode 100644 module/design/lang/en.php delete mode 100644 module/design/lang/fr.php delete mode 100644 module/design/lang/vi.php delete mode 100644 module/design/lang/zh-cn.php delete mode 100644 module/design/lang/zh-tw.php delete mode 100644 module/design/model.php delete mode 100644 module/design/view/assignto.html.php delete mode 100644 module/design/view/batchcreate.html.php delete mode 100644 module/design/view/browse.html.php delete mode 100644 module/design/view/create.html.php delete mode 100644 module/design/view/edit.html.php delete mode 100644 module/design/view/linkcommit.html.php delete mode 100644 module/design/view/view.html.php delete mode 100644 module/design/view/viewcommit.html.php 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/module/common/lang/de.php b/module/common/lang/de.php index 360fa4cc7f..9a0b88ed45 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -650,7 +650,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 +945,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 +954,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,13 +964,6 @@ $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') diff --git a/module/common/lang/en.php b/module/common/lang/en.php index 0fa00044b6..0c6ec83792 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -650,7 +650,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 +945,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 +954,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,13 +964,6 @@ $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') diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 9e125c202f..137c574c11 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -650,7 +650,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 +945,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 +954,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,13 +964,6 @@ $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') diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php index 94461b5d60..f5187e2250 100644 --- a/module/common/lang/vi.php +++ b/module/common/lang/vi.php @@ -650,7 +650,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 +944,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 +953,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,13 +963,6 @@ $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') diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 77ce890a28..64d63f0af3 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -648,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'; @@ -944,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(); @@ -954,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(); @@ -965,13 +962,6 @@ $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') 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 = ''; - - /* 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 . '';?> -

-
-
- - - - - - - - - - - - - - -
design->assignedTo;?>assignedTo, "class='form-control chosen'");?>
comment;?>
-
-
- 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;?>

-
- - - - - - - - - - - - - - - - - - - - - - -
design->id;?>design->story;?>design->type;?>design->name;?>
design->typeList, '', "class='form-control chosen'");?>
- -
-
-
- 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 - */ -?> - - - -
-
- -
-

design->noDesign;?>

-
- -
- - recTotal}&recPerPage={$pager->recPerPage}";?> - - - - - - - - - - - - - - - - - - - - - - - - -
design->id);?> design->type);?> design->name);?> design->createdBy);?> design->createdDate);?>design->assignedTo);?> design->actions;?>
id);?> design->typeList, $design->type);?>createLink('design', 'view', "id={$design->id}"), $design->name);?> createdBy);?>createdDate, 0, 11);?> design->printAssignedHtml($design, $users);?> - id}"; - common::printIcon('design', 'edit', $vars, $design, 'list', 'fork', '', '', '', '', '', $design->PRJ); - common::printIcon('design', 'viewCommit', $vars, $design, 'list', 'list-alt', '', 'iframe showinonlybody', true); - common::printIcon('design', 'delete', $vars, $design, 'list', 'trash', 'hiddenwin', '', '', '', '', $design->PRJ); - ?> -
- -
- -
- 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;?>

-
-
- - - product == 'multiple'):?> - - - - - - - product == 'single') echo html::hidden('product', $productID);?> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
design->product;?>
design->story;?>
design->type;?>design->typeList, '', "class='form-control chosen'");?>
design->name;?>
design->desc;?>
design->file;?>fetch('file', 'buildform', 'fileCount=1&percent=0.85');?>
-
-
-
- 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;?>

-
-
- - - product == 'multiple'):?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
design->product;?>product, "class='form-control chosen'");?>
design->story;?>story, "class='form-control chosen'");?>
design->type;?>design->typeList, $design->type, "class='form-control chosen'");?>
design->name;?>name, "class='form-control'");?>
design->desc;?>desc, 'class="form-control"');?>
design->file;?>fetch('file', 'buildform', 'fileCount=1&percent=0.85');?>
story->checkAffection;?> -
- -
-
- - - - - - - - - - - - - tasks as $task):?> - - - ; - - - - - - - -
task->id;?> task->name;?> task->assignedTo;?>task->status;?> task->consumed;?> task->left;?>
id?>createLink('task', 'view', "taskID=$task->id"), $task->name, '_blank');?>assignedTo);?>processStatus('task', $task);?>consumed;?>left;?>
-
-
-
-
-
-
-
- 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;?> -

-
- -
-

design->noCommit;?>

-
- - -
method='post'> - - - - - - SCM) and $repo->SCM == 'Git'):?> - - - - - - - - - - - - - SCM == 'Git'):?> - - - - - comment, ENT_QUOTES);?> - - - - -
repo->revisionA?>repo->commit?>repo->time?>repo->committer?>repo->comment?>
-
- - -
-
repo->createLink('revision', "repoID=$repoID&revision={$log->revision}"), $repo->SCM == 'Git' ? substr($log->revision, 0, 10) : $log->revision);?>commit?>time, 0, 10);?>committer, $log->committer);?>comment?>
- -
- -
- -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->noCommit;?>

-
- - - - - - - - - - - - - commit as $commit):?> - - - - - - - - - -
design->submission;?>design->commitBy;?>design->commitDate;?>design->comment;?> design->actions;?>
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/group/lang/resource.php b/module/group/lang/resource.php index 58b3c97e16..5f1d26ec44 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(); @@ -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/story/model.php b/module/story/model.php index b92761810c..f09a276b3c 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -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)):?> + From 46df489385ba35a3da40bf109e9f58f3b062b958 Mon Sep 17 00:00:00 2001 From: hufangzhou <746775970@qq.com> Date: Tue, 2 Mar 2021 09:40:41 +0800 Subject: [PATCH 04/23] * Finish task #36363. --- module/personnel/control.php | 4 ++-- module/personnel/view/whitelist.html.php | 8 ++++---- module/product/control.php | 18 +++++++++--------- module/product/view/ajaxgetdropmenu.html.php | 6 +++--- module/program/model.php | 10 +++++----- module/story/model.php | 16 ++++++++-------- module/story/view/view.html.php | 6 +++--- 7 files changed, 34 insertions(+), 34 deletions(-) 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 @@ ?>
@@ -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..118984698f 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -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/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/program/model.php b/module/program/model.php index 2cc4237685..89c3d0d513 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -1958,9 +1958,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 +1969,8 @@ class programModel extends model echo "
"; echo ""; echo ""; echo "
"; diff --git a/module/story/model.php b/module/story/model.php index b92761810c..fdf7a64612 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': diff --git a/module/story/view/view.html.php b/module/story/view/view.html.php index 3fac5eb790..84a0457fc5 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'"); ?> From 53d1454d165a9b16c19d1a0630eaf1be7075c317 Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Tue, 2 Mar 2021 09:46:40 +0800 Subject: [PATCH 05/23] * Finish task #36250. --- module/tree/control.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 */ From 3e5a2546d8a69069f5c7e460426cd8b2c2df9f04 Mon Sep 17 00:00:00 2001 From: holan20180123 <56391770@qq.com> Date: Tue, 2 Mar 2021 09:49:37 +0800 Subject: [PATCH 06/23] * Finish task #36348. --- module/testtask/model.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/module/testtask/model.php b/module/testtask/model.php index 8ba40def67..ccd9fcb4a9 100644 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -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 From 106bb9c004270376f8f2731865ca0703a1b8f4e7 Mon Sep 17 00:00:00 2001 From: hufangzhou <746775970@qq.com> Date: Tue, 2 Mar 2021 09:51:42 +0800 Subject: [PATCH 07/23] * Finish task #36366. --- module/datatable/config.php | 1 - 1 file changed, 1 deletion(-) 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'; From e9eae41b3047ace10e6dc27d52952aef99f38f2f Mon Sep 17 00:00:00 2001 From: hufangzhou <746775970@qq.com> Date: Tue, 2 Mar 2021 09:57:18 +0800 Subject: [PATCH 08/23] * Finish task #36368. --- module/testsuite/view/view.html.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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;?> From 2098ef0e2d5a1df4036320e01f1d07af77d1c8da Mon Sep 17 00:00:00 2001 From: hufangzhou <746775970@qq.com> Date: Tue, 2 Mar 2021 10:08:11 +0800 Subject: [PATCH 09/23] * Fix an error. --- framework/base/router.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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]); From c4e59946f17a476ec4e40f512331cf5dfe0c49ae Mon Sep 17 00:00:00 2001 From: Catouse Date: Tue, 2 Mar 2021 10:12:45 +0800 Subject: [PATCH 10/23] * hide copy control before load to prevent shaking. --- module/tree/js/browse.js | 8 +++----- module/tree/view/browse.html.php | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) 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;}
-
+