* Code task #97043.

This commit is contained in:
wangyidong
2023-07-11 22:16:35 +08:00
parent edd30dbbd2
commit eeddb7b66a
5 changed files with 35 additions and 34 deletions
+6 -12
View File
@@ -1020,7 +1020,7 @@ class story extends control
if(!empty($_POST))
{
$changes = $this->story->close($storyID);
if(dao::isError()) return print(js::error(dao::getError()));
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
$this->story->closeParentRequirement($storyID);
if($changes)
@@ -1049,7 +1049,7 @@ class story extends control
$kanbanData = $this->loadModel('kanban')->getRDKanban($this->session->execution, $executionLaneType, 'id_desc', 0, $executionGroupBy, $rdSearchValue);
$kanbanData = json_encode($kanbanData);
return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData)"));
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'callback' => "updateKanban($kanbanData)"));
}
elseif($from == 'taskkanban')
{
@@ -1058,22 +1058,16 @@ class story extends control
$kanbanType = $executionLaneType == 'all' ? 'story' : key($kanbanData);
$kanbanData = $kanbanData[$kanbanType];
$kanbanData = json_encode($kanbanData);
return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban(\"story\", $kanbanData)"));
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'callback' => "updateKanban(\"story\", $kanbanData)"));
}
else
{
return print(js::closeModal('parent.parent', 'this', "function(){parent.parent.location.reload();}"));
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'load' => true));
}
}
if(defined('RUN_MODE') && RUN_MODE == 'api')
{
return $this->send(array('status' => 'success', 'data' => $storyID));
}
else
{
return print(js::locate(inlink('view', "storyID=$storyID&version=0&param=0&storyType=$storyType"), 'parent'));
}
if(defined('RUN_MODE') && RUN_MODE == 'api') return $this->send(array('status' => 'success', 'data' => $storyID));
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => inlink('view', "storyID=$storyID&version=0&param=0&storyType=$storyType"), 'closeModal' => true));
}
/* Get story and product. */
+2 -9
View File
@@ -1,15 +1,8 @@
function setStory(event)
{
var $form = $(event.target).closest('form');
var $closedReason = $form.find('#closedReason').val();
var closedReason = $form.find('#closedReason').val();
var $duplicateBox = $form.find('#duplicateStoryBox');
if($closedReason == 'duplicate')
{
$duplicateBox.show();
}
else
{
$duplicateBox.hide();
}
$duplicateBox.toggleClass('hidden', closedReason != 'duplicate');
}
+8
View File
@@ -0,0 +1,8 @@
window.toggleReviewer = function(obj)
{
const $this = $(obj);
const isChecked = $this.prop('checked');
$('#reviewer').val(isChecked ? '' : lastReviewer).attr('disabled', isChecked ? 'disabled' : null).trigger('chosen:updated');
$('#reviewerBox .form-label').toggleClass('required', !isChecked);
}
if(!$('#reviewer').val()) toggleReviewer($('#needNotReview'));
+12 -11
View File
@@ -22,22 +22,23 @@ formPanel
set::id('closedReasonBox'),
set::name('closedReason'),
set::label($lang->story->closedReason),
set::width('1/3'),
set::strong(false),
set::width('1/2'),
set::value(''),
set::items($reasonList),
),
formGroup
formRow
(
set::hidden(true),
set::id('duplicateStoryBox'),
set::name('duplicateStory'),
set::required(true),
set::label($lang->story->duplicateStory),
set::width('1/3'),
set::strong(false),
set::value(''),
set::items($productStories),
setStyle('display', 'none'),
formGroup
(
set::name('duplicateStory'),
set::required(true),
set::label($lang->story->duplicateStory),
set::width('1/2'),
set::value(''),
set::items($productStories),
),
),
formGroup
(
+7 -2
View File
@@ -12,6 +12,8 @@ declare(strict_types=1);
namespace zin;
jsVar('lastReviewer', $reviewers);
$needNotReviewBox = '';
if(!$this->story->checkForceReview())
{
@@ -20,6 +22,7 @@ if(!$this->story->checkForceReview())
set('class', 'input-group-addon'),
checkbox
(
set::id('needNotReview'),
set::name('needNotReview'),
set::text($lang->story->needNotReview),
),
@@ -30,16 +33,18 @@ modalHeader(set::title($lang->story->submitReview));
formPanel
(
set::submitBtnText($lang->story->submitReview),
on::change('#needNotReview', 'toggleReviewer(e.target)'),
formGroup
(
setID('reviewerBox'),
set::label($lang->story->reviewedBy),
set::width('full'),
set::strong(false),
set::required(true),
inputGroup
(
select
picker
(
setID('reviewer'),
set::name('reviewer[]'),
set::value($story->reviewer),
set::multiple(true),