From bc63a513b62fd09222e9dc157904109bcb3bc8ab Mon Sep 17 00:00:00 2001 From: liumengyi Date: Wed, 17 May 2023 16:56:57 +0800 Subject: [PATCH] * Refactor ui and js of bug-resolve. --- module/bug/js/resolve.ui.js | 60 ++++++++++++++ module/bug/ui/resolve.html.php | 142 +++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 module/bug/js/resolve.ui.js create mode 100644 module/bug/ui/resolve.html.php diff --git a/module/bug/js/resolve.ui.js b/module/bug/js/resolve.ui.js new file mode 100644 index 0000000000..f9f87c3888 --- /dev/null +++ b/module/bug/js/resolve.ui.js @@ -0,0 +1,60 @@ +function setDuplicate() +{ + var resolution = $(this).val(); + if(resolution == 'duplicate') + { + $.ajaxSettings.async = false; + $.get($.createLink('bug', 'ajaxGetProductBugs', 'projectID=' + productID + '&bugID=' + bugID),function(data) + { + $('#duplicateBug').replaceWith(data); + $('#pk_duplicateBug-search').parent().parent().remove(); + $('#duplicateBug').picker( + { + disableEmptySearch : true, + dropWidth : 'auto' + }); + }); + $.ajaxSettings.async = true; + $('#duplicateBugBox').removeClass('hidden'); + } + else + { + $('#duplicateBugBox').addClass('hidden'); + } +} + +$(function() +{ + var requiredFields = config.requiredFields; + if(requiredFields.indexOf('resolvedBuild') == -1) + { + var resolvedBuildGroup = $('#resolvedBuild').closest('.form-group'); + $('#resolution').on('change', function() + { + if($(this).val() == 'fixed') + { + resolvedBuildGroup.addClass('required'); + } + else + { + resolvedBuildGroup.removeClass('required'); + } + }); + } + + $('#createBuild').on('change', function() + { + if($(this).prop('checked')) + { + $('#resolvedBuildBox').addClass('hidden'); + $('#newBuildBox').removeClass('hidden'); + $('#newBuildExecutionBox').removeClass('hidden'); + } + else + { + $('#resolvedBuildBox').removeClass('hidden'); + $('#newBuildBox').addClass('hidden'); + $('#newBuildExecutionBox').addClass('hidden'); + } + }) +}) diff --git a/module/bug/ui/resolve.html.php b/module/bug/ui/resolve.html.php new file mode 100644 index 0000000000..e7d62aad95 --- /dev/null +++ b/module/bug/ui/resolve.html.php @@ -0,0 +1,142 @@ + + * @package bug + * @link https://www.zentao.net + */ +namespace zin; + +jsVar('bugID', $bug->id); +jsVar('productID', $bug->product); +jsVar('page', 'resolve'); +jsVar('released', $lang->build->released); + +$createBuild = ''; +if(common::hasPriv('build', 'create')) +{ + $createBuild = formGroup + ( + set::width('1/4'), + setClass('items-center'), + checkbox + ( + set::id('createBuild'), + set::name('createBuild'), + set::rootClass('ml-4'), + set::text($lang->bug->createBuild), + ) + ); +} + +/* zin: Define the form in main content. */ +formPanel +( + set::title($bug->title), + formGroup + ( + set::width('1/3'), + set::name('resolution'), + set::label($lang->bug->resolution), + set::value(''), + set::items($lang->bug->resolutionList), + on::change('setDuplicate'), + ), + formRow + ( + setClass('hidden'), + set::id('duplicateBugBox'), + formGroup + ( + set::width('1/3'), + set::name('duplicateBug'), + set::label($lang->bug->duplicateBug), + set::items(array()), + set::placeholder($lang->bug->duplicateTip), + set::value(''), + ), + ), + formRow + ( + formGroup + ( + set::width('1/2'), + set::id('resolvedBuildBox'), + set::label($lang->bug->resolvedBuild), + select + ( + set::name('resolvedBuild'), + set::value(''), + set::items($builds), + ), + ), + formGroup + ( + set::width('1/3'), + set::id('newBuildExecutionBox'), + setClass('hidden'), + set::label($lang->bug->resolvedBuild), + inputGroup + ( + !empty($execution) && $execution->type == 'kanban' ? $lang->bug->kanban : $lang->build->execution, + input + ( + set::name('buildExecution'), + set::items($executions), + set::value($bug->execution), + ), + ), + ), + formGroup + ( + set::width('1/3'), + set::id('newBuildBox'), + setClass('hidden'), + input + ( + set::name('buildName'), + set::value(''), + set::required(true) + ), + ), + $createBuild, + ), + formGroup + ( + set::width('1/3'), + set::label($lang->bug->resolvedDate), + input + ( + set::name('resolvedDate'), + set::type('date'), + set::value(helper::now()), + set::required(true) + ), + ), + formGroup + ( + set::width('1/3'), + set::name('assignedTo'), + set::label($lang->bug->assignedTo), + set::value($bug->assignedTo), + set::items($users), + ), + formGroup + ( + set::name('files[]'), + set::label($lang->bug->files), + set::control('file') + ), + formGroup + ( + set::label($lang->comment), + set::name('comment'), + set::control('editor'), + set::rows(6), + ), +); + +render();