* Refactor ui and js of bug-resolve.

This commit is contained in:
liumengyi
2023-05-17 16:56:57 +08:00
parent 110a7dd8de
commit bc63a513b6
2 changed files with 202 additions and 0 deletions
+60
View File
@@ -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');
}
})
})
+142
View File
@@ -0,0 +1,142 @@
<?php
declare(strict_types=1);
/**
* The resolve view file of bug module of ZenTaoPMS.
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Mengyi Liu <liumengyi@easycorp.ltd>
* @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();