* merge sprint/244
This commit is contained in:
@@ -300,11 +300,11 @@ $config->bug->datatable->fieldList['openedBuild']['required'] = 'no';
|
||||
$config->bug->datatable->fieldList['openedBuild']['control'] = 'multiple';
|
||||
$config->bug->datatable->fieldList['openedBuild']['dataSource'] = array('module' => 'build', 'method' =>'getBuildPairs', 'params' => '$productID&$branch&noempty,noterminate,nodone,withbranch');
|
||||
|
||||
$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedToAB';
|
||||
$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['assignedTo']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['assignedTo']['required'] = 'no';
|
||||
$config->bug->datatable->fieldList['assignedTo']['dataSource'] = array('module' => 'bug', 'method' =>'getProductMemberPairs', 'params' => '$productID&$branch');
|
||||
$config->bug->datatable->fieldList['assignedTo']['title'] = 'assignedToAB';
|
||||
$config->bug->datatable->fieldList['assignedTo']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['assignedTo']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['assignedTo']['required'] = 'no';
|
||||
$config->bug->datatable->fieldList['assignedTo']['dataSource'] = array('module' => 'user', 'method' =>'getPairs', 'params' => 'noclosed|noletter');
|
||||
|
||||
$config->bug->datatable->fieldList['assignedDate']['title'] = 'assignedDate';
|
||||
$config->bug->datatable->fieldList['assignedDate']['fixed'] = 'no';
|
||||
|
||||
@@ -2149,6 +2149,8 @@ EOD;
|
||||
{
|
||||
if(strpos($orderBy, 'priOrder') !== false) $select .= ", IF(`pri` = 0, {$this->config->maxPriValue}, `pri`) as priOrder";
|
||||
if(strpos($orderBy, 'severityOrder') !== false) $select .= ", IF(`severity` = 0, {$this->config->maxPriValue}, `severity`) as severityOrder";
|
||||
$queryCondition = str_replace('t4.status', 'status', $queryCondition);
|
||||
|
||||
$sql = $this->dao->select("*$select")->from($table)
|
||||
->where($queryCondition)
|
||||
->beginIF($orderBy != false)->orderBy($orderBy)->fi()
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
?>
|
||||
</nobr>
|
||||
</td>
|
||||
<td class='w-300px'>
|
||||
<td class='w-500px'>
|
||||
<?php
|
||||
$maxOrder = 0;
|
||||
foreach($sons as $sonDept)
|
||||
@@ -174,39 +174,37 @@ $(function()
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
$("#dataForm").submit(function(e)
|
||||
|
||||
$("input[name*='depts']").change(function ()
|
||||
{
|
||||
var postDept = new Array();
|
||||
var depts = new Array();
|
||||
var depts = new Array();
|
||||
var modifyData = $(this).val();
|
||||
var changedInput = $(this);
|
||||
|
||||
$.each($('input[name*="depts[]"]'), function(index, value)
|
||||
{
|
||||
if($(this).val()) postDept.push($(this).val());
|
||||
});
|
||||
changedInput.wrap('<span>');
|
||||
changedInput.closest('span').addClass('dataField');
|
||||
|
||||
$.each($('input[name*="depts[id"]'), function(index, value)
|
||||
$('input[name^="depts"]').not($(this)).each(function()
|
||||
{
|
||||
if($(this).val()) depts.push($(this).val());
|
||||
});
|
||||
|
||||
for(var i = 0; i < postDept.length; i++)
|
||||
if(depts.indexOf(modifyData) > -1)
|
||||
{
|
||||
if(depts.indexOf(postDept[i]) > -1 || postDept[i] == postDept[i + 1])
|
||||
{
|
||||
if(confirm(repeatDepart))
|
||||
{
|
||||
var link = createLink('dept', 'manageChild');
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
setTimeout(function()
|
||||
{
|
||||
$('#submit').removeAttr('disabled');
|
||||
},10)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$('.dataField #depts\\[\\]').addClass('intro');
|
||||
$('.intro').css({"margin" : "5px 0px 5px 0px", "display" : "inline", "width" : "50%"});
|
||||
changedInput.after('<span style="padding-left: 15px;color: #1183fb" class="tips">' + repeatDepart + '</span>');
|
||||
}
|
||||
});
|
||||
|
||||
$("input[name*='depts']").focus(function ()
|
||||
{
|
||||
if($('.dataField').length)
|
||||
{
|
||||
$('.intro').removeAttr('style');
|
||||
$('.intro').unwrap();
|
||||
$('#depts\\[\\]').removeClass('intro');
|
||||
$('.tips').remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -629,6 +629,18 @@ class doc extends control
|
||||
if($this->config->systemMode == 'classic' and $objectType == 'project') $objectType = 'execution';
|
||||
$this->doc->delete(TABLE_DOC, $docID);
|
||||
|
||||
/* Delete doc files. */
|
||||
$this->loadModel('file');
|
||||
foreach($doc->files as $fileID => $file)
|
||||
{
|
||||
$file = $this->file->getById($fileID);
|
||||
$this->dao->delete()->from(TABLE_FILE)->where('id')->eq($fileID)->exec();
|
||||
$this->loadModel('action')->create($file->objectType, $file->objectID, 'deletedFile', '', $extra=$file->title);
|
||||
|
||||
$fileRecord = $this->dao->select('id')->from(TABLE_FILE)->where('pathname')->eq($file->pathname)->fetch();
|
||||
if(empty($fileRecord)) @unlink($file->realPath);
|
||||
}
|
||||
|
||||
/* if ajax request, send result. */
|
||||
if($this->server->ajax)
|
||||
{
|
||||
|
||||
@@ -62,7 +62,7 @@ $(function()
|
||||
|
||||
if($(".createCustomLib").length == 1) $(".createCustomLib").click(); // Fix bug #15139.
|
||||
|
||||
if(!fromGlobal && textType.indexOf(docType) != -1)
|
||||
if(!fromGlobal && textType.indexOf(docType) != -1 && from == 'doc')
|
||||
{
|
||||
var basicInfo = JSON.parse(sessionStorage.getItem('docBasicInfo'));
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php js::set('from', $from);?>
|
||||
<?php if(strpos($config->doc->textTypes, $docType) !== false and $from == 'doc'):?>
|
||||
<?php include 'createtexttype.html.php';?>
|
||||
<?php else:?>
|
||||
|
||||
@@ -467,7 +467,7 @@ $lang->execution->kanban = "Kanban";
|
||||
$lang->execution->kanbanSetting = "Kanban Einstellung";
|
||||
$lang->execution->setKanban = "Kanban Einstellung";
|
||||
$lang->execution->resetKanban = "Einstellungen zurücksetzen";
|
||||
$lang->execution->printKanban = "Kanban drucken";
|
||||
$lang->execution->printKanban = "drucken Kanban";
|
||||
$lang->execution->fullScreen = "Full Screen";
|
||||
$lang->execution->bugList = "Bugs";
|
||||
|
||||
@@ -487,7 +487,7 @@ $lang->kanbanSetting->optionList['0'] = 'Verstecken';
|
||||
$lang->kanbanSetting->optionList['1'] = 'Anzeigen';
|
||||
|
||||
$lang->printKanban = new stdclass();
|
||||
$lang->printKanban->common = 'Kanban drucken';
|
||||
$lang->printKanban->common = 'drucken Kanban';
|
||||
$lang->printKanban->content = 'Inhanlt';
|
||||
$lang->printKanban->print = 'Drucken';
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@ $lang->execution->kanban = "Kanban";
|
||||
$lang->execution->kanbanSetting = "Settings";
|
||||
$lang->execution->setKanban = "Set Kanban";
|
||||
$lang->execution->resetKanban = "Reset";
|
||||
$lang->execution->printKanban = "Print";
|
||||
$lang->execution->printKanban = "Print Kanban";
|
||||
$lang->execution->fullScreen = "Full Screen";
|
||||
$lang->execution->bugList = "Bugs";
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@ $lang->execution->kanban = "Kanban";
|
||||
$lang->execution->kanbanSetting = "Paramétrage";
|
||||
$lang->execution->setKanban = "Paramétrage";
|
||||
$lang->execution->resetKanban = "Réinitialiser";
|
||||
$lang->execution->printKanban = "Impression";
|
||||
$lang->execution->printKanban = "Imprimer Kanban";
|
||||
$lang->execution->fullScreen = "Full Screen";
|
||||
$lang->execution->bugList = "Bugs";
|
||||
|
||||
|
||||
@@ -487,7 +487,7 @@ $lang->kanbanSetting->optionList['0'] = '隐藏';
|
||||
$lang->kanbanSetting->optionList['1'] = '显示';
|
||||
|
||||
$lang->printKanban = new stdclass();
|
||||
$lang->printKanban->common = '看板打印';
|
||||
$lang->printKanban->common = '打印看板';
|
||||
$lang->printKanban->content = '内容';
|
||||
$lang->printKanban->print = '打印';
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@ $lang->kanbanSetting->optionList['0'] = '隱藏';
|
||||
$lang->kanbanSetting->optionList['1'] = '顯示';
|
||||
|
||||
$lang->printKanban = new stdclass();
|
||||
$lang->printKanban->common = '看板打印';
|
||||
$lang->printKanban->common = '打印看板';
|
||||
$lang->printKanban->content = '內容';
|
||||
$lang->printKanban->print = '打印';
|
||||
|
||||
|
||||
@@ -1507,6 +1507,7 @@ $(function()
|
||||
$(window).on('resize', function(a)
|
||||
{
|
||||
adjustAddBtnPosition();
|
||||
initRegionTabs();
|
||||
});
|
||||
|
||||
resetLaneHeight();
|
||||
@@ -1558,8 +1559,6 @@ $(function()
|
||||
|
||||
distance = 0;
|
||||
radiusWidth = 10;
|
||||
$(window).on('resize', initRegionTabs);
|
||||
initRegionTabs();
|
||||
|
||||
$('.leftBtn').click(function()
|
||||
{
|
||||
|
||||
+13
-2
@@ -686,7 +686,7 @@ class mrModel extends model
|
||||
}
|
||||
|
||||
$mergeResult = json_decode(commonModel::http($url, $MRObject));
|
||||
if(isset($mergeResult->number)) $mergeResult->iid = $host->type == 'gitea' ? $mergeResult->number : $mergeResult->id;
|
||||
if(isset($mergeResult->number)) $mergeResult->iid = $mergeResult->number;
|
||||
if(isset($mergeResult->mergeable))
|
||||
{
|
||||
if($mergeResult->mergeable) $mergeResult->merge_status = 'can_be_merged';
|
||||
@@ -867,7 +867,16 @@ class mrModel extends model
|
||||
*/
|
||||
public function apiGetMRCommits($hostID, $projectID, $MRID)
|
||||
{
|
||||
$url = sprintf($this->gitlab->getApiRoot($hostID), "/projects/$projectID/merge_requests/$MRID/commits");
|
||||
$host = $this->loadModel('pipeline')->getByID($hostID);
|
||||
if($host->type == 'gitlab')
|
||||
{
|
||||
$url = sprintf($this->gitlab->getApiRoot($hostID), "/projects/$projectID/merge_requests/$MRID/commits");
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = sprintf($this->loadModel($host->type)->getApiRoot($hostID), "/repos/$projectID/pulls/$MRID/commits");
|
||||
}
|
||||
|
||||
return json_decode(commonModel::http($url));
|
||||
}
|
||||
|
||||
@@ -1797,6 +1806,8 @@ class mrModel extends model
|
||||
|
||||
/* Get commits by MR. */
|
||||
$commits = $this->apiGetMRCommits($MR->hostID, $MR->targetProject, $MR->mriid);
|
||||
if(empty($commits)) return true;
|
||||
|
||||
foreach($commits as $commit)
|
||||
{
|
||||
$objects = $this->repo->parseComment($commit->message);
|
||||
|
||||
@@ -37,8 +37,8 @@ $lang->product->addWhitelist = 'Add Whitelist';
|
||||
$lang->product->unbindWhitelist = 'Remove Whitelist';
|
||||
$lang->product->track = 'View Stories Matrix';
|
||||
$lang->product->checkedProducts = '%s products selected';
|
||||
$lang->product->pageProducts = 'Total products: %s.';
|
||||
$lang->product->pageLines = 'Total product lines: %s, Total products: %s.';
|
||||
$lang->product->pageSummary = 'Total products: %s.';
|
||||
$lang->product->lineSummary = 'Total product lines: %s, Total products: %s.';
|
||||
|
||||
$lang->product->indexAction = "All {$lang->productCommon}";
|
||||
$lang->product->closeAction = "Close {$lang->productCommon}";
|
||||
|
||||
@@ -37,8 +37,8 @@ $lang->product->addWhitelist = 'Add Whitelist';
|
||||
$lang->product->unbindWhitelist = 'Unbind Whitelist';
|
||||
$lang->product->track = 'View Stories Matrix';
|
||||
$lang->product->checkedProducts = '%s products selected';
|
||||
$lang->product->pageProducts = 'Total products: %s.';
|
||||
$lang->product->pageLines = 'Total product lines: %s, Total products: %s.';
|
||||
$lang->product->pageSummary = 'Total products: %s.';
|
||||
$lang->product->lineSummary = 'Total product lines: %s, Total products: %s.';
|
||||
|
||||
$lang->product->indexAction = "All {$lang->productCommon}";
|
||||
$lang->product->closeAction = "Close {$lang->productCommon}";
|
||||
|
||||
@@ -37,8 +37,8 @@ $lang->product->addWhitelist = 'Add Whitelist';
|
||||
$lang->product->unbindWhitelist = 'Remove Whitelist';
|
||||
$lang->product->track = 'Consulter Stories Matrice';
|
||||
$lang->product->checkedProducts = '%s produits s électionnés';
|
||||
$lang->product->pageProducts = 'Total products: %s.';
|
||||
$lang->product->pageLines = 'Total product lines: %s, Total products: %s.';
|
||||
$lang->product->pageSummary = 'Total products: %s.';
|
||||
$lang->product->lineSummary = 'Total product lines: %s, Total products: %s.';
|
||||
|
||||
$lang->product->indexAction = "All {$lang->productCommon}";
|
||||
$lang->product->closeAction = "Fermer {$lang->productCommon}";
|
||||
|
||||
@@ -37,8 +37,8 @@ $lang->product->addWhitelist = '添加白名单';
|
||||
$lang->product->unbindWhitelist = '移除白名单';
|
||||
$lang->product->track = "查看需求矩阵";
|
||||
$lang->product->checkedProducts = '已选择%s项产品';
|
||||
$lang->product->pageProducts = '本页共%s个产品。';
|
||||
$lang->product->pageLines = '本页共%s个产品线,%s个产品。';
|
||||
$lang->product->pageSummary = '本页共%s个产品。';
|
||||
$lang->product->lineSummary = '本页共%s个产品线,%s个产品。';
|
||||
|
||||
$lang->product->indexAction = "所有{$lang->productCommon}仪表盘";
|
||||
$lang->product->closeAction = "关闭{$lang->productCommon}";
|
||||
|
||||
@@ -253,8 +253,8 @@
|
||||
<?php if(!empty($product) and $canBatchEdit):?>
|
||||
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
|
||||
<?php
|
||||
$content = empty($productLines) ? sprintf($lang->product->pageProducts, count($productStats)) : sprintf($lang->product->pageLines, count($lineNames), count($productStats));
|
||||
echo "<div id='productsCount' class='statistic'>$content</div>";
|
||||
$summary = empty($productLines) ? sprintf($lang->product->pageSummary, count($productStats)) : sprintf($lang->product->lineSummary, count($lineNames), count($productStats));
|
||||
echo "<div id='productsCount' class='statistic'>$summary</div>";
|
||||
?>
|
||||
<div class="table-actions btn-toolbar">
|
||||
<?php
|
||||
|
||||
@@ -1979,7 +1979,7 @@ class projectModel extends model
|
||||
if($id == 'name')
|
||||
{
|
||||
$class .= ' text-left';
|
||||
$title = "title='{$project->name} ({$this->lang->project->{$project->model}})'";
|
||||
$title = "title='{$project->name}" . ($this->config->vision == 'lite' ? "'" : "({$this->lang->project->{$project->model}})'");
|
||||
}
|
||||
|
||||
if($id == 'end')
|
||||
|
||||
@@ -1112,10 +1112,11 @@ class task extends control
|
||||
*
|
||||
* @param int $taskID
|
||||
* @param string $from
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function recordEstimate($taskID, $from = '')
|
||||
public function recordEstimate($taskID, $from = '', $orderBy = '')
|
||||
{
|
||||
$this->commonAction($taskID);
|
||||
|
||||
@@ -1174,12 +1175,14 @@ class task extends control
|
||||
$this->session->set('estimateList', $uri, 'execution');
|
||||
if(isonlybody()) $this->session->set('estimateList', $uri . (strpos($uri, '?') === false ? '?' : '&') . 'onlybody=yes', 'execution');
|
||||
|
||||
$task = $this->task->getById($taskID);
|
||||
$orderBy = 'date,id';
|
||||
if(!empty($task->team) and $task->mode == 'linear') $orderBy = 'order,date,id';
|
||||
$task = $this->task->getById($taskID);
|
||||
if(!empty($task->team) and $task->mode == 'linear' and !$orderBy) $orderBy = 'order_asc';
|
||||
if(!$orderBy) $orderBy = 'date_asc';
|
||||
|
||||
$this->view->title = $this->lang->task->record;
|
||||
$this->view->task = $task;
|
||||
$this->view->from = $from;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->efforts = $this->task->getTaskEstimate($taskID, '', '', $orderBy);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noclosed|noletter');
|
||||
$this->display();
|
||||
|
||||
@@ -18,3 +18,6 @@
|
||||
.main-header ul.hours:after{content:")"}
|
||||
.body-modal .main-header>h2 { max-width: 70% !important; margin-right:0px;}
|
||||
.table-record .form-date {border-right: none;}
|
||||
|
||||
.table.has-sort-head thead>tr>th>a:after, .table.has-sort-head thead>tr>th>a:before {top: -7px;}
|
||||
.table.has-sort-head thead>tr>th>a:hover, .table.has-sort-head thead>tr>th>a:hover:after, .table.has-sort-head thead>tr>th>a:hover:before {color: #000;}
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
$(function()
|
||||
{
|
||||
/* Set default tab. */
|
||||
if($.cookie('recordEstimateType') == 'all')
|
||||
{
|
||||
$('#recordForm').addClass('hidden');
|
||||
$('.my-effort, #legendMyEffort').removeClass('active');
|
||||
$('.all-effort, #legendAllEffort').addClass('active');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.my-effort, #legendMyEffort').addClass('active');
|
||||
$('#recordForm').removeClass('hidden');
|
||||
}
|
||||
$.cookie('recordEstimateType', null);
|
||||
|
||||
$('.order-btn').on('click', function()
|
||||
{
|
||||
$.cookie('recordEstimateType', 'all');
|
||||
});
|
||||
|
||||
/* Hide creation logs when displaying team logs. */
|
||||
$('#linearefforts .tabs ul > li').click(function()
|
||||
{
|
||||
@@ -7,7 +26,6 @@ $(function()
|
||||
$('#recordForm').toggleClass('hidden', tab == '#legendAllEffort');
|
||||
});
|
||||
|
||||
|
||||
$('.form-date').datetimepicker('setEndDate', today);
|
||||
|
||||
$("#recordForm #submit").click(function(e, confirmed)
|
||||
|
||||
@@ -2910,13 +2910,14 @@ class taskModel extends model
|
||||
->where('id')->eq((int)$estimateID)
|
||||
->exec();
|
||||
|
||||
$consumed = $task->consumed + $estimate->consumed - $oldEstimate->consumed;
|
||||
$left = ($lastEstimate and $estimateID == $lastEstimate->id) ? $estimate->left : $task->left;
|
||||
$lastEstimate = $this->dao->select('*')->from(TABLE_EFFORT)
|
||||
->where('objectID')->eq($task->id)
|
||||
->andWhere('objectType')->eq('task')
|
||||
->orderBy('date_desc,id_desc')->limit(1)->fetch();
|
||||
|
||||
$consumed = $task->consumed + $estimate->consumed - $oldEstimate->consumed;
|
||||
$left = ($lastEstimate and $estimateID == $lastEstimate->id) ? $estimate->left : $task->left;
|
||||
|
||||
$now = helper::now();
|
||||
$data = new stdClass();
|
||||
$data->consumed = $consumed;
|
||||
|
||||
@@ -16,33 +16,45 @@ foreach($task->team as $team) $teamOrders[$team->order] = $team->account;
|
||||
$myOrders = array();
|
||||
$allEfforts = array();
|
||||
$recorders = array();
|
||||
foreach($efforts as $effort)
|
||||
$index = 0;
|
||||
$allOrders = array();
|
||||
$efforts = array_values($efforts);
|
||||
foreach($efforts as $key => $effort)
|
||||
{
|
||||
$order = $effort->order;
|
||||
$account = $effort->account;
|
||||
$allEfforts[$order][] = $effort;
|
||||
$prevEffort = $key > 0 ? $efforts[$key - 1] : null;
|
||||
$order = (!$prevEffort or $prevEffort->order == $effort->order) ? $index : ++$index;
|
||||
$account = $effort->account;
|
||||
|
||||
$allEfforts[$order][] = $effort;
|
||||
$recorders[$order][$account] = $account;
|
||||
if($app->user->account == $account)
|
||||
{
|
||||
if(!isset($myOrders[$order])) $myOrders[$order] = 0;
|
||||
$myOrders[$order] += 1;
|
||||
}
|
||||
$allOrders[$order] = $effort->order + 1;
|
||||
}
|
||||
?>
|
||||
<div id='linearefforts'>
|
||||
<div class='tabs'>
|
||||
<ul class='nav nav-tabs'>
|
||||
<li class='active'><a href='#legendMyEffort' data-toggle='tab'><?php echo $lang->task->myEffort;?></a></li>
|
||||
<li><a href='#legendAllEffort' data-toggle='tab'><?php echo $lang->task->allEffort;?></a></li>
|
||||
<li class='my-effort'><a href='#legendMyEffort' data-toggle='tab'><?php echo $lang->task->myEffort;?></a></li>
|
||||
<li class='all-effort'><a href='#legendAllEffort' data-toggle='tab'><?php echo $lang->task->allEffort;?></a></li>
|
||||
</ul>
|
||||
<div class='tab-content'>
|
||||
<div class='tab-pane active' id='legendMyEffort'>
|
||||
<div class='tab-pane' id='legendMyEffort'>
|
||||
<?php if(!empty($myOrders)):?>
|
||||
<table class='table table-bordered table-fixed table-recorded'>
|
||||
<table class='table table-bordered table-fixed table-recorded has-sort-head'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th class="w-60px"> <?php echo $lang->task->teamOrder;?></th>
|
||||
<th class="w-120px"><?php echo $lang->task->date;?></th>
|
||||
<?php
|
||||
$vars = (isset($objectType) ? "objectType=$objectType&" : '') . "taskID=$task->id&from=$from&orderBy=%s";
|
||||
$sort = explode(',', $orderBy);
|
||||
$orderBy = zget($sort, '0', '');
|
||||
if(!strpos($orderBy, '_')) $orderBy .= '_asc';
|
||||
?>
|
||||
<th class="w-60px"><?php common::printOrderLink('order', $orderBy, $vars, $lang->task->teamOrder);?></th>
|
||||
<th class="w-120px"><?php common::printOrderLink('date', $orderBy, $vars, $lang->task->date);?></th>
|
||||
<th class="w-120px"><?php echo $lang->task->recordedBy;?></th>
|
||||
<th><?php echo $lang->task->work;?></th>
|
||||
<th class="thWidth"><?php echo $lang->task->consumedAB;?></th>
|
||||
@@ -58,7 +70,7 @@ foreach($efforts as $effort)
|
||||
<?php if($effort->account != $this->app->user->account) continue;?>
|
||||
<tr class="text-center">
|
||||
<?php if(!$showOrder):?>
|
||||
<td rowspan='<?php echo $count;?>'><?php echo $order + 1;?></td>
|
||||
<td rowspan='<?php echo $count;?>'><?php echo $allOrders[$order];?></td>
|
||||
<?php $showOrder = true;?>
|
||||
<?php endif;?>
|
||||
<td><?php echo $effort->date;?></td>
|
||||
@@ -84,11 +96,12 @@ foreach($efforts as $effort)
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<div class='tab-pane' id='legendAllEffort'>
|
||||
<table class='table table-bordered table-fixed table-recorded'>
|
||||
<table class='table table-bordered table-fixed table-recorded has-sort-head'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th class="w-60px"> <?php echo $lang->task->teamOrder;?></th>
|
||||
<th class="w-120px"><?php echo $lang->task->date;?></th>
|
||||
<?php $vars = (isset($objectType) ? "objectType=$objectType&" : '') . "taskID=$task->id&from=$from&orderBy=%s";?>
|
||||
<th class="w-60px order-btn"><?php common::printOrderLink('order', $orderBy, $vars, $lang->task->teamOrder);?></th>
|
||||
<th class="w-120px order-btn"><?php common::printOrderLink('date', $orderBy, $vars, $lang->task->date);?></th>
|
||||
<th class="w-120px"><?php echo $lang->task->recordedBy;?></th>
|
||||
<th><?php echo $lang->task->work;?></th>
|
||||
<th class="thWidth"><?php echo $lang->task->consumedAB;?></th>
|
||||
@@ -103,7 +116,7 @@ foreach($efforts as $effort)
|
||||
<?php foreach($allEfforts[$order] as $effort):?>
|
||||
<tr class="text-center">
|
||||
<?php if(!$showOrder):?>
|
||||
<td rowspan='<?php echo $count;?>'><?php echo $order + 1;?></td>
|
||||
<td rowspan='<?php echo $count;?>'><?php echo $allOrders[$order];?></td>
|
||||
<?php $showOrder = true;?>
|
||||
<?php endif;?>
|
||||
<td><?php echo $effort->date;?></td>
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<?php if(!$this->task->canOperateEffort($task) and empty($myOrders)):?>
|
||||
<style>#mainContent {min-height: unset;}</style>
|
||||
<?php endif;?>
|
||||
<?php $members = $task->members;?>
|
||||
<?php
|
||||
$confirmRecord = $lang->task->confirmRecord;
|
||||
@@ -56,10 +59,11 @@ if(!empty($members) && $task->mode == 'linear')
|
||||
<?php if(!empty($task->team) and $task->mode == 'linear'):?>
|
||||
<?php include __DIR__ . '/lineareffort.html.php';?>
|
||||
<?php else:?>
|
||||
<table class='table table-bordered table-fixed table-recorded'>
|
||||
<table class='table table-bordered table-fixed table-recorded has-sort-head'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th class="w-120px"><?php echo $lang->task->date;?></th>
|
||||
<?php $vars = "taskID=$task->id&from=$from&orderBy=%s";?>
|
||||
<th class="w-120px"><?php common::printOrderLink('date', !strpos($orderBy, ',') ? $orderBy : 'date_asc', $vars, $lang->task->date);?></th>
|
||||
<th class="w-120px"><?php echo $lang->task->recordedBy;?></th>
|
||||
<th><?php echo $lang->task->work;?></th>
|
||||
<th class="thWidth"><?php echo $lang->task->consumed;?></th>
|
||||
@@ -100,7 +104,7 @@ if(!empty($members) && $task->mode == 'linear')
|
||||
</div>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<form id="recordForm" method='post' target='hiddenwin'>
|
||||
<form id="recordForm" class='hidden' method='post' target='hiddenwin'>
|
||||
<?php
|
||||
$readonly = '';
|
||||
$left = '';
|
||||
|
||||
@@ -975,13 +975,16 @@ class testcase extends control
|
||||
$moduleIdList = $case->module;
|
||||
if($case->module) $moduleIdList = $this->tree->getAllChildID($case->module);
|
||||
|
||||
$moduleIdList = (!in_array($this->app->tab, array('execution', 'project')) and empty($stories)) ? 0 : $moduleIdList;
|
||||
$stories = $this->story->getProductStoryPairs($productID, $case->branch, $moduleIdList, 'all','id_desc', 0, 'full', 'story', false);
|
||||
|
||||
$this->view->productID = $productID;
|
||||
$this->view->product = $product;
|
||||
$this->view->products = $this->products;
|
||||
$this->view->branchTagOption = $branchTagOption;
|
||||
$this->view->productName = $this->products[$productID];
|
||||
$this->view->moduleOptionMenu = $moduleOptionMenu;
|
||||
$this->view->stories = $this->story->getProductStoryPairs($productID, $case->branch, $moduleIdList, 'all','id_desc', 0, 'full', 'story', false);
|
||||
$this->view->stories = $stories;
|
||||
}
|
||||
$forceNotReview = $this->testcase->forceNotReview();
|
||||
if($forceNotReview) unset($this->lang->testcase->statusList['wait']);
|
||||
|
||||
@@ -114,6 +114,7 @@ js::set('suiteID', $suiteID);
|
||||
<tr data-id='<?php echo $case->id?>'>
|
||||
<?php foreach($setting as $key => $value) $this->testcase->printCell($value, $case, $users, $branchOption, $modulePairs, $browseType, $useDatatable ? 'datatable' : 'table');?>
|
||||
</tr>
|
||||
<?php $caseProductIds[$case->product] = $case->product;?>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -129,8 +130,9 @@ js::set('suiteID', $suiteID);
|
||||
$misc = $canBatchRun ? "onclick=\"setFormAction('$actionLink', '', '#caseList')\"" : "disabled='disabled'";
|
||||
echo html::commonButton($lang->testtask->runCase, $misc);
|
||||
|
||||
$actionLink = $this->createLink('testcase', 'batchEdit', "productID=$productID&branch=$branch");
|
||||
$misc = $canBatchEdit ? "onclick=\"setFormAction('$actionLink', '', '#caseList')\"" : "disabled='disabled'";
|
||||
$caseProductID = count($caseProductIds) > 1 ? 0 : $productID;
|
||||
$actionLink = $this->createLink('testcase', 'batchEdit', "productID=$caseProductID&branch=$branch");
|
||||
$misc = $canBatchEdit ? "onclick=\"setFormAction('$actionLink', '', '#caseList')\"" : "disabled='disabled'";
|
||||
echo html::commonButton($lang->edit, $misc);
|
||||
?>
|
||||
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><span class='caret'></span></button>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user