| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- $(function()
- {
- loadCurrentPage
- ({
- url: resultsLink,
- selector: '#casesResults',
- partial: true,
- success : function()
- {
- var $resultTrs = $('#resultsContainer').find('#casesResults tr');
- if($resultTrs.length != 0 && $resultTrs.first().data('status') == 'ready')
- {
- $resultTrs.first().trigger('click');
- }
- }
- });
- $('#resultsContainer').off('click', '.result-item').on('click', '.result-item', toggleShowResults);
- $('#resultsContainer').off('click', '.check-all .checkbox-primary').on('click', '.check-all .checkbox-primary', toggleCheckAll);
- $('#resultsContainer').off('click', '.check-item').on('click', '.check-item', toggleCheckChildItem);
- $('#resultsContainer').off('click', '.to-bug-button').on('click', '.to-bug-button', createBug);
- });
- /**
- * Toggle results show or hide.
- *
- * @param event $event
- * @access public
- * @return void
- */
- function toggleShowResults(event)
- {
- var $target = $(event.target).closest('tr');
- if($target.data('status') == 'running') return;
- $target.toggleClass('is-collapsed');
- $target.toggleClass('is-expanded');
- $target.toggleClass('show-detail');
- var show = $target.hasClass('show-detail');
- $target.next('.result-detail').toggleClass('hidden', !show);
- $target.find('.collapse-handle').toggleClass('icon-angle-down', !show).toggleClass('icon-angle-top', show);
- }
- /**
- * Create bug from fail case.
- *
- * @param event $event
- * @access public
- * @return void
- */
- function createBug(event)
- {
- var $form = $(event.target).closest('form');
- var stepIdList = '';
- $form.find('.step .step-id input[type="checkbox"]:checked').each(function()
- {
- if($(this).prop('checked')) stepIdList += $(this).val() + '_';
- });
- const formData = new FormData();
- formData.append('stepIdList', stepIdList);
- var link = $.createLink('bug', 'create', $form.data('params'));
- postAndLoadPage(link, formData, '', {app: tab == 'my' ? 'qa' : tab});
- }
- /**
- * Toggle check all.
- *
- * @param event $event
- * @access public
- * @return void
- */
- function toggleCheckAll(event)
- {
- var $checkAll = $(event.target).closest('.check-all').find("input[type='checkbox']");
- var isChecked = $checkAll.prop('checked');
- $checkAll.closest('.resultSteps').find('.step').find('input[type=checkbox]').prop('checked', isChecked);
- }
- /**
- * Toggle child item check status.
- *
- * @param event $event
- * @access public
- * @return void
- */
- function toggleCheckChildItem(event)
- {
- var $target = $(event.target).closest('.step-id').find("input[type='checkbox']");
- var $step = $target.closest('.step');
- var isChecked = $target.prop('checked');
- var grade = $step.data('grade');
- var $next = $target.closest('.step').next();
- while(grade < $next.data('grade'))
- {
- $next.find("input[type='checkbox']").prop('checked', isChecked);
- $next = $next.next();
- }
- var parentStepID = $step.data('parent');
- if($step.data('id') != 0 && parentStepID != 0)
- {
- var allSiblings = $target.closest('.steps-body').find('[data-parent="' + parentStepID + '"]').length
- var checkedSiblings = $target.closest('.steps-body').find('[data-parent="' + parentStepID + '"]' + ' input[type=checkbox]:checked').length
- var $parentStep = $target.closest('.step').prevAll('[data-id="' + parentStepID + '"]').find('input[type=checkbox]');
- var siblingsChecked = !!(allSiblings == checkedSiblings);
- if(!$parentStep.prop('checked') && siblingsChecked)
- {
- $parentStep.trigger('click');
- }
- else
- {
- $parentStep.prop('checked', false);
- if($parentStep.closest('.step').data('parent') != 0) $target.closest('.step').prevAll('[data-id="' + $parentStep.closest('.step').data('parent') + '"]').find('input[type=checkbox]').prop('checked', false);
- }
- }
- var $resultSteps = $target.closest('.resultSteps');
- $resultSteps.find('.check-all input[type=checkbox]').prop('checked', $resultSteps.find('.check-item input[type=checkbox]').length == $resultSteps.find('.check-item input[type=checkbox]:checked').length);
- }
|