Finish task #49281.

This commit is contained in:
zhouxin
2022-02-24 02:54:24 +00:00
parent aecbd58d24
commit baa5d32ef1
3 changed files with 52 additions and 20 deletions
+29
View File
@@ -86,3 +86,32 @@ function copyTitle(num)
var title = $('#title\\[' + num + '\\]').val();
$('#spec\\[' + num + '\\]').val(title);
}
$(document).on('change', "[name*='reviewer']", function()
{
toggleCheck($(this));
})
/**
* Toggle checkbox.
*
* @param obj $obj
* @access public
* @return void
*/
function toggleCheck(obj)
{
var $this = $(obj);
var data = $this.val();
var $ditto = $this.closest('div').find("input[name*='reviewDitto']");
if(data == '')
{
$ditto.attr('checked', true);
$ditto.closest('.input-group-addon').show();
}
else
{
$ditto.removeAttr('checked');
$ditto.closest('.input-group-addon').hide();
}
}
+13 -13
View File
@@ -507,6 +507,7 @@ class storyModel extends model
}
$planStories = array();
$reviewers = '';
foreach($data as $i => $story)
{
@@ -565,23 +566,22 @@ class storyModel extends model
$this->dao->insert(TABLE_STORYSPEC)->data($specData)->exec();
/* Save the story reviewer to storyreview table. */
if(isset($_POST['reviewer'][$i]))
$assignedTo = '';
if(empty($_POST['reviewer'][$i]) and empty($_POST['reviewer'][$i])) $_POST['reviewer'][$i] = array();
$reviewers = (isset($_POST['reviewDitto'][$i])) ? $reviewers : $_POST['reviewer'][$i];
foreach($reviewers as $reviewer)
{
$assignedTo = '';
foreach($_POST['reviewer'][$i] as $reviewer)
{
if(empty($reviewer)) continue;
if(empty($reviewer)) continue;
$reviewData = new stdclass();
$reviewData->story = $storyID;
$reviewData->version = 1;
$reviewData->reviewer = $reviewer;
$this->dao->insert(TABLE_STORYREVIEW)->data($reviewData)->exec();
$reviewData = new stdclass();
$reviewData->story = $storyID;
$reviewData->version = 1;
$reviewData->reviewer = $reviewer;
$this->dao->insert(TABLE_STORYREVIEW)->data($reviewData)->exec();
if(empty($assignedTo)) $assignedTo = $reviewer;
}
if($assignedTo) $this->dao->update(TABLE_STORY)->set('assignedTo')->eq($assignedTo)->set('assignedDate')->eq($now)->where('id')->eq($storyID)->exec();
if(empty($assignedTo)) $assignedTo = $reviewer;
}
if($assignedTo) $this->dao->update(TABLE_STORY)->set('assignedTo')->eq($assignedTo)->set('assignedDate')->eq($now)->where('id')->eq($storyID)->exec();
$this->executeHooks($storyID);
+10 -7
View File
@@ -96,10 +96,10 @@
<td class='text-left<?php echo zget($visibleFields, 'pri', ' hidden')?>' style='overflow:visible'><?php echo html::select('pri[$id]', $priList, $pri, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'estimate', 'hidden')?>'><?php echo html::input('estimate[$id]', $estimate, "class='form-control'");?></td>
<td class='<?php echo zget($visibleFields, 'review', 'hidden')?>'>
<?php
echo html::select('reviewer[$id][]', $reviewers, '', "class='form-control chosen' multiple");
echo "<span id='dittoBox' class='input-group-addon reviewsBox'><input type='checkbox' name='reviewDitto[]' id='reviewDitto'/> {$lang->story->ditto}</span>";
?>
<div class='input-group'>
<?php echo html::select('reviewer[$id][]', $reviewers, '', "class='form-control chosen' multiple");?>
<span class='input-group-addon reviewerDitto'><input type='checkbox' name='reviewDitto[$id]' value='ditto' id='dittocheck$id'/> <?php echo $lang->story->ditto;?></span>
</div>
</td>
<td class='<?php echo zget($visibleFields, 'keywords', 'hidden')?>'><?php echo html::input('keywords[$id]', '', "class='form-control'");?></td>
<?php foreach($extendFields as $extendField) echo "<td" . (($extendField->control == 'select' or $extendField->control == 'multi-select') ? " style='overflow:visible'" : '') . ">" . $this->loadModel('flow')->getFieldControl($extendField, '', $extendField->field . '[$id]') . "</td>";?>
@@ -128,14 +128,11 @@ $(function()
idEnd: <?php echo max((empty($titles) ? 0 : count($titles)), 9)?>,
rowCreator: function($row, index)
{
console.log($row);
console.log(index);
$row.find('select.chosen,select.picker-select').each(function()
{
var $select = $(this);
if($select.hasClass('picker-select')) $select.parent().find('.picker').remove();
if(index == 0) $select.find("option[value='ditto']").remove();
if(index == 0) $select.find("#dittoBox").remove();
if(index > 0) $select.val('ditto');
if($select.attr('id').indexOf('branch') >= 0) $select.val('<?php echo $branch;?>')
$select.chosen();
@@ -149,6 +146,12 @@ $(function()
{
$row.find('.input-story-title').val(storyTitle).after('<input type="hidden" name="uploadImage[' + index + ']" id="uploadImage[' + index + ']" value="' + imageTitles[storyTitle] + '">');
}
$row.find(".reviewerDitto").each(function()
{
var $select = $(this);
if(index == 0) $select.remove();
if(index > 0) $select.find("input[name*='reviewDitto']").attr('checked', true);
});
}
});