Merge branch 'pailei2'

This commit is contained in:
王怡栋
2022-03-22 09:01:03 +08:00
142 changed files with 7504 additions and 6950 deletions
+42 -6
View File
@@ -322,6 +322,21 @@ class bug extends control
if($this->app->tab == 'execution')
{
if(isset($output['executionID'])) $this->loadModel('execution')->setMenu($output['executionID']);
$execution = $this->dao->findById((int)$output['executionID'])->from(TABLE_EXECUTION)->fetch();
if($execution->type == 'kanban')
{
$this->loadModel('kanban');
$regionPairs = $this->kanban->getRegionPairs($execution->id, 0, 'execution');
$regionID = isset($output['regionID']) ? $output['regionID'] : key($regionPairs);
$lanePairs = $this->kanban->getLanePairsByRegion($regionID, 'bug');
$laneID = isset($output['laneID']) ? $output['laneID'] : key($lanePairs);
$this->view->executionType = $execution->type;
$this->view->regionID = $regionID;
$this->view->laneID = $laneID;
$this->view->regionPairs = $regionPairs;
$this->view->lanePairs = $lanePairs;
}
}
else if($this->app->tab == 'project')
{
@@ -662,6 +677,9 @@ class bug extends control
*/
public function batchCreate($productID, $branch = '', $executionID = 0, $moduleID = 0, $extra = '')
{
$extra = str_replace(array(',', ' '), array('&', ''), $extra);
parse_str($extra, $output);
if(!empty($_POST))
{
$actions = $this->bug->batchCreate($productID, $branch, $extra);
@@ -675,9 +693,6 @@ class bug extends control
setcookie('bugModule', 0, 0, $this->config->webRoot, '', $this->config->cookieSecure, false);
$extra = str_replace(array(',', ' '), array('&', ''), $extra);
parse_str($extra, $output);
/* If link from no head then reload. */
if(isonlybody() and $executionID)
{
@@ -709,6 +724,20 @@ class bug extends control
$builds = $this->loadModel('build')->getBuildPairs($productID, $branch, 'noempty', $executionID, 'execution');
$stories = $this->story->getExecutionStoryPairs($executionID);
$execution = $this->loadModel('execution')->getById($executionID);
if($execution->type == 'kanban')
{
$this->loadModel('kanban');
$regionPairs = $this->kanban->getRegionPairs($executionID, 0, 'execution');
$regionID = isset($output['regionID']) ? $output['regionID'] : key($regionPairs);
$lanePairs = $this->kanban->getLanePairsByRegion($regionID, 'bug');
$laneID = isset($output['laneID']) ? $output['laneID'] : key($lanePairs);
$this->view->executionType = $execution->type;
$this->view->regionID = $regionID;
$this->view->laneID = $laneID;
$this->view->regionPairs = $regionPairs;
$this->view->lanePairs = $lanePairs;
}
}
else
{
@@ -1672,7 +1701,7 @@ class bug extends control
}
else
{
return print(js::closeModal('parent.parent'));
return print(js::closeModal('parent.parent', 'this', "function(){parent.parent.location.reload();}"));
}
}
if(defined('RUN_MODE') && RUN_MODE == 'api')
@@ -1835,15 +1864,16 @@ class bug extends control
*
* @param int $bugID
* @param string $confirm yes|no
* @param string $from taskkanban
* @access public
* @return void
*/
public function delete($bugID, $confirm = 'no')
public function delete($bugID, $confirm = 'no', $from = '')
{
$bug = $this->bug->getById($bugID);
if($confirm == 'no')
{
return print(js::confirm($this->lang->bug->confirmDelete, inlink('delete', "bugID=$bugID&confirm=yes")));
return print(js::confirm($this->lang->bug->confirmDelete, inlink('delete', "bugID=$bugID&confirm=yes&from=$from")));
}
else
{
@@ -1864,6 +1894,9 @@ class bug extends control
if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess));
if(isonlybody()) return print(js::reload('parent.parent'));
if($from == 'taskkanban') return print(js::reload('parent'));
$locateLink = $this->session->bugList ? $this->session->bugList : inlink('browse', "productID={$bug->product}");
return print(js::locate($locateLink, 'parent'));
}
@@ -1922,6 +1955,9 @@ class bug extends control
{
$executionMembers = $this->user->getTeamMemberPairs($executionID, 'execution', '', $selectedUser);
$execution = $this->loadModel('execution')->getByID($executionID);
if(empty($selectedUser)) $selectedUser = $execution->QD;
return print(html::select('assignedTo', $executionMembers, $selectedUser, 'class="form-control"'));
}
+1
View File
@@ -4,6 +4,7 @@
.confirm0 {color: gray;}
.confirm1 {color: green;}
td.delayed {color: #fff; background: #e84e0f !important;}
#bugForm .setting {height: 25px;}
.datatable-wrapper .table-datatable .datatable-row td {height: 37px;}
-1
View File
@@ -18,7 +18,6 @@ html[lang='en'] #deadlineTd .input-group-addon {padding: 5px 18px;}
.dropdown-pris > .btn {background-color: #fff; text-shadow: none;}
#contactListGroup .input-group-btn > .btn {margin-left: -1px !important;}
#contactListGroup .chosen-container-single a {border-left-width: 0px;}
.minw-80px {min-width: 80px;}
+21
View File
@@ -38,6 +38,27 @@ function setOpenedBuilds(link, index)
});
}
/**
* Set lane.
*
* @param int $regionID
* @param int $num
* @access public
* @return void
*/
function setLane(regionID, num)
{
laneLink = createLink('kanban', 'ajaxGetLanes', 'regionID=' + regionID + '&type=bug&field=lanes&i=' + num);
$.get(laneLink, function(lanes)
{
if(!lanes) lanes = '<select id="lanes' + num + '" name="lanes[' + num + ']" class="form-control"></select>';
$('#lanes' + num).replaceWith(lanes);
$("#lanes" + num + "_chosen").remove();
$("#lanes" + num).next('.picker').remove();
$("#lanes" + num).chosen();
});
}
/**
* Load execution builds
*
+21 -28
View File
@@ -29,8 +29,6 @@ $(function()
*/
function loadAll(productID)
{
if(page == 'create') loadExecutionTeamMembers(productID, true);
if(typeof(changeProductConfirmed) != 'undefined' && !changeProductConfirmed)
{
firstChoice = confirm(confirmChangeProduct);
@@ -50,9 +48,7 @@ function loadAll(productID)
{
$('#taskIdBox').innerHTML = '<select id="task"></select>'; // Reset the task.
$('#task').chosen();
var param = '';
if(page == 'create') param = 'active';
loadProductBranches(productID, param)
loadProductBranches(productID)
}
}
@@ -266,7 +262,7 @@ function loadProductProjects(productID)
function loadProductExecutions(productID, projectID = 0)
{
required = $('#execution_chosen').hasClass('required');
branch = $('#branch').val();
branch = $('#branch').val();
if(typeof(branch) == 'undefined') branch = 0;
link = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=' + projectID + '&branch=' + branch);
@@ -275,9 +271,10 @@ function loadProductExecutions(productID, projectID = 0)
$(this).find('select').chosen();
if(typeof(bugExecution) == 'string' && systemMode != 'classic') $('#executionIdBox').prepend("<span class='input-group-addon' id='executionBox' style='border-left-width: 0px;'>" + bugExecution + "</span>");
if(required) $(this).addClass('required');
changeExecutionName(projectID);
changeAssignedTo(projectID);
});
loadProjectBuilds(projectID);
projectID != 0 ? loadProjectBuilds(projectID) : loadProductBuilds(productID);
}
/**
@@ -349,13 +346,16 @@ function loadExecutionRelated(executionID)
}
else
{
var currentProjectID = $('#project').val();
var currentProductID = $('#product').val();
$('#taskIdBox').innerHTML = '<select id="task"></select>'; // Reset the task.
loadProductStories($('#product').val());
loadProductBuilds($('#product').val());
loadTestTasks($('#product').val());
loadProjectTeamMembers($('#project').val());
loadProductStories(currentProductID);
loadTestTasks(currentProductID);
loadProjectTeamMembers(currentProjectID);
currentProjectID != 0 ? loadProjectBuilds(currentProjectID) : loadProductBuilds(currentProductID);
}
notice();
}
/**
@@ -528,7 +528,8 @@ function loadProductBranches(productID, param)
$('#branch_chosen').remove();
$('#branch').next('.picker').remove();
var param = "productID=" + productID + "&oldBranch=0&param=" + param;
var branchStatus = page == 'create' ? 'active' : 'all';
var param = "productID=" + productID + "&oldBranch=0&param=" + branchStatus;
if(typeof(tab) != 'undefined' && (tab == 'execution' || tab == 'project')) param += "&projectID=" + objectID;
$.get(createLink('branch', 'ajaxGetBranches', param), function(data)
{
@@ -541,16 +542,11 @@ function loadProductBranches(productID, param)
loadProductModules(productID);
loadProductProjects(productID);
loadProductBuilds(productID);
loadProductplans(productID);
loadProductStories(productID);
})
}
var oldAssignedToTitle = $("#assignedTo").find("option:selected").text();
var oldAssignedTo = $("#assignedTo").find("option:selected").val();
/**
* Load team members of the execution as assignedTo list.
*
@@ -564,18 +560,9 @@ function loadAssignedTo(executionID, selectedUser)
link = createLink('bug', 'ajaxLoadAssignedTo', 'executionID=' + executionID + '&selectedUser=' + selectedUser);
$.get(link, function(data)
{
var defaultOption = '<option title="' + oldAssignedToTitle + '" value="' + oldAssignedTo + '" selected="selected">' + oldAssignedToTitle + '</option>';
var defaultAssignedTo = $('#assignedTo').val();
$('#assignedTo_chosen').remove();
$('#assignedTo').next('.picker').remove();
$('#assignedTo').replaceWith(data);
if(defaultAssignedTo !== oldAssignedTo && selectedUser == '')
{
if($('#assignedTo option[value="' + oldAssignedTo + '"]').length > 0) $('#assignedTo option[value="' + oldAssignedTo + '"]').remove();
$('#assignedTo').append(defaultOption);
}
$('#assignedTo').chosen();
});
}
@@ -593,6 +580,8 @@ var oldTestTask = $("#testtask").find("option:selected").val();
*/
function loadTestTasks(productID, executionID)
{
if(!$('#testtaskBox').length) return;
if(typeof(executionID) == 'undefined') executionID = 0;
link = createLink('testtask', 'ajaxGetTestTasks', 'productID=' + productID + '&executionID=' + executionID);
$.get(link, function(data)
@@ -612,6 +601,9 @@ function loadTestTasks(productID, executionID)
*/
function notice()
{
if(page == 'edit') return;
$('#buildBoxActions').empty().hide();
if($('#openedBuild').find('option').length <= 1)
{
var html = '';
@@ -638,6 +630,7 @@ function notice()
if($bba.length)
{
$bba.html(html);
$bba.show();
}
else
{
+33 -4
View File
@@ -56,6 +56,27 @@ function loadModuleRelated()
setStories(moduleID, productID, storyID);
}
/**
* Set lane.
*
* @param int $regionID
* @access public
* @return void
*/
function setLane(regionID)
{
console.log(regionID);
laneLink = createLink('kanban', 'ajaxGetLanes', 'regionID=' + regionID + '&type=bug&field=lane');
$.get(laneLink, function(lane)
{
if(!lane) lane = "<select id='lane' name='lane' class='form-control'></select>";
$('#lane').replaceWith(lane);
$("#lane" + "_chosen").remove();
$("#lane").next('.picker').remove();
$("#lane").chosen();
});
}
/**
* Set the assignedTo field.
*
@@ -109,12 +130,16 @@ $(function()
{
loadExecutionRelated($('#execution').val());
}
else if(parseInt($('#project').val()))
{
loadProjectBuilds($('#project').val());
loadProjectTeamMembers($('#project').val());
}
else
{
if(parseInt($('#project').val())) loadProjectTeamMembers($('#project').val());
if(!assignedto) setTimeout(function(){setAssignedTo(moduleID, productID)}, 500);
}
if(!assignedto) setTimeout(function(){setAssignedTo(moduleID, productID)}, 500);
notice();
$('[data-toggle=tooltip]').tooltip();
@@ -168,7 +193,7 @@ $(function()
* @access public
* @return void
*/
function changeExecutionName(projectID)
function changeAssignedTo(projectID)
{
if(parseInt(projectID))
{
@@ -179,9 +204,13 @@ function changeExecutionName(projectID)
$('#executionBox').html(executionLang);
})
}
else if($('#execution').val() != 0)
{
loadAssignedTo($('#execution').val());
}
else
{
loadExecutionTeamMembers($('#product').val());
setAssignedTo();
}
}
-19
View File
@@ -21,25 +21,6 @@ $(function()
}
});
/**
* Ajax change execution name.
*
* @param int projectID
* @access public
* @return void
*/
function changeExecutionName(projectID)
{
if(parseInt(projectID))
{
var link = createLink('bug', 'ajaxGetExecutionLang', 'projectID=' + projectID);
$.post(link, function(executionLang)
{
$('#executionBox').html(executionLang);
})
}
}
/**
* Set duplicate field.
*
+26 -7
View File
@@ -76,7 +76,7 @@ class bugModel extends model
->trim('title')
->join('openedBuild', ',')
->join('mailto', ',')
->remove('files, labels,uid,oldTaskID,contactListMenu')
->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane')
->get();
if($bug->execution != 0) $bug->project = $this->dao->select('parent')->from(TABLE_EXECUTION)->where('id')->eq($bug->execution)->fetch('parent');
@@ -107,8 +107,15 @@ class bugModel extends model
if($bug->execution)
{
$this->loadModel('kanban');
if(isset($output['laneID']) and isset($output['columnID'])) $this->kanban->addKanbanCell($bug->execution, $output['laneID'], $output['columnID'], 'bug', $bugID);
if(!isset($output['laneID']) or !isset($output['columnID'])) $this->kanban->updateLane($bug->execution, 'bug');
$laneID = isset($output['laneID']) ? $output['laneID'] : 0;
if(!empty($_POST['lane'])) $laneID = $_POST['lane'];
$columnID = $this->kanban->getColumnIDByLaneID($laneID, 'unconfirmed');
if(empty($columnID)) $columnID = isset($output['columnID']) ? $output['columnID'] : 0;
if(!empty($laneID) and !empty($columnID)) $this->kanban->addKanbanCell($bug->execution, $laneID, $columnID, 'bug', $bugID);
if(empty($laneID) or empty($columnID)) $this->kanban->updateLane($bug->execution, 'bug');
}
/* Callback the callable method to process the related data for object that is transfered to bug. */
@@ -201,6 +208,8 @@ class bugModel extends model
$bug->browser = $data->browsers[$i];
$bug->keywords = $data->keywords[$i];
if(isset($data->lanes[$i])) $bug->laneID = $data->lanes[$i];
if($bug->execution != 0) $bug->project = $this->dao->select('parent')->from(TABLE_EXECUTION)->where('id')->eq($bug->execution)->fetch('parent');
/* Assign the bug to the person in charge of the module. */
@@ -236,6 +245,13 @@ class bugModel extends model
/* When the bug is created by uploading an image, add the image to the step of the bug. */
foreach($bugs as $i => $bug)
{
$laneID = isset($output['laneID']) ? $output['laneID'] : 0;
if(isset($bug->laneID))
{
$laneID = $bug->laneID;
unset($bug->laneID);
}
if(!empty($data->uploadImage[$i]))
{
$fileName = $data->uploadImage[$i];
@@ -274,8 +290,11 @@ class bugModel extends model
if($bug->execution)
{
if(isset($output['laneID']) and isset($output['columnID'])) $this->kanban->addKanbanCell($bug->execution, $output['laneID'], $output['columnID'], 'bug', $bugID);
if(!isset($output['laneID']) or !isset($output['columnID'])) $this->kanban->updateLane($bug->execution, 'bug');
$columnID = $this->kanban->getColumnIDByLaneID($laneID, 'unconfirmed');
if(empty($columnID)) $columnID = isset($output['columnID']) ? $output['columnID'] : 0;
if(!empty($laneID) and !empty($columnID)) $this->kanban->addKanbanCell($bug->execution, $laneID, $columnID, 'bug', $bugID);
if(empty($laneID) or empty($columnID)) $this->kanban->updateLane($bug->execution, 'bug');
}
/* When the bug is created by uploading the image, add the image to the file of the bug. */
@@ -290,7 +309,7 @@ class bugModel extends model
unset($file);
}
if(dao::isError()) return print(js::error('bug#' . ($i+1) . dao::getError(true)));
if(dao::isError()) return print(js::error('bug#' . ($i) . dao::getError(true)));
$actions[$bugID] = $this->action->create('bug', $bugID, 'Opened');
}
@@ -2925,7 +2944,7 @@ class bugModel extends model
echo $bug->activatedCount;
break;
case 'activatedDate':
echo substr($bug->activatedDate, 5, 11);
echo helper::isZeroDate($bug->activatedDate) ? '' : substr($bug->activatedDate, 5, 11);
break;
case 'keywords':
echo $bug->keywords;
+22 -10
View File
@@ -51,6 +51,10 @@
<th class='c-execution<?php echo zget($visibleFields, 'execution', ' hidden') . zget($requiredFields, 'execution', '', ' required');?>'><?php echo (isset($project->model) and $project->model == 'kanban') ? $lang->bug->kanban : $lang->bug->execution;?></th>
<th class='c-build required'><?php echo $lang->bug->openedBuild;?></th>
<th class='c-title required'><?php echo $lang->bug->title;?></th>
<?php if(isset($executionType) and $executionType == 'kanban'):?>
<th class='c-execution'><?php echo $lang->kanbancard->region;?></th>
<th class='c-execution'><?php echo $lang->kanbancard->lane;?></th>
<?php endif;?>
<th class='c-date<?php echo zget($visibleFields, 'deadline', ' hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->bug->deadline;?></th>
<th class='c-steps<?php echo zget($visibleFields, 'steps', ' hidden') . zget($requiredFields, 'steps', '', ' required');?>'><?php echo $lang->bug->steps;?></th>
<th class='c-type<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->typeAB;?></th>
@@ -74,19 +78,19 @@
$lang->bug->osList += array('ditto' => $lang->bug->ditto);
$lang->bug->browserList += array('ditto' => $lang->bug->ditto);
?>
<?php $i = 0; ?>
<?php $i = 1; ?>
<?php if(!empty($titles)):?>
<?php foreach($titles as $bugTitle => $fileName):?>
<?php
$moduleID = $i == 0 ? $moduleID : 'ditto';
$executionID = $i == 0 ? $executionID : 'ditto';
$type = $i == 0 ? '' : 'ditto';
$pri = $i == 0 ? 0 : 'ditto';
$os = $i == 0 ? '' : 'ditto';
$browser = $i == 0 ? '' : 'ditto';
$moduleID = $i == 1 ? $moduleID : 'ditto';
$executionID = $i == 1 ? $executionID : 'ditto';
$type = $i == 1 ? '' : 'ditto';
$pri = $i == 1 ? 0 : 'ditto';
$os = $i == 1 ? '' : 'ditto';
$browser = $i == 1 ? '' : 'ditto';
?>
<tr>
<td class='text-center'><?php echo $i+1;?></td>
<td class='text-center'><?php echo $i;?></td>
<td class='<?php echo zget($visibleFields, $product->type, ' hidden')?>' style='overflow:visible'><?php echo html::select("branches[$i]", $branches, $branch, "class='form-control chosen' onchange='setBranchRelated(this.value, $productID, $i)'");?></td>
<td><?php echo html::select("modules[$i]", $moduleOptionMenu, $moduleID, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'execution', ' hidden')?>' style='overflow:visible'><?php echo html::select("executions[$i]", $executions, $executionID, "class='form-control chosen' onchange='loadExecutionBuilds($productID, this.value, $i)'");?></td>
@@ -105,6 +109,10 @@
</div>
</div>
</td>
<?php if(isset($executionType) and $executionType == 'kanban'):?>
<td><?php echo html::select("regions[$i]", $regionPairs, $regionID, "class='form-control chosen'");?></td>
<td><?php echo html::select("lanes[$i]", $lanePairs, $laneID, "class='form-control chosen'");?></td>
<?php endif;?>
<td class='<?php echo zget($visibleFields, 'deadline', 'hidden')?>'><?php echo html::input("deadlines[$i]", '', "class='form-control form-date'");?></td>
<td class='<?php echo zget($visibleFields, 'steps', 'hidden')?>'><?php echo html::textarea("stepses[$i]", '', "rows='1' class='form-control autosize'");?></td>
<td class='<?php echo zget($visibleFields, 'type', 'hidden')?>' style='overflow:visible'> <?php echo html::select("types[$i]", $lang->bug->typeList, $type, "class='form-control chosen'");?></td>
@@ -119,7 +127,7 @@
<?php endforeach;?>
<?php endif;?>
<?php $nextStart = $i;?>
<?php for($i = $nextStart; $i < $config->bug->batchCreate; $i++):?>
<?php for($i = $nextStart; $i <= $config->bug->batchCreate; $i++):?>
<?php
$moduleID = $i - $nextStart == 0 ? $moduleID : 'ditto';
$executionID = $i - $nextStart == 0 ? $executionID : 'ditto';
@@ -129,7 +137,7 @@
$browser = $i - $nextStart == 0 ? '' : 'ditto';
?>
<tr>
<td><?php echo $i+1;?></td>
<td><?php echo $i;?></td>
<td class='<?php echo zget($visibleFields, $product->type, ' hidden')?>' style='overflow:visible'><?php echo html::select("branches[$i]", $branches, $branch, "class='form-control chosen' onchange='setBranchRelated(this.value, $productID, $i)'");?></td>
<td><?php echo html::select("modules[$i]", $moduleOptionMenu, $moduleID, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'execution', ' hidden')?>' style='overflow:visible'><?php echo html::select("executions[$i]", $executions, $executionID, "class='form-control chosen' onchange='loadExecutionBuilds($productID, this.value, $i)'");?></td>
@@ -148,6 +156,10 @@
</div>
</div>
</td>
<?php if(isset($executionType) and $executionType == 'kanban'):?>
<td><?php echo html::select("regions[$i]", $regionPairs, $regionID, "class='form-control chosen' onchange='setLane(this.value, $i)'");?></td>
<td><?php echo html::select("lanes[$i]", $lanePairs, $laneID, "class='form-control chosen'");?></td>
<?php endif;?>
<td class='<?php echo zget($visibleFields, 'deadline', 'hidden')?>'><?php echo html::input("deadlines[$i]", '', "class='form-control form-date'");?></td>
<td class='<?php echo zget($visibleFields, 'steps', 'hidden')?>'><?php echo html::textarea("stepses[$i]", '', "rows='1' class='form-control autosize'");?></td>
<td class='<?php echo zget($visibleFields, 'type', 'hidden')?>' style='overflow:visible'> <?php echo html::select("types[$i]", $lang->bug->typeList, $type, "class='form-control chosen'");?></td>
+1 -1
View File
@@ -237,7 +237,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
<form class='main-table table-bug' method='post' id='bugForm' <?php if(!$useDatatable) echo "data-ride='table'";?>>
<?php endif;?>
<div class="table-header fixed-right">
<nav class="btn-toolbar pull-right"></nav>
<nav class="btn-toolbar pull-right setting"></nav>
</div>
<?php
$vars = "productID=$productID&branch=$branch&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
+12
View File
@@ -199,6 +199,18 @@ if($this->app->tab == 'project') js::set('objectID', $projectID);
</td>
</tr>
<?php endif;?>
<?php if(isset($executionType) and $executionType == 'kanban'):?>
<tr>
<th><?php echo $lang->kanbancard->region;?></th>
<td><?php echo html::select('region', $regionPairs, $regionID, "onchange='setLane(this.value)' class='form-control chosen'");?></td>
<td>
<div class='input-group'>
<div class="input-group-addon"><?php echo $lang->kanbancard->lane;?></div>
<?php echo html::select('lane', $lanePairs, $laneID, "class='form-control chosen'");?>
</div>
</td>
</tr>
<?php endif;?>
<tr>
<th><?php echo $lang->bug->title;?></th>
<td colspan='2'>
+1 -1
View File
@@ -18,7 +18,7 @@
<tr>
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
<?php $color = empty($object->color) ? '#333' : $object->color;?>
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink('bug', 'view', "bugID=$object->id", 'html'), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
<?php echo html::a($domain . helper::createLink('bug', 'view', "bugID=$object->id", 'html'), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
</td>
</tr>
</table>
+1 -1
View File
@@ -117,7 +117,7 @@
{
common::printIcon('bug', 'create', $copyParams, $bug, 'button', 'copy');
}
common::printIcon('bug', 'delete', $params, $bug, 'button', 'trash', 'hiddenwin');
common::printIcon('bug', 'delete', $params, $bug, 'button', 'trash', 'hiddenwin', 'showinonlybody');
?>
<?php endif;?>
</div>