* finish task #3961.

This commit is contained in:
wangyidong
2018-04-27 10:45:55 +08:00
parent a1a04aa45e
commit a28f947bb3
13 changed files with 372 additions and 377 deletions
+1 -1
View File
@@ -241,7 +241,7 @@ $lang->project->subMenu->list->groupTask = '分组视图|project|groupTask|proje
$lang->project->subMenu->qa = new stdclass();
$lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s';
$lang->project->subMenu->qa->build = '版本|project|build|projectID=%s';
$lang->project->subMenu->qa->testtask = '测试单|project|testtask|projectID=%s';
$lang->project->subMenu->qa->testtask = array('link' => '测试单|project|testtask|projectID=%s', 'subModule' => 'testreport');
$lang->project->subMenu->action = new stdclass();
$lang->project->subMenu->action->dynamic = '动态|project|dynamic|projectID=%s';
+7 -1
View File
@@ -127,13 +127,19 @@ class projectModel extends model
$replace = "<ul class='dropdown-menu'>";
foreach($this->lang->project->subMenu->$key as $subMenuKey => $subMenuLink)
{
$subModule = '';
if(is_array($subMenuLink))
{
if(isset($subMenuLink['subModule'])) $subModule = $subMenuLink['subModule'];
$subMenuLink = $subMenuLink['link'];
}
list($subMenuName, $subMenuModule, $subMenuMethod, $subMenuParams) = explode('|', $subMenuLink);
if(!commonModel::hasPriv($subMenuModule, $subMenuMethod)) continue;
if(empty($dropTitle)) $dropTitle = $subMenuName;
$active = '';
if($moduleName == $subMenuModule and $methodName == $subMenuMethod)
if(($moduleName == $subMenuModule and $methodName == $subMenuMethod) or strpos(",$subModule,", ",$moduleName,") !== false)
{
$active = "class='active'";
$dropTitle = $subMenuName;
+39 -41
View File
@@ -317,54 +317,52 @@
</div>
<div id="mainActions">
<?php common::printPreAndNext($preAndNext);?>
<div class="btn-toolbar">
<?php if(!$story->deleted):?>
<?php
common::printIcon('story', 'change', "storyID=$story->id", $story);
common::printIcon('story', 'review', "storyID=$story->id", $story);
if($story->status != 'closed' and !isonlybody())
{
$misc = "class='btn' data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('story', 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id", '', true);
if(common::hasPriv('story', 'batchCreate')) echo html::a($link, "<i class='icon icon-sitemap'></i> " . $lang->story->subdivide, '', $misc);
}
<?php common::printPreAndNext($preAndNext);?>
<div class="btn-toolbar">
<?php common::printBack($browseLink);?>
<?php if(!$story->deleted):?>
<div class='divider'></div>
<?php
common::printIcon('story', 'change', "storyID=$story->id", $story);
common::printIcon('story', 'review', "storyID=$story->id", $story);
if($story->status != 'closed' and !isonlybody())
{
$misc = "class='btn' data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('story', 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id", '', true);
if(common::hasPriv('story', 'batchCreate')) echo html::a($link, "<i class='icon icon-sitemap'></i> " . $lang->story->subdivide, '', $misc);
}
common::printIcon('story', 'close', "storyID=$story->id", $story, 'button', '', '', 'iframe', true);
common::printIcon('story', 'activate', "storyID=$story->id", $story, 'button', '', '', 'iframe', true);
common::printIcon('story', 'close', "storyID=$story->id", $story, 'button', '', '', 'iframe', true);
common::printIcon('story', 'activate', "storyID=$story->id", $story, 'button', '', '', 'iframe', true);
if($this->config->global->flow != 'onlyStory' and !isonlybody() and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
{
$this->app->loadLang('testcase');
echo "<div class='btn-group dropup'>";
echo "<button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown'><i class='icon icon-sitemap'></i> " . $lang->testcase->common . " <span class='caret'></span></button>";
echo "<ul class='dropdown-menu' id='createCaseActionMenu'>";
if($this->config->global->flow != 'onlyStory' and !isonlybody() and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
{
$this->app->loadLang('testcase');
echo "<div class='btn-group dropup'>";
echo "<button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown'><i class='icon icon-sitemap'></i> " . $lang->testcase->common . " <span class='caret'></span></button>";
echo "<ul class='dropdown-menu' id='createCaseActionMenu'>";
$misc = "data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('testcase', 'create', "productID=$story->product&branch=$story->branch&moduleID=0&from=&param=0&storyID=$story->id", '', true);
if(common::hasPriv('testcase', 'create', $story)) echo "<li>" . html::a($link, $lang->testcase->create, '', $misc) . "</li>";
$misc = "data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('testcase', 'create', "productID=$story->product&branch=$story->branch&moduleID=0&from=&param=0&storyID=$story->id", '', true);
if(common::hasPriv('testcase', 'create', $story)) echo "<li>" . html::a($link, $lang->testcase->create, '', $misc) . "</li>";
$misc = "data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('testcase', 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=0&storyID=$story->id", '', true);
if(common::hasPriv('testcase', 'batchCreate')) echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', $misc) . "</li>";
$misc = "data-toggle='modal' data-type='iframe' data-width='95%'";
$link = $this->createLink('testcase', 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=0&storyID=$story->id", '', true);
if(common::hasPriv('testcase', 'batchCreate')) echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', $misc) . "</li>";
echo "</ul>";
echo "</div>";
}
echo "</ul>";
echo "</div>";
}
if($from == 'project') common::printIcon('task', 'create', "project=$param&storyID=$story->id&moduleID=$story->module", $story, 'button', 'smile');
if($from == 'project') common::printIcon('task', 'create', "project=$param&storyID=$story->id&moduleID=$story->module", $story, 'button', 'smile');
echo "<div class='divider'></div>";
common::printIcon('story', 'edit', "storyID=$story->id", $story);
common::printIcon('story', 'create', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id", $story, 'button', 'copy');
common::printIcon('story', 'delete', "storyID=$story->id", $story, 'button', '', 'hiddenwin');
echo "<div class='divider'></div>";
common::printBack($browseLink);
?>
<?php else:?>
<?php common::printBack($browseLink);?>
<?php endif;?>
echo "<div class='divider'></div>";
common::printIcon('story', 'edit', "storyID=$story->id", $story);
common::printIcon('story', 'create', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id", $story, 'button', 'copy');
common::printIcon('story', 'delete', "storyID=$story->id", $story, 'button', '', 'hiddenwin');
?>
<?php endif;?>
</div>
</div>
<?php
js::set('canCreate', common::hasPriv('story', 'story'));
+1
View File
@@ -452,6 +452,7 @@ class testreport extends control
{
$this->projects = $this->project->getPairs('nocode');
$projectID = $this->project->saveState($objectID, $this->projects);
$this->lang->testreport->dividerMenu = $this->lang->project->dividerMenu;
$this->project->setMenu($this->projects, $projectID);
$this->lang->testreport->menu = $this->lang->project->menu;
$this->lang->testreport->menu->testtask['subModule'] = 'testreport';
+1 -1
View File
@@ -1,5 +1,5 @@
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
<table class='table' id='bugs'>
<table class='table main-table' id='bugs'>
<thead>
<tr>
<th class='w-id'> <?php echo $lang->idAB;?></th>
+2 -2
View File
@@ -1,11 +1,11 @@
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
<table class='table' id='builds'>
<table class='table main-table' id='builds'>
<thead>
<tr>
<th class='w-id'> <?php echo $lang->build->id;?></th>
<th> <?php echo $lang->build->name;?></th>
<th class='w-user'><?php echo $lang->build->builder;?></th>
<th class='w-date'><?php echo $lang->build->date;?></th>
<th class='w-100px'><?php echo $lang->build->date;?></th>
</tr>
</thead>
<?php if($builds):?>
+3 -3
View File
@@ -1,5 +1,5 @@
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
<table class='table' id='cases'>
<table class='table main-table' id='cases'>
<thead>
<tr>
<th class='w-id'> <?php echo $lang->idAB;?></th>
@@ -8,9 +8,9 @@
<th class='w-type'> <?php echo $lang->testcase->type;?></th>
<th class='w-user'> <?php echo $lang->testtask->assignedTo;?></th>
<th class='w-user'> <?php echo $lang->testtask->lastRunAccount;?></th>
<th class='w-130px'> <?php echo $lang->testtask->lastRunTime;?></th>
<th class='w-150px'> <?php echo $lang->testtask->lastRunTime;?></th>
<th class='w-80px'> <?php echo $lang->testtask->lastRunResult;?></th>
<th class='w-status'><?php echo $lang->statusAB;?></th>
<th class='w-100px'><?php echo $lang->statusAB;?></th>
</tr>
</thead>
<?php if($cases):?>
@@ -1,5 +1,5 @@
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
<table class='table' id='legacyBugs'>
<table class='table main-table' id='legacyBugs'>
<thead>
<tr>
<th class='w-id'> <?php echo $lang->idAB;?></th>
@@ -7,8 +7,8 @@
<th> <?php echo $lang->bug->title;?></th>
<th class='w-user'> <?php echo $lang->openedByAB;?></th>
<th class='w-user'> <?php echo $lang->bug->resolvedBy;?></th>
<th class='w-130px'><?php echo $lang->bug->resolvedDate;?></th>
<th class='w-80px'> <?php echo $lang->statusAB;?></th>
<th class='w-150px'><?php echo $lang->bug->resolvedDate;?></th>
<th class='w-100px'> <?php echo $lang->statusAB;?></th>
</tr>
</thead>
<?php if($legacyBugs):?>
+3 -3
View File
@@ -1,5 +1,5 @@
<?php $sysURL = $this->session->notHead ? common::getSysURL() : '';?>
<table class='table' id='stories'>
<table class='table main-table' id='stories'>
<thead>
<tr>
<th class='w-id'> <?php echo $lang->idAB;?></th>
@@ -8,8 +8,8 @@
<th class='w-user'><?php echo $lang->openedByAB;?></th>
<th class='w-80px'><?php echo $lang->assignedToAB;?></th>
<th class='w-hour'><?php echo $lang->story->estimateAB;?></th>
<th class='w-hour'><?php echo $lang->statusAB;?></th>
<th class='w-70px'><?php echo $lang->story->stageAB;?></th>
<th class='w-80px'><?php echo $lang->statusAB;?></th>
<th class='w-80px'><?php echo $lang->story->stageAB;?></th>
</tr>
</thead>
<?php if($stories):?>
+46 -42
View File
@@ -11,51 +11,55 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='titlebar'>
<div class='heading'>
<strong><?php echo $lang->testreport->browse;?></strong>
<div id='mainMenu' class='clearfix'>
<div class='pull-left btn-toolbar'>
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->testreport->browse;?></span></span>
</div>
</div>
<table class='table table-condensed table-hover table-striped tablesorter table-fixed table-selectable' id='reportList'>
<?php $vars = "objectID=$objectID&objectType=$objectType&extra=$extra&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
<thead>
<tr>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->testreport->title);?></th>
<th class='w-user'> <?php common::printOrderLink('createdBy', $orderBy, $vars, $lang->openedByAB);?></th>
<th class='w-120px'><?php common::printOrderLink('createdDate', $orderBy, $vars, $lang->testreport->createdDate);?></th>
<th class='w-250px'><?php common::printOrderLink('project', $orderBy, $vars, $lang->testreport->project);?></th>
<th class='w-250px'><?php echo $lang->testreport->testtask;?></th>
<th class='w-60px'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<?php if($reports):?>
<tbody class='text-center'>
<?php foreach($reports as $report):?>
<tr>
<td><?php echo $report->id?></td>
<td class='text-left' title='<?php $report->title?>'><?php echo html::a(inlink('view', "reportID=$report->id&from=$objectType"), $report->title)?></td>
<td><?php echo zget($users, $report->createdBy);?></td>
<td><?php echo substr($report->createdDate, 2);?></td>
<?php $projectName = '#' . $report->project . $projects[$report->project];?>
<td class='text-left' title='<?php echo $projectName?>'><?php echo $projectName;?></td>
<?php
$taskName = '';
foreach(explode(',', $report->tasks) as $taskID) $taskName .= '#' . $taskID . $tasks[$taskID] . ' ';
?>
<td class='text-left' title='<?php echo $taskName?>'><?php echo $taskName;?></td>
<td>
<div id='mainContent' class='main-content'>
<table class='table has-sort-head main-table table-fixed' id='reportList'>
<?php $vars = "objectID=$objectID&objectType=$objectType&extra=$extra&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
<thead>
<tr>
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->testreport->title);?></th>
<th class='w-user'> <?php common::printOrderLink('createdBy', $orderBy, $vars, $lang->openedByAB);?></th>
<th class='w-150px'><?php common::printOrderLink('createdDate', $orderBy, $vars, $lang->testreport->createdDate);?></th>
<th class='w-250px'><?php common::printOrderLink('project', $orderBy, $vars, $lang->testreport->project);?></th>
<th class='w-250px'><?php echo $lang->testreport->testtask;?></th>
<th class='w-80px'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<?php if($reports):?>
<tbody class='text-center'>
<?php foreach($reports as $report):?>
<tr>
<td><?php echo $report->id?></td>
<td class='text-left' title='<?php $report->title?>'><?php echo html::a(inlink('view', "reportID=$report->id&from=$objectType"), $report->title)?></td>
<td><?php echo zget($users, $report->createdBy);?></td>
<td><?php echo substr($report->createdDate, 2);?></td>
<?php $projectName = '#' . $report->project . $projects[$report->project];?>
<td class='text-left' title='<?php echo $projectName?>'><?php echo $projectName;?></td>
<?php
common::printIcon('testreport', 'edit', "id=$report->id", '', 'list');
common::printIcon('testreport', 'delete', "id=$report->id", '', 'list', 'remove', 'hiddenwin');
$taskName = '';
foreach(explode(',', $report->tasks) as $taskID) $taskName .= '#' . $taskID . $tasks[$taskID] . ' ';
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot><tr><td colspan='7'><?php $pager->show();?></td></tr></tfoot>
<?php else:?>
<tbody><tr><td colspan='7'><?php echo $lang->testreport->noReport;?></td></tr></tbody>
<td class='text-left' title='<?php echo $taskName?>'><?php echo $taskName;?></td>
<td class='c-actions'>
<?php
common::printIcon('testreport', 'edit', "id=$report->id", '', 'list');
common::printIcon('testreport', 'delete', "id=$report->id", '', 'list', 'trash', 'hiddenwin');
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
<?php else:?>
<tbody><tr><td colspan='7'><?php echo $lang->testreport->noReport;?></td></tr></tbody>
<?php endif;?>
</table>
<?php if($reports):?>
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
<?php endif;?>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
+88 -94
View File
@@ -14,101 +14,95 @@
<?php include '../../common/view/datepicker.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php include '../../common/view/chart.html.php';?>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['create']);?></small> <?php echo $lang->testreport->create;?></strong>
<div id='mainContent' class='main-content'>
<div class='center-block mw-1400px'>
<div class='main-header'>
<h2><?php echo $lang->testreport->create;?></h2>
<div class='pull-right btn-toolbar'><?php echo html::backButton();?></div>
</div>
<div class='actions'>
<?php
echo html::backButton();
?>
</div>
</div>
<div class='main'>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<fieldset>
<legend><?php echo $lang->testreport->legendBasic?></legend>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'>
<div class='input-group'>
<?php echo html::input('begin', $begin, "class='form-control form-date'")?>
<span class='input-group-addon'> ~ </span>
<?php echo html::input('end', $end, "class='form-control form-date'")?>
<?php
echo html::hidden('product', $productIdList) . html::hidden('project', $project->id) . html::hidden('tasks', $tasks);
echo html::hidden('objectID', $objectID) . html::hidden('objectType', $objectType);
?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testreport->owner?></span>
<?php echo html::select('owner', $users, $owner, "class='form-control chosen'")?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php echo html::select('members[]', $users, $members, "class='form-control chosen' multiple")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->title?></th>
<td colspan='2'><?php echo html::input('title', $reportTitle, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->report?></th>
<td colspan='2'><?php echo html::textarea('report', '', "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->files?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th></th>
<td><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendStoryAndBug?></legend>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendBuild?></legend>
<?php include './blockbuilds.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendCase?></legend>
<?php include './blockcases.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendLegacyBugs?></legend>
<?php include './blocklegacybugs.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendReport?></legend>
<?php include './blockbugreport.html.php'?>
</fieldset>
</form>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendBasic?></div>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'>
<div class='input-group'>
<?php echo html::input('begin', $begin, "class='form-control form-date'")?>
<span class='input-group-addon'> ~ </span>
<?php echo html::input('end', $end, "class='form-control form-date'")?>
<?php
echo html::hidden('product', $productIdList) . html::hidden('project', $project->id) . html::hidden('tasks', $tasks);
echo html::hidden('objectID', $objectID) . html::hidden('objectType', $objectType);
?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testreport->owner?></span>
<?php echo html::select('owner', $users, $owner, "class='form-control chosen'")?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php echo html::select('members[]', $users, $members, "class='form-control chosen' multiple")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->title?></th>
<td colspan='2'><?php echo html::input('title', $reportTitle, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->report?></th>
<td colspan='2'><?php echo html::textarea('report', '', "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->files?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th></th>
<td><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendStoryAndBug?></div>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendBuild?></div>
<?php include './blockbuilds.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendCase?></div>
<?php include './blockcases.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendLegacyBugs?></div>
<?php include './blocklegacybugs.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendReport?></div>
<?php include './blockbugreport.html.php'?>
</div>
</form>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+87 -89
View File
@@ -14,96 +14,94 @@
<?php include '../../common/view/datepicker.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php include '../../common/view/chart.html.php';?>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['edit']);?></small> <?php echo $lang->testreport->edit;?></strong>
<div id='mainContent' class='main-content'>
<div class='center-block mw-1400px'>
<div class='main-header'>
<h2><?php echo $lang->testreport->edit;?></h2>
<div class='btn-toolbar pull-right'><?php echo html::backButton();?></div>
</div>
<div class='actions'><?php echo html::backButton();?></div>
</div>
<div class='main'>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<fieldset>
<legend><?php echo $lang->testreport->legendBasic?></legend>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'>
<div class='input-group'>
<?php echo html::input('begin', $report->begin, "class='form-control form-date'")?>
<span class='input-group-addon'> ~ </span>
<?php echo html::input('end', $report->end, "class='form-control form-date'")?>
<?php
echo html::hidden('product', $productIdList) . html::hidden('project', $report->project) . html::hidden('tasks', $tasks);
?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testreport->owner?></span>
<?php echo html::select('owner', $users, $report->owner, "class='form-control chosen'")?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php echo html::select('members[]', $users, $report->members, "class='form-control chosen' multiple")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->title?></th>
<td colspan='2'><?php echo html::input('title', $report->title, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->report?></th>
<td colspan='2'><?php echo html::textarea('report', $report->report, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->files?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th></th>
<td><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendStoryAndBug?></legend>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendBuild?></legend>
<?php include './blockbuilds.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendCase?></legend>
<?php include './blockcases.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendLegacyBugs?></legend>
<?php include './blocklegacybugs.html.php'?>
</fieldset>
<fieldset>
<legend><?php echo $lang->testreport->legendReport?></legend>
<?php include './blockbugreport.html.php'?>
</fieldset>
</form>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendBasic?></div>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'>
<div class='input-group'>
<?php echo html::input('begin', $report->begin, "class='form-control form-date'")?>
<span class='input-group-addon'> ~ </span>
<?php echo html::input('end', $report->end, "class='form-control form-date'")?>
<?php
echo html::hidden('product', $productIdList) . html::hidden('project', $report->project) . html::hidden('tasks', $tasks);
?>
</div>
</td>
<td>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testreport->owner?></span>
<?php echo html::select('owner', $users, $report->owner, "class='form-control chosen'")?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php echo html::select('members[]', $users, $report->members, "class='form-control chosen' multiple")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->title?></th>
<td colspan='2'><?php echo html::input('title', $report->title, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<tr>
<th><?php echo $lang->testreport->report?></th>
<td colspan='2'><?php echo html::textarea('report', $report->report, "class='form-control'")?></td>
</tr>
<tr>
<th><?php echo $lang->files?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th></th>
<td><?php echo html::submitButton() . html::backButton();?></td>
</tr>
</table>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendStoryAndBug?></div>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendBuild?></div>
<?php include './blockbuilds.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendCase?></div>
<?php include './blockcases.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendLegacyBugs?></div>
<?php include './blocklegacybugs.html.php'?>
</div>
<div class='detail'>
<div class='detail-title'><?php echo $lang->testreport->legendReport?></div>
<?php include './blockbugreport.html.php'?>
</div>
</form>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+91 -97
View File
@@ -13,108 +13,102 @@
<?php if(!$this->session->notHead):?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/chart.html.php';?>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><strong><?php echo $report->id;?></strong></span>
<strong><?php echo $report->title;?></strong>
</div>
<div class='actions'>
<?php
$browseLink = $this->session->reportList != false ? $app->session->reportList : $browseLink;
$actionLinks = '';
ob_start();
echo "<div class='btn-group'>";
if(common::hasPriv('testreport', 'create')) echo html::a(inLink('create', "objectID=$report->objectID&objectType=$report->objectType"), "<i class='icon-refresh'></i>", '', "class='btn' title='{$lang->testreport->recreate}'");
common::printIcon('testreport', 'edit', "reportID=$report->id", '', 'button');
common::printIcon('testreport', 'delete', "reportID=$report->id", '', 'button', '', 'hiddenwin');
echo '</div>';
echo "<div class='btn-group'>";
common::printRPN($browseLink);
echo '</div>';
$actionLinks = ob_get_contents();
ob_end_clean();
echo $actionLinks;
?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php $browseLink = $this->session->reportList != false ? $app->session->reportList : $browseLink;?>
<?php echo html::a($browseLink, "<i class='icon icon-back icon-sm'></i>" . $lang->goback, '', "class='btn btn-link'");?>
<div class='divider'></div>
<div class='page-title'>
<span class='label label-id'><?php echo $report->id;?></span>
<span class='text'><?php echo $report->title;?></span>
</div>
</div>
<?php endif;?>
<div class='main'>
<ul class='nav nav-tabs'>
<li class='active'><?php echo html::a('###', $lang->testreport->legendBasic, '', "data-toggle='tab' data-target='#basic'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendStoryAndBug, '', "data-toggle='tab' data-target='#storyAndBug'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendBuild, '', "data-toggle='tab' data-target='#tabBuild'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendCase, '', "data-toggle='tab' data-target='#tabCase'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendLegacyBugs, '', "data-toggle='tab' data-target='#tabLegacyBugs'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendReport, '', "data-toggle='tab' data-target='#tabReport'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendComment, '', "data-toggle='tab' data-target='#tabComment'")?></li>
<?php if(!$this->session->notHead):?>
<li><?php echo html::a('###', $lang->history, '', "data-toggle='tab' data-target='#tabHistory'")?></li>
<?php if($this->app->user->admin):?>
<li><?php echo html::a('###', $lang->testreport->legendMore, '', "data-toggle='tab' data-target='#tabMore'")?></li>
<?php endif;?>
<?php endif;?>
</ul>
<div class='tab-content'>
<div class='tab-pane' id='basic'>
<table class='table table-form'>
<tr>
<th class='w-100px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'> <?php echo $report->begin . ' ~ ' . $report->end;?></td>
<td></td>
</tr>
<tr>
<th><?php echo $lang->testreport->owner?></th>
<td><?php echo zget($users, $report->owner);?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php foreach(explode(',', $report->members) as $member)echo zget($users, $member) . ' &nbsp; ';?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<?php if(!$this->session->notHead):?>
<tr>
<th><?php echo $lang->files?></th>
<td><?php echo $this->fetch('file', 'printFiles', array('files' => $report->files, 'fieldset' => 'false'));?></td>
</tr>
<?php endif;?>
</table>
</div>
<div class='tab-pane' id='storyAndBug'>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</div>
<div class='tab-pane' id='tabBuild'><?php include './blockbuilds.html.php'?></div>
<div class='tab-pane' id='tabCase'><?php include './blockcases.html.php'?></div>
<div class='tab-pane' id='tabLegacyBugs'><?php include './blocklegacybugs.html.php'?></div>
<div class='tab-pane active' id='tabReport'><?php include './blockbugreport.html.php'?></div>
<div class='tab-pane' id='tabComment'><div class='article-content'><?php echo empty($report->report) ? $lang->testreport->none : $report->report;?></div></div>
<?php if(!$this->session->notHead):?>
<div class='tab-pane' id='tabHistory'><?php include '../../common/view/action.html.php';?></div>
<?php if($this->app->user->admin):?>
<div class='tab-pane' id='tabMore'><div class='article-content'><?php echo $lang->testreport->moreNotice;?></div></div>
<?php endif;?>
<?php endif;?>
</div>
<?php endif;?>
<div id='mainContent' class='main-content'>
<ul class='nav nav-tabs'>
<li class='active'><?php echo html::a('###', $lang->testreport->legendBasic, '', "data-toggle='tab' data-target='#basic'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendStoryAndBug, '', "data-toggle='tab' data-target='#storyAndBug'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendBuild, '', "data-toggle='tab' data-target='#tabBuild'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendCase, '', "data-toggle='tab' data-target='#tabCase'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendLegacyBugs, '', "data-toggle='tab' data-target='#tabLegacyBugs'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendReport, '', "data-toggle='tab' data-target='#tabReport'")?></li>
<li><?php echo html::a('###', $lang->testreport->legendComment, '', "data-toggle='tab' data-target='#tabComment'")?></li>
<?php if(!$this->session->notHead):?>
<li><?php echo html::a('###', $lang->history, '', "data-toggle='tab' data-target='#tabHistory'")?></li>
<?php if($this->app->user->admin):?>
<li><?php echo html::a('###', $lang->testreport->legendMore, '', "data-toggle='tab' data-target='#tabMore'")?></li>
<?php endif;?>
<?php endif;?>
</ul>
<div class='tab-content'>
<div class='tab-pane' id='basic'>
<table class='table table-form'>
<tr>
<th class='w-100px'><?php echo $lang->testreport->startEnd?></th>
<td class='w-p50'> <?php echo $report->begin . ' ~ ' . $report->end;?></td>
<td></td>
</tr>
<tr>
<th><?php echo $lang->testreport->owner?></th>
<td><?php echo zget($users, $report->owner);?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->members?></th>
<td colspan='2'><?php foreach(explode(',', $report->members) as $member)echo zget($users, $member) . ' &nbsp; ';?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->goal?></th>
<td colspan='2'><?php echo $project->desc?></td>
</tr>
<tr>
<th><?php echo $lang->testreport->profile?></th>
<td colspan='2'>
<?php
echo '<p>' . $storySummary . '</p>';
echo '<p>' . sprintf($lang->testreport->buildSummary, empty($builds) ? 1 : count($builds)) . $caseSummary . '</p>';
echo '<p>' . sprintf($lang->testreport->bugSummary, $bugInfo['foundBugs'], count($legacyBugs), $bugInfo['countBugByTask'], $bugInfo['bugConfirmedRate'] . '%', $bugInfo['bugCreateByCaseRate'] . '%') . '</p>';
unset($bugInfo['countBugByTask']); unset($bugInfo['bugConfirmedRate']); unset($bugInfo['bugCreateByCaseRate']); unset($bugInfo['foundBugs']);
?>
</td>
</tr>
<?php if(!$this->session->notHead):?>
<tr>
<th><?php echo $lang->files?></th>
<td><?php echo $this->fetch('file', 'printFiles', array('files' => $report->files, 'fieldset' => 'false'));?></td>
</tr>
<?php endif;?>
</table>
</div>
<div class='tab-pane' id='storyAndBug'>
<?php include './blockstories.html.php'?>
<?php include './blockbugs.html.php'?>
</div>
<div class='tab-pane' id='tabBuild'><?php include './blockbuilds.html.php'?></div>
<div class='tab-pane' id='tabCase'><?php include './blockcases.html.php'?></div>
<div class='tab-pane' id='tabLegacyBugs'><?php include './blocklegacybugs.html.php'?></div>
<div class='tab-pane active' id='tabReport'><?php include './blockbugreport.html.php'?></div>
<div class='tab-pane' id='tabComment'><div class='article-content'><?php echo empty($report->report) ? $lang->testreport->none : $report->report;?></div></div>
<?php if(!$this->session->notHead):?>
<div class='tab-pane' id='tabHistory'><?php include '../../common/view/action.html.php';?></div>
<?php if($this->app->user->admin):?>
<div class='tab-pane' id='tabMore'><div class='article-content'><?php echo $lang->testreport->moreNotice;?></div></div>
<?php endif;?>
<?php endif;?>
</div>
</div>
<?php if(!$this->session->notHead):?>
<div id='mainActions'>
<nav class='container'></nav>
<div class='btn-toolbar'>
<?php common::printBack($browseLink);?>
<div class='divider'></div>
<?php
if(common::hasPriv('testreport', 'create')) echo html::a(inLink('create', "objectID=$report->objectID&objectType=$report->objectType"), "<i class='icon-refresh'></i>", '', "class='btn' title='{$lang->testreport->recreate}'");
common::printIcon('testreport', 'edit', "reportID=$report->id", '', 'button');
common::printIcon('testreport', 'delete', "reportID=$report->id", '', 'button', '', 'hiddenwin');
?>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php endif;?>