From 4bc2653e598b909411db1c7ebee193be2adda842 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Thu, 17 Jun 2021 11:40:18 +0800 Subject: [PATCH 1/2] * task #38754, bug #11135, support for adding child step for group automatically. --- module/testcase/js/common.js | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/module/testcase/js/common.js b/module/testcase/js/common.js index ab596a743e..befa403a07 100644 --- a/module/testcase/js/common.js +++ b/module/testcase/js/common.js @@ -147,7 +147,8 @@ function setStories() function initSteps(selector) { /* Fix task #4832. Auto adjust textarea height. */ - $('textarea.autosize').each(function() { + $('textarea.autosize').each(function() + { $.autoResizeTextarea(this); }); @@ -177,7 +178,7 @@ function initSteps(selector) { return $steps.children('.step:not(.drag-shadow)'); }; - var refreshSteps = function() + var refreshSteps = function(skipAutoAddStep) { var parentId = 1, childId = 0; getStepsElements().each(function(idx) @@ -187,14 +188,14 @@ function initSteps(selector) var stepID; if(type == 'group') { - $step.removeClass('step-item step-step').addClass('step-group'); + $step.removeClass('step-item').removeClass('step-step').addClass('step-group'); stepID = parentId++; $step.find('.step-id').text(stepID); childId = 1; } else if(type == 'step') { - $step.removeClass('step-item step-group').addClass('step-step'); + $step.removeClass('step-item').removeClass('step-group').addClass('step-step'); stepID = parentId++; $step.find('.step-id').text(stepID); childId = 0; @@ -204,11 +205,11 @@ function initSteps(selector) if(childId) // type as child { stepID = (parentId - 1) + '.' + (childId++); - $step.removeClass('step-step step-group').addClass('step-item').find('.step-item-id').text(stepID); + $step.removeClass('step-step').removeClass('step-group').addClass('step-item').find('.step-item-id').text(stepID); } else // type as step { - $step.removeClass('step-item step-group').addClass('step-step'); + $step.removeClass('step-item').removeClass('step-group').addClass('step-step'); stepID = parentId++; $step.find('.step-id').text(stepID); } @@ -219,6 +220,25 @@ function initSteps(selector) updateStepType($step, type); }); + + /* Auto insert step to group without any steps */ + if(!skipAutoAddStep) + { + var needRefresh = false; + getStepsElements().each(function(idx) + { + var $step = $(this).attr('data-index', idx + 1); + if($step.attr('data-type') !== 'group') return; + var $nextStep = $step.next('.step:not(.drag-shadow)'); + if(!$nextStep.length || $nextStep.attr('data-type') !== 'item') + { + insertStepRow($step, 1, 'item', true); + needRefresh = true; + } + }); + + if(needRefresh) refreshSteps(true); + } }; var initSortable = function() { @@ -274,7 +294,7 @@ function initSteps(selector) var $step = $checkbox.closest('.step'); var isChecked = $checkbox.is(':checked'); var suggestType = isChecked ? 'group' : 'item'; - if(!isChecked) + if(!isChecked && ($step.find('textarea[name^="steps"]').val().length || $step.find('textarea[name^="expects"]').val().length)) { var $prevStep = $step.prev('.step:not(.drag-shadow)'); var suggestChild = $prevStep.length && $prevStep.is('.step-group') && $step.next('.step:not(.drag-shadow)').length; From b4d60b8edc7bf827976cffcd20ecde19c0076cb9 Mon Sep 17 00:00:00 2001 From: Hao Sun Date: Thu, 17 Jun 2021 13:33:56 +0800 Subject: [PATCH 2/2] * task #38754, bug #11135, only auto append child when user toggle type manually. --- module/testcase/js/common.js | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/module/testcase/js/common.js b/module/testcase/js/common.js index befa403a07..70e7fffa0a 100644 --- a/module/testcase/js/common.js +++ b/module/testcase/js/common.js @@ -220,25 +220,6 @@ function initSteps(selector) updateStepType($step, type); }); - - /* Auto insert step to group without any steps */ - if(!skipAutoAddStep) - { - var needRefresh = false; - getStepsElements().each(function(idx) - { - var $step = $(this).attr('data-index', idx + 1); - if($step.attr('data-type') !== 'group') return; - var $nextStep = $step.next('.step:not(.drag-shadow)'); - if(!$nextStep.length || $nextStep.attr('data-type') !== 'item') - { - insertStepRow($step, 1, 'item', true); - needRefresh = true; - } - }); - - if(needRefresh) refreshSteps(true); - } }; var initSortable = function() { @@ -301,6 +282,17 @@ function initSteps(selector) suggestType = suggestChild ? 'item' : 'step'; } $step.find('.step-type').val(suggestType); + + /* Auto insert step to group without any steps */ + if(suggestType === 'group') + { + var $nextStep = $step.next('.step:not(.drag-shadow)'); + if(!$nextStep.length || $nextStep.find('.step-type').val() !== 'item') + { + insertStepRow($step, 1, 'item', true); + } + } + refreshSteps(); }).on('change', '.form-control', function() {