From 27d509df08752bed87c46d11583b88f8a74e188c Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 17 Nov 2021 16:28:30 +0800 Subject: [PATCH] * Finish task #44496. --- module/testcase/js/batchedit.js | 28 ++++++++++++++++++++++++- module/testcase/js/common.js | 12 ++++++----- module/testcase/model.php | 8 +++---- module/testcase/view/batchedit.html.php | 5 +++-- module/testcase/view/edit.html.php | 1 + 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/module/testcase/js/batchedit.js b/module/testcase/js/batchedit.js index 618c579d39..a9cc368d19 100644 --- a/module/testcase/js/batchedit.js +++ b/module/testcase/js/batchedit.js @@ -31,13 +31,39 @@ function loadBranches(product, branch, caseID) if(!branch) branch = 0; moduleLink = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + product + '&viewtype=case&branch=' + branch + '&rootModuleID=0&returnType=html&fieldID=' + caseID + '&needManage=true'); - $('#modules' + caseID).parent('td').load(moduleLink, function(){$('#modules' + caseID).chosen();}) + $('#modules' + caseID).parent('td').load(moduleLink, function() + { + $("#modules" + caseID).attr('onchange', "loadStories("+ product + ", this.value, " + caseID + ")").chosen(); + }); + + loadStories(product, 0, caseID); } $(function() { removeDitto(); //Remove 'ditto' in first row. $('#subNavbar li[data-id="testcase"]').addClass('active'); + if($("[name^='story']").length > 0) + { + $("[name^='story']").each(function() + { + var id = $(this).attr('id'); + var num = id.substring(5); + var moduleID = $('#modules' + num).val(); + var branchID = $('#branches' + num).val(); + var storyID = $("#story" + num).val(); + var storyLink = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&branch=' + branchID + '&moduleID=' + moduleID + '&storyID=0&onlyOption=false&status=noclosed&limit=50&type=full&hasParent=1&executionID=0&number=' + num); + $.get(storyLink, function(stories) + { + if(!stories) modules = ''; + $('#story' + num).replaceWith(stories); + $('#story' + num + "_chosen").remove(); + $('#story' + num).next('.picker').remove(); + $('#story' + num).attr('name', 'story[' + num + ']').chosen(); + $('#story' + num).val(storyID).trigger('chosen:updated'); + }); + }); + } }); $(document).on('click', '.chosen-with-drop', function(){oldValue = $(this).prev('select').val();})//Save old value. diff --git a/module/testcase/js/common.js b/module/testcase/js/common.js index 38e2ae74ce..8ec70ffa3f 100644 --- a/module/testcase/js/common.js +++ b/module/testcase/js/common.js @@ -355,14 +355,16 @@ function updateStepID() */ function loadStories(productID, moduleID, num) { - var branchID = $('#branch' + num).val(); - var storyLink = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&branch=' + branchID + '&moduleID=' + moduleID + '&storyID=0&onlyOption=false&status=noclosed&limit=50&type=full&hasParent=1&executionID=0&number=' + num); + var branchIDName = config.currentMethod == 'batchcreate' ? '#branch' : '#branches'; + var branchID = $(branchIDName + num).val(); + var storyLink = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&branch=' + branchID + '&moduleID=' + moduleID + '&storyID=0&onlyOption=false&status=noclosed&limit=50&type=full&hasParent=1&executionID=0&number=' + num); $.get(storyLink, function(stories) { if(!stories) modules = ''; $('#story' + num).replaceWith(stories); - $("#story" + num + "_chosen").remove(); - $("#story" + num).next('.picker').remove(); - $("#story" + num).chosen(); + $('#story' + num + "_chosen").remove(); + $('#story' + num).next('.picker').remove(); + $('#story' + num).attr('name', 'story[' + num + ']'); + $('#story' + num).chosen(); }); } diff --git a/module/testcase/model.php b/module/testcase/model.php index ad374b9e53..c53bcbd59c 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -863,13 +863,13 @@ class testcaseModel extends model if($data->pris[$caseID] == 'ditto') $data->pris[$caseID] = isset($prev['pri']) ? $prev['pri'] : 3; if($data->branches[$caseID] == 'ditto') $data->branches[$caseID] = isset($prev['branch']) ? $prev['branch'] : 0; if($data->modules[$caseID] == 'ditto') $data->modules[$caseID] = isset($prev['module']) ? $prev['module'] : 0; - if($data->stories[$caseID] == 'ditto') $data->stories[$caseID] = isset($prev['story']) ? $prev['story'] : 0; + if($data->story[$caseID] == 'ditto') $data->story[$caseID] = isset($prev['story']) ? $prev['story'] : 0; if($data->types[$caseID] == 'ditto') $data->types[$caseID] = isset($prev['type']) ? $prev['type'] : ''; - if($data->stories[$caseID] == '') $data->stories[$caseID] = 0; + if($data->story[$caseID] == '') $data->story[$caseID] = 0; $prev['pri'] = $data->pris[$caseID]; $prev['type'] = $data->types[$caseID]; - $prev['story'] = $data->stories[$caseID]; + $prev['story'] = $data->story[$caseID]; $prev['branch'] = $data->branches[$caseID]; $prev['module'] = $data->modules[$caseID]; } @@ -885,7 +885,7 @@ class testcaseModel extends model $case->branch = $data->branches[$caseID]; $case->module = $data->modules[$caseID]; $case->status = $data->statuses[$caseID]; - $case->story = $data->stories[$caseID]; + $case->story = $data->story[$caseID]; $case->color = $data->color[$caseID]; $case->title = $data->title[$caseID]; $case->precondition = $data->precondition[$caseID]; diff --git a/module/testcase/view/batchedit.html.php b/module/testcase/view/batchedit.html.php index 88762552cf..bc98616b26 100644 --- a/module/testcase/view/batchedit.html.php +++ b/module/testcase/view/batchedit.html.php @@ -12,6 +12,7 @@ ?> lang->testcase->dittoNotice);?> +

testcase->common . $lang->colon . $lang->testcase->batchEdit;?>

@@ -103,8 +104,8 @@ branch, "class='form-control chosen' onchange='loadBranches($branchProductID, this.value, $caseID)', $disabled");?> - ' style='overflow:visible'>module, "class='form-control chosen'");?> - ' style='overflow:visible'>story, "class='form-control chosen'");?> + ' style='overflow:visible'>module, "class='form-control chosen' onchange='loadStories($productID, this.value, $caseID)'");?> + ' style='overflow:visible'>story, "class='form-control chosen'");?>
diff --git a/module/testcase/view/edit.html.php b/module/testcase/view/edit.html.php index 46cebce8aa..9764da5f59 100644 --- a/module/testcase/view/edit.html.php +++ b/module/testcase/view/edit.html.php @@ -16,6 +16,7 @@ testcase->insertBefore);?> testcase->insertAfter);?> id);?> +execution);?>