This commit is contained in:
孙广明
2021-12-03 09:46:58 +08:00
parent acf728eb91
commit fe3e96de2d
6 changed files with 46 additions and 79 deletions
+38 -1
View File
@@ -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'));
}
-4
View File
@@ -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;}
-42
View File
@@ -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);
})
})
+4 -12
View File
@@ -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>
+4 -12
View File
@@ -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>