* Fix bug #17051.
This commit is contained in:
@@ -341,7 +341,7 @@ class upgrade extends control
|
||||
/* When upgrading historical data as a project, handle products that are not linked with the project. */
|
||||
if(!empty($singleProducts)) $this->upgrade->computeProductAcl($singleProducts, $programID);
|
||||
}
|
||||
elseif($type == 'sprint' or $type == 'moreLink')
|
||||
elseif($type == 'sprint')
|
||||
{
|
||||
$linkedSprints = $this->post->sprints;
|
||||
|
||||
@@ -363,6 +363,43 @@ class upgrade extends control
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($type == 'moreLink')
|
||||
{
|
||||
$linkedSprints = $this->post->sprints;
|
||||
|
||||
/* Create Program. */
|
||||
list($programID, $projectList, $lineID) = $this->upgrade->createProgram(array(), $linkedSprints);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
if($_POST['projectType'] == 'execution')
|
||||
{
|
||||
/* Use historical projects as execution upgrades. */
|
||||
$this->upgrade->processMergedData($programID, $projectList, $lineID, array(), $linkedSprints);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Use historical projects as project upgrades. */
|
||||
foreach($linkedSprints as $sprint)
|
||||
{
|
||||
$this->upgrade->processMergedData($programID, $projectList[$sprint], $lineID, array(), array($sprint => $sprint));
|
||||
}
|
||||
|
||||
/* If is more-link sprints, and as project upgrade, set old relation into new project. */
|
||||
$projectProducts = $this->dao->select('product,project,branch,plan')->from(TABLE_PROJECTPRODUCT)
|
||||
->where('project')->in($linkedSprints)
|
||||
->fetchAll();
|
||||
foreach($projectProducts as $projectProduct)
|
||||
{
|
||||
$data = new stdclass();
|
||||
$data->project = $projectList[$projectProduct->project];
|
||||
$data->product = $projectProduct->product;
|
||||
$data->plan = $projectProduct->plan;
|
||||
$data->branch = $projectProduct->branch;
|
||||
|
||||
$this->dao->replace(TABLE_PROJECTPRODUCT)->data($data)->exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
die(js::locate($this->createLink('upgrade', 'mergeProgram', "type=$type&programID=$programID&projectType=$projectType"), 'parent'));
|
||||
}
|
||||
|
||||
@@ -35,10 +35,6 @@ div.divider {vertical-align: middle;}
|
||||
.programParams td > label:first-child {margin-right: 10px;}
|
||||
.programParams td > label:last-child {margin-left: 0px;}
|
||||
|
||||
.lineGroup .sprintRename input {max-width: 120px;}
|
||||
.projectList .scroll-handle .checkbox-primary {display: inline-block;}
|
||||
.sprintRename {margin-top: 5px;}
|
||||
.sprintRename input {display: inline-block; width: auto;}
|
||||
.sprintRename .btn-group {display: inline-block;}
|
||||
.sprintGroup .sprintItem .checkbox-primary {display: inline-block;}
|
||||
|
||||
|
||||
@@ -1150,45 +1150,3 @@ function isSelectAll(lineID = 0, type = 'product')
|
||||
if(objectNum > checkedObjectNum || objectNum == 0) checked = false;
|
||||
return checked;
|
||||
}
|
||||
|
||||
$(function()
|
||||
{
|
||||
$('.sprintItem').mouseover(function()
|
||||
{
|
||||
$(this).find('#sprintEdit').removeClass('hidden');
|
||||
}).mouseout(function()
|
||||
{
|
||||
$(this).find('#sprintEdit').addClass('hidden');
|
||||
})
|
||||
|
||||
$(document).on('click', '#sprintEdit i', function()
|
||||
{
|
||||
$(this).parents('.sprintItem').addClass('hidden');
|
||||
$(this).parents('.sprintItem').next('.sprintRename').removeClass('hidden');
|
||||
})
|
||||
|
||||
$('.sprintRename button.name-confirm').click(function()
|
||||
{
|
||||
var execution = $(this).parent().siblings('input').attr('name').split('_');
|
||||
var newExecutionName = $(this).parent().siblings('input').val();
|
||||
var link = createLink('execution', 'ajaxUpdateExecutionName', 'executionID=' + execution[1] + '&newExecutionName=' + newExecutionName);
|
||||
var $this = $(this);
|
||||
|
||||
$.post(link, function(data)
|
||||
{
|
||||
if(data)
|
||||
{
|
||||
$this.closest('.sprintRename').addClass('hidden');
|
||||
$this.closest('.sprintRename').prev('.sprintItem').removeClass('hidden').find('.checkbox-primary label').text(newExecutionName);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
$('.sprintRename button.name-cancel').click(function()
|
||||
{
|
||||
var oldValue = $(this).closest('.sprintRename').prev('.sprintItem').find('.checkbox-primary label').text();
|
||||
$(this).closest('.sprintRename').addClass('hidden');
|
||||
$(this).closest('.sprintRename').prev('.sprintItem').removeClass('hidden');
|
||||
$(this).parent().siblings('input').val(oldValue);
|
||||
})
|
||||
})
|
||||
|
||||
@@ -52,18 +52,10 @@
|
||||
<div class='scroll-handle'>
|
||||
<?php if(isset($productGroups[$productID])):?>
|
||||
<?php foreach($productGroups[$productID] as $sprint):?>
|
||||
<div class="sprintItem">
|
||||
<?php echo html::checkBox("sprints[$line->id][$productID]", array($sprint->id => $sprint->name), '', "title='{$sprint->name}' data-product='{$product->id}' data-line='{$line->id}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}' class='tile'");?>
|
||||
<?php echo html::hidden("sprintIdList[$line->id][$productID][$sprint->id]", $sprint->id);?>
|
||||
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
|
||||
</div>
|
||||
<div class="sprintRename hidden">
|
||||
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
|
||||
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sprintItem">
|
||||
<?php echo html::checkBox("sprints[$line->id][$productID]", array($sprint->id => $sprint->name), '', "title='{$sprint->name}' data-product='{$product->id}' data-line='{$line->id}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}' class='tile'");?>
|
||||
<?php echo html::hidden("sprintIdList[$line->id][$productID][$sprint->id]", $sprint->id);?>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
|
||||
@@ -29,18 +29,10 @@
|
||||
<div class='scroll-handle'>
|
||||
<?php if(isset($productGroups[$productID])):?>
|
||||
<?php foreach($productGroups[$productID] as $sprint):?>
|
||||
<div class="sprintItem">
|
||||
<?php echo html::checkBox("sprints[$productID]", array($sprint->id => $sprint->name), '', "data-product='{$productID}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}'");?>
|
||||
<?php echo html::hidden("sprintIdList[$productID][$sprint->id]", $sprint->id);?>
|
||||
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
|
||||
</div>
|
||||
<div class="sprintRename hidden">
|
||||
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
|
||||
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sprintItem">
|
||||
<?php echo html::checkBox("sprints[$productID]", array($sprint->id => $sprint->name), '', "data-product='{$productID}' data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}'");?>
|
||||
<?php echo html::hidden("sprintIdList[$productID][$sprint->id]", $sprint->id);?>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
|
||||
@@ -17,14 +17,6 @@
|
||||
<?php foreach($noMergedSprints as $sprintID => $sprint):?>
|
||||
<div class="sprintItem">
|
||||
<?php echo html::checkBox("sprints", array($sprint->id => $sprint->name), '', "data-begin='{$sprint->begin}' data-end='{$sprint->end}' data-status='{$sprint->status}' data-pm='{$sprint->PM}'");?>
|
||||
<a href='#' id='sprintEdit' class='hidden'><i class="icon-common-edit icon-edit muted"></i></a>
|
||||
</div>
|
||||
<div class="sprintRename hidden">
|
||||
<?php echo html::input("sprintRename_$sprint->id", $sprint->name, "class='form-control'");?>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-success name-confirm"><i class='icon icon-check'></i></button>
|
||||
<button type="button" class="btn btn-gray name-cancel"><i class='icon icon-close'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user