From 3532e82841ec3ff45b20d1d50be3c7b33373158c Mon Sep 17 00:00:00 2001 From: chaideqing Date: Mon, 11 Jul 2022 15:29:26 +0800 Subject: [PATCH 01/37] * fix card show blank above header --- module/bug/css/x.browse.css | 2 +- module/bug/css/x.view.css | 2 +- module/doc/css/x.view.css | 2 +- module/execution/css/x.bug.css | 2 +- module/execution/css/x.story.css | 2 +- module/execution/css/x.task.css | 2 +- module/product/css/x.browse.css | 2 +- module/productplan/css/x.view.css | 4 ++-- module/story/css/x.view.css | 2 +- module/task/css/x.view.css | 2 +- module/testcase/css/x.view.css | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/module/bug/css/x.browse.css b/module/bug/css/x.browse.css index 385680384c..c0bf272b2d 100644 --- a/module/bug/css/x.browse.css +++ b/module/bug/css/x.browse.css @@ -1,6 +1,6 @@ body {margin-bottom: 0px !important;} #mainMenu, #sidebar, .dropdown, .pager > li > .pager-size-menu, .table-footer > .table-actions, .table-footer>.table-statistic {display: none;} -#main {min-width: unset; overflow-y: overlay;} +#main {min-width: unset; overflow-y: overlay; position: unset !important;} #main > .container {width: 100% !important;} #mainContent > .main-col {margin-top: 0px;} #xx-title {background-color: #F2F2F2; padding-left: 15px; line-height: 40px;} diff --git a/module/bug/css/x.view.css b/module/bug/css/x.view.css index b18ef5ed1b..89810f61b0 100644 --- a/module/bug/css/x.view.css +++ b/module/bug/css/x.view.css @@ -1,5 +1,5 @@ body * {font-size: 13px !important; line-height: 1.42857143; color: rgb(51, 51, 51);} -#main {margin-bottom: 40px; min-width: unset;} +#main {margin-bottom: 40px; min-width: unset; position: unset !important;} #mainMenu .pull-left>a, #mainMenu .pull-left .divider, #mainMenu .pull-right, #mainContent .col-4, .main-actions {display: none;} #mainMenu {position: fixed; width: 100%; z-index: 999;} #scrollContent {margin-top: 35px; height: calc(100% - 70px); display: block; overflow: hidden;} diff --git a/module/doc/css/x.view.css b/module/doc/css/x.view.css index 2e87c4aa0f..7014d2b1e0 100644 --- a/module/doc/css/x.view.css +++ b/module/doc/css/x.view.css @@ -1,4 +1,4 @@ -.side-col.col-4 {display: none;} +.side-col.col-4 {display: none; position: unset !important;} #main {margin-bottom: 40px;} #mainMenu {margin-top: 0px;} #mainMenu .btn {display: none;} diff --git a/module/execution/css/x.bug.css b/module/execution/css/x.bug.css index ae214a0d8a..ab6c8a986f 100644 --- a/module/execution/css/x.bug.css +++ b/module/execution/css/x.bug.css @@ -1,5 +1,5 @@ body {margin-bottom: 0px !important;} -#main {min-width: unset; overflow-y: overlay;} +#main {min-width: unset; overflow-y: overlay; position: unset !important;} #main > .container {width: 100% !important;} #mainContent > .main-col {margin-top: 0px;} #mainMenu, #sidebar, .dropdown, .table-footer > .table-actions, .table-footer>.table-statistic, .pager > li > .pager-size-menu {display: none;} diff --git a/module/execution/css/x.story.css b/module/execution/css/x.story.css index 715f595609..5e9ce09e29 100644 --- a/module/execution/css/x.story.css +++ b/module/execution/css/x.story.css @@ -1,6 +1,6 @@ body {margin-bottom: 0px !important;} #main {min-width: unset; overflow-y: overlay;} -#main > .container {width: 100% !important;} +#main > .container {width: 100% !important; position: unset !important;} #mainContent > .main-col {margin-top: 0px;} #mainMenu, #sidebar, .dropdown, .c-sort, .c-category, .c-user, .c-estimate, .c-stage, .c-count, .c-actions-7, .c-actions, .table-footer > .table-statistic, .table-footer > .table-actions, .pager > li > .pager-size-menu {display: none;} #storyList > thead > tr > .c-status, #storyList > thead > tr > .c-pri, #storyList > tbody > tr > .c-status, #storyList > tbody > tr > .c-pri {display: table-cell !important;} diff --git a/module/execution/css/x.task.css b/module/execution/css/x.task.css index 1edfd18ad9..300514ffb8 100644 --- a/module/execution/css/x.task.css +++ b/module/execution/css/x.task.css @@ -1,7 +1,7 @@ body {margin-bottom: 0px !important;} td .task-toggle {pointer-events: auto !important;} #mainMenu, #sidebar, .dropdown, .table-footer > .table-actions, .table-footer > .table-statistic, .pager > li > .pager-size-menu {display: none;} -#main {min-width: unset; overflow-y: overlay;} +#main {min-width: unset; overflow-y: overlay; position: unset !important;} #main > .container {width: 100% !important;} #mainContent > .main-col {margin-top: 0px;} #xx-title {background-color: #F2F2F2; padding-left: 15px; line-height: 36px;} diff --git a/module/product/css/x.browse.css b/module/product/css/x.browse.css index 1f1abfbddb..7486d97710 100644 --- a/module/product/css/x.browse.css +++ b/module/product/css/x.browse.css @@ -1,7 +1,7 @@ body {margin-bottom: 0px !important;} td .story-toggle {pointer-events: auto !important;} #mainMenu, #sidebar, .table-footer > .table-actions, .dropdown, .table-footer>.table-statistic, .pager > li > .pager-size-menu {display: none;} -#main {min-width: unset; overflow-y: overlay;} +#main {min-width: unset; overflow-y: overlay; position: unset !important;} #main > .container {width: 100% !important;} #mainContent > .main-col {margin-top: 0px;} #xx-title {background-color: #F2F2F2; padding-left: 15px; line-height: 40px;} diff --git a/module/productplan/css/x.view.css b/module/productplan/css/x.view.css index ed93fc1ed9..0099dbac1e 100644 --- a/module/productplan/css/x.view.css +++ b/module/productplan/css/x.view.css @@ -1,6 +1,6 @@ #mainMenu, .actions, .pager-size-menu, .tab-btn-container ul li span {display: none;} -#main {min-width: unset; overflow-y: overlay;} -.main-content {padding: 0; } +#main {min-width: unset; overflow-y: overlay; position: unset !important;} +.main-content {padding: 0;} .main-table {margin-bottom: 40px;} .main-content, .main-table > .table, .main-table > .table-footer, .main-table > .table-header, .main-table > .table-responsive {box-shadow: none!important;} .table-footer {position: fixed; width: 100%; bottom: 0;} diff --git a/module/story/css/x.view.css b/module/story/css/x.view.css index dccc99b6bf..82c988218f 100644 --- a/module/story/css/x.view.css +++ b/module/story/css/x.view.css @@ -1,5 +1,5 @@ body * {font-size: 13px !important; line-height: 1.42857143; color: rgb(51, 51, 51);} -#main {margin-bottom: 40px; min-width: unset;} +#main {margin-bottom: 40px; min-width: unset; position: unset !important;} #mainMenu {position: fixed; width: 100%; z-index: 999;} #mainMenu .pull-left>a, #mainMenu .pull-left .divider, #mainMenu .pull-right, #mainContent .col-4, .main-actions {display: none;} #scrollContent {margin-top: 35px; height: calc(100% - 70px); display: block; overflow: hidden;} diff --git a/module/task/css/x.view.css b/module/task/css/x.view.css index 5a96385b1f..94c67e8533 100644 --- a/module/task/css/x.view.css +++ b/module/task/css/x.view.css @@ -1,5 +1,5 @@ body * {font-size: 13px !important; line-height: 1.42857143; color: rgb(51, 51, 51);} -#main {margin-bottom: 40px; min-width: unset;} +#main {margin-bottom: 40px; min-width: unset; position: unset !important;} #mainMenu .pull-left > a, #mainMenu .pull-left .divider, #mainMenu .pull-right, #mainContent .col-4, .main-actions {display: none;} #mainMenu {position: fixed; width: 100%; z-index: 999;} #scrollContent {margin-top: 35px; height: calc(100% - 70px); display: block; overflow: hidden;} diff --git a/module/testcase/css/x.view.css b/module/testcase/css/x.view.css index 8d3fc89b31..7e268496c8 100644 --- a/module/testcase/css/x.view.css +++ b/module/testcase/css/x.view.css @@ -1,5 +1,5 @@ .side-col.col-4 {display: none;} -#main {margin-bottom: 40px;} +#main {margin-bottom: 40px; position: unset !important;} #mainMenu {margin-top: 0px;} #mainMenu .btn {display: none;} #mainMenu .divider {display: none;} From 69f20c120574ab169ee2518b320ec01daf6926f1 Mon Sep 17 00:00:00 2001 From: chaideqing Date: Wed, 13 Jul 2022 10:54:12 +0800 Subject: [PATCH 02/37] * replace xhtml to html when click card --- extension/lite/product/ext/view/browse.html.php | 2 +- extension/lite/story/ext/view/view.html.php | 2 +- module/bug/view/browse.html.php | 2 +- module/bug/view/view.html.php | 2 +- module/execution/view/bug.html.php | 2 +- module/execution/view/story.html.php | 2 +- module/execution/view/task.html.php | 2 +- module/product/view/browse.html.php | 2 +- module/productplan/view/view.html.php | 2 +- module/story/view/view.html.php | 2 +- module/task/view/view.html.php | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/extension/lite/product/ext/view/browse.html.php b/extension/lite/product/ext/view/browse.html.php index 4b5b79ac3e..d7cff9a3e1 100644 --- a/extension/lite/product/ext/view/browse.html.php +++ b/extension/lite/product/ext/view/browse.html.php @@ -591,7 +591,7 @@ function setBadgeStyle(obj, isShow) function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/extension/lite/story/ext/view/view.html.php b/extension/lite/story/ext/view/view.html.php index bd48a2e3e3..8c64cb67f3 100644 --- a/extension/lite/story/ext/view/view.html.php +++ b/extension/lite/story/ext/view/view.html.php @@ -346,7 +346,7 @@ js::set('rawModule', $this->app->rawModule); diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php index 005a5fd1fa..c809ced659 100644 --- a/module/bug/view/browse.html.php +++ b/module/bug/view/browse.html.php @@ -462,7 +462,7 @@ $('#bugForm .table-footer .table-actions #assignedTo').closest('.btn-group.dropu function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/module/bug/view/view.html.php b/module/bug/view/view.html.php index 6ef9003823..10b13c2d9e 100644 --- a/module/bug/view/view.html.php +++ b/module/bug/view/view.html.php @@ -468,7 +468,7 @@ diff --git a/module/execution/view/bug.html.php b/module/execution/view/bug.html.php index 0c457dbf6c..e0e77ed7c5 100644 --- a/module/execution/view/bug.html.php +++ b/module/execution/view/bug.html.php @@ -210,7 +210,7 @@ $(function(){$('#executionBugForm').table();}) function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/module/execution/view/story.html.php b/module/execution/view/story.html.php index 933e131229..0fd94dc27d 100644 --- a/module/execution/view/story.html.php +++ b/module/execution/view/story.html.php @@ -400,7 +400,7 @@ $(function() }); function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/module/execution/view/task.html.php b/module/execution/view/task.html.php index fe53a70b9b..bc413357ea 100644 --- a/module/execution/view/task.html.php +++ b/module/execution/view/task.html.php @@ -477,7 +477,7 @@ $(function() app->getViewType() == 'xhtml'):?> function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 770dd3c972..9b340e2ed5 100644 --- a/module/product/view/browse.html.php +++ b/module/product/view/browse.html.php @@ -749,7 +749,7 @@ function setBadgeStyle(obj, isShow) function handleLinkButtonClick() { - var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace(/\.xhtml/, '.html')); + var xxcUrl = "xxc:openInApp/zentao-integrated/" + encodeURIComponent(window.location.href.replace(/.display=card/, '').replace('xhtml', 'html')); window.open(xxcUrl); } diff --git a/module/productplan/view/view.html.php b/module/productplan/view/view.html.php index 263196fd60..c55eb91ad1 100644 --- a/module/productplan/view/view.html.php +++ b/module/productplan/view/view.html.php @@ -609,7 +609,7 @@ diff --git a/module/task/view/view.html.php b/module/task/view/view.html.php index e2f4091aa7..0f6294d40c 100644 --- a/module/task/view/view.html.php +++ b/module/task/view/view.html.php @@ -442,7 +442,7 @@ From 0c51ca4328f20df0bc6cad3140ce76f311705175 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 14 Jul 2022 17:04:57 +0800 Subject: [PATCH 03/37] * Fix bug #25186. --- module/story/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/story/config.php b/module/story/config.php index db14392346..ef3c7299d5 100644 --- a/module/story/config.php +++ b/module/story/config.php @@ -129,7 +129,7 @@ $config->story->datatable->fieldList['estimate']['required'] = 'no'; $config->story->datatable->fieldList['stage']['title'] = 'stageAB'; $config->story->datatable->fieldList['stage']['fixed'] = 'no'; -$config->story->datatable->fieldList['stage']['width'] = '75'; +$config->story->datatable->fieldList['stage']['width'] = '80'; $config->story->datatable->fieldList['stage']['required'] = 'no'; $config->story->datatable->fieldList['openedBy']['title'] = 'openedByAB'; From f9e6fe5de4e30ed7393c0b9a50b5225284ec618c Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 14 Jul 2022 17:14:54 +0800 Subject: [PATCH 04/37] * Fix bug #25329. --- module/execution/js/story.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/execution/js/story.js b/module/execution/js/story.js index 6eeeee6785..a6dcb47577 100644 --- a/module/execution/js/story.js +++ b/module/execution/js/story.js @@ -62,6 +62,8 @@ $(function() } else { + if(!unlinkTaskIdList) return false; + $('#storyIdList').val(unlinkTaskIdList); } } From bcaaf11dfc437bcdb4655b805f934df029b9134a Mon Sep 17 00:00:00 2001 From: Wenrui LI Date: Fri, 15 Jul 2022 08:52:25 +0800 Subject: [PATCH 05/37] * fix double header covering main in zentaoclient. --- module/common/view/header.html.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/module/common/view/header.html.php b/module/common/view/header.html.php index e294df8a85..5e3a344972 100755 --- a/module/common/view/header.html.php +++ b/module/common/view/header.html.php @@ -51,6 +51,12 @@ adjustMenuWidth(); if(window.navigator.userAgent.indexOf('xuanxuan') > 0) { $('li.user-tutorial').addClass('hide'); + + /* Fix double header covering #main. */ + $('document').ready(function() + { + $('#subHeader').parent().parent().children('#main').css('top', '100px'); + }); }
sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> > From f4d7a24cf33056a30e848d2a373c7105ac15c8c6 Mon Sep 17 00:00:00 2001 From: zenggang Date: Fri, 15 Jul 2022 00:59:01 +0000 Subject: [PATCH 06/37] * Fix batchadd user ajax error --- module/user/js/batchcreate.js | 69 ++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/module/user/js/batchcreate.js b/module/user/js/batchcreate.js index 8e7bd97935..baad36b81d 100644 --- a/module/user/js/batchcreate.js +++ b/module/user/js/batchcreate.js @@ -91,18 +91,45 @@ $(document).on('change', '[id^=visions]', function() } }) -$('select[id^="visions"]').each(function() +var rndGroupSelect = liteGroupSelect = allGroupSelect = emptyGroupSelect = ''; +$.post(createLink('user', 'ajaxGetGroup', "visions=rnd&i=2"), function(data) { - var i = $(this).attr('id').replace(/[^0-9]/ig, ''); + rndGroupSelect = data; var vision = $('#visions1 option:selected').val(); + if(vision == 'rnd') initGroup(data); +}); +$.post(createLink('user', 'ajaxGetGroup', "visions=lite&i=2"), function(data) +{ + liteGroupSelect = data; + var vision = $('#visions1 option:selected').val(); + if(vision == 'lite') initGroup(data); +}); +$.post(createLink('user', 'ajaxGetGroup', "visions=rnd,lite&i=2"), function(data) +{ + allGroupSelect = data; +}); +$.post(createLink('user', 'ajaxGetGroup', "visions=null&i=2"), function(data) +{ + emptyGroupSelect = data; +}); - $.post(createLink('user', 'ajaxGetGroup', "visions=" + vision + '&i=' + i + '&selected=' + $('#group' + i).val()), function(data) +function initGroup(data) +{ + $('select[id^="visions"]').each(function() { - $('#group' + i).replaceWith(data); - $('#group' + i + '_chosen').remove(); - $('#group' + i).chosen(); + var i = $(this).attr('id').replace(/[^0-9]/ig, ''); + var groupVal = $('#group' + i).val(); + + var dataObj = $(data); + var dataHtml = $(dataObj).attr('id', 'group' + i).attr('name', 'group[' + i + '][]').prop('outerHTML'); + + $('#group' + i).replaceWith(dataHtml); + $('#group' + i + '_chosen').remove(); + if(i == 1) $('#group' + i).find('option[value="ditto"]').remove(); + $('#group' + i).val(groupVal); + $('#group' + i).chosen(); }) -}) +} $(document).on('change', "select[id^='visions']", function() { @@ -119,6 +146,22 @@ $(document).on('change', "select[id^='visions']", function() $('#group' + i).chosen(); }) + visions = visions ? visions.join() : ''; + switch(visions) + { + case 'rnd': + var data = rndGroupSelect; + break; + case 'lite': + var data = liteGroupSelect; + break; + case 'rnd,lite': + var data = allGroupSelect; + break; + default: + var data = emptyGroupSelect; + break; + } for(n = i + 1; n <= batchCreateCount; n++) { if(n == i) continue; @@ -126,12 +169,12 @@ $(document).on('change', "select[id^='visions']", function() ((function(n) { - $.post(createLink('user', 'ajaxGetGroup', "visions=" + visions + '&i=' + n + '&selected=' + $('#group' + n).val()), function(data) - { - $('#group' + n).replaceWith(data); - $('#group' + n + '_chosen').remove(); - $('#group' + n).chosen(); - }) + var groupVal = $('#group' + n).val(); + var dataHtml = $(data).attr('id', 'group' + n).attr('name', 'group[' + n + '][]').prop('outerHTML'); + $('#group' + n).replaceWith(dataHtml); + $('#group' + n + '_chosen').remove(); + $('#group' + n).val(groupVal); + $('#group' + n).chosen(); }(n))); } }); From 9b2637142980114adff7b89485fc205a2d08bbcb Mon Sep 17 00:00:00 2001 From: liyuchun <563917701@qq.com> Date: Fri, 15 Jul 2022 00:59:08 +0000 Subject: [PATCH 07/37] * Fix bug #25247. --- module/job/control.php | 3 +++ module/repo/model.php | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/module/job/control.php b/module/job/control.php index ac4677c3c0..d25c6a0fe9 100644 --- a/module/job/control.php +++ b/module/job/control.php @@ -38,6 +38,9 @@ class job extends control */ public function browse($repoID = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) { + $repos = $this->loadModel('repo')->getRepoPairs('devops'); + if(empty($repos)) $this->locate($this->repo->createLink('create')); + /* Set session. */ $this->loadModel('ci')->setMenu($repoID); diff --git a/module/repo/model.php b/module/repo/model.php index d417ca9f3a..fc8e128802 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -53,9 +53,10 @@ class repoModel extends model echo(js::alert($this->lang->repo->error->accessDenied)); return print(js::locate('back')); } - } - $this->lang->switcherMenu = $this->getSwitcher($repoID); + if($repo->SCM != 'Gitlab') unset($this->lang->devops->menu->mr); + $this->lang->switcherMenu = $this->getSwitcher($repoID); + } common::setMenuVars('devops', $repoID); if(!session_id()) session_start(); From 460e4cf336db0805b53134d629310a6788c4c663 Mon Sep 17 00:00:00 2001 From: liyuchun <563917701@qq.com> Date: Fri, 15 Jul 2022 01:06:24 +0000 Subject: [PATCH 08/37] * Fix bug #25266. --- module/repo/control.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/repo/control.php b/module/repo/control.php index ac03e050e7..3d40711f1d 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -1139,6 +1139,7 @@ class repo extends control */ public function ajaxGetDropMenu($repoID, $module = 'repo', $method = 'browse') { + if($module == 'repo' and !in_array($method, array('review', 'diff'))) $method = 'browse'; if($module == 'mr') $method = 'browse'; if($module == 'job') $method = 'browse'; if($module == 'compile' and $method == 'logs') $method = 'browse'; From d375ccf6a3d05d6b55da0f3aec9fdf4aac0d6c06 Mon Sep 17 00:00:00 2001 From: sunjun Date: Fri, 15 Jul 2022 01:12:58 +0000 Subject: [PATCH 09/37] fixbug_25202 --- module/task/model.php | 3 ++- module/task/view/recordestimate.html.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index b2284e7174..12906128c6 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -809,7 +809,7 @@ class taskModel extends model } else { - if($team[$oldTask->assignedTo]->left == 0 && $team[$oldTask->assignedTo]->consumed != 0) + if($team[$oldTask->assignedTo]->left == 0 and $team[$oldTask->assignedTo]->consumed != 0 and $this->app->rawMethod != 'deleteestimate') { if($oldTask->assignedTo != $teams[count($teams) - 1]) { @@ -3738,6 +3738,7 @@ class taskModel extends model public function getFinishedUsers($taskID = 0, $team = array()) { $task = $this->getById($taskID); + if($task->activatedDate == '') $task->activatedDate = "0000-00-00"; return $this->dao->select('actor')->from(TABLE_ACTION) ->where('objectType')->eq('task') ->andWhere('objectID')->eq($taskID) diff --git a/module/task/view/recordestimate.html.php b/module/task/view/recordestimate.html.php index cf1e5d976d..cfb3432d34 100644 --- a/module/task/view/recordestimate.html.php +++ b/module/task/view/recordestimate.html.php @@ -60,7 +60,7 @@ team) or $task->assignedTo == $this->app->user->account or ($task->mode == 'multi' and isset($task->team[$app->user->account]))):?> app->user->admin or $this->app->user->account == $estimate->account) + if($this->app->user->account == $estimate->account) { common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true); common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'close', 'hiddenwin', 'showinonlybody'); From 949d7e2ce5ede38113efa1bc9c1947d077948a34 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Fri, 15 Jul 2022 01:14:52 +0000 Subject: [PATCH 10/37] * Fix the product default value error. --- module/execution/control.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/control.php b/module/execution/control.php index cf6b9eea59..6719246fdd 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -820,7 +820,7 @@ class execution extends control $actionURL = $this->createLink('execution', 'story', "executionID=$executionID&orderBy=$orderBy&type=bySearch&queryID=myQueryID"); $branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products)); $branchOption = array(); - foreach($branchGroups as $productID => $branches) + foreach($branchGroups as $branches) { foreach($branches as $branchID => $name) { From f9e7b52ccac5aae38cf0ce1a22f20b80b8fd8c7a Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 15 Jul 2022 09:28:00 +0800 Subject: [PATCH 11/37] * Fix bug#25084. --- module/execution/js/kanban.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index 1be0d9bd5f..9e9e286be3 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -1358,7 +1358,7 @@ function createBugMenu(options) if(priv.canResolveBug && (bug.$col.type == 'unconfirmed' || bug.$col.type == 'confirmed' || bug.$col.type == 'fixing')) items.push({label: bugLang.resolve, icon: 'checked', url: createLink('bug', 'resolve', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canConfirmBug && (bug.$col.type == 'fixed' || bug.$col.type == 'testing' || bug.$col.type == 'tested')) items.push({label: bugLang.close, icon: 'off', url: createLink('bug', 'close', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canConfirmBug && bug.$col.type == 'unconfirmed') items.push({label: bugLang.confirmBug, icon: 'ok', url: createLink('bug', 'confirmbug', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); - if(priv.canCopyBug) items.push({label: bugLang.copy, icon: 'copy', url: createLink('bug', 'create', 'productID=' + productID + '&branch=' + '' + '&extras=bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); + if(priv.canCopyBug) items.push({label: bugLang.copy, icon: 'copy', url: createLink('bug', 'create', 'productID=' + productID + '&branch=&extras=bugID=' + bug.id + ',regionID=' + bug.$lane.region + ',laneID=' + bug.lane + ',columnID=' + bug.column + ',executionID=' + executionID, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canToStoryBug && (bug.$col.type != 'closed')) items.push({label: bugLang.toStory, icon: 'lightbulb', url: createLink('story', 'create', 'product=' + productID + '&branch=' + '0' + '&module=' + '0' + '&story=' + '0' + '&execution=' + '0' + '&bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canActivateBug && (bug.$col.type == 'fixed') || bug.$col.type == 'testing' || bug.$col.type == 'tested' || bug.$col.type == 'closed') items.push({label: bugLang.activate, icon: 'magic', url: createLink('bug', 'activate', 'bugID=' + bug.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canDeleteBug) items.push({label: bugLang.delete, icon: 'trash', onClick: function(){deleteCard('bug', bug.id, bug.$lane.region)}}); From 94992c299f6b9b749b874409f2dd8010c1af1f2a Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 09:44:01 +0800 Subject: [PATCH 12/37] * Fix bug #25336. --- module/doc/css/index.css | 1 + module/doc/view/index.html.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/module/doc/css/index.css b/module/doc/css/index.css index 7a426166af..f45675040c 100644 --- a/module/doc/css/index.css +++ b/module/doc/css/index.css @@ -1,3 +1,4 @@ #pageActions ul.dropdown-menu {left: 67px;} #mainRow .main-col .row .col-sm-7 {width: 55% !important;} #mainRow .main-col .row .col-sm-5 {width: 45% !important;} +#mainRow .c-num {text-overflow: ellipsis; white-space: nowrap;} diff --git a/module/doc/view/index.html.php b/module/doc/view/index.html.php index 293176cd59..e52cdc849d 100644 --- a/module/doc/view/index.html.php +++ b/module/doc/view/index.html.php @@ -33,8 +33,8 @@ doc->title;?> - doc->size;?> - doc->addedBy;?> + doc->size;?> + doc->addedBy;?> doc->editedDate;?> From c4af3c24b6b945900eb49ed9376a9ea0d6845e21 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Fri, 15 Jul 2022 10:05:43 +0800 Subject: [PATCH 13/37] * fix bug #25346. --- module/common/model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/common/model.php b/module/common/model.php index a2f115f03d..b063197c70 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -525,6 +525,7 @@ class commonModel extends model if(isset($app->user)) { + if(!isset($app->user->visions)) $app->user->visions = trim($config->visions, ','); $currentVision = $app->config->vision; $userVisions = array_filter(explode(',', $app->user->visions)); $configVisions = array_filter(explode(',', trim($config->visions, ','))); From 5fe08a5c14492b47a5d2129216497d3707b7b35d Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 10:10:45 +0800 Subject: [PATCH 14/37] * Fix bug #25336. --- module/task/view/create.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/view/create.html.php b/module/task/view/create.html.php index 139676690b..3dd6fba585 100644 --- a/module/task/view/create.html.php +++ b/module/task/view/create.html.php @@ -21,7 +21,7 @@ error->notempty, $lang->task->estimate))?> lifetime);?> - + Date: Fri, 15 Jul 2022 02:30:21 +0000 Subject: [PATCH 15/37] * Processing product default value error. --- module/execution/control.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module/execution/control.php b/module/execution/control.php index 6719246fdd..433c01591d 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -727,6 +727,9 @@ class execution extends control } if($type == 'bymodule') { + $module = $this->loadModel('tree')->getByID($param); + $productID = $module->root; + $_COOKIE['storyModuleParam'] = $param; $_COOKIE['storyProductParam'] = 0; $_COOKIE['storyBranchParam'] = 0; From d5c7586a470780a9c5248c5861b9e487593c6d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Fri, 15 Jul 2022 10:33:58 +0800 Subject: [PATCH 16/37] * Fix menu bug. --- module/common/lang/menu.php | 2 +- module/project/control.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 12a8020011..b7703e2dc1 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -201,7 +201,7 @@ if($config->systemMode == 'new') $lang->project->homeMenu->kanban = array('link' /* Scrum menu. */ $lang->scrum->menu = new stdclass(); $lang->scrum->menu->index = array('link' => "{$lang->dashboard}|project|index|project=%s"); -$lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project|execution|status=all&projectID=%s", 'exclude' => 'execution-testreport'); +$lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project|execution|status=all&projectID=%s", 'exclude' => 'execution-testreport', 'subModule' => 'task'); $lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree', 'alias' => 'story,track'); $lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|tableContents|type=project&objectID=%s", 'subModule' => 'doc'); $lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport,execution', 'alias' => 'bug,testtask,testcase,testreport', 'exclude' => 'execution-create,execution-batchedit'); diff --git a/module/project/control.php b/module/project/control.php index c725805f87..50dd26bc59 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -966,6 +966,8 @@ class project extends control $this->loadModel('task'); $this->loadModel('programplan'); + if($this->cookie->showTask) $this->session->set('taskList', $this->app->getURI(true), 'project'); + $projects = $this->project->getPairsByProgram(); $projectID = $this->project->saveState($projectID, $projects); $project = $this->project->getByID($projectID); From e31f207b0b75f5537b1705eb65413474f283481d Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 15 Jul 2022 10:45:23 +0800 Subject: [PATCH 17/37] * Fix bug #25358. --- module/execution/model.php | 9 ++++++++- module/project/view/execution.html.php | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/module/execution/model.php b/module/execution/model.php index aea6c8cfff..09fd623513 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -4374,7 +4374,14 @@ class executionModel extends model } } - common::printIcon('programplan', 'edit', "stageID=$execution->id&projectID=$execution->project", $execution, 'list', '', '', 'iframe', true); + if($execution->type == 'stage') + { + common::printIcon('programplan', 'edit', "stageID=$execution->id&projectID=$execution->project", $execution, 'list', '', '', 'iframe', true); + } + else + { + common::printIcon('execution', 'edit', "executionID=$execution->id", $execution, 'list', '', '', 'iframe', true); + } $disabled = !empty($execution->children) ? ' disabled' : ''; if($execution->status != 'closed' and common::hasPriv('execution', 'close', $execution)) diff --git a/module/project/view/execution.html.php b/module/project/view/execution.html.php index 4f96d88413..59fa5c2cc1 100644 --- a/module/project/view/execution.html.php +++ b/module/project/view/execution.html.php @@ -54,7 +54,7 @@
- + - + From 410bd4d3aa7513ef8cd80e7a8e54a7fa77b59a54 Mon Sep 17 00:00:00 2001 From: zenggang Date: Fri, 15 Jul 2022 02:51:57 +0000 Subject: [PATCH 18/37] * Remove productplan die --- module/productplan/control.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/module/productplan/control.php b/module/productplan/control.php index 9f2dc98d98..fb31e69a96 100644 --- a/module/productplan/control.php +++ b/module/productplan/control.php @@ -244,11 +244,11 @@ class productplan extends control public function delete($planID, $confirm = 'no') { $plan = $this->productplan->getById($planID); - if($plan->parent < 0) die(js::alert($this->lang->productplan->cannotDeleteParent)); + if($plan->parent < 0) return print(js::alert($this->lang->productplan->cannotDeleteParent)); if($confirm == 'no') { - die(js::confirm($this->lang->productplan->confirmDelete, $this->createLink('productPlan', 'delete', "planID=$planID&confirm=yes"))); + return print(js::confirm($this->lang->productplan->confirmDelete, $this->createLink('productPlan', 'delete', "planID=$planID&confirm=yes"))); } else { @@ -274,7 +274,7 @@ class productplan extends control } if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess)); - die(js::reload('parent')); + return print(js::reload('parent')); } } @@ -390,7 +390,7 @@ class productplan extends control if(!$plan) { if(defined('RUN_MODE') && RUN_MODE == 'api') return $this->send(array('status' => 'fail', 'code' => 404, 'message' => '404 Not found')); - die(js::error($this->lang->notFound) . js::locate($this->createLink('product', 'index'))); + return print(js::error($this->lang->notFound) . js::locate($this->createLink('product', 'index'))); } $this->session->set('storyList', $this->createLink('productplan', 'view', "planID=$planID&type=story"), 'product'); @@ -543,14 +543,14 @@ class productplan extends control { if($confirm == 'no') { - die(js::confirm($this->lang->productplan->confirmActivate, $this->createLink('productplan', 'activate', "planID=$planID&confirm=yes"), 'parent')); + return print(js::confirm($this->lang->productplan->confirmActivate, $this->createLink('productplan', 'activate', "planID=$planID&confirm=yes"), 'parent')); } else { $this->productplan->updateStatus($planID, 'doing', 'activated'); - if(dao::isError()) die(js::error(dao::getError())); - die(js::reload('parent')); + if(dao::isError()) return print(js::error(dao::getError())); + return print(js::reload('parent')); } } @@ -625,7 +625,7 @@ class productplan extends control { $this->productplan->linkStory($planID); if($this->viewType == 'json') return $this->send(array('result' => 'success')); - die(js::locate(inlink('view', "planID=$planID&type=story&orderBy=$orderBy"), 'parent')); + return print(js::locate(inlink('view', "planID=$planID&type=story&orderBy=$orderBy"), 'parent')); } $this->session->set('storyList', inlink('view', "planID=$planID&type=story&orderBy=$orderBy&link=true¶m=" . helper::safe64Encode("&browseType=$browseType&queryID=$param")), 'product'); @@ -710,7 +710,7 @@ class productplan extends control { if($confirm == 'no') { - die(js::confirm($this->lang->productplan->confirmUnlinkStory, $this->createLink('productplan', 'unlinkstory', "storyID=$storyID&planID=$planID&confirm=yes"))); + return print(js::confirm($this->lang->productplan->confirmUnlinkStory, $this->createLink('productplan', 'unlinkstory', "storyID=$storyID&planID=$planID&confirm=yes"))); } else { @@ -732,7 +732,7 @@ class productplan extends control } return $this->send($response); } - die(js::reload('parent')); + return print(js::reload('parent')); } } @@ -771,7 +771,7 @@ class productplan extends control { $this->productplan->linkBug($planID); if($this->viewType == 'json') return $this->send(array('result' => 'success')); - die(js::locate(inlink('view', "planID=$planID&type=bug&orderBy=$orderBy"), 'parent')); + return print(js::locate(inlink('view', "planID=$planID&type=bug&orderBy=$orderBy"), 'parent')); } /* Load module and set session. */ @@ -852,7 +852,7 @@ class productplan extends control { if($confirm == 'no') { - die(js::confirm($this->lang->productplan->confirmUnlinkBug, $this->createLink('productplan', 'unlinkbug', "bugID=$bugID&confirm=yes"))); + return print(js::confirm($this->lang->productplan->confirmUnlinkBug, $this->createLink('productplan', 'unlinkbug', "bugID=$bugID&confirm=yes"))); } else { @@ -874,7 +874,7 @@ class productplan extends control } return $this->send($response); } - die(js::reload('parent')); + return print(js::reload('parent')); } } From c04d08210a5f5099cba4e63c3568ff6105604f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Fri, 15 Jul 2022 10:56:52 +0800 Subject: [PATCH 19/37] * Code for php error. --- module/execution/model.php | 4 ++-- module/task/model.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/module/execution/model.php b/module/execution/model.php index aea6c8cfff..91468449ee 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -4309,12 +4309,12 @@ class executionModel extends model * Print execution nested list. * * @param object $execution - * @param int $isChild + * @param bool $isChild * @param array $users * @access public * @return void */ - public function printNestedList($execution, $isChild = false, $users, $productID) + public function printNestedList($execution, $isChild, $users, $productID) { $this->loadModel('task'); $this->loadModel('execution'); diff --git a/module/task/model.php b/module/task/model.php index efba27c99e..7414b7809c 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -3758,7 +3758,7 @@ class taskModel extends model * @access public * @return string */ - public function buildNestedList($execution, $task, $isChild = false, $showmore = false, $users) + public function buildNestedList($execution, $task, $isChild = false, $showmore = false, $users = array()) { $showmore = $showmore ? 'showmore' : ''; $trAttrs = "data-id='t$task->id'"; From bae78d62624cfd65899046b4ea9fe1fcda2c591c Mon Sep 17 00:00:00 2001 From: Wenrui LI Date: Fri, 15 Jul 2022 11:05:38 +0800 Subject: [PATCH 20/37] * fix oom on downloading client. --- xuanxuan/extension/xuan/misc/ext/control/downloadclient.php | 1 + 1 file changed, 1 insertion(+) diff --git a/xuanxuan/extension/xuan/misc/ext/control/downloadclient.php b/xuanxuan/extension/xuan/misc/ext/control/downloadclient.php index d7549292d9..370e01f042 100644 --- a/xuanxuan/extension/xuan/misc/ext/control/downloadclient.php +++ b/xuanxuan/extension/xuan/misc/ext/control/downloadclient.php @@ -102,6 +102,7 @@ class myMisc extends misc if($action == 'downloadPackage') { + ini_set('memory_limit', '512M'); $account = $this->app->user->account; $clientDir = $this->app->wwwRoot . 'data/client/' . "$account/"; From 85342843ef4322c109c332d5e4824f1200e34332 Mon Sep 17 00:00:00 2001 From: Wenrui LI Date: Fri, 15 Jul 2022 11:10:34 +0800 Subject: [PATCH 21/37] * fix toolbar position for zentaoclient. --- www/theme/default/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/www/theme/default/style.css b/www/theme/default/style.css index 9af189801e..d9465830b3 100644 --- a/www/theme/default/style.css +++ b/www/theme/default/style.css @@ -98,3 +98,4 @@ body.xxc-embed {overflow-x: auto; overflow-y: hidden;} .xxc-embed #toolbar {position: fixed;right: 120px!important;} .xxc-embed #main {position: absolute;top: 50px;bottom: 0;left: 0;right: 0;overflow: auto;} .xxc-embed .fix-table-copy-wrapper {top: 50px!important;} +.xxc-embed #headerActions {right: 450px;} From 311436573a581defba5cc64d4f0ed0a392062730 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 15 Jul 2022 11:12:04 +0800 Subject: [PATCH 22/37] * Fix bug#25365. --- module/execution/js/kanban.js | 2 +- module/execution/js/taskkanban.js | 2 +- module/execution/view/kanban.html.php | 2 +- module/execution/view/taskkanban.html.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index 9e9e286be3..50ac5ec859 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -293,7 +293,7 @@ function createColumnCreateMenu(options) else if(col.type == 'wait') { if(priv.canCreateTask) items.push({label: taskLang.create, url: $.createLink('task', 'create', 'executionID=' + executionID + "&storyID=0&moduleID=0&taskID=0&todoID=0&extra=regionID=" + regionID + ",laneID=" + laneID + ",columnID=" + col.id, '', true), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); - if(priv.canBatchCreateTask) items.push({label: taskLang.batchCreate, url: $.createLink('task', 'batchcreate', 'executionID=' + executionID + "&storyID=0&moduleID=0&taskID=0&iframe=0&extra=regionID=" + regionID + ",laneID=" + laneID + ",columnID=" + col.id, '', true), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); + if(priv.canBatchCreateTask) items.push({label: taskLang.batchCreate, url: $.createLink('task', 'batchcreate', 'executionID=' + executionID + "&storyID=0&moduleID=0&taskID=0&iframe=0&extra=regionID=" + regionID + ",laneID=" + laneID + ",columnID=" + col.id, '', true), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '90%'}}); if(priv.canImportBug && vision == 'rnd') items.push({label: executionLang.importBug, url: $.createLink('execution', 'importBug', 'executionID=' + executionID + "&storyID=0&moduleID=0&taskID=0&todoID=0&extra=laneID=" + laneID + ",columnID=" + col.id, '', true), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '90%'}}); } return items; diff --git a/module/execution/js/taskkanban.js b/module/execution/js/taskkanban.js index 28588a9b89..9fc36d555f 100644 --- a/module/execution/js/taskkanban.js +++ b/module/execution/js/taskkanban.js @@ -969,7 +969,7 @@ function createColumnCreateMenu(options) else { if(priv.canCreateTask) items.push({label: taskLang.create, url: $.createLink('task', 'create', 'executionID=' + executionID, '', true), className: 'iframe', attrs: {'data-width': '80%'}}); - if(priv.canBatchCreateTask) items.push({label: taskLang.batchCreate, url: $.createLink('task', 'batchcreate', 'executionID=' + executionID, '', true), className: 'iframe', attrs: {'data-width': '80%'}}); + if(priv.canBatchCreateTask) items.push({label: taskLang.batchCreate, url: $.createLink('task', 'batchcreate', 'executionID=' + executionID, '', true), className: 'iframe', attrs: {'data-width': '90%'}}); if(priv.canImportBug) items.push({label: executionLang.importBug, url: $.createLink('execution', 'importBug', 'executionID=' + executionID, '', true), className: 'iframe', attrs: {'data-width': '90%'}}); } return items; diff --git a/module/execution/view/kanban.html.php b/module/execution/view/kanban.html.php index 85767b6478..95568a7e96 100644 --- a/module/execution/view/kanban.html.php +++ b/module/execution/view/kanban.html.php @@ -214,7 +214,7 @@ js::set('priv', ' . html::a(helper::createLink('task', 'create', "execution=$execution->id", '', true), $lang->task->create, '', "class='iframe'") . '';?> ' . html::a(helper::createLink('execution', 'importBug', "executionID=$execution->id", '', true), $lang->execution->importBug, '', "class='iframe' data-width=90%") . '';?> ' . html::a(helper::createLink('execution', 'importTask', "toExecution=$execution->id", '', true), $lang->execution->importTask, '', "class='iframe' data-width=90%") . '';?> - ' . html::a(helper::createLink('task', 'batchCreate', "execution=$execution->id", '', true), $lang->execution->batchCreateTask, '', "class='iframe'") . '';?> + ' . html::a(helper::createLink('task', 'batchCreate', "execution=$execution->id", '', true), $lang->execution->batchCreateTask, '', "class='iframe' data-width=90%") . '';?> diff --git a/module/execution/view/taskkanban.html.php b/module/execution/view/taskkanban.html.php index c2e2f5d370..fffb0e79c6 100644 --- a/module/execution/view/taskkanban.html.php +++ b/module/execution/view/taskkanban.html.php @@ -116,7 +116,7 @@ ' . html::a(helper::createLink('execution', 'importBug', "execution=$execution->id", '', true), $lang->execution->importBug, '', "class='iframe'") . '';?> ' . html::a(helper::createLink('task', 'create', "execution=$execution->id", '', true), $lang->task->create, '', "class='iframe'") . '';?> - ' . html::a(helper::createLink('task', 'batchCreate', "execution=$execution->id", '', true), $lang->execution->batchCreateTask, '', "class='iframe'") . '';?> + ' . html::a(helper::createLink('task', 'batchCreate', "execution=$execution->id", '', true), $lang->execution->batchCreateTask, '', "class='iframe' data-width=90%") . '';?> From 51b224232608dcbde7e5c1ee47ad0834b30ee3c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E6=98=A5?= <563917701@qq.com> Date: Fri, 15 Jul 2022 03:14:43 +0000 Subject: [PATCH 23/37] Liyuchun fixbug --- module/bug/js/view.js | 10 +++++----- module/repo/view/ajaxgetdropmenu.html.php | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/module/bug/js/view.js b/module/bug/js/view.js index 7eb23349a5..503b067367 100644 --- a/module/bug/js/view.js +++ b/module/bug/js/view.js @@ -45,12 +45,12 @@ $('#toTaskButton').on('click', function() var link = createLink('task', 'create', 'executionID=' + executionID + '&storyID=0&moduleID=0&taskID=0&todoID=0&extra=projectID=0&bugID=' + bugID); window.parent.$.apps.open(link, 'execution'); } - else if(executionID == 0) - { - alert(errorNoExecution); - } - else + else if(projectID == 0) { alert(errorNoProject); } + else + { + alert(errorNoExecution); + } }); diff --git a/module/repo/view/ajaxgetdropmenu.html.php b/module/repo/view/ajaxgetdropmenu.html.php index a110cc2bc1..1e6a0b1899 100644 --- a/module/repo/view/ajaxgetdropmenu.html.php +++ b/module/repo/view/ajaxgetdropmenu.html.php @@ -38,7 +38,6 @@ li > a.selected {color: #3123ae !important; background: #f2eafc !important; line
- lang->repo->type;?>
    $repoName):?> From d3351f941c5484736e8cd85286ffc450c23dd165 Mon Sep 17 00:00:00 2001 From: Wenrui LI Date: Fri, 15 Jul 2022 11:23:25 +0800 Subject: [PATCH 24/37] * adjust toolbar position. --- www/theme/default/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/theme/default/style.css b/www/theme/default/style.css index d9465830b3..a8fda8a560 100644 --- a/www/theme/default/style.css +++ b/www/theme/default/style.css @@ -98,4 +98,4 @@ body.xxc-embed {overflow-x: auto; overflow-y: hidden;} .xxc-embed #toolbar {position: fixed;right: 120px!important;} .xxc-embed #main {position: absolute;top: 50px;bottom: 0;left: 0;right: 0;overflow: auto;} .xxc-embed .fix-table-copy-wrapper {top: 50px!important;} -.xxc-embed #headerActions {right: 450px;} +.xxc-embed #headerActions {right: 310px!important;} From 56c1339fbed41467b101da0398ef64d343080525 Mon Sep 17 00:00:00 2001 From: zhouxudong Date: Fri, 15 Jul 2022 03:36:57 +0000 Subject: [PATCH 25/37] * Fix bug. --- module/task/control.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/control.php b/module/task/control.php index 0aaa687020..4f4de08e01 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -801,7 +801,7 @@ class task extends control if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban') { $rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : ''; - $kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroup, $rdSearchValue); + $kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroupBy, $rdSearchValue); $kanbanData = json_encode($kanbanData); return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData)")); From 5e464f8b85774bb262dc879c85c16be6241946e3 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Fri, 15 Jul 2022 13:09:24 +0800 Subject: [PATCH 26/37] * Fix bug #25375. --- module/upgrade/model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/module/upgrade/model.php b/module/upgrade/model.php index d92a655196..450dd6afd5 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -4742,6 +4742,7 @@ class upgradeModel extends model $data->begin = $projects[$projectID]->begin; $data->end = $projects[$projectID]->end; $data->projectStatus = $projects[$projectID]->status; + $data->team = $projects[$projectID]->team; $data->PM = $projects[$projectID]->PM; $data->projectAcl = $projects[$projectID]->acl == 'custom' ? 'private' : $projects[$projectID]->acl; From a8dc623084c4e091d154ef49eb2cdad003c613a3 Mon Sep 17 00:00:00 2001 From: mayue Date: Fri, 15 Jul 2022 13:13:28 +0800 Subject: [PATCH 27/37] * Fix bug . --- module/task/js/create.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/task/js/create.js b/module/task/js/create.js index ab94beed36..437861bdf8 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -22,6 +22,10 @@ $(function() saveCustomFields('createFields'); return false; }); + + var executionID = $('#execution').val(); + loadStories(executionID); + }) /** From 7b9c5e6d5268b3bd8470339c5bce1dca84455235 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 13:42:13 +0800 Subject: [PATCH 28/37] * Fix bug #25230. --- module/task/js/create.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/js/create.js b/module/task/js/create.js index 437861bdf8..adb0287789 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -303,7 +303,7 @@ function setLane(regionID) /* Get select of stories.*/ function setStories(moduleID, executionID) { - link = createLink('story', 'ajaxGetExecutionStories', 'executionID=' + executionID + '&productID=0&branch=all&moduleID=' + moduleID + '&storyID=0&number=&type=full&status=unclosed'); + link = createLink('story', 'ajaxGetExecutionStories', 'executionID=' + executionID + '&productID=0&branch=all&moduleID=' + moduleID + '&storyID=0&number=&type=full&status=active'); $.get(link, function(stories) { var storyID = $('#story').val(); From 95dba9297de99e0e0063dc589617f9d5709992f5 Mon Sep 17 00:00:00 2001 From: zhouxudong Date: Fri, 15 Jul 2022 05:43:51 +0000 Subject: [PATCH 29/37] * Fix bug #24894. --- module/block/view/todoblock.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/block/view/todoblock.html.php b/module/block/view/todoblock.html.php index 781ccf19d9..81b1c76209 100644 --- a/module/block/view/todoblock.html.php +++ b/module/block/view/todoblock.html.php @@ -28,7 +28,7 @@ if(!$selfCall) die(include('./todolist.html.php')); .block-todoes .todo-check {position: absolute; top: 5px; left: 10px; display: block; width: 20px; height: 20px; font-size: 20px; color: transparent; cursor: pointer; background: #fff; border: 2px solid #eee; border-radius: 50%;} .block-todoes .todo-check:hover {border-color: #8e939a;} .block-todoes .active > .todo-check {color: #00da88; background: transparent;border: none;} -.block-todoes .todoes-form {position: absolute; top: -45px; right: 0; left: 0; z-index: 1011; max-width: 500px; padding: 12px 20px 20px; visibility: hidden; background: #fff; -webkit-box-shadow: 0 0 20px 0 #bdc9d8; box-shadow: 0 0 20px 0 #bdc9d8; opacity: 0;-webkit-transition: .4s cubic-bezier(.175, .885, .32, 1); -o-transition: .4s cubic-bezier(.175, .885, .32, 1); transition: .4s cubic-bezier(.175, .885, .32, 1); -webkit-transition-property: opacity, visibility; -o-transition-property: opacity, visibility; transition-property: opacity, visibility;} +.block-todoes .todoes-form {position: absolute; top: -45px; right: 0; left: 0; z-index: 1011; max-width: 100%; padding: 12px 20px 20px; visibility: hidden; background: #fff; -webkit-box-shadow: 0 0 20px 0 #bdc9d8; box-shadow: 0 0 20px 0 #bdc9d8; opacity: 0;-webkit-transition: .4s cubic-bezier(.175, .885, .32, 1); -o-transition: .4s cubic-bezier(.175, .885, .32, 1); transition: .4s cubic-bezier(.175, .885, .32, 1); -webkit-transition-property: opacity, visibility; -o-transition-property: opacity, visibility; transition-property: opacity, visibility;} .block-todoes .todoes-form .form-group > label {padding-left: 0;} .block-todoes .todoes-form .form-group > label.text-center {text-align: center!important;} .block-todoes .todoes-form > .form-group:last-child {margin-bottom: 0;} From 12d9c215ee8a201581b4598070ed614fcf13f038 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 15 Jul 2022 13:58:53 +0800 Subject: [PATCH 30/37] * Fix bug#25038. --- module/task/view/view.html.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/module/task/view/view.html.php b/module/task/view/view.html.php index 0f6294d40c..f0732f48dd 100644 --- a/module/task/view/view.html.php +++ b/module/task/view/view.html.php @@ -166,8 +166,10 @@
    + ' . $lang->goback, '', "class='btn btn-secondary'");?> -
    ";?> +
    ";?> + executionList = $execution;?> task->buildOperateMenu($task, 'view');?> From 656cc5f060e9d6ce876e0fe12c2739d1cfb8351a Mon Sep 17 00:00:00 2001 From: tianshujie Date: Fri, 15 Jul 2022 14:07:32 +0800 Subject: [PATCH 31/37] * Fix bug #25321. --- module/task/control.php | 2 +- module/task/js/create.js | 2 +- module/task/model.php | 12 ++++++------ module/task/view/batchcreate.html.php | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/module/task/control.php b/module/task/control.php index 0aaa687020..a737a5b418 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -438,7 +438,7 @@ class task extends control $customFields[$field] = $this->lang->task->$field; } - if($execution->lifetime == 'ops') unset($customFields['story']); + if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') unset($customFields['story']); $this->view->customFields = $customFields; $this->view->showFields = $this->config->task->custom->batchCreateFields; diff --git a/module/task/js/create.js b/module/task/js/create.js index ab94beed36..0c8f586ca3 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -6,7 +6,7 @@ $(function() var fieldList = showFields + ','; var requiredList = ',' + requiredFields + ','; - if(lifetime == 'ops') + if(lifetime == 'ops' || (typeof execAttribute != 'undefined' && (execAttribute == 'request' || execAttribute == 'review'))) { $('#fieldsstory').parent('div').addClass('hidden'); } diff --git a/module/task/model.php b/module/task/model.php index 05c7217e63..4ae8093b3a 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -116,8 +116,8 @@ class taskModel extends model $task = $this->loadModel('file')->processImgURL($task, $this->config->task->editor->create['id'], $this->post->uid); /* Fix Bug #1525 */ - $executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('lifetime'); - if($executionLifetime == 'ops') + $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch(); + if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') { $requiredFields = str_replace(",story,", ',', "$requiredFields"); $task->story = 0; @@ -381,9 +381,9 @@ class taskModel extends model } /* Fix bug #1525*/ - $executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('lifetime'); + $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch(); $requiredFields = ',' . $this->config->task->create->requiredFields . ','; - if($executionLifetime == 'ops') $requiredFields = str_replace(',story,', ',', $requiredFields); + if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') $requiredFields = str_replace(',story,', ',', $requiredFields); $requiredFields = trim($requiredFields, ','); /* check data. */ @@ -1036,9 +1036,9 @@ class taskModel extends model $task->mode = ''; } - $executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch('lifetime'); + $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch(); $requiredFields = "," . $this->config->task->edit->requiredFields . ","; - if($executionLifetime == 'ops') + if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') { $requiredFields = str_replace(",story,", ',', "$requiredFields"); $task->story = 0; diff --git a/module/task/view/batchcreate.html.php b/module/task/view/batchcreate.html.php index 7c0c74879b..45e08a1aa3 100755 --- a/module/task/view/batchcreate.html.php +++ b/module/task/view/batchcreate.html.php @@ -45,7 +45,7 @@ $colspan = count($visibleFields) + 3; task->batchCreate;?> - lifetime != 'ops'):?> + lifetime != 'ops' and $execution->attribute != 'request' and $execution->attribute != 'review'):?> @@ -67,7 +67,7 @@ $colspan = count($visibleFields) + 3;
- lifetime != 'ops'):?> + lifetime != 'ops' and $execution->attribute != 'request' and $execution->attribute != 'review'):?> @@ -99,7 +99,7 @@ $colspan = count($visibleFields) + 3; $lang->task->typeList['ditto'] = $lang->task->ditto; $members['ditto'] = $lang->task->ditto; $modules['ditto'] = $lang->task->ditto; - if($execution->lifetime == 'ops') $colspan = $colspan - 1; + if($execution->lifetime != 'ops' and $execution->attribute != 'request' and $execution->attribute != 'review') $colspan = $colspan - 1; ?> task->batchCreate; $i++):?> id)'")?> - lifetime != 'ops'):?> + lifetime != 'ops' and $execution->attribute != 'request' and $execution->attribute != 'review'):?> - lifetime != 'ops'):?> + lifetime != 'ops' and $execution->attribute != 'request' and $execution->attribute != 'review'):?> - + From 3c974558c14b68690bad34d031f648e8451ec960 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 15:03:01 +0800 Subject: [PATCH 37/37] * Fix bug #25386. --- module/task/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/task/model.php b/module/task/model.php index ca20705361..1a955dd886 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2514,7 +2514,7 @@ class taskModel extends model ->orWhere('t1.finishedList')->like("%,{$account},%") ->markRight(1) ->fi() - ->beginIF($this->app->rawModule == 'my' or $this->app->rawModule == 'block')->andWhere('(t2.status')->ne('suspended')->orWhere('t4.status')->ne('suspended')->markRight(1)->fi() + ->beginIF($type == 'assignedTo' and ($this->app->rawModule == 'my' or $this->app->rawModule == 'block'))->andWhere('t2.status', true)->ne('suspended')->orWhere('t4.status')->ne('suspended')->markRight(1)->fi() ->beginIF($type != 'all' and $type != 'finishedBy' and $type != 'assignedTo')->andWhere("t1.`$type`")->eq($account)->fi() ->beginIF($type == 'assignedTo')->andWhere("(t1.assignedTo = '{$account}' or (t1.mode = 'multi' and t5.`account` = '{$account}') )")->fi() ->orderBy($orderBy)
@@ -70,7 +70,7 @@ task->consumedAB;?> task->leftAB;?> execution->burn;?> actions;?>actions;?>
idAB;?> moduleBox'>task->module?> storyBox'>task->story;?> task->name;?>
@@ -266,7 +266,7 @@ $colspan = count($visibleFields) + 3;
From c38e03a604fbcfb6b3bd4762991adfedf88cc83b Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 14:07:49 +0800 Subject: [PATCH 32/37] * Fix bug #25200. --- module/task/model.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/module/task/model.php b/module/task/model.php index 7414b7809c..967f115cc4 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -1804,6 +1804,8 @@ class taskModel extends model $data->assignedDate = $now; $data->finishedBy = $this->app->user->account; $data->finishedDate = $now; + + $this->action->create('task', $taskID, 'Finished'); } elseif($task->status == 'wait') { From 67772332b519e1a459682fd3b2907583fd35138a Mon Sep 17 00:00:00 2001 From: liumengyi Date: Fri, 15 Jul 2022 14:16:27 +0800 Subject: [PATCH 33/37] * Fix bug #24929. --- module/project/model.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/project/model.php b/module/project/model.php index 3764b7183d..d3c887f5c6 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -639,6 +639,10 @@ class projectModel extends model { $link = helper::createLink($module, $method, "projectID=%s"); } + elseif($module == 'programplan') + { + $link = helper::createLink('project', 'execution', "type=all&projectID=%s"); + } } return $link; From ea5c5c760d8cd04239b4087f3ca17e48d8225578 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 15 Jul 2022 14:38:17 +0800 Subject: [PATCH 34/37] * Delete future width when create project. --- module/project/css/create.css | 1 - 1 file changed, 1 deletion(-) diff --git a/module/project/css/create.css b/module/project/css/create.css index 1443b99aa3..0232e1b8fa 100644 --- a/module/project/css/create.css +++ b/module/project/css/create.css @@ -1,5 +1,4 @@ .popover-sm .popover-content {padding: 8px 10px; max-width: 228px;} -.c-future {width: 56px;} #dateRange {vertical-align: top; padding-top: 13px;} #endList {vertical-align: top; padding-top: 13px;} From c0c21bc75d52b81c167a9c625b2783f5d9f6e0e8 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Fri, 15 Jul 2022 14:39:35 +0800 Subject: [PATCH 35/37] * Fix bug #25321. --- module/task/model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/task/model.php b/module/task/model.php index ca20705361..31a4e7d542 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -116,7 +116,7 @@ class taskModel extends model $task = $this->loadModel('file')->processImgURL($task, $this->config->task->editor->create['id'], $this->post->uid); /* Fix Bug #1525 */ - $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch(); + $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch(); if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') { $requiredFields = str_replace(",story,", ',', "$requiredFields"); @@ -1036,7 +1036,7 @@ class taskModel extends model $task->mode = ''; } - $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch(); + $execution = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch(); $requiredFields = "," . $this->config->task->edit->requiredFields . ","; if($execution->lifetime == 'ops' or $execution->attribute == 'request' or $execution->attribute == 'review') { From da0401def920f6862eae1069e8bb83367f973da1 Mon Sep 17 00:00:00 2001 From: zhouxudong Date: Fri, 15 Jul 2022 06:58:16 +0000 Subject: [PATCH 36/37] * Fix bug #24318. --- module/execution/view/importtask.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/execution/view/importtask.html.php b/module/execution/view/importtask.html.php index b47802bb63..03b40897ad 100644 --- a/module/execution/view/importtask.html.php +++ b/module/execution/view/importtask.html.php @@ -60,7 +60,7 @@
execution];?> pri == '0' ? '' : zget($lang->task->priList, $task->pri, $task->pri);?>id", $task->name, '', "class='preview'", true, isonlybody())) echo $task->name;?>id", $task->name, '', "class='preview'", true, true)) echo $task->name;?> >assignedToRealName;?> left . ' ' . $lang->execution->workHourUnit;?> delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?>