@@ -161,7 +162,7 @@ - project->manageProductPlan;?> + project->manageProductPlan;?>
@@ -252,7 +253,7 @@ - project->manageProductPlan;?> + project->manageProductPlan;?>
diff --git a/module/execution/view/view.html.php b/module/execution/view/view.html.php index 1e1232132c..3273c180a6 100644 --- a/module/execution/view/view.html.php +++ b/module/execution/view/view.html.php @@ -345,7 +345,7 @@
- projectInfo->hasProduct or $execution->projectInfo->model == 'scrum'):?> + projectInfo->model, 'waterfall') !== false and (empty($execution->projectInfo->hasProduct) or in_array($execution->attribute, array('request', 'review'))))):?>
execution->linkPlan;?>
From 290487a68a776e6c38bfded4449801b79e08c946 Mon Sep 17 00:00:00 2001 From: Yagami Date: Thu, 23 Feb 2023 10:19:19 +0800 Subject: [PATCH 10/20] * Fix bug #32263. --- module/block/control.php | 4 ++-- module/block/view/projectstatisticblock.html.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 module/block/view/projectstatisticblock.html.php diff --git a/module/block/control.php b/module/block/control.php index 78edb264b5..d2c0f8ff7f 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -978,14 +978,14 @@ class block extends control foreach($projects as $projectID => $project) { - if($project->model == 'scrum' or $project->model == 'kanban') + if(in_array($project->model, array('scrum', 'kanban', 'agileplus'))) { $this->app->loadClass('pager', $static = true); $pager = pager::init(0, 3, 1); $project->progress = $project->allStories == 0 ? 0 : round($project->doneStories / $project->allStories, 3) * 100; $project->executions = $this->execution->getStatData($projectID, 'all', 0, 0, false, '', 'id_desc', $pager); } - elseif($project->model == 'waterfall') + elseif(in_array($project->model, array('waterfall', 'waterfallplus'))) { $begin = $project->begin; $weeks = $this->weekly->getWeekPairs($begin); diff --git a/module/block/view/projectstatisticblock.html.php b/module/block/view/projectstatisticblock.html.php old mode 100644 new mode 100755 index e34409e652..cf797124b2 --- a/module/block/view/projectstatisticblock.html.php +++ b/module/block/view/projectstatisticblock.html.php @@ -134,7 +134,7 @@ $(function()
- model == 'scrum' or $project->model == 'kanban'):?> + model, array('scrum', 'kanban', 'agileplus'))):?>

block->storyCount;?>

