Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -295,7 +295,7 @@ $lang->action->dynamicAction->bug['activated'] = 'Activate Bug';
|
||||
$lang->action->dynamicAction->bug['assigned'] = 'Assign Bug';
|
||||
$lang->action->dynamicAction->bug['closed'] = 'Close Bug';
|
||||
$lang->action->dynamicAction->bug['bugconfirmed'] = 'Confirm Bug';
|
||||
$lang->action->dynamicAction->bug['resolved'] = 'Solve Bug';
|
||||
$lang->action->dynamicAction->bug['resolved'] = 'Resolve Bug';
|
||||
$lang->action->dynamicAction->bug['undeleted'] = 'Restore Bug';
|
||||
$lang->action->dynamicAction->bug['hidden'] = 'Hide Bug';
|
||||
$lang->action->dynamicAction->bug['confirmed'] = 'Confirm Story Change';
|
||||
|
||||
@@ -340,7 +340,7 @@ $lang->block->typeList->task['canceledBy'] = 'CancelledByMe';
|
||||
|
||||
$lang->block->typeList->bug['assignedTo'] = 'AssignedToMe';
|
||||
$lang->block->typeList->bug['openedBy'] = 'CreatedByMe';
|
||||
$lang->block->typeList->bug['resolvedBy'] = 'SolvedByMe';
|
||||
$lang->block->typeList->bug['resolvedBy'] = 'ResolvedByMe';
|
||||
$lang->block->typeList->bug['closedBy'] = 'ClosedByMe';
|
||||
|
||||
$lang->block->typeList->case['assigntome'] = 'AssignedToMe';
|
||||
|
||||
@@ -289,17 +289,17 @@ $config->bug->datatable->fieldList['deadline']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['resolvedBy']['title'] = 'resolvedByAB';
|
||||
$config->bug->datatable->fieldList['resolvedBy']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['resolvedBy']['width'] = '70';
|
||||
$config->bug->datatable->fieldList['resolvedBy']['width'] = '100';
|
||||
$config->bug->datatable->fieldList['resolvedBy']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['resolution']['title'] = 'resolutionAB';
|
||||
$config->bug->datatable->fieldList['resolution']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['resolution']['width'] = '80';
|
||||
$config->bug->datatable->fieldList['resolution']['width'] = '100';
|
||||
$config->bug->datatable->fieldList['resolution']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['resolvedDate']['title'] = 'resolvedDateAB';
|
||||
$config->bug->datatable->fieldList['resolvedDate']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['resolvedDate']['width'] = '90';
|
||||
$config->bug->datatable->fieldList['resolvedDate']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['resolvedDate']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['title'] = 'resolvedBuild';
|
||||
|
||||
@@ -159,11 +159,11 @@ $lang->bug->legendRelated = 'Related Info';
|
||||
$lang->bug->buttonConfirm = 'Confirm';
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->bug->summary = "Total <strong>%s</strong> bugs on this page, and <strong>%s</strong> unsolved.";
|
||||
$lang->bug->summary = "Total <strong>%s</strong> bugs on this page, and <strong>%s</strong> unresolved.";
|
||||
$lang->bug->confirmChangeProduct = "Any change to {$lang->productCommon} will cause linked {$lang->projectCommon}s, stories and tasks change. Do you want to do this?";
|
||||
$lang->bug->confirmDelete = 'Do you want to delete this bug?';
|
||||
$lang->bug->remindTask = 'This bug has been converted to a task. Do you want to update the status of Task(ID %s)?';
|
||||
$lang->bug->skipClose = 'Bug %s is not solved. You cannot close it.';
|
||||
$lang->bug->skipClose = 'Bug %s is not resolved. You cannot close it.';
|
||||
|
||||
/* 模板。*/
|
||||
$lang->bug->tplStep = "<p>[Steps]</p><br/>";
|
||||
@@ -244,7 +244,7 @@ $lang->bug->typeList['others'] = 'Others';
|
||||
|
||||
$lang->bug->statusList[''] = '';
|
||||
$lang->bug->statusList['active'] = 'Active';
|
||||
$lang->bug->statusList['resolved'] = 'Solved';
|
||||
$lang->bug->statusList['resolved'] = 'Resolved';
|
||||
$lang->bug->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->bug->confirmedList[1] = 'Yes';
|
||||
@@ -254,7 +254,7 @@ $lang->bug->resolutionList[''] = '';
|
||||
$lang->bug->resolutionList['bydesign'] = 'As Design';
|
||||
$lang->bug->resolutionList['duplicate'] = 'Duplicated';
|
||||
$lang->bug->resolutionList['external'] = 'External';
|
||||
$lang->bug->resolutionList['fixed'] = 'Solved';
|
||||
$lang->bug->resolutionList['fixed'] = 'Resolved';
|
||||
$lang->bug->resolutionList['notrepro'] = 'Irreproducible';
|
||||
$lang->bug->resolutionList['postponed'] = 'Postponed';
|
||||
$lang->bug->resolutionList['willnotfix'] = "Won't Fix";
|
||||
@@ -358,7 +358,7 @@ $lang->bug->report->bugHistories->graph->xAxisName = 'Handling Steps';
|
||||
|
||||
/* 操作记录。*/
|
||||
$lang->bug->action = new stdclass();
|
||||
$lang->bug->action->resolved = array('main' => '$date, resolved by <strong>$actor</strong> and the solution is <strong>$extra</strong> $appendLink.', 'extra' => 'resolutionList');
|
||||
$lang->bug->action->resolved = array('main' => '$date, resolved by <strong>$actor</strong> and the resolution is <strong>$extra</strong> $appendLink.', 'extra' => 'resolutionList');
|
||||
$lang->bug->action->tostory = array('main' => '$date, converted by <strong>$actor</strong> to <strong>Story</strong> with ID <strong>$extra</strong>.');
|
||||
$lang->bug->action->totask = array('main' => '$date, imported by <strong>$actor</strong> as <strong>Task</strong> with ID <strong>$extra</strong>.');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, linked by <strong>$actor</strong> to Plan <strong>$extra</strong>.');
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
</ul>
|
||||
<div class='tab-content'>
|
||||
<div class='tab-pane active' id='legendBasicInfo'>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-80px' : 'w-70px';?>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-110px' : 'w-70px';?>
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<tr valign='middle'>
|
||||
|
||||
@@ -43,13 +43,13 @@ $lang->build->packageType = 'Package Type';
|
||||
$lang->build->unlinkStory = 'Unlink Story';
|
||||
$lang->build->unlinkBug = 'Unlink Bug';
|
||||
$lang->build->stories = 'Finished Stories';
|
||||
$lang->build->bugs = 'Solved Bugs';
|
||||
$lang->build->bugs = 'Resolved Bugs';
|
||||
$lang->build->generatedBugs = 'Reported Bugs';
|
||||
$lang->build->noProduct = " <span style='color:red'>This {$lang->projectCommon} is not linked to {$lang->productCommon}, so the Build cannot be created. Please first <a href='%s'> link {$lang->productCommon}</a></span>";
|
||||
$lang->build->noBuild = 'No builds yet.';
|
||||
|
||||
$lang->build->finishStories = ' Finished Story %s';
|
||||
$lang->build->resolvedBugs = ' Solved Bug %s';
|
||||
$lang->build->resolvedBugs = ' Resolved Bug %s';
|
||||
$lang->build->createdBugs = ' Reported Bug %s';
|
||||
|
||||
$lang->build->placeholder = new stdclass();
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('product', $products, $product->id, "onchange='loadBranches(this.value);' class='form-control chosen' required");?>
|
||||
<?php
|
||||
if($product->type != 'normal')
|
||||
if($product->type != 'normal' and isset($branches[$product->branch]))
|
||||
{
|
||||
if($product->branch) $branches = array($product->branch => $branches[$product->branch]);
|
||||
echo "<span class='input-group-addon fix-padding fix-border'></span>" . html::select('branch', $branches, $product->branch, "class='form-control chosen'");
|
||||
|
||||
@@ -25,12 +25,11 @@ tbody tr td:first-child input{display:none;}
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<?php $browseLink = $this->session->buildList ? $this->session->buildList : $this->createLink('project', 'build', "projectID=$build->project");?>
|
||||
<?php common::printBack($browseLink, 'btn btn-link');?>
|
||||
<?php common::printBack($browseLink, 'btn btn-secondary');?>
|
||||
<div class='divider'></div>
|
||||
<div class='page-title'>
|
||||
<span class='label label-id'><?php echo $build->id;?></span>
|
||||
<span class='text' title='<?php echo $build->name;?>'>
|
||||
<?php echo html::a('javascript:void(0)', $build->name . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link btn-active-text'");?>
|
||||
<?php echo html::a('javascript:void(0)', "<span class='label label-id'>{$build->id}</span> " . $build->name . " <span class='caret'></span>", '', "data-toggle='dropdown' class='btn btn-link btn-active-text'");?>
|
||||
<?php
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach($buildPairs as $id => $name)
|
||||
|
||||
@@ -25,7 +25,7 @@ $lang->welcome = "%s ALM";
|
||||
$lang->logout = 'Logout';
|
||||
$lang->login = 'Login';
|
||||
$lang->help = 'Help';
|
||||
$lang->aboutZenTao = 'About ZenTao';
|
||||
$lang->aboutZenTao = 'About';
|
||||
$lang->profile = 'Profile';
|
||||
$lang->changePassword = 'Change Password';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>Time %s MS, Memory %s KB, Query %s. </div></div>";
|
||||
@@ -374,7 +374,7 @@ $lang->admin->menu->message = array('link' => 'Notification|message|index', 's
|
||||
$lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule' => 'custom');
|
||||
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
|
||||
|
||||
$lang->admin->menu->dev = array('link' => 'CSD|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor,entry');
|
||||
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor,entry');
|
||||
$lang->admin->menu->translate = array('link' => 'Translate|translate|index', 'subModule' => 'translate');
|
||||
$lang->admin->menu->data = array('link' => 'Data|backup|index', 'subModule' => 'backup,action');
|
||||
$lang->admin->menu->safe = array('link' => 'Security|admin|safe', 'alias' => 'checkweak');
|
||||
@@ -760,9 +760,9 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
|
||||
$lang->bug->menu->unclosed = 'Open|bug|browse|productID=%s&branch=%s&browseType=unclosed¶m=%s';
|
||||
$lang->bug->menu->openedbyme = 'ReportedByMe|bug|browse|productID=%s&branch=%s&browseType=openedbyme¶m=%s';
|
||||
$lang->bug->menu->assigntome = 'AssignedToMe|bug|browse|productID=%s&branch=%s&browseType=assigntome¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'SolvedByMe|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->resolvedbyme = 'ResolvedByMe|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme¶m=%s';
|
||||
$lang->bug->menu->toclosed = 'ToBeClosed|bug|browse|productID=%s&branch=%s&browseType=toclosed¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Unsolved|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->unresolved = 'Unresolved|bug|browse|productID=%s&branch=%s&browseType=unresolved¶m=%s';
|
||||
$lang->bug->menu->more = array('link' => 'More|bug|browse|productID=%s&branch=%s&browseType=unconfirmed¶m=%s', 'class' => 'dropdown dropdown-hover');
|
||||
|
||||
$lang->bug->subMenu = new stdclass();
|
||||
|
||||
@@ -51,7 +51,7 @@ $lang->custom->bug->fields['severityList'] = 'Severity';
|
||||
$lang->custom->bug->fields['osList'] = 'OS';
|
||||
$lang->custom->bug->fields['browserList'] = 'Browser';
|
||||
$lang->custom->bug->fields['typeList'] = 'Type';
|
||||
$lang->custom->bug->fields['resolutionList'] = 'Solution';
|
||||
$lang->custom->bug->fields['resolutionList'] = 'Resolution';
|
||||
$lang->custom->bug->fields['statusList'] = 'Status';
|
||||
$lang->custom->bug->fields['longlife'] = 'Stalled Days';
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ $lang->doc->placeholder->url = 'URL';
|
||||
|
||||
$lang->doclib = new stdclass();
|
||||
$lang->doclib->name = 'Name';
|
||||
$lang->doclib->control = 'ACL';
|
||||
$lang->doclib->control = 'Access Control';
|
||||
$lang->doclib->group = 'Group';
|
||||
$lang->doclib->user = 'User';
|
||||
$lang->doclib->files = 'Attachments';
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<table class='table table-form'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->lib;?></th>
|
||||
<th class='w-110px'><?php echo $lang->doc->lib;?></th>
|
||||
<td> <?php echo html::select('lib', $libs, $libID, "class='form-control chosen' onchange=loadDocModule(this.value)");?> </td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -82,7 +82,7 @@
|
||||
<th><?php echo $lang->doclib->control;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo html::radio('acl', $lang->doc->aclList, 'open', "onchange='toggleAcl(this.value, \"doc\")'");?>
|
||||
<span class='text-warning' id='noticeAcl'><?php echo $lang->doc->noticeAcl['doc']['open'];?></span>
|
||||
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['doc']['open'];?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='whiteListBox' class='hidden'>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<form method='post' target='hiddenwin' >
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->doc->libType?></th>
|
||||
<th class='w-110px'><?php echo $lang->doc->libType?></th>
|
||||
<td><?php echo html::radio('type', $libTypeList, $type ? $type : 'product')?></td>
|
||||
</tr>
|
||||
<tr class='product'>
|
||||
@@ -41,7 +41,7 @@
|
||||
<th><?php echo $lang->doclib->control;?></th>
|
||||
<td>
|
||||
<span><?php echo html::radio('acl', $lang->doc->aclList, 'open', "onchange='toggleAcl(this.value, \"lib\")'")?></span>
|
||||
<span class='text-warning' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib']['product']['default'];?></span>
|
||||
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib']['product']['default'];?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='whiteListBox' class='hidden'>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<form class='load-indicator main-form form-ajax' method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->lib;?></th>
|
||||
<th class='w-110px'><?php echo $lang->doc->lib;?></th>
|
||||
<td> <?php echo html::select('lib', $libs, $doc->lib, "class='form-control chosen' onchange=loadDocModule(this.value)");?> </td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -63,7 +63,7 @@
|
||||
<th><?php echo $lang->doclib->control;?></th>
|
||||
<td colspan='2'>
|
||||
<?php echo html::radio('acl', $lang->doc->aclList, $doc->acl, "onchange='toggleAcl(this.value, \"doc\")'")?>
|
||||
<span class='text-warning' id='noticeAcl'><?php echo $lang->doc->noticeAcl['doc'][$doc->acl];?></span>
|
||||
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['doc'][$doc->acl];?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='whiteListBox' class='hidden'>
|
||||
|
||||
@@ -24,18 +24,18 @@
|
||||
<table class='table table-form'>
|
||||
<?php if(!empty($lib->product)):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->product?></th>
|
||||
<th class='w-130px'><?php echo $lang->doc->product?></th>
|
||||
<td><?php echo $product->name?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if(!empty($lib->project)):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->project?></th>
|
||||
<th class='w-130px'><?php echo $lang->doc->project?></th>
|
||||
<td><?php echo $project->name?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->doc->libName?></th>
|
||||
<th class='w-130px'><?php echo $lang->doc->libName?></th>
|
||||
<td>
|
||||
<?php echo html::input('name', $lib->name, "class='form-control'");?>
|
||||
<span class='hidden'><?php echo html::radio('type', $lang->doc->libTypeList, $lib->type);?></span>
|
||||
@@ -46,12 +46,12 @@
|
||||
<?php if($lib->type == 'product' or $lib->type == 'project'):?>
|
||||
<td>
|
||||
<?php echo html::radio('acl', $lang->doclib->aclListA, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?>
|
||||
<span class='text-warning' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib'][$lib->type][$lib->acl];?></span>
|
||||
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib'][$lib->type][$lib->acl];?></span>
|
||||
</td>
|
||||
<?php else:?>
|
||||
<td>
|
||||
<?php echo html::radio('acl', $lang->doclib->aclListB, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?>
|
||||
<span class='text-warning' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib'][$lib->type][$lib->acl];?></span>
|
||||
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['lib'][$lib->type][$lib->acl];?></span>
|
||||
</td>
|
||||
<?php endif;?>
|
||||
</tr>
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
.group-item {display:block; width:100px; float:left;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||||
.table th {vertical-align: top;}
|
||||
.table-form>tbody>tr>th{width:120px !important;}
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<?php common::printIcon('group', 'manageView', "groupID=$group->id", $group, 'list', 'eye');?>
|
||||
<?php common::printIcon('group', 'managepriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
||||
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='750'");?>
|
||||
<?php common::printIcon('group', 'managemember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='90%'");?>
|
||||
<?php common::printIcon('group', 'edit', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php common::printIcon('group', 'copy', "groupID=$group->id", $group, 'list', '', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<table class='table table-form'>
|
||||
<?php if($groupUsers):?>
|
||||
<tr>
|
||||
<th class='w-130px'>
|
||||
<th class='w-140px'>
|
||||
<div class="checkbox-primary checkbox-inline checkbox-right check-all">
|
||||
<input type='checkbox' id='allInsideChecker' checked />
|
||||
<label class='text-right' for='allInsideChecker'><?php echo $lang->group->inside;?></label>
|
||||
@@ -46,7 +46,7 @@
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th>
|
||||
<th class='w-140px'>
|
||||
<div class="checkbox-primary checkbox-inline checkbox-right check-all">
|
||||
<input type='checkbox' id='allOutSideChecker'>
|
||||
<label class='text-right' for='allOutSideChecker'><?php echo $lang->group->outside;?></label>
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->bug->title);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-110px'><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->bug->assignedTo);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
|
||||
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedByAB);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
|
||||
<th class='c-actions-5'> <?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->bug->title);?></th>
|
||||
<th class='c-user'> <?php common::printOrderLink('openedBy', $orderBy, $vars, $lang->openedByAB);?></th>
|
||||
<th class='w-110px c-user'><?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->assignedToAB);?></th>
|
||||
<th class='c-user'> <?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedBy);?></th>
|
||||
<th class='w-resolution'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('resolvedBy', $orderBy, $vars, $lang->bug->resolvedBy);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('resolution', $orderBy, $vars, $lang->bug->resolutionAB);?></th>
|
||||
<th class='c-actions-5'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -14,12 +14,6 @@
|
||||
<?php js::set('confirmDelete', $lang->build->confirmDelete)?>
|
||||
<div id="mainMenu" class="clearfix table-row">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php if(!empty($projectBuilds)):?>
|
||||
<div class="pull-left table-group-btns">
|
||||
<button type="button" class="btn btn-link group-collapse-all"><?php echo $lang->project->treeLevel['root'];?> <i class="icon-fold-all"> </i></button>
|
||||
<button type="button" class="btn btn-link group-expand-all"><?php echo $lang->project->treeLevel['all'];?> <i class="icon-unfold-all"> </i></button>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<span class='btn btn-link btn-active-text'>
|
||||
<span class='text'><?php echo $lang->project->build;?></span>
|
||||
<span class='label label-light label-badge'><?php echo $buildsTotal;?></span>
|
||||
@@ -40,11 +34,11 @@
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class='main-table' data-ride="table" data-checkable="false" data-group="true">
|
||||
<table class="table table-grouped text-center" id='buildList'>
|
||||
<div class='main-table' data-ride="table" data-checkable="false">
|
||||
<table class="table text-center" id='buildList'>
|
||||
<thead>
|
||||
<tr class="<?php if($buildsTotal) echo 'divider';?>">
|
||||
<th class="c-side"><?php echo $lang->build->product;?></th>
|
||||
<tr>
|
||||
<th class="w-200px"><?php echo $lang->build->product;?></th>
|
||||
<th class="c-id-sm"><?php echo $lang->build->id;?></th>
|
||||
<th class="c-name"><?php echo $lang->build->name;?></th>
|
||||
<th class="c-url"><?php echo $lang->build->scmPath;?></th>
|
||||
@@ -58,12 +52,9 @@
|
||||
<?php foreach($projectBuilds as $productID => $builds):?>
|
||||
<?php $total = count($builds);?>
|
||||
<?php foreach($builds as $index => $build):?>
|
||||
<tr data-id="<?php echo $productID;?>" class="<?php echo $index == 0 ? 'divider-top' : '';?>">
|
||||
<tr data-id="<?php echo $productID;?>">
|
||||
<?php if($index == 0):?>
|
||||
<td rowspan="<?php echo $total;?>" class="c-side text-left group-toggle">
|
||||
<a title="<?php echo $build->productName;?>" class="text-primary"><i class="icon-caret-down"></i> <?php echo $build->productName;?></a>
|
||||
<div class="small"><span class="text-muted"><?php echo $lang->project->build;?></span> <?php echo $total;?></div>
|
||||
</td>
|
||||
<td rowspan="<?php echo $total;?>" class="text-left" title='<?php echo $build->productName;?>'><?php echo $build->productName;?></td>
|
||||
<?php endif;?>
|
||||
<td class="c-id-sm text-muted"><?php echo html::a(helper::createLink('build', 'view', "buildID=$build->id"), sprintf('%03d', $build->id));?></td>
|
||||
<td class="c-name">
|
||||
@@ -92,16 +83,6 @@
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(($index + 1) == $total):?>
|
||||
<tr class="group-toggle group-summary divider hidden" data-id="<?php echo $productID;?>">
|
||||
<td class="c-side text-left">
|
||||
<a title="<?php echo $build->productName;?>"><i class="icon-caret-right text-muted"></i> <?php echo $build->productName;?></a>
|
||||
</td>
|
||||
<td colspan="7" class="text-left">
|
||||
<div class="small with-padding"><span class="text-muted"><?php echo $lang->project->build;?></span> <?php echo $total;?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php endforeach;?>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
|
||||
@@ -44,12 +44,12 @@ $lang->release->last = 'Last Release';
|
||||
$lang->release->unlinkStory = 'Unlink Story';
|
||||
$lang->release->unlinkBug = 'Unlink Bug';
|
||||
$lang->release->stories = 'Finished Story';
|
||||
$lang->release->bugs = 'Solved Bug';
|
||||
$lang->release->leftBugs = 'Unsolved Bug';
|
||||
$lang->release->generatedBugs = 'Unsolved Bug';
|
||||
$lang->release->bugs = 'Resolved Bug';
|
||||
$lang->release->leftBugs = 'Unresolved Bug';
|
||||
$lang->release->generatedBugs = 'Unresolved Bug';
|
||||
$lang->release->finishStories = 'Finished %s Story';
|
||||
$lang->release->resolvedBugs = 'Solved %s Bug';
|
||||
$lang->release->createdBugs = 'Unsolved %s Bug';
|
||||
$lang->release->resolvedBugs = 'Resolved %s Bug';
|
||||
$lang->release->createdBugs = 'Unresolved %s Bug';
|
||||
$lang->release->export = 'Export as HTML';
|
||||
$lang->release->yesterday = 'Released Yesterday';
|
||||
|
||||
@@ -59,7 +59,7 @@ $lang->release->scmPath = 'SCM Path : ';
|
||||
$lang->release->exportTypeList['all'] = 'All';
|
||||
$lang->release->exportTypeList['story'] = 'Story';
|
||||
$lang->release->exportTypeList['bug'] = 'Bug';
|
||||
$lang->release->exportTypeList['leftbug'] = 'Unsolved Bug';
|
||||
$lang->release->exportTypeList['leftbug'] = 'Unresolved Bug';
|
||||
|
||||
$lang->release->statusList[''] = '';
|
||||
$lang->release->statusList['normal'] = 'Normal';
|
||||
|
||||
@@ -69,7 +69,7 @@ $lang->report->to = 'to';
|
||||
$lang->report->taskTotal = "Total Tasks";
|
||||
$lang->report->manhourTotal = "Total Hours";
|
||||
$lang->report->validRate = "Valid Rate";
|
||||
$lang->report->validRateTips = "Solution is Solved/Postponed or status is Solved/Closed.";
|
||||
$lang->report->validRateTips = "Solution is Resolved/Postponed or status is Resolved/Closed.";
|
||||
$lang->report->unplanned = 'Unplanned';
|
||||
$lang->report->workday = 'Hours/Day';
|
||||
$lang->report->diffDays = 'days';
|
||||
|
||||
@@ -67,7 +67,7 @@ $lang->score->methods['story']['close'] = 'Close Story';
|
||||
$lang->score->methods['bug']['create'] = 'Report Bug';
|
||||
$lang->score->methods['bug']['confirmBug'] = 'Confirm Bug';
|
||||
$lang->score->methods['bug']['createFormCase'] = 'Report Bug form Case';
|
||||
$lang->score->methods['bug']['resolve'] = 'Solve Bug';
|
||||
$lang->score->methods['bug']['resolve'] = 'Resolve Bug';
|
||||
$lang->score->methods['bug']['saveTplModal'] = 'Save Template';
|
||||
$lang->score->methods['testtask']['runCase'] = 'Run Test Case';
|
||||
$lang->score->methods['testcase']['create'] = 'Create Test Case';
|
||||
|
||||
@@ -179,7 +179,7 @@ $lang->story->legendBugs = 'Linked Bugs';
|
||||
$lang->story->legendFromBug = 'From Bug';
|
||||
$lang->story->legendCases = 'Linked Cases';
|
||||
$lang->story->legendLinkStories = 'Linked Stories';
|
||||
$lang->story->legendChildStories = 'Decomposed Stories';
|
||||
$lang->story->legendChildStories = 'Children Stories';
|
||||
$lang->story->legendSpec = 'Description';
|
||||
$lang->story->legendVerify = 'Acceptance';
|
||||
$lang->story->legendMisc = 'Misc.';
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<form method='post' target='hiddenwin'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<?php $colWidth = $app->getClientLang() == 'en' ? 'w-140px' : 'w-80px';?>
|
||||
<?php $colWidth = $app->getClientLang() == 'en' ? 'w-150px' : 'w-80px';?>
|
||||
<th class='<?php echo $colWidth;?>'><?php echo $lang->story->closedReason;?></th>
|
||||
<td class='w-p25-f'><?php echo html::select('closedReason', $lang->story->reasonList, '', 'class="form-control" onchange="setStory(this.value)"');?></td><td></td>
|
||||
</tr>
|
||||
|
||||
@@ -311,7 +311,7 @@
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class="tab-pane <?php if($config->global->flow == 'onlyStory') echo 'active';?>" id='legendRelated'>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-130px' : 'w-70px';?>
|
||||
<?php $widthClass = $app->getClientLang() == 'en' ? 'w-110px' : 'w-70px';?>
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<?php if($config->global->flow != 'onlyStory'):?>
|
||||
|
||||
@@ -235,11 +235,11 @@
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->task->estimate?></span>
|
||||
<?php echo html::input("teamEstimate[]", $member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
|
||||
<?php echo html::input("teamEstimate[]", (float)$member->estimate, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
|
||||
<span class='input-group-addon fix-border'><?php echo $lang->task->consumed?></span>
|
||||
<?php echo html::input("teamConsumed[]", $member->consumed, "class='form-control text-center' readonly placeholder='{$lang->task->hour}'")?>
|
||||
<?php echo html::input("teamConsumed[]", (float)$member->consumed, "class='form-control text-center' readonly placeholder='{$lang->task->hour}'")?>
|
||||
<span class='input-group-addon fix-border'><?php echo $lang->task->left?></span>
|
||||
<?php echo html::input("teamLeft[]", $member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
|
||||
<?php echo html::input("teamLeft[]", (float)$member->left, "class='form-control text-center' placeholder='{$lang->task->hour}'")?>
|
||||
</div>
|
||||
</td>
|
||||
<td class='w-130px sort-handler'>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<?php if(!empty($task->team)):?>
|
||||
<tr>
|
||||
<th class='<?php echo $colWidth;?>'><?php echo $lang->task->hasConsumed;?></th>
|
||||
<td class='w-p25-f'><?php echo $task->myConsumed;?> <?php echo $lang->workingHour;?></td><td></td>
|
||||
<td class='w-p25-f'><?php echo (float)$task->myConsumed;?> <?php echo $lang->workingHour;?></td><td></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
@@ -55,9 +55,9 @@
|
||||
<tr>
|
||||
<th><?php echo empty($task->team) ? $lang->task->consumed : $lang->task->myConsumed;?></th>
|
||||
<td>
|
||||
<?php $consumed = empty($task->team) ? $task->consumed : $task->myConsumed;?>
|
||||
<?php $consumed = empty($task->team) ? $task->consumed : (float)$task->myConsumed;?>
|
||||
<?php
|
||||
echo "<span id='totalConsumed'>" . $consumed . "</span>" . $lang->workingHour . html::hidden('consumed', $consumed);
|
||||
echo "<span id='totalConsumed'>" . (float)$consumed . "</span> " . $lang->workingHour . html::hidden('consumed', $consumed);
|
||||
js::set('consumed', $consumed);
|
||||
?>
|
||||
</td>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<th><?php echo $lang->task->consumed;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $consumed = (!empty($task->team) && isset($task->team[$task->assignedTo])) ? $task->team[$task->assignedTo]->consumed : $task->consumed;?>
|
||||
<?php $consumed = (!empty($task->team) && isset($task->team[$task->assignedTo])) ? (float)$task->team[$task->assignedTo]->consumed : $task->consumed;?>
|
||||
<?php echo html::input('consumed', $consumed, "class='form-control'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span>
|
||||
</div>
|
||||
</td>
|
||||
@@ -56,7 +56,7 @@
|
||||
<th><?php echo $lang->task->left;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $left = (!empty($task->team) && isset($task->team[$task->assignedTo])) ? $task->team[$task->assignedTo]->left : $task->left;?>
|
||||
<?php $left = (!empty($task->team) && isset($task->team[$task->assignedTo])) ? (float)$task->team[$task->assignedTo]->left : $task->left;?>
|
||||
<?php echo html::input('left', $left, "class='form-control'");?> <span class='input-group-addon'><?php echo $lang->task->hour;?></span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
<?php if(!isonlybody()) echo "<div class='divider'></div>";?>
|
||||
<?php if(!$task->deleted):?>
|
||||
<?php
|
||||
if(empty($task->team) or empty($task->children)) common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id", $task, 'button', 'treemap-alt', '', '', '', "title='{$lang->task->children}'", $lang->task->children);
|
||||
if(empty($task->team) or empty($task->children)) common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id", $task, 'button', 'treemap-alt', '', '', '', "title='{$lang->task->children}'", $lang->task->children);
|
||||
common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'button', '', '', 'iframe', true, '', empty($task->team) ? $lang->task->assignTo : $lang->task->transfer);
|
||||
common::printIcon('task', 'start', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
common::printIcon('task', 'restart', "taskID=$task->id", $task, 'button', '', '', 'iframe showinonlybody', true);
|
||||
@@ -326,9 +326,9 @@
|
||||
<?php foreach($task->team as $member):?>
|
||||
<tr class='text-center'>
|
||||
<td class='text-left'><?php echo zget($users, $member->account)?></td>
|
||||
<td><?php echo $member->estimate?></td>
|
||||
<td><?php echo $member->consumed?></td>
|
||||
<td><?php echo $member->left?></td>
|
||||
<td><?php echo (float)$member->estimate?></td>
|
||||
<td><?php echo (float)$member->consumed?></td>
|
||||
<td><?php echo (float)$member->left?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
|
||||
@@ -130,25 +130,38 @@ class testreport extends control
|
||||
die(js::locate(inlink('view', "reportID=$reportID"), 'parent'));
|
||||
}
|
||||
|
||||
if($objectType == 'testtask' and empty($objectID) and $extra)
|
||||
if($objectType == 'testtask')
|
||||
{
|
||||
$productID = $extra;
|
||||
if(empty($objectID) and $extra) $productID = $extra;
|
||||
if($objectID)
|
||||
{
|
||||
$task = $this->testtask->getById($objectID);
|
||||
$productID = $this->commonAction($task->product, 'product');
|
||||
}
|
||||
|
||||
$taskPairs = array();
|
||||
$scopeAndStatus[0] = 'local';
|
||||
$scopeAndStatus[1] = 'totalStatus';
|
||||
$tasks = $this->testtask->getProductTasks($productID, 0, 'id_desc', null, $scopeAndStatus);
|
||||
foreach($tasks as $task) $taskPairs[$task->id] = $task->name;
|
||||
foreach($tasks as $testTask)
|
||||
{
|
||||
if($testTask->build == 'trunk') continue;
|
||||
$taskPairs[$testTask->id] = $testTask->name;
|
||||
}
|
||||
if(empty($taskPairs)) die(js::alert($this->lang->testreport->noTestTask) . js::locate('back'));
|
||||
|
||||
if(empty($objectID))
|
||||
{
|
||||
$objectID = key($taskPairs);
|
||||
$task = $this->testtask->getById($objectID);
|
||||
$productID = $this->commonAction($task->product, 'product');
|
||||
}
|
||||
$this->view->taskPairs = $taskPairs;
|
||||
die($this->display('testreport', 'selectTask'));
|
||||
}
|
||||
|
||||
if(empty($objectID)) die(js::alert($this->lang->testreport->noObjectID) . js::locate('back'));
|
||||
if($objectType == 'testtask')
|
||||
{
|
||||
$task = $this->testtask->getById($objectID);
|
||||
$productID = $this->commonAction($task->product, 'product');
|
||||
if($productID != $task->product) die(js::error($this->lang->error->accessDenied) . js::locate('back'));
|
||||
$productIdList[$productID] = $productID;
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#mainContent .main-header h2 .heading{float:left}
|
||||
#mainContent .main-header h2 .input-group{float:left; width:300px; margin-left:10px; font-weight:normal;}
|
||||
#mainContent .detail {border: 1px solid #e5e5e5; margin: 20px 0 0; padding: 0;}
|
||||
#mainContent .detail-title {background: #eee; padding: 10px;}
|
||||
#mainContent .detail-content {padding: 0;}
|
||||
#mainContent .detail .form-actions {padding-bottom: 20px;}
|
||||
#mainContent .detail .form-actions {padding-bottom: 20px;}
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
$(function()
|
||||
{
|
||||
if(objectType == 'project') $('#subNavbar ul li[data-id=qa]').addClass('active');
|
||||
$('#mainContent .main-header h2 #selectTask').change(function()
|
||||
{
|
||||
var taskID = $(this).val();
|
||||
if(taskID)
|
||||
{
|
||||
location.href = createLink('testreport', 'create', 'objectID=' + taskID + '&objectType=testtask');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
@@ -49,11 +49,11 @@ $lang->testreport->bugSeverityGroups = 'Bug Severity Distribution';
|
||||
$lang->testreport->bugTypeGroups = 'Bug Type Distribution';
|
||||
$lang->testreport->bugStatusGroups = 'Bug Status Distribution';
|
||||
$lang->testreport->bugOpenedByGroups = 'Bug ReportedBy Distribution';
|
||||
$lang->testreport->bugResolvedByGroups = 'Bug SolvedBy Distribution';
|
||||
$lang->testreport->bugResolutionGroups = 'Bug Solution Distribution';
|
||||
$lang->testreport->bugResolvedByGroups = 'Bug ResolvedBy Distribution';
|
||||
$lang->testreport->bugResolutionGroups = 'Bug Resolution Distribution';
|
||||
$lang->testreport->bugModuleGroups = 'Bug Module Distribution';
|
||||
$lang->testreport->legacyBugs = 'Left Bugs';
|
||||
$lang->testreport->bugConfirmedRate = 'Confirmed-Bug Rate (Solution is fixed or postponed / status is solved or closed)';
|
||||
$lang->testreport->bugConfirmedRate = 'Confirmed-Bug Rate (Resolution is fixed or postponed / status is resolved or closed)';
|
||||
$lang->testreport->bugCreateByCaseRate = 'Bug-Reported-in-Case Rate (Bugs reported in cases / New added bugs)';
|
||||
|
||||
$lang->testreport->caseSummary = 'Total <strong>%s</strong> cases. <strong>%s</strong> cases run. <strong>%s</strong> results generated. <strong>%s</strong> cases failed.';
|
||||
@@ -63,7 +63,7 @@ $lang->testreport->moreNotice = 'More features can be extended with referenc
|
||||
$lang->testreport->exportNotice = "Exported By <a href='https://www.zentao.net' target='_blank' style='color:grey'>ZenTao</a>";
|
||||
$lang->testreport->noReport = "No report has been generated. Please check it later.";
|
||||
$lang->testreport->foundBugTip = "Bugs generated in this build and generated in the test period.";
|
||||
$lang->testreport->legacyBugTip = "Active bugs, or solved bugs that are not in the test period.";
|
||||
$lang->testreport->legacyBugTip = "Active bugs, or resolved bugs that are not in the test period.";
|
||||
$lang->testreport->fromCaseBugTip = "Bugs generated due to the failed case run in the test period.";
|
||||
$lang->testreport->errorTrunk = "You cannot create a Testing report for the trunk. Please modify the linked build!";
|
||||
$lang->testreport->noTestTask = "No test requests for this {$lang->productCommon}, so no reports can be generated. Please go to {$lang->productCommon} which has test requests and then generate the report.";
|
||||
@@ -72,7 +72,7 @@ $lang->testreport->moreProduct = "Testing reports can only be generated for t
|
||||
|
||||
$lang->testreport->bugSummary = <<<EOD
|
||||
Total <strong>%s</strong> Bugs reported <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->foundBugTip}'><i class='icon-help'></i></a>,
|
||||
<strong>%s</strong> Bugs remained unsolved <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->legacyBugTip}'><i class='icon-help'></i></a>,
|
||||
<strong>%s</strong> Bugs remained unresolved <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->legacyBugTip}'><i class='icon-help'></i></a>,
|
||||
<strong>%s</strong> Bugs generated due to the failure of case run <a data-toggle='tooltip' class='text-warning' title='{$lang->testreport->fromCaseBugTip}'><i class='icon-help'></i></a>.
|
||||
Bug Effective Rate <a data-toggle='tooltip' class='text-warning' title='Solution is solved or delayed / status is solved or closed'><i class='icon-help'></i></a>: <strong>%s</strong>,Bugs reported from case rate<a data-toggle='tooltip' class='text-warning' title='Bugs created from cases / bugs'><i class='icon-help'></i></a>: <strong>%s</strong>
|
||||
Bug Effective Rate <a data-toggle='tooltip' class='text-warning' title='Resolution is resolved or delayed / status is resolved or closed'><i class='icon-help'></i></a>: <strong>%s</strong>,Bugs reported from case rate<a data-toggle='tooltip' class='text-warning' title='Bugs created from cases / bugs'><i class='icon-help'></i></a>: <strong>%s</strong>
|
||||
EOD;
|
||||
|
||||
@@ -66,7 +66,7 @@ $lang->testreport->foundBugTip = "影响版本在测试轮次内,并且创
|
||||
$lang->testreport->legacyBugTip = "Bug状态是激活,或Bug的解决时间在测试结束时间之后。";
|
||||
$lang->testreport->fromCaseBugTip = "测试时间范围内,用例执行失败后创建的Bug。";
|
||||
$lang->testreport->errorTrunk = "主干版本不能创建测试报告,请修改关联版本!";
|
||||
$lang->testreport->noTestTask = "该{$lang->productCommon}下还没有测试单,不能创建报告。请切换到有测试单的{$lang->productCommon},再创建。";
|
||||
$lang->testreport->noTestTask = "该{$lang->productCommon}下还没有关联非Trunk的测试单,不能创建报告。请先创建测试单,再创建。";
|
||||
$lang->testreport->noObjectID = "没有选定测试单或{$lang->projectCommon},无法创建测试报告!";
|
||||
$lang->testreport->moreProduct = "只能对同一个{$lang->productCommon}生成测试报告。";
|
||||
|
||||
|
||||
@@ -18,7 +18,15 @@
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->testreport->create;?></h2>
|
||||
<h2 class='clearfix'>
|
||||
<div class='heading'><?php echo $lang->testreport->create;?></div>
|
||||
<?php if(!empty($taskPairs)):?>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->testtask->common;?></span>
|
||||
<?php echo html::select('selectTask', $taskPairs, $objectID, "class='form-control chosen'");?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</h2>
|
||||
</div>
|
||||
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
|
||||
<div class='detail'>
|
||||
|
||||
@@ -54,6 +54,7 @@ class testtask extends control
|
||||
{
|
||||
/* Save session. */
|
||||
$this->session->set('testtaskList', $this->app->getURI(true));
|
||||
$this->session->set('buildList', $this->app->getURI(true));
|
||||
|
||||
$scopeAndStatus = explode(',',$type);
|
||||
$this->session->set('testTaskVersionScope', $scopeAndStatus[0]);
|
||||
|
||||
@@ -147,8 +147,8 @@ $lang->testtask->report->charts['testTaskPerRunner'] = 'RunBy Report';
|
||||
$lang->testtask->report->charts['bugSeverityGroups'] = 'Bug Severity Distribution';
|
||||
$lang->testtask->report->charts['bugStatusGroups'] = 'Bug Status Distribution';
|
||||
$lang->testtask->report->charts['bugOpenedByGroups'] = 'Bug ReportedBy Distribution';
|
||||
$lang->testtask->report->charts['bugResolvedByGroups'] = 'Bug SolvedBy Distribution';
|
||||
$lang->testtask->report->charts['bugResolutionGroups'] = 'Bug Solution Distribution';
|
||||
$lang->testtask->report->charts['bugResolvedByGroups'] = 'Bug ResolvedBy Distribution';
|
||||
$lang->testtask->report->charts['bugResolutionGroups'] = 'Bug Resolution Distribution';
|
||||
$lang->testtask->report->charts['bugModuleGroups'] = 'Bug Module Distribution';
|
||||
|
||||
$lang->testtask->report->options = new stdclass();
|
||||
|
||||
@@ -40,6 +40,9 @@ class translate extends control
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
/* Compare language when version is changed. */
|
||||
$this->translate->compare();
|
||||
|
||||
$itemCount = $this->translate->getLangItemCount();
|
||||
$statistics = $this->translate->getLangStatistics();
|
||||
$finishedLangs = $translatingLangs = array();
|
||||
@@ -157,6 +160,13 @@ class translate extends control
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$statusFile = $this->loadModel('upgrade')->checkSafeFile();
|
||||
if($statusFile)
|
||||
{
|
||||
$this->app->loadLang('editor');
|
||||
$this->send(array('result' => 'fail', 'message' => str_replace('\n', '<br />', sprintf($this->lang->editor->noticeOkFile, $statusFile))));
|
||||
}
|
||||
|
||||
$this->translate->addTranslation($language, $module, $referLang);
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'reload'));
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
code{padding-left: 0px !important;}
|
||||
@@ -1,4 +1,4 @@
|
||||
#mainMenu{font-size:16px;padding:5px 0px;}
|
||||
#mainMenu{font-size:14px;padding:5px 0px; line-height: 25px;}
|
||||
.panel{margin-bottom:0px; border:0px;}
|
||||
.panel .panel-heading{border-bottom:1px solid #ddd;}
|
||||
.panel .panel-body{padding-bottom:5px;}
|
||||
|
||||
@@ -6,5 +6,6 @@ function setTranslateView(view)
|
||||
|
||||
$(function()
|
||||
{
|
||||
$('input[id^=values]:first').focus();
|
||||
adjustKeyWidth();
|
||||
});
|
||||
|
||||
@@ -39,8 +39,8 @@ $lang->translate->allTotal = 'Total';
|
||||
$lang->translate->translatedTotal = 'Translated';
|
||||
$lang->translate->changedTotal = 'Modified';
|
||||
$lang->translate->reviewedTotal = 'Reviewed';
|
||||
$lang->translate->translatedProgress = 'Translation';
|
||||
$lang->translate->reviewedProgress = 'Review';
|
||||
$lang->translate->translatedProgress = 'Translation %';
|
||||
$lang->translate->reviewedProgress = 'Review %';
|
||||
|
||||
$lang->translate->builtIn = 'Built-in Language';
|
||||
$lang->translate->finished = 'Finished Translation';
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<form class='main-form form-ajax' method='post' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->translate->name;?></th>
|
||||
<th class='w-150px'><?php echo $lang->translate->name;?></th>
|
||||
<td class='w-p30 required'><?php echo html::input('name', '', "class='form-control'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
<?php if($config->translate->needReview):?>
|
||||
<th class='w-100px'><?php echo $lang->translate->reviewedTotal;?></th>
|
||||
<?php endif;?>
|
||||
<th class='w-80px'><?php echo $lang->translate->translatedProgress;?></th>
|
||||
<th class='w-110px'><?php echo $lang->translate->translatedProgress;?></th>
|
||||
<?php if($config->translate->needReview):?>
|
||||
<th class='w-80px'><?php echo $lang->translate->reviewedProgress;?></th>
|
||||
<th class='w-90px'><?php echo $lang->translate->reviewedProgress;?></th>
|
||||
<?php endif;?>
|
||||
<th class='<?php echo $app->getClientLang() == 'en' ? 'w-150px' : 'w-110px';?>'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
@@ -74,12 +74,10 @@
|
||||
<td><?php echo (round($moduleStatistics->reviewed / $moduleStatistics->count, 3) * 100) . '%';?></td>
|
||||
<?php endif;?>
|
||||
<td>
|
||||
<div class='btn-group'>
|
||||
<?php
|
||||
if(common::hasPriv('translate', 'module')) echo html::a($this->createLink('translate', 'module', "language=$language&module=$module"), $lang->translate->common, '', "class='btn btn-sm'");
|
||||
if(common::hasPriv('translate', 'review') and $config->translate->needReview) echo html::a($this->createLink('translate', 'review', "language=$language&module=$module"), $lang->translate->review, '', "class='btn btn-sm'");
|
||||
if(common::hasPriv('translate', 'module')) echo html::a($this->createLink('translate', 'module', "language=$language&module=$module"), $lang->translate->common, '', "class='btn btn-sm btn-success'");
|
||||
if(common::hasPriv('translate', 'review') and $config->translate->needReview) echo html::a($this->createLink('translate', 'review', "language=$language&module=$module"), $lang->translate->review, '', "class='btn btn-sm btn-info'");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $i++;?>
|
||||
|
||||
@@ -164,7 +164,6 @@ class upgrade extends control
|
||||
}
|
||||
if(empty($needProcess) or $processed == 'yes')
|
||||
{
|
||||
$this->loadModel('translate')->compare();
|
||||
$this->loadModel('setting')->updateVersion($this->config->version);
|
||||
|
||||
@unlink($this->app->getAppRoot() . 'www/install.php');
|
||||
|
||||
@@ -97,7 +97,7 @@ $lang->user->dynamic = 'Dynamics';
|
||||
$lang->user->openedBy = 'CreatedBy %s';
|
||||
$lang->user->assignedTo = 'AssignedTo %s';
|
||||
$lang->user->finishedBy = 'FinishedBy %s';
|
||||
$lang->user->resolvedBy = 'SolvedBy %s';
|
||||
$lang->user->resolvedBy = 'ResolvedBy %s';
|
||||
$lang->user->closedBy = 'ClosedBy %s';
|
||||
$lang->user->reviewedBy = 'ReviewedBy %s';
|
||||
$lang->user->canceledBy = 'CancelledBy %s';
|
||||
@@ -139,7 +139,7 @@ $lang->user->statusList['delete'] = 'Deleted';
|
||||
$lang->user->personalData['createdTodo'] = 'Todos Created';
|
||||
$lang->user->personalData['createdStory'] = 'Stories Created';
|
||||
$lang->user->personalData['finishedTask'] = 'Tasks Finished';
|
||||
$lang->user->personalData['resolvedBug'] = 'Bugs Solved';
|
||||
$lang->user->personalData['resolvedBug'] = 'Bugs Resolved';
|
||||
$lang->user->personalData['createdCase'] = 'Cases Created';
|
||||
|
||||
$lang->user->keepLogin['on'] = 'Keep Login';
|
||||
|
||||
@@ -36,15 +36,15 @@
|
||||
<div class='main-table'>
|
||||
<table class='table has-sort-head tablesorter'>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<tr class='text-center'>
|
||||
<th class='w-id'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-severity'><?php echo $lang->bug->severityAB;?></th>
|
||||
<th class='w-pri'><?php echo $lang->priAB;?></th>
|
||||
<th class='w-type'><?php echo $lang->typeAB;?></th>
|
||||
<th><?php echo $lang->bug->title;?></th>
|
||||
<th class='text-left'><?php echo $lang->bug->title;?></th>
|
||||
<th class='w-90px'><?php echo $lang->openedByAB;?></th>
|
||||
<th class='w-user'><?php echo $lang->bug->resolvedBy;?></th>
|
||||
<th class='w-resolution'><?php echo $lang->bug->resolutionAB;?></th>
|
||||
<th class='w-100px'><?php echo $lang->bug->resolvedBy;?></th>
|
||||
<th class='w-100px'><?php echo $lang->bug->resolutionAB;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
Reference in New Issue
Block a user