This commit is contained in:
liugang
2018-05-16 14:49:59 +08:00
37 changed files with 269 additions and 269 deletions
+2 -18
View File
@@ -1,18 +1,2 @@
.cards {margin: 5% auto;}
.cards > .col-sm-6 {width: 25%; padding: 0 10px}
.card {height: 250px; position: relative; padding-top: 50px; border-radius: 0; margin: 0}
.card > .media {position: absolute; left: 0; top: 0; width: 100%; background: #f1f1f1; height:50px; bottom: 0; overflow: hidden; z-index: 90; transition: all 0.4s;}
.card > .media > .icon {position: absolute; display: block; font-size: 56px; color: #ddd; z-index: 99; bottom: -10px; right: -6px; transition: all 0.4s;}
.card > .media > h5 {position: absolute; display: block; color: #666; z-index: 100; font-size: 14px; left: 15px; top: 10px; transition: all 0.4s;}
.card:hover > .media {background: #F8FAFE}
.card:hover > .media > .icon {color: #ccc}
.card .card-content {padding: 20px; border:1px solid #f1f1f1;}
.card-content > ul {padding-left: 20px;}
.card-content > ul > li {margin-bottom: 5px;}
.card a, .card:hover a {color: #444}
.card a:hover {color: #000;}
#notice {margin: -20px -20px 20px}
#titlebar {margin-top: -20px; border-top: none}
#notice + #titlebar {margin-top: 0; border-top: 1px solid #e5e5e5}
#proversion, #zentaotrain{color:#D2322D}
#notice {margin: -20px -20px 20px; padding: 20px;}
#zentaoLinks {margin-top: 20px;}
+8 -10
View File
@@ -14,21 +14,19 @@
<div id='mainContent' class='main-content'>
<?php if(!$bind and !$ignore and common::hasPriv('admin', 'register')):?>
<div id="notice" class='alert alert-success'>
<?php echo html::a(inlink('ignore'), '<i class="icon-trash"></i> ' . $lang->admin->notice->ignore, 'hiddenwin', 'class="close" data-dismiss="alert" style="font-size: 12px"');?>
<?php echo html::a(inlink('ignore'), '<i class="icon-close icon-sm"></i> ' . $lang->admin->notice->ignore, 'hiddenwin', 'class="close" data-dismiss="alert" style="font-size: 12px"');?>
<div class="content"><i class='icon-info-sign'></i> <?php echo sprintf($lang->admin->notice->register, html::a(inlink('register'), $lang->admin->register->click, '', 'class="alert-link"'));?></div>
</div>
<?php endif;?>
<div class='main-header'>
<div class='heading'>
<strong>
<?php
printf($lang->admin->info->version, $config->version);
if($bind) echo sprintf($lang->admin->info->account, '<span class="red">' . $account . '</span>');
echo $lang->admin->info->links;
?>
</strong>
</div>
<h2>
<?php
printf($lang->admin->info->version, $config->version);
if($bind) echo sprintf($lang->admin->info->account, '<span class="red">' . $account . '</span>');
echo $lang->admin->info->links;
?>
</h2>
</div>
<?php include '../../misc/view/links.html.php';?>
</div>
File diff suppressed because one or more lines are too long
+6
View File
@@ -1,3 +1,9 @@
.ke-toolbar .ke-outline[data-name='savetemplate'] {display: none}
#modulemenu .nav #dropMenu #searchResult .closed{text-decoration:none;}
.nav #moreMenus{cursor: pointer;}
#batchCreateForm .input-group, #batchEditForm .input-group,
#batchCreateForm .input-group .form-control, #batchEditForm .input-group .form-control {position: static;}
#batchCreateForm .input-group .colorpicker, #batchEditForm .input-group .colorpicker {z-index: 2;}
#batchCreateForm .input-group .colorpicker.open, #batchEditForm .input-group .colorpicker.open {z-index: 5;}
+1 -1
View File
@@ -1,2 +1,2 @@
.chosen-container[id^="buildProject"] {max-width: 160px; border-radius: 0}
.chosen-container[id^="buildProject"] .chosen-drop {min-width: 400px;!important}
.chosen-container[id^="buildProject"] .chosen-drop {min-width: 300px;!important}
+2 -2
View File
@@ -24,7 +24,7 @@
<?php endif;?>
</h2>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-70px'><?php echo $lang->bug->assignedTo;?></th>
@@ -32,7 +32,7 @@
</tr>
<tr>
<th><?php echo $lang->bug->openedBuild;?></th>
<td><?php echo html::select('openedBuild[]', $builds, $bug->openedBuild, 'size=4 multiple=multiple class="form-control chosen"');?></td>
<td colspan='2'><?php echo html::select('openedBuild[]', $builds, $bug->openedBuild, 'size=4 multiple=multiple class="form-control chosen"');?></td>
</tr>
<tr>
<th><?php echo $lang->comment;?></th>
+1 -1
View File
@@ -28,7 +28,7 @@ js::set('page', 'assignedto');
<?php endif;?>
</h2>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->bug->assignBug;?></th>
+127 -149
View File
@@ -13,157 +13,135 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('dittoNotice', $this->lang->bug->dittoNotice);?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['bug']);?></span>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['batchEdit']);?></small> <?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></strong>
<div class='actions'>
<button type="button" class="btn btn-default" data-toggle="customModal"><i class='icon icon-cog'></i> </button>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></h2>
<div class="pull-right btn-toolbar">
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=bug&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
</div>
</div>
</div>
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<?php
$visibleFields = array();
$requiredFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->bug->edit->requiredFields) as $field)
{
if($field)
{
$requiredFields[$field] = '';
if(strpos(",{$config->bug->list->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = '';
}
}
$columns = count($visibleFields) + 2;
?>
<form class='form-condensed' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "productID=$productID");?>">
<table class='table table-form table-fixed with-border'>
<thead>
<tr>
<th class='w-50px'><?php echo $lang->idAB;?></th>
<th class='w-110px<?php echo zget($visibleFields, 'type', ' hidden')?>'>
<?php echo $lang->bug->type;?>
<?php if(isset($requiredFields['type'])) echo " <span class='required'></span>";?>
</th>
<th class='w-70px<?php echo zget($visibleFields, 'severity', ' hidden')?>'>
<?php echo $lang->bug->severityAB;?>
<?php if(isset($requiredFields['severity'])) echo " <span class='required'></span>";?>
</th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden')?>'>
<?php echo $lang->bug->pri;?>
<?php if(isset($requiredFields['pri'])) echo " <span class='required'></span>";?>
</th>
<th <?php if(count($visibleFields) >= 10) echo "class='w-150px'"?>><?php echo $lang->bug->title;?> <span class='required'></span></th>
<?php if($branchProduct):?>
<th class='w-150px<?php echo zget($visibleFields, 'branch', ' hidden')?>'><?php echo $lang->bug->branch;?></th>
<?php endif;?>
<th class='w-150px<?php echo zget($visibleFields, 'productplan', ' hidden')?>'>
<?php echo $lang->bug->productplan;?>
<?php if(isset($requiredFields['productplan'])) echo " <span class='required'></span>";?>
</th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>'>
<?php echo $lang->bug->assignedTo;?>
<?php if(isset($requiredFields['assignedTo'])) echo " <span class='required'></span>";?>
</th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', ' hidden')?>'>
<?php echo $lang->bug->deadline;?>
<?php if(isset($requiredFields['deadline'])) echo " <span class='required'></span>";?>
</th>
<th class='w-90px<?php echo zget($visibleFields, 'status', ' hidden')?>'><?php echo $lang->bug->status;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'os', ' hidden')?>'>
<?php echo $lang->bug->os;?>
<?php if(isset($requiredFields['os'])) echo " <span class='required'></span>";?>
</th>
<th class='w-100px<?php echo zget($visibleFields, 'browser', ' hidden')?>'>
<?php echo $lang->bug->browser;?>
<?php if(isset($requiredFields['browser'])) echo " <span class='required'></span>";?>
</th>
<th class='w-100px<?php echo zget($visibleFields, 'keywords', ' hidden')?>'>
<?php echo $lang->bug->keywords;?>
<?php if(isset($requiredFields['keywords'])) echo " <span class='required'></span>";?>
</th>
<th class='w-120px<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>'><?php echo $lang->bug->resolvedByAB;?></th>
<th class='w-120px<?php echo zget($visibleFields, 'resolution', ' hidden')?>'><?php echo $lang->bug->resolutionAB;?></th>
</tr>
</thead>
<tbody>
<?php foreach($bugs as $bugID => $bug):?>
<?php
if(!$productID)
<?php if(isset($suhosinInfo)):?>
<div class='alert alert-info'><?php echo $suhosinInfo;?></div>
<?php else:?>
<?php
$visibleFields = array();
$requiredFields = array();
foreach(explode(',', $showFields) as $field)
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->bug->edit->requiredFields) as $field)
{
if($field)
{
$product = $this->product->getByID($bug->product);
$plans = $this->loadModel('productplan')->getPairs($bug->product, $branch);
$plans = array('' => '', 'ditto' => $this->lang->bug->ditto) + $plans;
$branches = $product->type == 'normal' ? array('' => '') : $this->loadModel('branch')->getPairs($product->id);
if($product->type != 'normal')
{
foreach($branches as $branchID => $branchName) $branches[$branchID] = '/' . $product->name . '/' . $branchName;
$branches = array('ditto' => $this->lang->story->ditto) + $branches;
}
$requiredFields[$field] = '';
if(strpos(",{$config->bug->list->customBatchEditFields},", ",{$field},") !== false) $visibleFields[$field] = '';
}
/**
* Remove designchange, newfeature, trackings from the typeList, because should be tracked in story or task.
* These thress types if upgrade from bugfree2.x.
*/
if($bug->type != 'designchange') unset($typeList['designchange']);
if($bug->type != 'newfeature') unset($typeList['newfeature']);
if($bug->type != 'trackthings') unset($typeList['trackthings']);
?>
<tr class='text-center'>
<td><?php echo $bugID . html::hidden("bugIDList[$bugID]", $bugID);?></td>
<td <?php echo zget($visibleFields, 'type', "class='hidden'")?>><?php echo html::select("types[$bugID]", $typeList, $bug->type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'severity', "class='hidden'")?>><?php echo html::select("severities[$bugID]", $severityList, $bug->severity, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pris[$bugID]", $priList, $bug->pri, 'class=form-control');?></td>
<td style='overflow:visible' title='<?php echo $bug->title?>'>
<div class='input-group'>
<?php echo html::hidden("colors[$bugID]", $bug->color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->bug->colorTag}' data-update-text='#titles\\[{$bugID}\\]'");?>
<?php echo html::input("titles[$bugID]", $bug->title, 'class=form-control');?>
<div>
</td>
<?php if($branchProduct):?>
<td class='text-left<?php echo zget($visibleFields, 'branch', ' hidden')?>' style='overflow:visible'>
<?php $branchProductID = $productID ? $productID : $product->id;?>
<?php $disabled = (isset($product) and $product->type == 'normal') ? "disabled='disabled'" : '';?>
<?php echo html::select("branches[$bugID]", $branches, $bug->branch, "class='form-control chosen' $disabled");?>
</td>
<?php endif;?>
<td class='text-left<?php echo zget($visibleFields, 'productplan', ' hidden')?>' style='overflow:visible'><?php echo html::select("plans[$bugID]", $plans, $bug->plan, "class='form-control chosen'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>' style='overflow:visible'><?php echo html::select("assignedTos[$bugID]", $users, $bug->assignedTo, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'deadline', ' hidden')?>' style='overflow:visible'><?php echo html::input("deadlines[$bugID]", $bug->deadline, "class='form-control form-date'");?></td>
<td <?php echo zget($visibleFields, 'status', "class='hidden'")?>><?php echo html::select("statuses[$bugID]", $statusList, $bug->status, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'os', "class='hidden'")?>><?php echo html::select("os[$bugID]", $osList, $bug->os, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'browser', "class='hidden'")?>><?php echo html::select("browsers[$bugID]", $browserList, $bug->browser, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'keywords', "class='hidden'")?>><?php echo html::input("keywords[$bugID]", $bug->keywords, 'class=form-control');?></td>
<td class='text-left<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("resolvedBys[$bugID]", $users, $bug->resolvedBy, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'resolution', "class='hidden'")?>>
<table class='w-p100'>
<tr>
<td class='pd-0'>
<?php echo html::select("resolutions[$bugID]", $resolutionList, $bug->resolution, "class=form-control onchange=setDuplicate(this.value,$bugID)");?>
</td>
<td class='pd-0 w-p50' id='<?php echo 'duplicateBugBox' . $bugID;?>' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
<?php echo html::input("duplicateBugs[$bugID]", '', "class=form-control placeholder='{$lang->bug->duplicateBug}'");?>
</td>
</tr>
</table>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr><td colspan='<?php echo $branchProduct ? $columns : ($columns - 1);?>' class='text-center'><?php echo html::submitButton();?></td></tr>
</tfoot>
</table>
</form>
<?php endif;?>
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustomFields', 'module=bug&section=custom&key=batchEditFields')?>
<?php include '../../common/view/customfield.html.php';?>
}
$columns = count($visibleFields) + 2;
?>
<form class='load-indicator main-form' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "productID=$productID")?>" id='batchEditForm'>
<table class='table table-form'>
<thead>
<tr>
<th class='w-50px'><?php echo $lang->idAB;?></th>
<th class='w-110px<?php echo zget($visibleFields, 'type', ' hidden') . zget($requiredFields, 'type', '', ' required');?>'><?php echo $lang->bug->type;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'severity', ' hidden') . zget($requiredFields, 'severity', '', ' required');?>'><?php echo $lang->bug->severityAB;?></th>
<th class='w-70px<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?>'><?php echo $lang->bug->pri;?></th>
<th class="required <?php if(count($visibleFields) >= 10) echo ' w-150px';?>"><?php echo $lang->bug->title;?></th>
<?php if($branchProduct):?>
<th class='w-150px<?php echo zget($visibleFields, 'branch', ' hidden')?>'><?php echo $lang->bug->branch;?></th>
<?php endif;?>
<th class='w-150px<?php echo zget($visibleFields, 'productplan', ' hidden') . zget($requiredFields, 'productplan', '', ' required');?>'><?php echo $lang->bug->productplan;?></th>
<th class='w-150px<?php echo zget($visibleFields, 'assignedTo', ' hidden') . zget($requiredFields, 'assignedTo', '', ' required');?>'><?php echo $lang->bug->assignedTo;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'deadline', ' hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->bug->deadline;?></th>
<th class='w-90px<?php echo zget($visibleFields, 'status', ' hidden')?>'><?php echo $lang->bug->status;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'os', ' hidden') . zget($requiredFields, 'os', '', ' required');?>'><?php echo $lang->bug->os;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'browser', ' hidden') . zget($requiredFields, 'browser', '', ' required');?>'><?php echo $lang->bug->browser;?></th>
<th class='w-100px<?php echo zget($visibleFields, 'keywords', ' hidden') . zget($requiredFields, 'keywords', '', ' required');?>'><?php echo $lang->bug->keywords;?></th>
<th class='w-120px<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>'><?php echo $lang->bug->resolvedByAB;?></th>
<th class='w-120px<?php echo zget($visibleFields, 'resolution', ' hidden')?>'><?php echo $lang->bug->resolutionAB;?></th>
</tr>
</thead>
<tbody>
<?php foreach($bugs as $bugID => $bug):?>
<?php
if(!$productID)
{
$product = $this->product->getByID($bug->product);
$plans = $this->loadModel('productplan')->getPairs($bug->product, $branch);
$plans = array('' => '', 'ditto' => $this->lang->bug->ditto) + $plans;
$branches = $product->type == 'normal' ? array('' => '') : $this->loadModel('branch')->getPairs($product->id);
if($product->type != 'normal')
{
foreach($branches as $branchID => $branchName) $branches[$branchID] = '/' . $product->name . '/' . $branchName;
$branches = array('ditto' => $this->lang->story->ditto) + $branches;
}
}
/**
* Remove designchange, newfeature, trackings from the typeList, because should be tracked in story or task.
* These thress types if upgrade from bugfree2.x.
*/
if($bug->type != 'designchange') unset($typeList['designchange']);
if($bug->type != 'newfeature') unset($typeList['newfeature']);
if($bug->type != 'trackthings') unset($typeList['trackthings']);
?>
<tr>
<td><?php echo $bugID . html::hidden("bugIDList[$bugID]", $bugID);?></td>
<td <?php echo zget($visibleFields, 'type', "class='hidden'")?>><?php echo html::select("types[$bugID]", $typeList, $bug->type, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'severity', "class='hidden'")?>><?php echo html::select("severities[$bugID]", $severityList, $bug->severity, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pris[$bugID]", $priList, $bug->pri, 'class=form-control');?></td>
<td style='overflow:visible' title='<?php echo $bug->title?>'>
<div class='input-group'>
<div class="input-control has-icon-right">
<?php echo html::input("titles[$bugID]", $bug->title, "class='form-control' autocomplete='off' style='color:{$bug->color}'");?>
<div class="colorpicker">
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar" style="background:<?php echo $bug->color;?>"></span><i class="ic"></i></button>
<ul class="dropdown-menu clearfix">
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
</ul>
<?php echo html::hidden("colors[$bugID]", $bug->color, "data-provide='colorpicker' data-icon='color' data-wrapper='input-control-icon-right' data-update-color='#titles\\[{$bugID}\\]'");?>
</div>
</div>
<div>
</td>
<?php if($branchProduct):?>
<td class='<?php echo zget($visibleFields, 'branch', ' hidden')?>' style='overflow:visible'>
<?php $branchProductID = $productID ? $productID : $product->id;?>
<?php $disabled = (isset($product) and $product->type == 'normal') ? "disabled='disabled'" : '';?>
<?php echo html::select("branches[$bugID]", $branches, $bug->branch, "class='form-control chosen' $disabled");?>
</td>
<?php endif;?>
<td class='<?php echo zget($visibleFields, 'productplan', ' hidden')?>' style='overflow:visible'><?php echo html::select("plans[$bugID]", $plans, $bug->plan, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'assignedTo', ' hidden')?>' style='overflow:visible'><?php echo html::select("assignedTos[$bugID]", $users, $bug->assignedTo, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'deadline', ' hidden')?>' style='overflow:visible'><?php echo html::input("deadlines[$bugID]", $bug->deadline, "class='form-control form-date'");?></td>
<td <?php echo zget($visibleFields, 'status', "class='hidden'")?>><?php echo html::select("statuses[$bugID]", $statusList, $bug->status, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'os', "class='hidden'")?>><?php echo html::select("os[$bugID]", $osList, $bug->os, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'browser', "class='hidden'")?>><?php echo html::select("browsers[$bugID]", $browserList, $bug->browser, 'class=form-control');?></td>
<td <?php echo zget($visibleFields, 'keywords', "class='hidden'")?>><?php echo html::input("keywords[$bugID]", $bug->keywords, 'class=form-control');?></td>
<td class='<?php echo zget($visibleFields, 'resolvedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("resolvedBys[$bugID]", $users, $bug->resolvedBy, "class='form-control chosen'");?></td>
<td <?php echo zget($visibleFields, 'resolution', "class='hidden'")?>>
<table class='table-borderless w-100px'>
<tr>
<td class='pd-0'><?php echo html::select("resolutions[$bugID]", $resolutionList, $bug->resolution, "class=form-control onchange=setDuplicate(this.value,$bugID)");?></td>
<td class='pd-0 w-p50' id='<?php echo 'duplicateBugBox' . $bugID;?>' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>>
<?php echo html::input("duplicateBugs[$bugID]", '', "class=form-control placeholder='{$lang->bug->duplicateBug}'");?>
</td>
</tr>
</table>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr><td colspan='<?php echo $branchProduct ? $columns : ($columns - 1);?>' class='text-center'><?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?></td></tr>
</tfoot>
</table>
</form>
<?php endif;?>
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -24,7 +24,7 @@
<?php endif;?>
</h2>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
+3 -3
View File
@@ -28,7 +28,7 @@ js::set('page', 'confirmbug');
<?php endif;?>
</h2>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<form method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->bug->assignedTo;?></th>
@@ -37,11 +37,11 @@ js::set('page', 'confirmbug');
</tr>
<tr>
<th><?php echo $lang->bug->type;?></th>
<td><?php echo html::select('type', $lang->bug->typeList, $bug->type, 'class=form-control');?></td>
<td><?php echo html::select('type', $lang->bug->typeList, $bug->type, "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->bug->pri;?></th>
<td><?php echo html::select('pri', $lang->bug->priList, $bug->pri, 'class=form-control');?></td>
<td><?php echo html::select('pri', $lang->bug->priList, $bug->pri, "class='form-control chosen'");?></td>
</tr>
<tr>
<th><?php echo $lang->bug->mailto;?></th>
+7 -3
View File
@@ -29,11 +29,11 @@ js::set('productID' , $bug->product);
<?php endif;?>
</h2>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<form method='post' enctype='multipart/form-data' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-100px'><?php echo $lang->bug->resolution;?></th>
<td class='w-p35-f'><?php echo html::select('resolution', $lang->bug->resolutionList, '', 'class=form-control onchange=setDuplicate(this.value)');?></td>
<td class='w-p35-f'><?php echo html::select('resolution', $lang->bug->resolutionList, '', "class='form-control chosen' onchange=setDuplicate(this.value)");?></td>
<td></td>
</tr>
<tr id='duplicateBugBox' class='hide'>
@@ -63,7 +63,11 @@ js::set('productID' , $bug->product);
</tr>
<tr>
<th><?php echo $lang->bug->resolvedDate;?></th>
<td><?php echo html::input('resolvedDate', helper::now(), "class='form-control form-date'");?></td>
<td>
<div class='datepicker-wrapper datepicker-date'>
<?php echo html::input('resolvedDate', helper::now(), "class='form-control form-date'");?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->bug->assignedTo;?></th>
+4 -19
View File
@@ -1,19 +1,4 @@
.cards {padding-bottom: 0;}
.cards > .col-sm-6 {width: 25%; padding: 0 10px}
.card {height: 225px; position: relative; padding-top: 50px; margin: 0}
.card > .media {position: absolute; left: 0; top: 0; width: 100%; background: #f1f1f1; height:50px; bottom: 0; overflow: hidden; z-index: 90; transition: all 0.4s;}
.card > .media > .icon {position: absolute; display: block; font-size: 56px; color: #ddd; z-index: 99; bottom: -10px; right: -6px; transition: all 0.4s;}
.card > .media > h5 {position: absolute; display: block; color: #666; z-index: 100; font-size: 14px; left: 15px; top: 10px; transition: all 0.4s;}
.card:hover > .media {background: #e5e5e5}
.card:hover > .media > .icon {color: #ccc}
.card .card-content {padding: 10px 20px}
.card-content > ul {padding-left: 8px;}
.card-content > ul > li {margin-bottom: 5px;}
.card a, .card:hover a {color: #444}
.card a:hover {color: #000;}
body {padding: 20px; font-size: 12px}
.modal-dialog.hide-header .modal-header .close {top: 5px; right: 20px}
.copyright {padding: 0 10px 20px}
#proversion, #zentaotrain{color:#D2322D}
#mainContent {padding-top: 50px;}
#mainContent .main-header {display: none;}
#mainContent .copyright {line-height: 20px;}
#mainContent .copyright a {vertical-align: baseline;}
+22 -17
View File
@@ -1,20 +1,25 @@
<?php include '../../common/view/header.lite.html.php';?>
<table class='table table-form'>
<tr>
<td class='text-center w-160px'>
<img src='theme/default/images/main/logo2.png' />
<h4><?php printf($lang->misc->zentao->version, $config->version);?></h4>
</td>
<td>
<?php include './links.html.php';?>
</td>
</tr>
<tr>
<td colspan='2'>
<div class='text-right copyright'>
<?php echo $lang->misc->copyright;?>
<main id="main">
<div class="container">
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2><?php echo $lang->misc->zentao->labels['about'];?></h2>
</div>
</td>
</tr>
</table>
<table class='table table-form'>
<tr>
<td class='text-center w-160px'>
<img src='theme/default/images/main/logo2.png' />
<h4><?php printf($lang->misc->zentao->version, $config->version);?></h4>
</td>
<td><?php include './links.html.php';?></td>
</tr>
<tr>
<td colspan='2' class="copyright text-right text-middle">
<?php echo $lang->misc->copyright;?>
</td>
</tr>
</table>
</div>
</div>
</main>
<?php include '../../common/view/footer.lite.html.php';?>
+15 -8
View File
@@ -1,15 +1,14 @@
<div class='container mw-800px bd-0'>
<div class='cards'>
<div class='container mw-800px' id="zentaoLinks">
<div class='row'>
<?php unset($lang->misc->zentao->version);?>
<?php foreach($lang->misc->zentao as $label => $groupItems):?>
<?php if(strpos(',labels,icons,version,', ",$label,") !== false) continue; ?>
<div class='col-sm-6'>
<div class='card card-<?php echo $label;?>'>
<div class='media'>
<?php echo html::icon($lang->misc->zentao->icons[$label], 'icon');?>
<h5><?php echo $lang->misc->zentao->labels[$label];?></h5>
<div class='col-sm-3'>
<div class='panel'>
<div class='panel-heading'>
<div class="panel-title"><?php echo $lang->misc->zentao->labels[$label];?></div>
</div>
<div class='card-content'>
<div class='panel-body'>
<ul>
<?php foreach($groupItems as $item => $label):?>
<li><?php echo html::a($lang->misc->api . "/goto.php?item=$item&from=about", $label, '_blank', "id='$item'");;?></li>
@@ -21,3 +20,11 @@
<?php endforeach;?>
</div>
</div>
<style>
#proversion, #zentaotrain {color: #ff5d5d}
#zentaoLinks .panel {box-shadow: 0 2px 4px 0 rgba(240,242,246,0.50); border: 1px solid #eee; min-height: 230px;}
#zentaoLinks .panel-heading {background: #eeeeee; color: #666;}
#zentaoLinks .panel-body {padding: 10px;}
#zentaoLinks ul {}
#zentaoLinks ul > li {line-height: 24px;}
</style>
+1 -1
View File
@@ -1,3 +1,3 @@
.datepicker-wrapper{width: 110px!important;}
.datepicker-wrapper .form-control {max-width: 110px; line-height: 25px; height: 26px!important}
th.c-actions{width:160px !important;}
th.c-actions{width:160px !important;}
+1 -1
View File
@@ -57,7 +57,7 @@
<th class="c-date"> <?php common::printOrderLink('date', $orderBy, $vars, $lang->todo->date);?></th>
<th class="c-type"> <?php common::printOrderLink('type', $orderBy, $vars, $lang->todo->type);?></th>
<?php $style = $this->app->clientLang == 'en' ? "style='width:80px'" : '';?>
<th class="c-pri" <?php echo $style;?>> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th class="c-pri w-80px" <?php echo $style;?>> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
<th class="c-name"> <?php common::printOrderLink('name', $orderBy, $vars, $lang->todo->name);?></th>
<th class="c-begin"> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->todo->beginAB);?></th>
<th class="c-end"> <?php common::printOrderLink('end', $orderBy, $vars, $lang->todo->endAB);?></th>
+2 -1
View File
@@ -77,13 +77,14 @@
<td class='text-center'><?php echo $plan->bugs;?></td>
<td class='text-center'><?php echo $plan->hour;?></td>
<td class='text-center'><?php if(!empty($plan->projectID)) echo html::a(helper::createLink('project', 'task', 'projectID=' . $plan->projectID), '<i class="icon-search"></i>');?></td>
<td class='text-left content'><div class='article-content'><?php echo $plan->desc;?></div></td>
<td class='text-left content'><div class='article-content'><?php echo strip_tags($plan->desc, str_replace('<img>', '', $config->allowedTags));?></div></td>
<td class='c-actions'>
<?php
if(common::hasPriv('project', 'create')) echo html::a(helper::createLink('project', 'create', "projectID=&copyProjectID=&planID=$plan->id"), '<i class="icon-play"></i>', '', "class='btn' title='{$lang->project->create}'");
if(common::hasPriv('productplan', 'linkStory')) echo html::a(inlink('view', "planID=$plan->id&type=story&orderBy=id_desc&link=true"), '<i class="icon-link"></i>', '', "class='btn' title='{$lang->productplan->linkStory}'");
if(common::hasPriv('productplan', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '<i class="icon-bug"></i>', '', "class='btn' title='{$lang->productplan->linkBug}'");
common::printIcon('productplan', 'edit', "planID=$plan->id", $plan, 'list');
if(common::hasPriv('productplan', 'delete', $plan))
{
$deleteURL = $this->createLink('productplan', 'delete', "planID=$plan->id&confirm=yes");
+1 -1
View File
@@ -153,7 +153,7 @@ $config->testcase->datatable->fieldList['lastRunDate']['required'] = 'no';
$config->testcase->datatable->fieldList['lastRunResult']['title'] = 'lastRunResult';
$config->testcase->datatable->fieldList['lastRunResult']['fixed'] = 'no';
$config->testcase->datatable->fieldList['lastRunResult']['width'] = '80';
$config->testcase->datatable->fieldList['lastRunResult']['width'] = '100';
$config->testcase->datatable->fieldList['lastRunResult']['required'] = 'no';
$config->testcase->datatable->fieldList['status']['title'] = 'statusAB';
+1
View File
@@ -124,6 +124,7 @@ class testcase extends control
$this->view->moduleTree = $this->tree->getTreeMenu($productID, $viewType = 'case', $startModuleID = 0, array('treeModel', 'createCaseLink'), '', $branch);
$this->view->moduleName = $moduleID ? $this->tree->getById($moduleID)->name : $this->lang->tree->all;
$this->view->moduleID = $moduleID;
$this->view->summary = $this->testcase->summary($cases);
$this->view->pager = $pager;
$this->view->users = $this->user->getPairs('noletter');
$this->view->orderBy = $orderBy;
+2
View File
@@ -118,6 +118,7 @@ $lang->testcase->allCases = 'All';
$lang->testcase->allTestcases = 'All Cases';
$lang->testcase->needConfirm = 'StoryChanged';
$lang->testcase->bySearch = 'Search';
$lang->testcase->unexecuted = 'Unexecuted';
$lang->testcase->lblStory = 'Story';
$lang->testcase->lblLastEdited = 'Last Edit';
@@ -131,6 +132,7 @@ $lang->testcase->legendLinkBugs = 'Bug';
$lang->testcase->legendOpenAndEdit = 'Create/Edit';
$lang->testcase->legendComment = 'Remark';
$lang->testcase->summary = "Cases on this page : <strong>%s</strong> Total, <strong>%s</strong> runed.";
$lang->testcase->confirmDelete = 'Do you want to delete this Test Case?';
$lang->testcase->confirmBatchDelete = 'Do you want to batch delete thess Test Cases?';
$lang->testcase->ditto = 'Ditto';
+2
View File
@@ -118,6 +118,7 @@ $lang->testcase->allCases = '所有';
$lang->testcase->allTestcases = '所有用例';
$lang->testcase->needConfirm = '需求变动';
$lang->testcase->bySearch = '搜索';
$lang->testcase->unexecuted = '未执行';
$lang->testcase->lblStory = '相关需求';
$lang->testcase->lblLastEdited = '最后编辑';
@@ -131,6 +132,7 @@ $lang->testcase->legendLinkBugs = '相关Bug';
$lang->testcase->legendOpenAndEdit = '创建编辑';
$lang->testcase->legendComment = '备注';
$lang->testcase->summary = "本页共 <strong>%s</strong> 个用例,已执行<strong>%s</strong>个。";
$lang->testcase->confirmDelete = '您确认要删除该测试用例吗?';
$lang->testcase->confirmBatchDelete = '您确认要批量删除这些测试用例吗?';
$lang->testcase->ditto = '同上';
+14 -3
View File
@@ -1384,7 +1384,8 @@ class testcaseModel extends model
if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));
break;
case 'lastRunResult':
if($case->lastRunResult) echo $this->lang->testcase->resultList[$case->lastRunResult];
$lastRunResultText = $case->lastRunResult ? zget($this->lang->testcase->resultList, $case->lastRunResult, $case->lastRunResult) : $this->lang->testcase->unexecuted;
echo html::a(helper::createLink('testtask', 'results', "runID=0&caseID=$case->id", '', true), "<i class='icon icon-list-alt'></i> <span>{$lastRunResultText}</span>", '', "class='iframe btn btn-icon-left'");
break;
case 'bugs':
echo (common::hasPriv('testcase', 'bugs') and $case->bugs) ? html::a(helper::createLink('testcase', 'bugs', "runID=0&caseID={$case->id}"), $case->bugs, '', "class='iframe'") : $case->bugs;
@@ -1398,7 +1399,6 @@ class testcaseModel extends model
case 'actions':
echo "<div class='more'>";
if($this->config->testcase->needReview or !empty($this->config->testcase->forceReview)) common::printIcon('testcase', 'review', "caseID=$case->id", $case, 'list', 'glasses', '', 'iframe');
common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase&param=$case->id", $case, 'list', 'copy');
if(common::hasPriv('testcase', 'delete', $case))
{
@@ -1407,9 +1407,9 @@ class testcaseModel extends model
}
echo '</div>';
common::printIcon('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->version", $case, 'list', 'play', '', 'runCase iframe', false, "data-width='95%'");
common::printIcon('testtask', 'results', "runID=0&caseID=$case->id", $case, 'list', '', '', 'results iframe', '', "data-width='90%'");
common::printIcon('testcase', 'edit', "caseID=$case->id", $case, 'list');
common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$case->id,version=$case->version,runID=", $case, 'list', 'bug', '', 'iframe', '', "data-width='90%'");
common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase&param=$case->id", $case, 'list', 'copy');
break;
}
@@ -1496,4 +1496,15 @@ class testcaseModel extends model
return false;
}
public function summary($cases)
{
$executed = 0;
foreach($cases as $case)
{
if($case->lastRunResult != '') $executed ++;
}
return sprintf($this->lang->testcase->summary, count($cases), $executed);
}
}
+3 -3
View File
@@ -94,12 +94,12 @@
</div>
</div>
</td>
<td><?php echo html::select("type[$i]", $lang->testcase->typeList, $type, "class=form-control");?></td>
<td class='<?php echo zget($visibleFields, 'pri', 'hidden')?>'> <?php echo html::select("pri[$i]", $lang->testcase->priList, $pri, "class=form-control");?></td>
<td><?php echo html::select("type[$i]", $lang->testcase->typeList, $type, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'pri', 'hidden')?>'> <?php echo html::select("pri[$i]", $lang->testcase->priList, $pri, "class='form-control chosen'");?></td>
<td class='<?php echo zget($visibleFields, 'precondition', 'hidden')?>'><?php echo html::textarea("precondition[$i]", '', "rows='1' class='form-control autosize'")?></td>
<td class='<?php echo zget($visibleFields, 'keywords', 'hidden')?>'> <?php echo html::input("keywords[$i]", '', "class='form-control' autocomplete='off'");?></td>
<td class='text-left<?php echo zget($visibleFields, 'stage', ' hidden')?>' style='overflow:visible'><?php echo html::select("stage[$i][]", $lang->testcase->stageList, '', "class='form-control chosen' multiple");?></td>
<td class='<?php echo zget($visibleFields, 'review', 'hidden')?>'><?php echo html::select("needReview[$i]", $lang->testcase->reviewList, $needReview, "class='form-control'");?></td>
<td class='<?php echo zget($visibleFields, 'review', 'hidden')?>'><?php echo html::select("needReview[$i]", $lang->testcase->reviewList, $needReview, "class='form-control chosen'");?></td>
</tr>
<?php endfor;?>
<tr>
+4
View File
@@ -41,6 +41,10 @@ js::set('branch', $branch);
<div class='main-col'>
<div id='queryBox' class='cell <?php if($browseType =='bysearch') echo 'show';?>'></div>
<form class='main-table table-case' data-ride='table' id='batchForm' method='post'>
<div class="table-header">
<div class="table-statistic"><?php echo $summary;?></div>
<nav class="btn-toolbar pull-right"></nav>
</div>
<?php
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
+2 -2
View File
@@ -62,8 +62,8 @@
<?php endif;?>
<td class='text-left' style='overflow:visible'><?php echo html::select("module[$key]", $modules, isset($case->module) ? $case->module : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->module : ''), "class='form-control chosen'")?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("story[$key]", $stories, isset($case->story) ? $case->story : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->story : ''), "class='form-control chosen'")?></td>
<td><?php echo html::select("pri[$key]", $lang->testcase->priList, isset($case->pri) ? $case->pri : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->pri : ''), "class='form-control'")?></td>
<td><?php echo html::select("type[$key]", $lang->testcase->typeList, $case->type, "class='form-control'")?></td>
<td><?php echo html::select("pri[$key]", $lang->testcase->priList, isset($case->pri) ? $case->pri : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->pri : ''), "class='form-control chosen'")?></td>
<td><?php echo html::select("type[$key]", $lang->testcase->typeList, $case->type, "class='form-control chosen'")?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("stage[$key][]", $lang->testcase->stageList, !empty($case->stage) ? $case->stage : ((!empty($case->id) and isset($cases[$case->id])) ? $cases[$case->id]->stage : ''), "multiple='multiple' class='form-control chosen'")?></td>
<td><?php echo html::input("keywords[$key]", isset($case->keywords) ? $case->keywords : "", "class='form-control' autocomplete='off'")?></td>
<td><?php echo html::textarea("precondition[$key]", isset($case->precondition) ? htmlspecialchars($case->precondition) : "", "class='form-control'")?></td>
@@ -61,8 +61,8 @@
</div>
</div>
</td>
<td><?php echo html::select("type[$i]", $lang->testcase->typeList, $type, "class=form-control");?></td>
<td><?php echo html::select("pri[$i]", $lang->testcase->priList, $pri, "class=form-control");?></td>
<td><?php echo html::select("type[$i]", $lang->testcase->typeList, $type, "class='form-control chosen'");?></td>
<td><?php echo html::select("pri[$i]", $lang->testcase->priList, $pri, "class='form-control chosen'");?></td>
<td><?php echo html::textarea("precondition[$i]", '', "rows='1' class='form-control autosize'")?></td>
<td><?php echo html::input("keywords[$i]", '', "class='form-control' autocomplete='off'");?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("stage[$i][]", $lang->testcase->stageList, '', "class='form-control chosen' multiple");?></td>
+2 -2
View File
@@ -50,8 +50,8 @@
</td>
<td><?php echo html::input("title[$key]", $case->title, "class='form-control' style='margin-top:2px' autocomplete='off'")?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("module[$key]", $modules, isset($case->module) ? $case->module : (!empty($case->id) ? $cases[$case->id]->module : ''), "class='form-control chosen'")?></td>
<td><?php echo html::select("pri[$key]", $lang->testcase->priList, isset($case->pri) ? $case->pri : (!empty($case->id) ? $cases[$case->id]->pri : ''), "class='form-control'")?></td>
<td><?php echo html::select("type[$key]", $lang->testcase->typeList, isset($case->type) ? $case->type : (!empty($case->id) ? $cases[$case->id]->type : ''), "class='form-control'")?></td>
<td><?php echo html::select("pri[$key]", $lang->testcase->priList, isset($case->pri) ? $case->pri : (!empty($case->id) ? $cases[$case->id]->pri : ''), "class='form-control chosen'")?></td>
<td><?php echo html::select("type[$key]", $lang->testcase->typeList, isset($case->type) ? $case->type : (!empty($case->id) ? $cases[$case->id]->type : ''), "class='form-control chosen'")?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("stage[$key][]", $lang->testcase->stageList, !empty($case->stage) ? $case->stage : (!empty($case->id) ? $cases[$case->id]->stage : ''), "multiple='multiple' class='form-control chosen'")?></td>
<td><?php echo html::input("keywords[$key]", isset($case->keywords) ? $case->keywords : "", "class='form-control' autocomplete='off'")?></td>
<td><?php echo html::textarea("precondition[$key]", isset($case->precondition) ? htmlspecialchars($case->precondition) : "", "class='form-control'")?></td>
+1 -1
View File
@@ -50,7 +50,7 @@ class testtask extends control
* @access public
* @return void
*/
public function browse($productID = 0, $branch = '', $type = 'local,wait', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1, $beginTime = 0, $endTime = 0)
public function browse($productID = 0, $branch = '', $type = 'local,totalStatus', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1, $beginTime = 0, $endTime = 0)
{
/* Save session. */
$this->session->set('testtaskList', $this->app->getURI(true));
+1
View File
@@ -104,6 +104,7 @@ $lang->testtask->showFail = 'Failed <span class="text-danger">%s</span> tim
$lang->testtask->confirmDelete = 'Do you want to delete this test build?';
$lang->testtask->confirmUnlinkCase = 'Do you want to unlink this Case?';
$lang->testtask->noticeNoOther = 'There are no other test task for this product';
$lang->testtask->noTesttask = 'No test task. You could';
$lang->testtask->assignedToMe = 'My';
$lang->testtask->allCases = 'AllCases';
+1
View File
@@ -104,6 +104,7 @@ $lang->testtask->showFail = '失败<span class="text-danger">%s</span>次';
$lang->testtask->confirmDelete = '您确认要删除该版本吗?';
$lang->testtask->confirmUnlinkCase = '您确认要移除该用例吗?';
$lang->testtask->noticeNoOther = '该产品还没有其他测试版本';
$lang->testtask->noTesttask = '暂时没有记录,您现在可以';
$lang->testtask->assignedToMe = '指派给我';
$lang->testtask->allCases = '所有用例';
+7 -1
View File
@@ -32,11 +32,11 @@ $status = $this->session->testTaskVersionStatus;
?>
</ul>
</div>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,totalStatus"), "<span class='text'>{$lang->testtask->totalStatus}</span>", '', "id='totalStatusTab' class='btn btn-link'");?>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,wait"), "<span class='text'>{$lang->testtask->wait}</span>", '', "id='waitTab' class='btn btn-link'");?>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,doing"), "<span class='text'>{$lang->testtask->testing}</span>", '', "id='doingTab' class='btn btn-link'");?>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,blocked"), "<span class='text'>{$lang->testtask->blocked}</span>", '', "id='blockedTab' class='btn btn-link'");?>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,done"), "<span class='text'>{$lang->testtask->done}</span>", '', "id='doneTab' class='btn btn-link'");?>
<?php echo html::a(inlink('browse', "productID=$productID&branch=$branch&type=$scope,totalStatus"), "<span class='text'>{$lang->testtask->totalStatus}</span>", '', "id='totalStatusTab' class='btn btn-link'");?>
<?php $condition = "productID=$productID&branch=$branch&type=$scope,$status&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}&pageID=1"?>
<div class='input-group w-400px input-group-sm'>
<span class='input-group-addon'><?php echo $lang->testtask->beginAndEnd;?></span>
@@ -48,6 +48,11 @@ $status = $this->session->testTaskVersionStatus;
<div class="btn-toolbar pull-right"><?php common::printLink('testtask', 'create', "product=$productID", "<i class='icon icon-plus'> </i>" . $lang->testtask->create, '', "class='btn btn-primary'");?></div>
</div>
<?php endif;?>
<?php if($scope == 'local' && $status == 'totalStatus' && empty($tasks)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->testtask->noTesttask;?></span> <?php common::printLink('testtask', 'create', "productID={$productID}", "<i class='icon icon-plus'> </i>" . $lang->testtask->create, '', "class='btn btn-info'");?></p>
</div>
<?php else:?>
<div id='mainContent' class='main-table'>
<table class='table has-sort-head' id='taskList'>
<thead>
@@ -111,5 +116,6 @@ $status = $this->session->testTaskVersionStatus;
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
<?php endif;?>
</div>
<?php endif;?>
<script>$(function(){$('#<?php echo $status?>Tab').addClass('btn-active-text').append("<span class='label label-light label-badge'><?php echo $pager->recTotal;?></span>")})</script>
<?php include '../../common/view/footer.html.php';?>
+2
View File
@@ -12,3 +12,5 @@
.col-module .chosen-container-single .chosen-single {border-radius: 2px 0 0 2px; border-right-width: 0; padding-right: 1px;}
.col-module .chosen-container-active .chosen-single {border-right-width: 1px; padding-right: 0;}
.col-shorts .chosen-container-single .chosen-single {border-radius: 0 2px 2px 0;}
#modulesTree li {padding-left: 20px;}
+8 -5
View File
@@ -33,7 +33,7 @@
<div class="panel-title"><?php echo $title;?></div>
</div>
<div class="panel-body">
<ul class='tree-lines' id='modulesTree' data-name='tree-<?php echo $viewType;?>'></ul>
<ul id='modulesTree' data-name='tree-<?php echo $viewType;?>'></ul>
</div>
</div>
</div>
@@ -50,10 +50,10 @@
</div>
<div class="panel-body">
<form id='childrenForm' method='post' target='hiddenwin' action='<?php echo $this->createLink('tree', 'manageChild', "root=$rootID&viewType=$viewType");?>'>
<table class='table table-form'>
<table class='table table-form table-auto'>
<tr>
<?php if($viewType != 'line'):?>
<td class="text-middle text-nowrap text-right with-padding">
<td class="text-middle text-right with-padding">
<?php
echo html::a($this->createLink('tree', 'browse', "root=$rootID&viewType=$viewType"), empty($root->name) ? '' : $root->name) . "<i class='icon icon-angle-right muted'></i>";
foreach($parentModules as $module)
@@ -143,10 +143,12 @@
$(function()
{
var data = $.parseJSON('<?php echo helper::jsonEncode4Parse($tree);?>');
var options = {
var options =
{
initialState: 'preserve',
data: data,
sortable: {
sortable:
{
lazy: true,
nested: true,
canMoveHere: function($ele, $target)
@@ -234,6 +236,7 @@ $(function()
var $tree = $('#modulesTree').tree(options);
var tree = $tree.data('zui.tree');
console.log('tree', tree, options);
if(<?php echo $currentModuleID ?>)
if(0)
{
+3 -3
View File
@@ -29,7 +29,7 @@
<div class='panel-title'><?php echo $title;?></div>
</div>
<div class='panel-body'>
<ul class='tree-lines' id='modulesTree' data-name='tree-task'></ul>
<ul id='modulesTree' data-name='tree-task'></ul>
</div>
</div>
</div>
@@ -40,9 +40,9 @@
<div class='panel-title'><?php echo $lang->tree->manageTaskChild;?></div>
</div>
<div class='panel-body'>
<table class='table table-form'>
<table class='table table-form table-auto'>
<tr>
<td class="text-middle text-nowrap text-right with-padding">
<td class="text-middle text-right with-padding">
<?php
echo html::a($this->createLink('tree', 'browsetask', "root={$root->id}&productID=$productID&viewType=task"), $root->name) . "<i class='icon icon-angle-right muted'></i>";
foreach($parentModules as $module)
+6 -2
View File
@@ -222,6 +222,7 @@ class upgradeModel extends model
}
$this->deletePatch();
return true;
}
/**
@@ -2133,12 +2134,15 @@ class upgradeModel extends model
*/
public function fixTaskAssignedTo()
{
$minParent = $this->dao->select('parent')->from(TABLE_TASK)->where('parent')->ne(0)->orderBy('parent')->limit(1)->fetch();
if(empty($minParent)) return true;
$needUpdateTasks = $this->dao->select('id,parent,closedBy')->from(TABLE_TASK)
->where('status')->eq('closed')
->andWhere('assignedTo')->ne('closed')
->andWhere('id')->ge($minParent)
->fetchAll('id');
if(!$needUpdateTasks) return true;
if(empty($needUpdateTasks)) return true;
$needUpdateParentTasks = array();
$needUpdateChildTasks = array();
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long