From f92716a360d3de66ca8b019d5416270b787764cb Mon Sep 17 00:00:00 2001 From: hufangzhou Date: Thu, 23 Feb 2023 02:30:17 +0000 Subject: [PATCH 11/20] * Fix bug #32397. --- module/my/model.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/module/my/model.php b/module/my/model.php index 18f2c46b0e..b98f0a8f92 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -571,10 +571,15 @@ class myModel extends model $query = preg_replace('/`(\w+)`/', 't1.`$1`', $query); $query = str_replace('t1.`project`', 't2.`project`', $query); + $assignedToMatches = array(); + $assignedToCondition = ''; + $operatorAndAccount = ''; if(strpos($query, '`assignedTo`') !== false) { - preg_match("/`assignedTo`\s+(([^']*) ('([^']*)'))/", $query, $matches); - $query = str_replace("t1.$matches[0]", "(t1.$matches[0] or (t1.mode = 'multi' and t5.`account` $matches[1] and t1.status != 'closed' and t5.status != 'done') )", $query); + preg_match("/`assignedTo`\s+(([^']*) ('([^']*)'))/", $query, $assignedToMatches); + $assignedToCondition = $assignedToMatches[0]; + $operatorAndAccount = $assignedToMatches[1]; + $query = str_replace("t1.$assignedToMatches[0]", "(t1.$assignedToCondition or (t1.mode = 'multi' and t5.`account` $operatorAndAccount and t1.status != 'closed' and t5.status != 'done') )", $query); } $orderBy = str_replace('pri_', 'priOrder_', $orderBy); @@ -588,7 +593,10 @@ class myModel extends model ->andWhere('t1.deleted')->eq(0) ->andWhere('t2.deleted')->eq(0) ->andWhere('(t2.status')->ne('suspended')->orWhere('t4.status')->ne('suspended')->markRight(1) - ->beginIF($moduleName == 'workTask')->andWhere("(t1.$matches[0] or (t1.mode = 'multi' and t5.`account` $matches[1] and t1.status != 'closed' and t5.status != 'done') )")->fi() + ->beginIF($moduleName == 'workTask') + ->beginIF(!empty($assignedToMatches))->andWhere("(t1.$assignedToCondition or (t1.mode = 'multi' and t5.`account` $operatorAndAccount and t1.status != 'closed' and t5.status != 'done') )")->fi() + ->beginIF(empty($assignedToMatches))->andWhere("t1.assignedTo")->eq($account)->fi() + ->fi() ->beginIF($moduleName == 'contributeTask') ->andWhere('t1.openedBy', 1)->eq($account) ->orWhere('t1.closedBy')->eq($account) From 36e9f275c95e28490d37fa86ce44809b7feeb1eb Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 23 Feb 2023 02:47:31 +0000 Subject: [PATCH 12/20] * Fix bug #32183. --- module/build/js/view.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/module/build/js/view.js b/module/build/js/view.js index 6ed6c1032d..b5fad596d4 100644 --- a/module/build/js/view.js +++ b/module/build/js/view.js @@ -69,3 +69,36 @@ $(function() } }); }) + +/** + * Delete item use ajax. + * + * @param string url + * @param string replaceID + * @param string notice + * @access public + * @return void + */ +function ajaxDelete(url, replaceID, notice) +{ + if(confirm(notice)) + { + $.ajax( + { + type: 'GET', + url: url, + dataType: 'json', + success: function(data) + { + if(data.result == 'success') + { + location.reload(); + } + else if(data.result == 'fail' && typeof(data.message) == 'string') + { + bootbox.alert(data.message); + } + } + }); + } +} From c7be7a041e72c0309ef45890625f2c20d2bd05de Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 23 Feb 2023 02:53:21 +0000 Subject: [PATCH 13/20] * Fix bug #32400. --- module/execution/view/edit.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/view/edit.html.php b/module/execution/view/edit.html.php index b9c2a16446..33c157f12c 100644 --- a/module/execution/view/edit.html.php +++ b/module/execution/view/edit.html.php @@ -261,7 +261,7 @@ type != 'normal' and isset($branchGroups[$product->id]);?>
'> product->common;?> - type == 'stage' ? "disabled='disabled'" : '';?> + model == 'waterfall' or $project->model == 'waterfallplus') ? "disabled='disabled'" : '';?> id, "class='form-control chosen' $disabled onchange='loadBranches(this)' data-last='" . $product->id . "' data-type='" . $product->type . "'");?> type == 'stage' and !$project->division) echo html::hidden("products[$i]", $product->id);?>
From 09c6c3838971eb3a81dbea4bcbf429a498d032f8 Mon Sep 17 00:00:00 2001 From: Yagami Date: Thu, 23 Feb 2023 11:03:34 +0800 Subject: [PATCH 14/20] * Fix bug #32383. --- module/execution/css/all.css | 2 ++ 1 file changed, 2 insertions(+) mode change 100644 => 100755 module/execution/css/all.css diff --git a/module/execution/css/all.css b/module/execution/css/all.css old mode 100644 new mode 100755 index b376d8fa05..81bb4a7bde --- a/module/execution/css/all.css +++ b/module/execution/css/all.css @@ -15,3 +15,5 @@ .dtable-cell[data-sort='down'] .dtable-sort:after {color: #000; opacity: 1} .dtable .toggle-icon {border-radius: 50%; border-style: solid;} .dtable-nested-toggle.is-no-child {display: block; opacity: 0; pointer-events: none;} + +.dtable-row.is-normal .dtable-cell[data-col="name"] {padding-left: 20px;} From 8a0e17506f16a2c1294bce9a6409844862880a4e Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Thu, 23 Feb 2023 12:12:56 +0800 Subject: [PATCH 15/20] * Modify closed block style for execution drop down menu. --- module/execution/view/ajaxgetdropmenu.html.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/module/execution/view/ajaxgetdropmenu.html.php b/module/execution/view/ajaxgetdropmenu.html.php index e4abda23d4..82685f94e9 100644 --- a/module/execution/view/ajaxgetdropmenu.html.php +++ b/module/execution/view/ajaxgetdropmenu.html.php @@ -206,22 +206,22 @@ $(function() } }); - $('#swapper #dropMenu').on('onSearchComplete', function(event, value) + $('#swapper #dropMenu').on('onSearchComplete', function() { - if($('.list-group.executions').height() == 0) - { - $('#closed').attr("hidden", true); - $('#gray-line').attr("hidden", true); - } - var listItem = $(this).find('.has-list'); - listItem.each(function () + listItem.each(function() { $(this).css('display','') var $hidden = $(this).find('.hidden'); var $item = $(this).find('.search-list-item'); if($hidden.length == $item.length) $(this).css('display','none'); }); + + if($('.list-group.executions').height() == 0) + { + $('#closed').attr("hidden", true); + $('#gray-line').attr("hidden", true); + } }); }) From a11b0a52a219aef6a84d7bcc40e04043eddaa64a Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 23 Feb 2023 13:38:52 +0800 Subject: [PATCH 16/20] * Modify menu order for admin module. --- module/admin/lang/menu.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index e07e6c8403..4bbbd8b777 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -3,46 +3,46 @@ global $config; $lang->admin->menuList = new stdclass(); $lang->admin->menuList->system['name'] = $lang->admin->menuSetting['system']['name']; $lang->admin->menuList->system['desc'] = $lang->admin->menuSetting['system']['desc']; -$lang->admin->menuList->system['order'] = 1; - -$lang->admin->menuList->user['name'] = $lang->admin->menuSetting['user']['name']; -$lang->admin->menuList->user['desc'] = $lang->admin->menuSetting['user']['desc']; -$lang->admin->menuList->user['order'] = 2; +$lang->admin->menuList->system['order'] = 5; $lang->admin->menuList->switch['name'] = $lang->admin->menuSetting['switch']['name']; $lang->admin->menuList->switch['desc'] = $lang->admin->menuSetting['switch']['desc']; $lang->admin->menuList->switch['link'] = 'admin|setmodule'; -$lang->admin->menuList->switch['order'] = 3; +$lang->admin->menuList->switch['order'] = 10; + +$lang->admin->menuList->user['name'] = $lang->admin->menuSetting['user']['name']; +$lang->admin->menuList->user['desc'] = $lang->admin->menuSetting['user']['desc']; +$lang->admin->menuList->user['order'] = 15; $lang->admin->menuList->model['name'] = $lang->admin->menuSetting['model']['name']; $lang->admin->menuList->model['desc'] = $lang->admin->menuSetting['model']['desc']; -$lang->admin->menuList->model['order'] = 4; +$lang->admin->menuList->model['order'] = 20; $lang->admin->menuList->feature['name'] = $lang->admin->menuSetting['feature']['name']; $lang->admin->menuList->feature['desc'] = $lang->admin->menuSetting['feature']['desc']; -$lang->admin->menuList->feature['order'] = 5; +$lang->admin->menuList->feature['order'] = 25; $lang->admin->menuList->template['name'] = $lang->admin->menuSetting['template']['name']; $lang->admin->menuList->template['desc'] = $lang->admin->menuSetting['template']['desc']; -$lang->admin->menuList->template['order'] = 6; +$lang->admin->menuList->template['order'] = 30; $lang->admin->menuList->message['name'] = $lang->admin->menuSetting['message']['name']; $lang->admin->menuList->message['desc'] = $lang->admin->menuSetting['message']['desc']; -$lang->admin->menuList->message['order'] = 7; +$lang->admin->menuList->message['order'] = 35; $lang->admin->menuList->extension['name'] = $lang->admin->menuSetting['extension']['name']; $lang->admin->menuList->extension['desc'] = $lang->admin->menuSetting['extension']['desc']; $lang->admin->menuList->extension['link'] = 'extension|browse'; -$lang->admin->menuList->extension['order'] = 8; +$lang->admin->menuList->extension['order'] = 40; $lang->admin->menuList->dev['name'] = $lang->admin->menuSetting['dev']['name']; $lang->admin->menuList->dev['desc'] = $lang->admin->menuSetting['dev']['desc']; -$lang->admin->menuList->dev['order'] = 9; +$lang->admin->menuList->dev['order'] = 45; $lang->admin->menuList->convert['name'] = $lang->admin->menuSetting['convert']['name']; $lang->admin->menuList->convert['desc'] = $lang->admin->menuSetting['convert']['desc']; $lang->admin->menuList->convert['link'] = 'convert|convertjira'; -$lang->admin->menuList->convert['order'] = 10; +$lang->admin->menuList->convert['order'] = 50; $lang->admin->menuList->system['subMenu']['mode'] = array('link' => "{$lang->custom->mode}|custom|mode|"); $lang->admin->menuList->system['subMenu']['backup'] = array('link' => "{$lang->backup->common}|backup|index|"); From c1153374fa6ea3470e22a17f7c95de5ceea6ee6a Mon Sep 17 00:00:00 2001 From: guofeilong Date: Thu, 23 Feb 2023 14:11:18 +0800 Subject: [PATCH 17/20] * Code for css refactors in admin. --- module/admin/css/index.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 6ccc630b09..22a1937b2f 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -45,7 +45,7 @@ .settings-list > .setting-box > .btn > h4 {padding-right: 5px;} .settings-list > .setting-box > .btn > h4 > div {gap: 3px;} .settings-list > .setting-box > .btn > h4 > img {padding-right: 8px; padding-bottom: 3px; width: 32px; height: 27px;} -.settings-list > .setting-box > .btn > .setting-desc {padding-bottom: 16px; color: #5E626D; line-height: 25px; height: 50px; overflow: hidden;} +.settings-list > .setting-box > .btn > .setting-desc {padding-bottom: 16px; line-height: 25px; height: 50px; overflow: hidden;} .settings-list.lite-setting > .setting-box {flex: 1 1 30%;} .plugin-list {display: flex; flex-wrap: wrap; padding: 12px 4px 4px 4px;} From d66127270b5b99699f5b18d3c7323fe9d7b2929b Mon Sep 17 00:00:00 2001 From: zhujinyong Date: Thu, 23 Feb 2023 14:33:16 +0800 Subject: [PATCH 18/20] * Fix bug #32303. --- module/convert/view/importnotice.html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/convert/view/importnotice.html.php b/module/convert/view/importnotice.html.php index 7b27abe2cf..110a3d1679 100644 --- a/module/convert/view/importnotice.html.php +++ b/module/convert/view/importnotice.html.php @@ -41,8 +41,8 @@ li .form-control {margin-top: 10px}

