Merge branch '12.x'

This commit is contained in:
wangyidong
2021-02-19 13:17:23 +08:00
109 changed files with 5297 additions and 1570 deletions
+1
View File
@@ -738,6 +738,7 @@ class bug extends control
$this->view->stories = $bug->project ? $this->story->getProjectStoryPairs($bug->project) : $this->story->getProductStoryPairs($bug->product, $bug->branch);
$this->view->branches = $this->session->currentProductType == 'normal' ? array() : $this->loadModel('branch')->getPairs($bug->product);
$this->view->tasks = $this->task->getProjectTaskPairs($bug->project);
$this->view->testtasks = $this->loadModel('testtask')->getPairs($bug->product, $bug->project, $bug->testtask);
$this->view->users = $this->user->getPairs('nodeleted', "$bug->assignedTo,$bug->resolvedBy,$bug->closedBy,$bug->openedBy");
$this->view->openedBuilds = $openedBuilds;
$this->view->resolvedBuilds = array('' => '') + $openedBuilds + $oldResolvedBuild;
+1
View File
@@ -20,6 +20,7 @@ td.delayed{color:#fff; background: #e84e0f!important;}
.dropdown-list > li > a:focus {color: #1a4f85;text-decoration: none;background-color: #ddd;}
th.c-confirmed {text-align: center;}
.c-severity{overflow: hidden; white-space: nowrap;}
.c-id {text-overflow:ellipsis; white-space:nowrap;}
.body-modal #mainMenu>.btn-toolbar {width: auto;}
+28 -14
View File
@@ -4,19 +4,6 @@ $(function()
var flow = window.flow;
$('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover');
if(page == 'create')
{
var productID = $('#product').val();
var moduleID = $('#module').val();
var assignedto = $('#assignedTo').val();
changeProductConfirmed = true;
oldStoryID = $('#story').val() || 0;
oldProjectID = 0;
oldOpenedBuild = '';
oldTaskID = $('#oldTaskID').val() || 0;
if(!assignedto) setAssignedTo(moduleID, productID);
notice();
}
if(page == 'create' || page == 'edit' || page == 'assignedto' || page == 'confirmbug')
{
@@ -72,6 +59,7 @@ function loadAll(productID)
loadProductBuilds(productID);
loadProductplans(productID);
loadProductStories(productID);
loadTestTasks(productID);
}
}
@@ -327,12 +315,14 @@ function loadProjectRelated(projectID)
loadProjectStories(projectID);
loadProjectBuilds(projectID);
loadAssignedTo(projectID);
loadTestTasks($('#product').val(), projectID);
}
else
{
$('#taskIdBox').innerHTML = '<select id="task"></select>'; // Reset the task.
loadProductStories($('#product').val());
loadProductBuilds($('#product').val());
loadTestTasks($('#product').val());
}
}
@@ -470,7 +460,7 @@ var oldAssignedTo = $("#assignedTo").find("option:selected").val();
*/
function loadAssignedTo(projectID, selectedUser)
{
selectedUser = (typeof selectedUser == undefined) ? '' : $('#assignedTo').val();
selectedUser = (typeof(selectedUser) == 'undefined') ? '' : $('#assignedTo').val();
link = createLink('bug', 'ajaxLoadAssignedTo', 'projectID=' + projectID + '&selectedUser=' + selectedUser);
$.get(link, function(data)
{
@@ -484,6 +474,30 @@ function loadAssignedTo(projectID, selectedUser)
});
}
var oldTestTaskTitle = $("#testtask").find("option:selected").text();
var oldTestTask = $("#testtask").find("option:selected").val();
/**
* Load test tasks.
*
* @param int $productID
* @param int $projectID
* @access public
* @return void
*/
function loadTestTasks(productID, projectID)
{
if(typeof(projectID) == 'undefined') projectID = 0;
link = createLink('testtask', 'ajaxGetTestTasks', 'productID=' + productID + '&projectID=' + projectID);
$.get(link, function(data)
{
var defaultOption = '<option title="' + oldTestTaskTitle + '" value="' + oldTestTask + '" selected="selected">' + oldTestTaskTitle + '</option>';
$('#testtaskBox').html(data);
$('#testtask').append(defaultOption);
$('#testtask').chosen();
});
}
/**
* notice for create build.
*
+12
View File
@@ -87,7 +87,19 @@ function setAssignedTo(moduleID, productID)
$(function()
{
var productID = $('#product').val();
var moduleID = $('#module').val();
var assignedto = $('#assignedTo').val();
changeProductConfirmed = true;
oldStoryID = $('#story').val() || 0;
oldProjectID = 0;
oldOpenedBuild = '';
oldTaskID = $('#oldTaskID').val() || 0;
if($('#project').val()) loadProjectRelated($('#project').val());
if(!assignedto) setTimeout(function(){setAssignedTo(moduleID, productID)}, 500);
notice();
$('[data-toggle=tooltip]').tooltip();
+8 -6
View File
@@ -334,9 +334,9 @@ class bugModel extends model
public function checkDelayBug($bug)
{
// Delayed or not?.
if($bug->deadline != '0000-00-00')
if(!helper::isZeroDate($bug->deadline))
{
if($bug->resolvedDate and substr($bug->resolvedDate, 0, 10) != '0000-00-00')
if($bug->resolvedDate and !helper::isZeroDate($bug->resolvedDate))
{
$delay = helper::diffDate(substr($bug->resolvedDate, 0, 10), $bug->deadline);
}
@@ -2302,8 +2302,8 @@ class bugModel extends model
if(strpos($bugQuery, $allBranch) !== false) $bugQuery = str_replace($allBranch, '1', $bugQuery);
/* Fix bug #2878. */
if(strpos($bugQuery, '`resolvedDate`') !== false) $bugQuery .= " AND `resolvedDate` != '0000-00-00 00:00:00'";
if(strpos($bugQuery, '`closedDate`') !== false) $bugQuery .= " AND `closedDate` != '0000-00-00 00:00:00'";
if(strpos($bugQuery, ' `resolvedDate` ') !== false) $bugQuery = str_replace(' `resolvedDate` ', " `resolvedDate` != '0000-00-00 00:00:00' AND `resolvedDate` ", $bugQuery);
if(strpos($bugQuery, ' `closedDate` ') !== false) $bugQuery = str_replace(' `closedDate` ', " `closedDate` != '0000-00-00 00:00:00' AND `closedDate` ", $bugQuery);
$bugs = $this->dao->select('*')->from(TABLE_BUG)->where($bugQuery)
->beginIF(!$this->app->user->admin)->andWhere('project')->in('0,' . $this->app->user->view->projects)->fi()
@@ -2521,13 +2521,15 @@ class bugModel extends model
}
break;
case 'severity':
$severityValue = zget($this->lang->bug->severityList, $bug->severity);
$hasCustomSeverity = !is_numeric($severityValue);
if($hasCustomSeverity)
{
echo "<span class='label-severity-custom' data-severity='{$bug->severity}' title='" . zget($this->lang->bug->severityList, $bug->severity) . "'>" . zget($this->lang->bug->severityList, $bug->severity) . "</span>";
echo "<span class='label-severity-custom' data-severity='{$bug->severity}' title='" . $severityValue . "'>" . $severityValue . "</span>";
}
else
{
echo "<span class='label-severity' data-severity='{$bug->severity}' title='" . zget($this->lang->bug->severityList, $bug->severity) . "'></span>";
echo "<span class='label-severity' data-severity='{$bug->severity}' title='" . $severityValue . "'></span>";
}
break;
case 'pri':
+11 -8
View File
@@ -251,26 +251,29 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
<th class='thWidth'><?php echo $lang->bug->linkBug;?></th>
<td><?php echo html::a($this->createLink('bug', 'linkBugs', "bugID=$bug->id", '', true), $lang->bug->linkBugs, '', "class='text-primary' data-toggle='modal' data-type='iframe' data-width='95%'");?></td>
</tr>
<?php if(isset($bug->linkBugTitles)):?>
<tr>
<th></th>
<td>
<ul class='list-unstyled'>
<?php
if(isset($bug->linkBugTitles))
foreach($bug->linkBugTitles as $linkBugID => $linkBugTitle)
{
foreach($bug->linkBugTitles as $linkBugID => $linkBugTitle)
{
echo "<li><div class='checkbox-primary'>";
echo "<input type='checkbox' checked='checked' name='linkBug[]' value=$linkBugID />";
echo "<label>#{$linkBugID} {$linkBugTitle}</label>";
echo '</div></li>';
}
echo "<li><div class='checkbox-primary'>";
echo "<input type='checkbox' checked='checked' name='linkBug[]' value=$linkBugID />";
echo "<label>#{$linkBugID} {$linkBugTitle}</label>";
echo '</div></li>';
}
?>
<span id='linkBugsBox'></span>
</ul>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->bug->testtask;?></th>
<td id='testtaskBox'><?php echo html::select('testtask', $testtasks, $bug->testtask, 'class="form-control chosen"');?></td>
</tr>
<?php if($bug->case):?>
<tr>
<th><?php echo $lang->bug->fromCase;?></th>