diff --git a/module/upgrade/control.php b/module/upgrade/control.php index a024b88247..93b1d59516 100644 --- a/module/upgrade/control.php +++ b/module/upgrade/control.php @@ -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')); } diff --git a/module/upgrade/css/mergeprogram.css b/module/upgrade/css/mergeprogram.css index 2d246364ce..9e85915281 100644 --- a/module/upgrade/css/mergeprogram.css +++ b/module/upgrade/css/mergeprogram.css @@ -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;} diff --git a/module/upgrade/js/mergeprogram.js b/module/upgrade/js/mergeprogram.js index 9e53650542..210e16600e 100644 --- a/module/upgrade/js/mergeprogram.js +++ b/module/upgrade/js/mergeprogram.js @@ -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); - }) -}) diff --git a/module/upgrade/view/mergebyline.html.php b/module/upgrade/view/mergebyline.html.php index 90c156aa0e..e4c52e8c32 100644 --- a/module/upgrade/view/mergebyline.html.php +++ b/module/upgrade/view/mergebyline.html.php @@ -52,18 +52,10 @@