- From d53ba15bc0742aa63c47c7fb4ae2a8ec19027335 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 23 Feb 2023 14:36:07 +0800 Subject: [PATCH 19/20] * Update icon for admin menu. --- www/static/svg/admin-switch.svg | 4 ++-- www/static/svg/admin-user.svg | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/www/static/svg/admin-switch.svg b/www/static/svg/admin-switch.svg index 88d99b7b0d..4689088c72 100644 --- a/www/static/svg/admin-switch.svg +++ b/www/static/svg/admin-switch.svg @@ -1,4 +1,4 @@ - - + + diff --git a/www/static/svg/admin-user.svg b/www/static/svg/admin-user.svg index cb1ae851e4..7e57ae999c 100644 --- a/www/static/svg/admin-user.svg +++ b/www/static/svg/admin-user.svg @@ -1,4 +1,4 @@ - - + + From b350a3aff48871ee8347514e584e064dcc595805 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 23 Feb 2023 14:52:18 +0800 Subject: [PATCH 20/20] * Fix bug #32412. --- module/execution/control.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/module/execution/control.php b/module/execution/control.php index 9881cf4be7..9dcebbcacf 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2607,15 +2607,10 @@ class execution extends control public function kanban($executionID, $browseType = 'all', $orderBy = 'id_asc', $groupBy = 'default') { $this->app->loadLang('bug'); + $this->app->loadLang('kanban'); if(empty($groupBy)) $groupBy = 'default'; - /* Set Session. */ - $this->session->set('execLaneType', $browseType); - $this->session->set('execGroupBy', $groupBy); - $this->session->set('storyList', $this->app->getURI(true), 'execution'); - $this->session->set('rdSearchValue', ''); - $this->lang->execution->menu = new stdclass(); $execution = $this->commonAction($executionID); if($execution->type != 'kanban') return print(js::locate(inlink('view', "executionID=$executionID"))); @@ -2626,6 +2621,12 @@ class execution extends control unset($this->lang->kanban->group->task['story']); } + /* Set Session. */ + $this->session->set('execGroupBy', $groupBy); + $this->session->set('storyList', $this->app->getURI(true), 'execution'); + $this->session->set('rdSearchValue', ''); + $this->session->set('execLaneType', $browseType); + $kanbanData = $this->loadModel('kanban')->getRDKanban($executionID, $browseType, $orderBy, 0, $groupBy); $executionActions = array(); foreach($this->config->execution->statusActions as $action)