* Code task #97043.
This commit is contained in:
@@ -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¶m=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¶m=0&storyType=$storyType"), 'closeModal' => true));
|
||||
}
|
||||
|
||||
/* Get story and product. */
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
@@ -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'));
|
||||
@@ -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
|
||||
(
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user