From d3e27b338981f1d9db18f1a846a106fd6000a677 Mon Sep 17 00:00:00 2001 From: guofeilong Date: Tue, 21 Feb 2023 14:00:48 +0800 Subject: [PATCH 1/8] * Code for module admin refactors. --- module/admin/css/index.css | 4 +++- module/admin/lang/de.php | 1 + module/admin/lang/fr.php | 1 + module/admin/lang/vi.php | 1 + module/admin/lang/zh-cn.php | 3 ++- module/admin/view/index.html.php | 29 ++++++++++++++++------------- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index fd06878df7..72321537fa 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -57,9 +57,11 @@ .official {justify-content: center;} .official > .panel-title {position: absolute; top: 0px;} .official-img {background-image: url('/static/images/wechat.jpg'); background-repeat: no-repeat; background-size: contain; flex: 1 1 30%; aspect-ratio: 1 / 1; background-position: center;} -.official-content {flex: 0 0 60%; display: flex; flex-direction: column; justify-content: center; padding-left: 10px;} +.official-content {flex: 0 0 60%; display: flex; flex-direction: column; padding-left: 10px; padding-top: 15px;} .official-content > .content {color: #838A9D; font-size: 12px; line-height: 22px; padding-top: 6px;} .official-content > .title {color: #313C52; font-size: 13px; line-height: 14px;} +.panel-link {color: #313c52; padding-left: 10px; font-size: 13px;} +.panel-link > a {border-bottom: 1px solid;} .classList > .classItem {flex: 1 1 30%; margin: 5px 5px 16px 5px; border: 1px solid rgba(227, 228, 233, 0.6); border-radius: 4px; padding-bottom: 5px; align-items: center;} .classItem > .imgBack {flex: 1 1 50%;} diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index 6ba6dae130..18acddc1f7 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -72,6 +72,7 @@ $lang->admin->registerNotice->click = 'Bitte registieren Sie sich hier'; $lang->admin->registerNotice->lblAccount = 'mindestens 3 Zeichen bitte; mit Buchsten und Ziffern.'; $lang->admin->registerNotice->lblPasswd = 'mindestens 6 Zeichen bitte; mit Buchsten und Ziffern.'; $lang->admin->registerNotice->submit = 'Registieren'; +$lang->admin->registerNotice->submitHere = 'RegistierenHere'; $lang->admin->registerNotice->bind = "Verbinde bestehendes Konto"; $lang->admin->registerNotice->success = "Sie haben sich erfolgreich registriert!"; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 71acb72380..2039c78d4c 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -72,6 +72,7 @@ $lang->admin->registerNotice->click = "S'enregistrer ici"; $lang->admin->registerNotice->lblAccount = '>= 3 lettres et chiffres'; $lang->admin->registerNotice->lblPasswd = '>= 6 lettres et chiffres'; $lang->admin->registerNotice->submit = "S'enregistrer"; +$lang->admin->registerNotice->submitHere = "S'enregistrer here"; $lang->admin->registerNotice->bind = "S'associer à un compte existant"; $lang->admin->registerNotice->success = "Vous êtes enregistré !"; diff --git a/module/admin/lang/vi.php b/module/admin/lang/vi.php index feff21edda..aafc0994bd 100755 --- a/module/admin/lang/vi.php +++ b/module/admin/lang/vi.php @@ -52,6 +52,7 @@ $lang->admin->registerNotice->click = 'Đăng ký'; $lang->admin->registerNotice->lblAccount = '>= 3 chữ và số'; $lang->admin->registerNotice->lblPasswd = '>= 6 chữ và số'; $lang->admin->registerNotice->submit = 'Gửi'; +$lang->admin->registerNotice->submitHere = 'submitHere'; $lang->admin->registerNotice->bind = "Kết nối với tài khoản đang tồn tại"; $lang->admin->registerNotice->success = "Bạn đã đăng ký!"; diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index ab9f757940..c9ba4e745a 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -61,7 +61,7 @@ $lang->admin->info->account = "您的禅道社区账户为%s。"; $lang->admin->info->log = '超出存天数的日志会被删除,需要开启计划任务。'; $lang->admin->notice = new stdclass(); -$lang->admin->notice->register = "友情提示:您还未在禅道社区(www.zentao.net)登记,%s进行登记,以及时获得禅道最新信息。"; +$lang->admin->notice->register = "可%s禅道社区 www.zentao.net, 及时获得禅道最新信息。"; $lang->admin->notice->ignore = "不再提示"; $lang->admin->notice->int = "『%s』应当是正整数。"; @@ -72,6 +72,7 @@ $lang->admin->registerNotice->click = '点击此处'; $lang->admin->registerNotice->lblAccount = '请设置您的用户名,英文字母和数字的组合,三位以上。'; $lang->admin->registerNotice->lblPasswd = '请设置您的密码。数字和字母的组合,六位以上。'; $lang->admin->registerNotice->submit = '登记'; +$lang->admin->registerNotice->submitHere = '在此登记'; $lang->admin->registerNotice->bind = "绑定已有帐号"; $lang->admin->registerNotice->success = "登记账户成功"; diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index 40a03cf45d..f695d67c5f 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -42,7 +42,7 @@

name;?>

-

+

@@ -53,19 +53,22 @@
admin->officialAccount?>
-
-
-
-
- admin->followUs?> - - - +
+
+
+
+ admin->followUs?> + + +
-
admin->followUsContent?>
-
+
admin->followUsContent?>
+
+
+ + +
-
@@ -75,7 +78,7 @@
-
+
name;?>
From 10e9d3a6a84e6c4487ee4add93ef0760ed98dea8 Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Tue, 21 Feb 2023 07:14:49 +0000 Subject: [PATCH 2/8] * Fix bug for create execution. --- module/execution/js/common.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/module/execution/js/common.js b/module/execution/js/common.js index 37b32040ba..8dc5f37673 100644 --- a/module/execution/js/common.js +++ b/module/execution/js/common.js @@ -177,9 +177,6 @@ function loadBranches(product) disableSelectedProduct(); } - var branch = $('#branch' + index); - loadPlans(product, branch); - if(typeof isStage != 'undefined' && isStage == true) { $tableRow.find("select[name^='branch'] option").attr('selected', 'selected'); @@ -187,6 +184,10 @@ function loadBranches(product) $tableRow.find("div[id^='branch']").addClass('chosen-disabled'); } }); + + var branch = $('#branch' + index); + loadPlans(product, branch); + } /** From a789a412cb6379bd639285c8506fd3d36e0a3047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Tue, 21 Feb 2023 07:23:03 +0000 Subject: [PATCH 3/8] =?UTF-8?q?=E6=9B=B4=E6=96=B0module/execution/js/commo?= =?UTF-8?q?n.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/execution/js/common.js | 1 - 1 file changed, 1 deletion(-) diff --git a/module/execution/js/common.js b/module/execution/js/common.js index 8dc5f37673..92ca8e7134 100644 --- a/module/execution/js/common.js +++ b/module/execution/js/common.js @@ -187,7 +187,6 @@ function loadBranches(product) var branch = $('#branch' + index); loadPlans(product, branch); - } /** From ffedd1ac6d41817e4c7a232f9778a5ddfd0541e6 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Tue, 21 Feb 2023 07:36:49 +0000 Subject: [PATCH 4/8] * Fix bug of sql. --- db/update18.1.sql | 5 +++++ db/zentao.sql | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/db/update18.1.sql b/db/update18.1.sql index 7a9b0d9d6a..feba83e887 100644 --- a/db/update18.1.sql +++ b/db/update18.1.sql @@ -4,6 +4,7 @@ update `zt_task` set `assignedTo` = '' where `mode` = 'multi' and `status` != 'd REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`, `vision`) SELECT `lang`, `module`, 'scrumClassify', `key`, `value`, `system`, `vision` FROM `zt_lang` WHERE `module` = 'process' and `section` = 'classify' ORDER BY id ASC; REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`, `vision`) SELECT `lang`, `module`, 'agileplusClassify', `key`, `value`, `system`, `vision` FROM `zt_lang` WHERE `module` = 'process' and `section` = 'classify' ORDER BY id ASC; +REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`, `vision`) SELECT `lang`, `module`, 'waterfallplusClassify', `key`, `value`, `system`, `vision` FROM `zt_lang` WHERE `module` = 'process' and `section` = 'classify' ORDER BY id ASC; UPDATE `zt_project` AS parent INNER JOIN (select `id`,`parent`,`attribute` from `zt_project` where `parent` != 0 and `type` = 'stage') AS child ON parent.`id` = child.`parent` SET parent.`attribute`='mix' where parent.`grade`=1 and parent.`type`='stage' and parent.`attribute` != child.`attribute`; @@ -20,3 +21,7 @@ REPLACE INTO `zt_stage` (`name`,`percent`,`type`, `projectType`, `createdBy`,`cr ('发布','10','release','waterfallplus','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), ('总结评审','5','review','waterfallplus','admin','2020-02-08 21:08:45','admin','2020-02-12 13:50:27','0'); +ALTER table `zt_reviewcl` ADD `type` varchar(255) NOT NULL DEFAULT '' AFTER `category`; +UPDATE `zt_reviewcl` SET `type` = 'waterfall' WHERE `type` = ''; + +UPDATE `zt_activity` SET `order` = `id` * 5 WHERE `order` = '0'; diff --git a/db/zentao.sql b/db/zentao.sql index b7c0f371e0..cad8faf602 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -1488,6 +1488,7 @@ CREATE TABLE IF NOT EXISTS `zt_stage` ( `name` varchar(255) NOT NULL, `percent` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, + `projectType` varchar(255) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, `editedBy` varchar(30) NOT NULL, @@ -6397,7 +6398,7 @@ REPLACE INTO `zt_stage` (`name`,`percent`,`type`,`projectType`,`createdBy`,`crea ('开发','50','dev','waterfall','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), ('测试','15','qa','waterfall','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), ('发布','10','release','waterfall','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), -('总结评审','5','review','waterfall','admin','2020-02-08 21:08:45','admin','2020-02-12 13:50:27','0'); +('总结评审','5','review','waterfall','admin','2020-02-08 21:08:45','admin','2020-02-12 13:50:27','0'), ('需求','10','request','waterfallplus','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), ('设计','10','design','waterfallplus','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), ('开发','50','dev','waterfallplus','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), @@ -9707,6 +9708,7 @@ CREATE TABLE IF NOT EXISTS `zt_reviewcl` ( `title` varchar(255) NOT NULL, `object` char(30) NOT NULL, `category` char(30) NOT NULL, + `type` varchar(255) NOT NULL, `assignedTo` varchar(30) NOT NULL, `order` mediumint(8) DEFAULT '0', `status` varchar(30) NOT NULL, From 39b2773e77daf8978438db2e67a6bac6271128a6 Mon Sep 17 00:00:00 2001 From: zhujinyong Date: Tue, 21 Feb 2023 15:55:33 +0800 Subject: [PATCH 5/8] * Fix bug #32332. --- module/product/model.php | 4 ++-- module/project/view/create.html.php | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/module/product/model.php b/module/product/model.php index db69c6d15d..4461499a2b 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -1443,11 +1443,11 @@ class productModel extends model $hasWaterfall = false; foreach($projects as $project) { - if($project->model == 'waterfall') $hasWaterfall = true; + if(in_array($project->model, array('waterfall', 'waterfallplus'))) $hasWaterfall = true; } $orderBy = $hasWaterfall ? 't2.begin_asc,t2.id_asc' : 't2.begin_desc,t2.id_desc'; - $executions = $this->dao->select('t2.id,t2.name,t2.grade,t2.path,t2.parent,t2.attribute,t2.multiple,t3.name as projectName')->from(TABLE_PROJECTPRODUCT)->alias('t1') + $executions = $this->dao->select('t2.id,t2.name,t2.project,t2.grade,t2.path,t2.parent,t2.attribute,t2.multiple,t3.name as projectName')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t1.project = t2.id') ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t2.project = t3.id') ->where('t1.product')->eq($productID) diff --git a/module/project/view/create.html.php b/module/project/view/create.html.php index 5fa5aff2a4..969d9f0164 100755 --- a/module/project/view/create.html.php +++ b/module/project/view/create.html.php @@ -48,11 +48,7 @@

- edition != 'max' or $model == 'kanban'):?> - - -
From 8bf7fa466ced1f5607842e06d8bf39d30cecd242 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 21 Feb 2023 16:05:38 +0800 Subject: [PATCH 6/8] * Fix error of authority group. --- extension/lite/group/ext/lang/resource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension/lite/group/ext/lang/resource.php b/extension/lite/group/ext/lang/resource.php index 3ba031f0f2..7cb8bd18cf 100644 --- a/extension/lite/group/ext/lang/resource.php +++ b/extension/lite/group/ext/lang/resource.php @@ -649,7 +649,7 @@ $lang->resource->custom = new stdclass(); $lang->resource->custom->index = 'index'; $lang->resource->custom->set = 'set'; $lang->resource->custom->product = 'productName'; -$lang->resource->custom->execution = 'execution'; +$lang->resource->custom->execution = 'executionCommon'; $lang->resource->custom->required = 'required'; $lang->resource->custom->restore = 'restore'; $lang->resource->custom->flow = 'flow'; From 8d2abc483da841a700f4c18cdec695ec1686b78e Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 21 Feb 2023 16:14:27 +0800 Subject: [PATCH 7/8] * Fixed print navigation issues. --- module/admin/lang/menu.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index 2bbae23365..33b05eeafc 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -186,8 +186,11 @@ if($config->edition != 'max') if(!helper::hasFeature('waterfall')) { unset($lang->admin->menuList->model['subMenu']['waterfall']); - unset($lang->admin->menuList->model['subMenu']['waterfallplus']); unset($lang->admin->menuList->model['menuOrder']['15']); +} +if(!helper::hasFeature('waterfallplus')) +{ + unset($lang->admin->menuList->model['subMenu']['waterfallplus']); unset($lang->admin->menuList->model['menuOrder']['25']); } if($config->edition == 'max') From 02b8e6f7232b5137acbb89a718de583cf2174a8b Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Tue, 21 Feb 2023 08:46:43 +0000 Subject: [PATCH 8/8] * Finish task #85037. --- module/execution/control.php | 5 ++--- module/execution/model.php | 5 ++++- module/execution/view/create.html.php | 5 ++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/module/execution/control.php b/module/execution/control.php index 23e12a6ecc..b97958c31b 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -1876,7 +1876,6 @@ class execution extends control $this->view->title = $this->app->tab == 'execution' ? $this->lang->execution->createExec : $this->lang->execution->create; $this->view->position[] = $this->view->title; $this->view->gobackLink = (isset($output['from']) and $output['from'] == 'global') ? $this->createLink('execution', 'all') : ''; - $this->view->executions = array('' => '') + $this->execution->getList($projectID); $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->allProducts = $allProducts; $this->view->acl = $acl; @@ -1887,7 +1886,7 @@ class execution extends control $this->view->teams = array(0 => '') + $this->execution->getCanCopyObjects((int)$projectID); $this->view->allProjects = array(0 => '') + $this->project->getPairsByModel('all', 0, 'noclosed,multiple'); $this->view->copyProjects = $copyProjects; - $this->view->copyExecutions = array('' => '') + $this->execution->getList($copyProjectID); + $this->view->copyExecutions = array('' => '') + $this->execution->getList($copyProjectID, 'all', 'all', 0, 0, 0, null, false); $this->view->executionID = $executionID; $this->view->productID = $productID; $this->view->projectID = $projectID; @@ -4447,7 +4446,7 @@ class execution extends control */ public function ajaxGetCopyProjectExecutions($projectID = 0) { - $executions = $this->execution->getList($projectID); + $executions = $this->execution->getList($projectID, 'all', 'all', 0, 0, 0, null, false); echo json_encode($executions); } diff --git a/module/execution/model.php b/module/execution/model.php index dd1dc9d835..76f9b07418 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -1742,10 +1742,11 @@ class executionModel extends model * @param int $productID * @param int $branch * @param object $pager + * @param bool $withChildren * @access public * @return array */ - public function getList($projectID = 0, $type = 'all', $status = 'all', $limit = 0, $productID = 0, $branch = 0, $pager = null) + public function getList($projectID = 0, $type = 'all', $status = 'all', $limit = 0, $productID = 0, $branch = 0, $pager = null, $withChildren = true) { if($status == 'involved') return $this->getInvolvedExecutionList($projectID, $status, $limit, $productID, $branch); @@ -1762,6 +1763,7 @@ class executionModel extends model ->beginIF($branch)->andWhere('t1.branch')->eq($branch)->fi() ->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi() ->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->sprints)->fi() + ->beginIF(!$withChildren)->andWhere('grade')->eq(1)->fi() ->orderBy('order_desc') ->page($pager) ->beginIF($limit)->limit($limit)->fi() @@ -1778,6 +1780,7 @@ class executionModel extends model ->beginIF($status == 'undone')->andWhere('status')->notIN('done,closed')->fi() ->beginIF($status != 'all' and $status != 'undone')->andWhere('status')->in($status)->fi() ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi() + ->beginIF(!$withChildren)->andWhere('grade')->eq(1)->fi() ->orderBy('order_desc') ->page($pager) ->beginIF($limit)->limit($limit)->fi() diff --git a/module/execution/view/create.html.php b/module/execution/view/create.html.php index bb3d9a2e73..cb134dfd7e 100644 --- a/module/execution/view/create.html.php +++ b/module/execution/view/create.html.php @@ -309,15 +309,14 @@