This commit is contained in:
liugang
2018-05-14 15:36:49 +08:00
31 changed files with 888 additions and 996 deletions
+3 -3
View File
@@ -14,15 +14,15 @@
<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-remove"></i> ' . $lang->admin->notice->ignore, 'hiddenwin', 'class="close" data-dismiss="alert" style="font-size: 12px"');?>
<?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"');?>
<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
<?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;
+1
View File
@@ -129,6 +129,7 @@ $lang->bug->resolvedByMeAB = '由我解决';
$lang->bug->ditto = '同上';
$lang->bug->dittoNotice = '该bug与上一bug不属于同一产品!';
$lang->bug->noAssigned = '未指派';
$lang->bug->noBug = '暂时没有BUG,您现在可以';
/* 页面标签。*/
$lang->bug->lblAssignedTo = '当前指派';
+7 -1
View File
@@ -10,8 +10,13 @@
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php if(empty($bugs)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->bug->noBug;?></span> <?php common::printLink('bug', 'create', "productID={$productID}", "<i class='icon icon-plus'> </i>" . $lang->bug->create, '', "class='btn btn-info'");?></p>
</div>
<?php else:?>
<?php
include '../../common/view/header.html.php';
include '../../common/view/datatable.fix.html.php';
js::set('browseType', $browseType);
js::set('moduleID', $moduleID);
@@ -387,4 +392,5 @@ $(function(){$('#modulemenu .nav li:last').after("<li class='right'><a style='fo
#querybox #searchform{border-bottom: 1px solid #ddd; margin-bottom: 20px;}
</style>
<?php endif;?>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>
+26 -11
View File
@@ -268,22 +268,39 @@ $lang->bug->menu->index = array('link' => "<i class='icon-home'></i>QA|qa|in
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->product = array('link' => '%s', 'fixed' => true);
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase,report');
$lang->testcase->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase');
$lang->testcase->menu->report = array('link' => 'Report|testreport|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->testcase->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s');
$lang->testcase->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s');
$lang->testcase->menu->report = array('link' => 'Report|testreport|browse|productID=%s');
$lang->testcase->menu->caselib = array('link' => 'Library|testsuite|library');
$lang->testcase->menu->index = array('link' => "<i class='icon-home'></i>QA|qa|index|locate=no&productID=%s", 'float' => 'right');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
$lang->testtask->menu = new stdclass();
$lang->testtask->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testtask->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s');
$lang->testtask->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase,report');
$lang->testtask->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s');
$lang->testtask->menu->report = array('link' => 'Report|testreport|browse|productID=%s');
$lang->testtask->menu->caselib = array('link' => 'Library|testsuite|library');
$lang->testsuite = new stdclass();
$lang->testsuite->menu = $lang->testcase->menu;
$lang->testsuite->menu = new stdclass();
$lang->testsuite->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testsuite->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s');
$lang->testsuite->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s');
$lang->testsuite->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase');
$lang->testsuite->menu->report = array('link' => 'Report|testreport|browse|productID=%s');
$lang->testsuite->menu->caselib = array('link' => 'Library|testsuite|library');
$lang->testreport = new stdclass();
$lang->testreport->menu = $lang->testcase->menu;
$lang->testreport->menu = new stdclass();
$lang->testreport->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testreport->menu->testcase = array('link' => 'Case|testcase|browse|productID=%s');
$lang->testreport->menu->testtask = array('link' => 'Build|testtask|browse|productID=%s');
$lang->testreport->menu->testsuite = array('link' => 'Suite|testsuite|browse|productID=%s');
$lang->testreport->menu->report = array('link' => 'Report|testreport|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->testreport->menu->caselib = array('link' => 'Library|testsuite|library');
$lang->caselib = new stdclass();
$lang->caselib->menu = new stdclass();
@@ -294,8 +311,6 @@ $lang->caselib->menu->testtask = array('link' => 'Build|testtask|browse|');
$lang->caselib->menu->testsuite = array('link' => 'Suite|testsuite|browse|');
$lang->caselib->menu->report = array('link' => 'Report|testreport|browse|');
$lang->caselib->menu->caselib = array('link' => 'Library|testsuite|library', 'alias' => 'createlib,createcase,libview,edit,batchcreatecase,showimport', 'subModule' => 'tree,testcase');
$lang->caselib->menu->create = array('link' => "<i class='icon-plus'></i>Create a Library|testsuite|createLib|", 'float' => 'right');
$lang->caselib->menu->index = array('link' => "<i class='icon-home'></i>Test Home|qa|index|locate=no&productID=%s", 'float' => 'right');
/* 文档视图菜单设置。*/
$lang->doc = new stdclass();
+26 -7
View File
@@ -279,20 +279,39 @@ $lang->bug->menu->caselib = array('link' => '用例库|testsuite|library');
$lang->testcase = new stdclass();
$lang->testcase->menu = new stdclass();
$lang->testcase->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testcase->menu->testcase = array('link' => '用例|testcase|browse|productID=%s', 'alias' => 'view,create,batchcreate,edit,batchedit,showimport,groupcase,importfromlib', 'subModule' => 'tree');
$lang->testcase->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase,report');
$lang->testcase->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase');
$lang->testcase->menu->report = array('link' => '报告|testreport|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->testcase->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s');
$lang->testcase->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s');
$lang->testcase->menu->report = array('link' => '报告|testreport|browse|productID=%s');
$lang->testcase->menu->caselib = array('link' => '用例库|testsuite|library');
$lang->testtask = new stdclass();
$lang->testtask->menu = $lang->testcase->menu;
$lang->testtask->menu = new stdclass();
$lang->testtask->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testtask->menu->testcase = array('link' => '用例|testcase|browse|productID=%s');
$lang->testtask->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s', 'alias' => 'view,create,edit,linkcase,cases,start,close,batchrun,groupcase,report');
$lang->testtask->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s');
$lang->testtask->menu->report = array('link' => '报告|testreport|browse|productID=%s');
$lang->testtask->menu->caselib = array('link' => '用例库|testsuite|library');
$lang->testsuite = new stdclass();
$lang->testsuite->menu = $lang->testcase->menu;
$lang->testsuite->menu = new stdclass();
$lang->testsuite->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testsuite->menu->testcase = array('link' => '用例|testcase|browse|productID=%s');
$lang->testsuite->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s');
$lang->testsuite->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s', 'alias' => 'view,create,edit,linkcase');
$lang->testsuite->menu->report = array('link' => '报告|testreport|browse|productID=%s');
$lang->testsuite->menu->caselib = array('link' => '用例库|testsuite|library');
$lang->testreport = new stdclass();
$lang->testreport->menu = $lang->testcase->menu;
$lang->testreport->menu = new stdclass();
$lang->testreport->menu->bug = array('link' => 'Bug|bug|browse|productID=%s');
$lang->testreport->menu->testcase = array('link' => '用例|testcase|browse|productID=%s');
$lang->testreport->menu->testtask = array('link' => '测试单|testtask|browse|productID=%s');
$lang->testreport->menu->testsuite = array('link' => '套件|testsuite|browse|productID=%s');
$lang->testreport->menu->report = array('link' => '报告|testreport|browse|productID=%s', 'alias' => 'view,create,edit');
$lang->testreport->menu->caselib = array('link' => '用例库|testsuite|library');
$lang->caselib = new stdclass();
$lang->caselib->menu = new stdclass();
+3 -3
View File
@@ -416,12 +416,12 @@ class commonModel extends model
foreach ($lang->searchObjects as $key => $value)
{
$class = $key == $searchObject ? "class='selected'" : '';
echo "<li $class><a href='javascript:;' data-value='{$key}'>{$value}</a></li>";
echo "<li $class><a href='javascript:$.setSearchType(\"$key\");' data-value='{$key}'>{$value}</a></li>";
}
echo '</ul></div>';
echo "<input id='searchInput' class='form-control search-input' type='search' onclick='this.value=\"\"' onkeydown='if(event.keyCode==13) shortcut()' placeholder='" . $lang->searchTips . "'/>";
echo "<input id='searchInput' class='form-control search-input' type='search' onclick='this.value=\"\"' onkeydown='if(event.keyCode==13) $.gotoObject();' placeholder='" . $lang->searchTips . "'/>";
echo '</div>';
echo "<a href='javascript:shortcut();' class='btn btn-link' id='searchGo'>GO!</a>";
echo "<a href='javascript:$.gotoObject();' class='btn btn-link' id='searchGo'>GO!</a>";
echo "</div>\n";
}
+4 -4
View File
@@ -132,7 +132,7 @@ EOT;
<tr class='text-center'>
<td class='w-120px'><strong><?php echo $lang->custom->key;?></strong></td>
<td><strong><?php echo $lang->custom->value;?></strong></td>
<?php if($canAdd):?><th class='w-40px'></th><?php endif;?>
<?php if($canAdd):?><th class='w-90px'></th><?php endif;?>
</tr>
<?php foreach($fieldList as $key => $value):?>
<tr class='text-center'>
@@ -142,9 +142,9 @@ EOT;
<?php echo html::input("values[]", isset($dbFields[$key]) ? $dbFields[$key]->value : $value, "class='form-control' autocomplete='off' " . (empty($key) ? 'readonly' : ''));?>
</td>
<?php if($canAdd):?>
<td class='text-left w-100px'>
<a href="javascript:void(0)" onclick="addItem(this)" class='btn-icon'><i class='icon-plus'></i></a>
<a href="javascript:void(0)" onclick="delItem(this)" class='btn-icon'><i class='icon-remove'></i></a>
<td class='c-actions'>
<a href="javascript:void(0)" onclick="addItem(this)" class='btn btn-link'><i class='icon-plus'></i></a>
<a href="javascript:void(0)" onclick="delItem(this)" class='btn btn-link'><i class='icon-trash'></i></a>
</td>
<?php endif;?>
</tr>
+1 -1
View File
@@ -61,8 +61,8 @@
</tr>
<tr>
<td colspan='3' class='text-center'>
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
<?php
echo html::submitButton('', '', 'btn btn-primary btn-wide');
if($this->config->mail->turnon and $mailExist) echo html::a(inlink('test'), $lang->mail->test, '', "class='btn btn-wide'");
echo html::a(inlink('reset'), $lang->mail->reset, '', "class='btn btn-wide'");
if(common::hasPriv('mail', 'browse') and !empty($config->mail->async) and !empty($config->global->cron)) echo html::a(inlink('browse'), $lang->mail->browse, '', "class='btn btn-wide'");
+3 -6
View File
@@ -11,11 +11,8 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<script>
$(function()
{
bootbox.alert("<?php echo $lang->product->errorNoProduct?>", function(){location.href='<?php echo $this->createLink('product', 'create')?>'});
})
</script>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->product->noProduct;?></span> <?php common::printLink('product', 'create', '', "<i class='icon icon-plus'> </i>" . $lang->product->create, '', "class='btn btn-info'");?></p>
</div>
<?php include '../../common/view/footer.html.php';?>
+77 -76
View File
@@ -104,10 +104,10 @@
<th class="c-actions-2"><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php $groupIndex = 1;?>
<?php foreach($tasks as $groupKey => $groupTasks):?>
<?php
<tbody>
<?php $groupIndex = 1;?>
<?php foreach($tasks as $groupKey => $groupTasks):?>
<?php
$groupWait = 0;
$groupDone = 0;
$groupDoing = 0;
@@ -119,79 +119,80 @@
$groupName = $groupKey;
if($groupBy == 'story') $groupName = empty($groupName) ? $this->lang->task->noStory : zget($groupByList, $groupKey);
if($groupBy == 'assignedTo' and $groupName == '') $groupName = $this->lang->task->noAssigned;
?>
<?php
$groupSum = 0;
foreach($groupTasks as $taskKey => $task)
{
$groupEstimate += $task->estimate;
$groupConsumed += $task->consumed;
$groupLeft += ($task->status == 'cancel' ? 0 : $task->left);
?>
<?php
$groupSum = 0;
foreach($groupTasks as $taskKey => $task)
{
$groupEstimate += $task->estimate;
$groupConsumed += $task->consumed;
$groupLeft += ($task->status == 'cancel' ? 0 : $task->left);
if($task->status == 'wait') $groupWait++;
if($task->status == 'doing') $groupDoing++;
if($task->status == 'done') $groupDone++;
if($task->status == 'closed') $groupClosed++;
}
$groupSum = count($groupTasks);
?>
<?php $i = 0;?>
<?php foreach($groupTasks as $task):?>
<?php $assignedToClass = $task->assignedTo == $app->user->account ? "style='color:red'" : '';?>
<?php $taskLink = $this->createLink('task','view',"taskID=$task->id"); ?>
<tr data-id='<?php echo $groupIndex?>' <?php if($groupIndex > 1 and $i == 0) echo "class='divider-top'";?>>
<?php if($i == 0):?>
<td rowspan='<?php echo $groupSum?>' class='c-side text-left group-toggle text-top'>
<?php echo html::a('###', "<i class='icon-caret-down'></i> " . $groupName, '', "class='text-primary' title='$groupName'");?>
<div class='groupSummary small'>
if($task->status == 'wait') $groupWait++;
if($task->status == 'doing') $groupDoing++;
if($task->status == 'done') $groupDone++;
if($task->status == 'closed') $groupClosed++;
}
$groupSum = count($groupTasks);
?>
<?php $i = 0;?>
<?php foreach($groupTasks as $task):?>
<?php $assignedToClass = $task->assignedTo == $app->user->account ? "style='color:red'" : '';?>
<?php $taskLink = $this->createLink('task','view',"taskID=$task->id"); ?>
<tr data-id='<?php echo $groupIndex?>' <?php if($groupIndex > 1 and $i == 0) echo "class='divider-top'";?>>
<?php if($i == 0):?>
<td rowspan='<?php echo $groupSum?>' class='c-side text-left group-toggle text-top'>
<?php echo html::a('###', "<i class='icon-caret-down'></i> " . $groupName, '', "class='text-primary' title='$groupName'");?>
<div class='groupSummary small'>
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHoursAB, $users[$task->assignedTo], $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->groupSummaryAB, $groupSum, $groupWait, $groupDoing, $groupEstimate, $groupConsumed, $groupLeft);?>
</div>
</td>
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHoursAB, $users[$task->assignedTo], $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->groupSummaryAB, $groupSum, $groupWait, $groupDoing, $groupEstimate, $groupConsumed, $groupLeft);?>
</div>
</td>
<?php endif;?>
<td class='c-id-sm'><?php echo $task->id;?></td>
<td class="c-pri"><span class='label-pri <?php echo 'label-pri-' . $task->pri?>'><?php echo zget($lang->task->priList, $task->pri, $task->pri);?></span></td>
<td class="c-name">
<?php
if(!empty($task->team)) echo '<span class="label">' . $lang->task->multipleAB . '</span> ';
if(!empty($task->parent)) echo '<span class="label">' . $lang->task->childrenAB . '</span> ';
if(isset($task->children) && $task->children == true) echo '<span class="label">' . $lang->task->parentAB . '</span> ';
if(!common::printLink('task', 'view', "task=$task->id", $task->name)) echo $task->name;
?>
</td>
<td class="c-status"><span class='status-<?php echo $task->status;?>'><span class="label label-dot"></span> <?php echo $lang->task->statusList[$task->status];?></span></td>
<td class="c-assign text-left has-btn"><?php echo html::a($this->createLink('task', 'assignTo', "projectID=$task->project&taskID=$task->id", 'html', true), '<i class="icon icon-hand-right"></i> ' . $task->assignedToRealName, '', "class='iframe btn btn-icon-left' $assignedToClass");?></td>
<td class='c-user'><?php echo zget($users, $task->finishedBy);?></td>
<td class="c-hours em"><?php echo $task->estimate;?></td>
<td class="c-hours em"><?php echo $task->consumed;?></td>
<td class="c-hours em"><?php echo $task->left;?></td>
<td class="c-num em"><?php echo $task->progress . '%';?></td>
<td class="c-type"><?php echo zget($lang->task->typeList, $task->type);?></td>
<td class='c-date <?php if(isset($task->delay)) echo 'delayed';?>'><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
<td class="c-actions">
<?php common::printIcon('task', 'edit', "taskid=$task->id", '', 'list');?>
<?php common::printIcon('task', 'delete', "projectID=$task->project&taskid=$task->id", '', 'list', '', 'hiddenwin');?>
</td>
</tr>
<?php $i++;?>
<?php endforeach;?>
<?php if($i != 0):?>
<tr class='group-toggle group-summary hidden <?php if($groupIndex > 1) echo 'divider-top';?>' data-id='<?php echo $groupIndex?>'>
<td class='c-side text-left'>
<?php echo html::a('###', "<i class='icon-caret-right text-muted'></i> " . $groupName, '', "title='$groupName'");?>
</td>
<td colspan='13'>
<div class="table-row segments-list">
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHours, $users[$task->assignedTo], $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->countSummary, $groupSum, $groupWait, $groupDoing);?>
<?php printf($lang->project->timeSummary, $groupEstimate, $groupConsumed, $groupLeft);?>
</div>
</td>
</tr>
<?php endif;?>
<td class='c-id-sm'><?php echo $task->id;?></td>
<td class="c-pri"><span class='label-pri <?php echo 'label-pri-' . $task->pri?>'><?php echo zget($lang->task->priList, $task->pri, $task->pri);?></span></td>
<td class="c-name">
<?php
if(!empty($task->team)) echo '<span class="label">' . $lang->task->multipleAB . '</span> ';
if(!empty($task->parent)) echo '<span class="label">' . $lang->task->childrenAB . '</span> ';
if(isset($task->children) && $task->children == true) echo '<span class="label">' . $lang->task->parentAB . '</span> ';
if(!common::printLink('task', 'view', "task=$task->id", $task->name)) echo $task->name;
?>
</td>
<td class="c-status"><span class='status-<?php echo $task->status;?>'><span class="label label-dot"></span> <?php echo $lang->task->statusList[$task->status];?></span></td>
<td class="c-assign text-left has-btn"><?php echo html::a($this->createLink('task', 'assignTo', "projectID=$task->project&taskID=$task->id", 'html', true), '<i class="icon icon-hand-right"></i> ' . $task->assignedToRealName, '', "class='iframe btn btn-icon-left' $assignedToClass");?></td>
<td class='c-user'><?php echo zget($users, $task->finishedBy);?></td>
<td class="c-hours em"><?php echo $task->estimate;?></td>
<td class="c-hours em"><?php echo $task->consumed;?></td>
<td class="c-hours em"><?php echo $task->left;?></td>
<td class="c-num em"><?php echo $task->progress . '%';?></td>
<td class="c-type"><?php echo zget($lang->task->typeList, $task->type);?></td>
<td class='c-date <?php if(isset($task->delay)) echo 'delayed';?>'><?php if(substr($task->deadline, 0, 4) > 0) echo $task->deadline;?></td>
<td class="c-actions">
<?php common::printIcon('task', 'edit', "taskid=$task->id", '', 'list');?>
<?php common::printIcon('task', 'delete', "projectID=$task->project&taskid=$task->id", '', 'list', '', 'hiddenwin');?>
</td>
</tr>
<?php $i++;?>
<?php endforeach;?>
<?php if($i != 0):?>
<tr class='group-toggle group-summary hidden <?php if($groupIndex > 1) echo 'divider-top';?>' data-id='<?php echo $groupIndex?>'>
<td class='c-side text-left'>
<?php echo html::a('###', "<i class='icon-caret-right text-muted'></i> " . $groupName, '', "title='$groupName'");?>
</td>
<td colspan='13'>
<div class="table-row segments-list">
<?php if($groupBy == 'assignedTo' and isset($members[$task->assignedTo])) printf($lang->project->memberHours, $users[$task->assignedTo], $members[$task->assignedTo]->totalHours);?>
<?php printf($lang->project->countSummary, $groupSum, $groupWait, $groupDoing);?>
<?php printf($lang->project->timeSummary, $groupEstimate, $groupConsumed, $groupLeft);?>
</div>
</td>
</tr>
<?php endif;?>
<?php $groupIndex ++;?>
<?php endforeach;?>
</tbody>
</table>
<?php $groupIndex ++;?>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
+6 -5
View File
@@ -1111,11 +1111,12 @@ class story extends control
$this->view->position[] = html::a($this->createLink('testcase', 'browse', "productID=$productID"), $products[$productID]);
$this->view->position[] = $this->lang->story->zeroCase;
$this->view->stories = $this->story->getZeroCase($productID, $sort);
$this->view->users = $this->user->getPairs('noletter');
$this->view->productID = $productID;
$this->view->orderBy = $orderBy;
$this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID);
$this->view->stories = $this->story->getZeroCase($productID, $sort);
$this->view->users = $this->user->getPairs('noletter');
$this->view->productID = $productID;
$this->view->orderBy = $orderBy;
$this->view->suiteList = $this->loadModel('testsuite')->getSuites($productID);
$this->view->browseType = '';
$this->display();
}
+2 -2
View File
@@ -33,7 +33,7 @@
<th class='w-hour'><?php common::printOrderLink('estimate', $orderBy, $vars, $lang->story->estimateAB);?></th>
<th> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
<th> <?php common::printOrderLink('stage', $orderBy, $vars, $lang->story->stageAB);?></th>
<th class='w-140px'><?php echo $lang->actions;?></th>
<th class='w-180px'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
@@ -47,8 +47,8 @@
<div class="checkbox-primary">
<input type='checkbox' name='storyIDList[<?php echo $story->id;?>]' value='<?php echo $story->id;?>' />
<label></label>
<?php printf('%03d', $story->id);?>
</div>
<?php printf('%03d', $story->id);?>
</td>
<td><span class='label-pri <?php echo 'label-pri-' . $story->pri;?>'><?php echo zget($lang->story->priList, $story->pri)?></span></td>
<td class='text-left' title="<?php echo $story->title?>"><nobr><?php echo html::a($viewLink, $story->title);?></nobr></td>
+3
View File
@@ -174,6 +174,9 @@ class testcase extends control
}
}
$this->app->loadLang('project');
$this->app->loadLang('task');
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->testcase->common;
$this->view->position[] = html::a($this->createLink('testcase', 'groupTask', "productID=$productID&groupBy=$groupBy"), $this->products[$productID]);
$this->view->position[] = $this->lang->testcase->common;
-4
View File
@@ -1,4 +0,0 @@
$(document).ready(function()
{
$('#' + browseType + 'Tab').addClass('active');
});
+1 -1
View File
@@ -107,7 +107,7 @@
<tr>
<td colspan='<?php echo $colspan?>' class='text-center'>
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
<?php echo html::backButton('', '', 'btn btn-wide btn-gray');?>
<?php echo html::backButton('', '', 'btn btn-wide');?>
</td>
</tr>
</tbody>
+3 -3
View File
@@ -198,13 +198,13 @@ js::set('branch', $branch);
</div>
<script>
$('#module' + moduleID).addClass('active');
$('#' + caseBrowseType + 'Tab').addClass('active');
$('#' + caseBrowseType + 'Tab').addClass('btn-active-text');
<?php if($browseType == 'bysearch'):?>
$shortcut = $('#QUERY<?php echo (int)$param;?>Tab');
if($shortcut.size() > 0)
{
$shortcut.addClass('active');
$('#bysearchTab').removeClass('active');
$shortcut.addClass('btn-active-text');
$('#bysearchTab').removeClass('btn-active-text');
$('#querybox').removeClass('show');
}
<?php endif;?>
+98 -111
View File
@@ -1,43 +1,35 @@
<?php js::set('flow', $this->config->global->flow);?>
<?php if(!isset($branch)) $branch = 0;?>
<?php if($this->config->global->flow == 'onlyTest'):?>
<style>
.nav > li > .btn-group > a, .nav > li > .btn-group > a:hover, .nav > li > .btn-group > a:focus{background: #1a4f85; border-color: #164270;}
.outer.with-side #featurebar {background: none; border: none; line-height: 0; margin: 0; min-height: 0; padding: 0; }
#querybox #searchform{border-bottom: 1px solid #ddd; margin-bottom: 20px;}
</style>
<div id='featurebar'>
<ul class='submenu hidden'>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left hidden'>
<?php
$hasBrowsePriv = common::hasPriv('testcase', 'browse');
$hasGroupPriv = common::hasPriv('testcase', 'groupcase');
$hasZeroPriv = common::hasPriv('story', 'zerocase');
?>
<?php
if($this->methodName == 'browse') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></li> ";
?>
<li class='pull-right'>
<div class='btn-group' id='createActionMenu'>
<?php
$initModule = isset($moduleID) ? (int)$moduleID : 0;
$misc = common::hasPriv('testcase', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('testcase', 'create') ? $this->createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
echo html::a($link, "<i class='icon-plus'></i>" . $lang->testcase->create, '', $misc);
<?php if($this->methodName == 'browse') echo "<a id='bysearchTab' class='btn btn-link'><i class='icon-search icon'></i> {$lang->testcase->bySearch}</a>";?>
</div>
<div class='btn-toolbar pull-right'>
<div class='btn-group' id='createActionMenu'>
<?php
$initModule = isset($moduleID) ? (int)$moduleID : 0;
$misc = common::hasPriv('testcase', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('testcase', 'create') ? $this->createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
echo html::a($link, "<i class='icon-plus'></i>" . $lang->testcase->create, '', $misc);
$misc = common::hasPriv('testcase', 'batchCreate') ? '' : "disabled";
$link = common::hasPriv('testcase', 'batchCreate') ? $this->createLink('testcase', 'batchCreate', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<ul class='dropdown-menu pull-right'>
<?php echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', "class='$misc'") . "</li>";?>
</ul>
</div>
</li>
$misc = common::hasPriv('testcase', 'batchCreate') ? '' : "disabled";
$link = common::hasPriv('testcase', 'batchCreate') ? $this->createLink('testcase', 'batchCreate', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<ul class='dropdown-menu pull-right'>
<?php echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', "class='$misc'") . "</li>";?>
</ul>
</div>
<li class='pull-right'>
<a href='###' class='dropdown-toggle' data-toggle='dropdown' id='importAction'><i class='icon-upload-alt'></i> <?php echo $lang->import ?><span class='caret'></span></a>
<a href='###' class='dropdown-toggle' data-toggle='dropdown' id='importAction'><i class='icon-import'></i> <?php echo $lang->import ?><span class='caret'></span></a>
<ul class='dropdown-menu' id='importActionMenu'>
<?php
$misc = common::hasPriv('testcase', 'import') ? "class='export'" : "class=disabled";
@@ -72,20 +64,21 @@
<div id='querybox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
</div>
<?php else:?>
<div id='featurebar'>
<ul class='nav'>
<li>
<div class='label-angle<?php if(!empty($moduleID)) echo ' with-close';?>'>
<?php
echo !empty($moduleID) ? $moduleName : $this->lang->tree->all;
if(!empty($moduleID))
{
$removeLink = $browseType == 'bymodule' ? inlink('browse', "productID=$productID&branch=$branch&browseType=$browseType&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("caseModule")';
echo html::a($removeLink, "<i class='icon icon-remove'></i>", '', "class='text-muted'");
}
?>
</div>
</li>
<div id='mainMenu' class='clearfix'>
<div id="sidebarHeader">
<?php echo html::commonButton('<i class="icon icon-caret-left"></i>', '', 'btn btn-icon btn-sm btn-info sidebar-toggle');?>
<div class="title">
<?php
echo !empty($moduleID) ? $moduleName : $this->lang->tree->all;
if(!empty($moduleID))
{
$removeLink = $browseType == 'bymodule' ? inlink('browse', "productID=$productID&branch=$branch&browseType=$browseType&param=0&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}") : 'javascript:removeCookieByKey("caseModule")';
echo html::a($removeLink, "<i class='icon icon-remove'></i>", '', "class='text-muted'");
}
?>
</div>
</div>
<div class='btn-toolbar pull-left'>
<?php
$hasBrowsePriv = common::hasPriv('testcase', 'browse');
$hasGroupPriv = common::hasPriv('testcase', 'groupcase');
@@ -100,11 +93,11 @@
if($hasBrowsePriv and strpos($menuType, 'QUERY') === 0)
{
$queryID = (int)substr($menuType, 5);
echo "<li id='{$menuType}Tab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=bySearch&param=$queryID"), $menuItem->text) . "</li>";
echo html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=bySearch&param=$queryID"), $menuItem->text, '', "class='btn btn-link' id='{$menuType}Tab'");
}
elseif($hasBrowsePriv and ($menuType == 'all' or $menuType == 'needconfirm' or $menuType == 'wait'))
{
echo "<li id='{$menuType}Tab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=$menuType"), $menuItem->text) . "</li>";
echo html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=$menuType"), $menuItem->text, '', "class='btn btn-link' id='{$menuType}Tab'");
}
elseif($hasBrowsePriv and $menuType == 'suite')
{
@@ -112,8 +105,8 @@
$currentSuite = zget($suiteList, $currentSuiteID, '');
$currentLable = empty($currentSuite) ? $lang->testsuite->common : $currentSuite->name;
echo "<li id='bysuiteTab' class='dropdown'>";
echo html::a('javascript:;', $currentLable . " <span class='caret'></span>", '', "data-toggle='dropdown'");
echo "<div id='bysuiteTab' class='btn-group'>";
echo html::a('javascript:;', $currentLable . " <span class='caret'></span>", '', "class='btn btn-link' data-toggle='dropdown'");
echo "<ul class='dropdown-menu' style='max-height:240px; overflow-y:auto'>";
if(empty($suiteList))
@@ -123,7 +116,7 @@
echo '</li>';
}
foreach ($suiteList as $suiteID => $suite)
foreach($suiteList as $suiteID => $suite)
{
$suiteName = $suite->name;
if($suite->type == 'public') $suiteName .= " <span class='label label-info'>{$lang->testsuite->authorList[$suite->type]}</span>";
@@ -134,7 +127,7 @@
echo "</li>";
}
echo '</ul></li>';
echo '</ul></div>';
}
elseif($hasGroupPriv and $menuType == 'group')
{
@@ -142,11 +135,11 @@
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
if(empty($current)) $current = $lang->testcase->groups[''];
echo "<li id='groupTab' class='dropdown'>";
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
echo "<div id='groupTab' class='btn-group'>";
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "class='btn btn-link' data-toggle='dropdown'");
echo "<ul class='dropdown-menu'>";
foreach ($lang->testcase->groups as $key => $value)
foreach($lang->testcase->groups as $key => $value)
{
if($key == '') continue;
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
@@ -154,74 +147,68 @@
echo "</li>";
}
echo '</ul></li>';
echo '</ul></div>';
}
elseif($hasZeroPriv and $menuType == 'zerocase')
{
echo "<li id='zerocaseTab'>" . html::a($this->createLink('story', 'zeroCase', "productID=$productID"), $lang->story->zeroCase) . '</li>';
echo html::a($this->createLink('story', 'zeroCase', "productID=$productID"), $lang->story->zeroCase, '', "class='btn btn-link' id='zerocaseTab'");
}
?>
<?php endforeach;?>
<?php
if($this->methodName == 'browse') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></li> ";
if($this->methodName == 'browse') echo "<a id='bysearchTab' class='btn btn-link'><i class='icon-search icon'></i> {$lang->testcase->bySearch}</a>";
?>
</div>
<div class='btn-toolbar pull-right'>
<div class='btn-group'>
<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown'>
<i class='icon-export'></i> <?php echo $lang->export ?>
<span class='caret'></span>
</button>
<ul class='dropdown-menu' id='exportActionMenu'>
<?php
$misc = common::hasPriv('testcase', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'export') ? $this->createLink('testcase', 'export', "productID=$productID&orderBy=$orderBy") : '#';
echo "<li>" . html::a($link, $lang->testcase->export, '', $misc) . "</li>";
$misc = common::hasPriv('testcase', 'exportTemplet') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'exportTemplet') ? $this->createLink('testcase', 'exportTemplet', "productID=$productID") : '#';
echo "<li>" . html::a($link, $lang->testcase->exportTemplet, '', $misc) . "</li>";
?>
</ul>
</div>
<div class='btn-group'>
<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown' id='importAction'><i class='icon-import'></i> <?php echo $lang->import ?><span class='caret'></span></button>
<ul class='dropdown-menu' id='importActionMenu'>
<?php
$misc = common::hasPriv('testcase', 'import') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'import') ? $this->createLink('testcase', 'import', "productID=$productID&branch=$branch") : '#';
echo "<li>" . html::a($link, $lang->testcase->importFile, '', $misc) . "</li>";
$misc = common::hasPriv('testcase', 'importFromLib') ? '' : "class=disabled";
$link = common::hasPriv('testcase', 'importFromLib') ? $this->createLink('testcase', 'importFromLib', "productID=$productID&branch=$branch") : '#';
echo "<li>" . html::a($link, $lang->testcase->importFromLib, '', $misc) . "</li>";
?>
</ul>
</div>
<?php
$initModule = isset($moduleID) ? (int)$moduleID : 0;
if(common::hasPriv('testcase', 'batchCreate'))
{
$link = $this->createLink('testcase', 'batchCreate', "productID=$productID&branch=$branch&moduleID=$initModule");
echo html::a($link, "<i class='icon-plus'></i> " . $lang->testcase->batchCreate, '', "class='btn btn-secondary'");
}
if(common::hasPriv('testcase', 'create'))
{
$link = $this->createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule");
echo html::a($link, "<i class='icon-plus'></i> " . $lang->testcase->create, '', "class='btn btn-primary'");
}
?>
</ul>
<div class='actions'>
<div class='btn-group'>
<div class='btn-group'>
<button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
<i class='icon-download-alt'></i> <?php echo $lang->export ?>
<span class='caret'></span>
</button>
<ul class='dropdown-menu' id='exportActionMenu'>
<?php
$misc = common::hasPriv('testcase', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'export') ? $this->createLink('testcase', 'export', "productID=$productID&orderBy=$orderBy") : '#';
echo "<li>" . html::a($link, $lang->testcase->export, '', $misc) . "</li>";
$misc = common::hasPriv('testcase', 'exportTemplet') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'exportTemplet') ? $this->createLink('testcase', 'exportTemplet', "productID=$productID") : '#';
echo "<li>" . html::a($link, $lang->testcase->exportTemplet, '', $misc) . "</li>";
?>
</ul>
</div>
<div class='btn-group'>
<button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown' id='importAction'><i class='icon-upload-alt'></i> <?php echo $lang->import ?><span class='caret'></span></button>
<ul class='dropdown-menu' id='importActionMenu'>
<?php
$misc = common::hasPriv('testcase', 'import') ? "class='export'" : "class=disabled";
$link = common::hasPriv('testcase', 'import') ? $this->createLink('testcase', 'import', "productID=$productID&branch=$branch") : '#';
echo "<li>" . html::a($link, $lang->testcase->importFile, '', $misc) . "</li>";
$misc = common::hasPriv('testcase', 'importFromLib') ? '' : "class=disabled";
$link = common::hasPriv('testcase', 'importFromLib') ? $this->createLink('testcase', 'importFromLib', "productID=$productID&branch=$branch") : '#';
echo "<li>" . html::a($link, $lang->testcase->importFromLib, '', $misc) . "</li>";
?>
</ul>
</div>
</div>
<div class='btn-group'>
<div class='btn-group' id='createActionMenu'>
<?php
$initModule = isset($moduleID) ? (int)$moduleID : 0;
$misc = common::hasPriv('testcase', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('testcase', 'create') ? $this->createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
echo html::a($link, "<i class='icon-plus'></i>" . $lang->testcase->create, '', $misc);
$misc = common::hasPriv('testcase', 'batchCreate') ? '' : "disabled";
$link = common::hasPriv('testcase', 'batchCreate') ? $this->createLink('testcase', 'batchCreate', "productID=$productID&branch=$branch&moduleID=$initModule") : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<ul class='dropdown-menu pull-right'>
<?php echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', "class='$misc'") . "</li>";?>
</ul>
</div>
</div>
</div>
<div id='querybox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
</div>
<div id='querybox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
<?php endif;?>
<?php
+78 -56
View File
@@ -14,62 +14,84 @@
<?php include '../../common/view/treetable.html.php';?>
<?php include './caseheader.html.php';?>
<?php js::set('browseType', $browseType);?>
<table class='table table-fixed' id='treetable'>
<thead>
<tr>
<th class='w-50px'></th>
<th><?php echo $lang->testcase->title;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th class='w-80px'> <?php echo $lang->typeAB;?></th>
<th class='w-80px'> <?php echo $lang->testtask->lastRunAccount;?></th>
<th class='w-120px'><?php echo $lang->testtask->lastRunTime;?></th>
<th class='w-80px'> <?php echo $lang->testtask->lastRunResult;?></th>
<th class='w-80px'> <?php echo $lang->testcase->status;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->bugs?>'><?php echo $lang->testcase->bugsAB;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->results?>'><?php echo $lang->testcase->resultsAB;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->stepNumber?>'><?php echo $lang->testcase->stepNumberAB;?></th>
<th class='w-60px'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<?php $i = 0;?>
<?php foreach($cases as $groupKey => $groupTasks):?>
<?php $groupClass = ($i % 2 == 0) ? 'even' : 'highlight-warning'; $i ++;?>
<tr id='node-<?php echo $groupKey;?>' class='actie-disabled group-title'>
<td class='text-right <?php echo $groupClass;?> text-left large strong group-name'><?php echo $groupKey;?></td>
<td colspan='11' class='text-left'><?php if($groupByList) echo $groupByList[$groupKey];?></td>
</tr>
<?php foreach($groupTasks as $case):?>
<tr id='<?php echo $case->id;?>' class='text-center child-of-node-<?php echo $groupKey;?>'>
<td class='<?php echo $groupClass;?>'></td>
<td class='text-left'>&nbsp;<?php echo $case->id . $lang->colon; if(!common::printLink('testcase', 'view', "case=$case->id", $case->title)) echo $case->title;?></td>
<td><span class='<?php echo 'pri' . zget($lang->testcase->priList, $case->pri, $case->pri)?>'><?php echo zget($lang->testcase->priList, $case->pri, $case->pri);?></span></td>
<td><?php echo $lang->case->typeList[$case->type];?></td>
<td><?php echo $users[$case->lastRunner];?></td>
<td><?php if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?></td>
<td class='<?php echo $case->lastRunResult;?>'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
<td class='<?php if(isset($run)) echo $run->status;?>'>
<div class="main-table" data-ride="table" data-checkable="false" data-group="true">
<table class="table table-grouped text-center">
<thead>
<tr class="divider">
<th class="c-side text-left has-btn group-menu">
<div class="table-group-btns">
<button type="button" class="btn btn-block btn-link group-collapse-all"><?php echo $lang->project->treeLevel['root'];?> <i class="icon-caret-up"></i></button>
<button type="button" class="btn btn-block btn-link group-expand-all"><?php echo $lang->project->treeLevel['all'];?> <i class="icon-caret-down"></i></button>
</div>
</th>
<th class='c-id-sm'><?php echo $lang->idAB;?></th>
<th class='w-pri'> <?php echo $lang->priAB;?></th>
<th><?php echo $lang->testcase->title;?></th>
<th class='w-80px'> <?php echo $lang->typeAB;?></th>
<th class='w-80px'> <?php echo $lang->testtask->lastRunAccount;?></th>
<th class='w-120px'><?php echo $lang->testtask->lastRunTime;?></th>
<th class='w-80px'> <?php echo $lang->testtask->lastRunResult;?></th>
<th class='w-80px'> <?php echo $lang->testcase->status;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->bugs?>'><?php echo $lang->testcase->bugsAB;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->results?>'><?php echo $lang->testcase->resultsAB;?></th>
<th class='w-30px' title='<?php echo $lang->testcase->stepNumber?>'><?php echo $lang->testcase->stepNumberAB;?></th>
<th class='w-100px'> <?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php $groupIndex = 0;?>
<?php foreach($cases as $groupKey => $groupTasks):?>
<?php
if($case->needconfirm)
{
echo "(<span class='warning'>{$lang->story->changed}</span> ";
echo html::a(helper::createLink('testcase', 'confirmStoryChange', "caseID=$case->id"), $lang->confirm, 'hiddenwin');
echo ")";
}
else
{
echo $lang->testcase->statusList[$case->status];
}
$i = 0;
$groupName = $groupByList ? $groupByList[$groupKey] : '';
if(empty($groupName) and $groupBy == 'story') $groupName = $lang->task->noStory;
if(empty($groupName) and $groupBy == 'assignedTo') $groupName = $lang->task->noAssigned;
?>
</td>
<td><?php echo (common::hasPriv('testcase', 'bugs') and $case->bugs) ? html::a(inlink('bugs', "runID=0&caseID={$case->id}"), $case->bugs, '', "class='iframe'") : $case->bugs;?></td>
<td><?php echo (common::hasPriv('testtask', 'results') and $case->results) ? html::a($this->createLink('testtask', 'results', "runID=0&caseID={$case->id}"), $case->results, '', "class='iframe'") : $case->results;?></td>
<td><?php echo $case->stepNumber;?></td>
<td>
<?php common::printIcon('testcase', 'edit', "caseID=$case->id", '', 'list');?>
<?php common::printIcon('testcase', 'delete', "caseID=$case->id", '', 'list', '', 'hiddenwin');?>
</td>
</tr>
<?php endforeach;?>
<?php endforeach;?>
</table>
<?php foreach($groupTasks as $case):?>
<tr data-id='<?php echo $groupIndex;?>' <?php if($i == 0) echo "class='divider-top'";?>>
<?php if($i == 0):?>
<td rowspan='<?php echo count($groupTasks);?>' class='c-side text-left group-toggle text-top'>
<?php echo html::a('###', "<i class='icon-caret-down'></i> $groupName", '', "class='text-primary'");?>
</td>
<?php endif;?>
<td class='c-id-sm'><?php echo $case->id;?></td>
<td><span class='label-pri <?php echo 'label-pri-' . $case->pri;?>'><?php echo zget($lang->testcase->priList, $case->pri, $case->pri);?></span></td>
<td class='text-left'><?php if(!common::printLink('testcase', 'view', "case=$case->id", $case->title)) echo $case->title;?></td>
<td><?php echo zget($lang->case->typeList, $case->type, '');?></td>
<td><?php echo zget($users, $case->lastRunner);?></td>
<td><?php if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?></td>
<td class='<?php echo $case->lastRunResult;?>'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
<td class='<?php if(isset($run)) echo $run->status;?>'>
<?php
if($case->needconfirm)
{
echo "(<span class='warning'>{$lang->story->changed}</span> ";
echo html::a(helper::createLink('testcase', 'confirmStoryChange', "caseID=$case->id"), $lang->confirm, 'hiddenwin');
echo ")";
}
else
{
echo $lang->testcase->statusList[$case->status];
}
?>
</td>
<td><?php echo (common::hasPriv('testcase', 'bugs') and $case->bugs) ? html::a(inlink('bugs', "runID=0&caseID={$case->id}"), $case->bugs, '', "class='iframe'") : $case->bugs;?></td>
<td><?php echo (common::hasPriv('testtask', 'results') and $case->results) ? html::a($this->createLink('testtask', 'results', "runID=0&caseID={$case->id}"), $case->results, '', "class='iframe'") : $case->results;?></td>
<td><?php echo $case->stepNumber;?></td>
<td class='c-actions'>
<?php common::printIcon('testcase', 'edit', "caseID=$case->id", '', 'list');?>
<?php common::printIcon('testcase', 'delete', "caseID=$case->id", '', 'list', '', 'hiddenwin');?>
</td>
</tr>
<?php $i++;?>
<?php endforeach;?>
<tr data-id='<?php echo $groupIndex;?>' class='group-toggle group-summary hidden divider-top'>
<td class='c-side text-left'><?php echo html::a('###', "<i class='icon-caret-right'></i> $groupName");?></td>
<td colspan='12'></td>
</tr>
<?php $groupIndex++;?>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
+2 -2
View File
@@ -1,2 +1,2 @@
.w-180px{width:180px}
.chosen-container[id^="module"] .chosen-drop {min-width: 400px; border-top: 1px solid #ddd!important}
#batchCreateForm .input-group .colorpicker {z-index: 2;}
#batchCreateForm .input-group .colorpicker.open {z-index: 5;}
+59 -54
View File
@@ -13,63 +13,68 @@
<?php include '../../common/view/header.html.php';?>
<?php js::set('testcaseBatchCreateNum', $config->testcase->batchCreate);?>
<?php js::set('libID', $libID);?>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['testcase']);?></span>
<strong>
<small class='text-muted'><?php echo html::icon($lang->icons['batchCreate']);?></small>
<?php echo $lang->testcase->batchCreate;?>
</strong>
<div class='actions'>
<?php echo html::commonButton($lang->pasteText, "data-toggle='myModal' ")?>
<div id="mainContent" class="main-content">
<div class="main-header">
<h2><?php echo $lang->testcase->batchCreate;?></h2>
<div class="pull-right btn-toolbar">
<?php echo html::commonButton($lang->pasteText, "data-toggle='importLinesModal' ", 'btn btn-info')?>
</div>
</div>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' target='hiddenwin'>
<table align='center' class='table table-form table-fixed'>
<thead>
<tr>
<th class='w-50px'> <?php echo $lang->idAB;?></th>
<th class='w-180px'><?php echo $lang->testcase->module;?></th>
<th><?php echo $lang->testcase->title;?> <span class='required'></span></th>
<th class='w-100px'><?php echo $lang->testcase->type;?> <span class='required'></span></th>
<th class='w-80px'> <?php echo $lang->testcase->pri;?></th>
<th class='w-150px'><?php echo $lang->testcase->precondition;?></th>
<th class='w-100px'><?php echo $lang->testcase->keywords;?></th>
<th class='w-200px'><?php echo $lang->testcase->stage;?></th>
<form method='post' class='load-indicator main-form' enctype='multipart/form-data' target='hiddenwin' id="batchCreateForm">
<table align='center' class='table table-form' id="tableBody">
<thead>
<tr>
<th class='w-50px'> <?php echo $lang->idAB;?></th>
<th class='w-180px'><?php echo $lang->testcase->module;?></th>
<th><?php echo $lang->testcase->title;?> <span class='required'></span></th>
<th class='w-100px'><?php echo $lang->testcase->type;?> <span class='required'></span></th>
<th class='w-80px'> <?php echo $lang->testcase->pri;?></th>
<th class='w-150px'><?php echo $lang->testcase->precondition;?></th>
<th class='w-100px'><?php echo $lang->testcase->keywords;?></th>
<th class='w-200px'><?php echo $lang->testcase->stage;?></th>
</tr>
</thead>
<tbody>
<?php unset($lang->testcase->typeList['']);?>
<?php for($i = 0; $i < $config->testcase->batchCreate; $i++):?>
<?php
if($i != 0) $currentModuleID = 'ditto';
if($i != 0) $lang->testcase->typeList['ditto'] = $lang->testcase->ditto;
if($i != 0) $lang->testcase->priList['ditto'] = $lang->testcase->ditto;
$type = $i == 0 ? 'feature' : 'ditto';
$pri = $i == 0 ? 3 : 'ditto';
?>
<tr class='text-center'>
<td><?php echo $i+1;?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("module[$i]", $moduleOptionMenu, $currentModuleID, "class='form-control chosen'");?></td>
<td style='overflow:visible'>
<div class='input-group'>
<div class="input-control has-icon-right">
<?php echo html::input("title[$i]", '', "class='form-control' autocomplete='off'");?>
<div class="colorpicker">
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
<ul class="dropdown-menu clearfix">
<li class="heading"><?php echo $lang->testcase->colorTag;?><i class="icon icon-close"></i></li>
</ul>
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-icon='color' data-wrapper='input-control-icon-right' data-update-color='#title\\[$i\\]'");?>
</div>
</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::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>
</tr>
</thead>
<?php unset($lang->testcase->typeList['']);?>
<?php for($i = 0; $i < $config->testcase->batchCreate; $i++):?>
<?php
if($i != 0) $currentModuleID = 'ditto';
if($i != 0) $lang->testcase->typeList['ditto'] = $lang->testcase->ditto;
if($i != 0) $lang->testcase->priList['ditto'] = $lang->testcase->ditto;
$type = $i == 0 ? 'feature' : 'ditto';
$pri = $i == 0 ? 3 : 'ditto';
?>
<tr class='text-center'>
<td><?php echo $i+1;?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("module[$i]", $moduleOptionMenu, $currentModuleID, "class='form-control chosen'");?></td>
<td style='overflow:visible'>
<div class='input-group'>
<?php echo html::hidden("color[$i]", '', "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->testcase->colorTag}' data-update-text='#title\\[{$i}\\]'");?>
<?php echo html::input("title[$i]", '', "class='form-control' autocomplete='off'");?>
</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::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>
</tr>
<?php endfor;?>
<tfoot>
<tr><td colspan='8' class='text-center'><?php echo html::submitButton() . html::backButton();?></td></tr>
</tfoot>
</table>
</form>
<?php endfor;?>
</tbody>
<tfoot>
<tr><td colspan='8' class='text-center'><?php echo html::submitButton('', '', 'btn btn-primary btn-wide')?> <?php echo html::backButton('', '', 'btn btn-wide');?></td></tr>
</tfoot>
</table>
</form>
</div>
<table class='hide' id='trTemp'>
<tbody>
<tr class='text-center'>
+193 -186
View File
@@ -14,200 +14,207 @@
<?php js::set('lblDelete', $lang->testcase->deleteStep);?>
<?php js::set('lblBefore', $lang->testcase->insertBefore);?>
<?php js::set('lblAfter', $lang->testcase->insertAfter);?>
<div class='container mw-1400px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['testcase']);?></span>
<strong><small class='text-muted'><?php echo html::icon($lang->icons['create']);?></small> <?php echo $lang->testcase->create;?></strong>
<div class='main-content' id="mainContent">
<div class='center-block'>
<div class='main-header'>
<h2><?php echo $lang->testcase->create;?></h2>
</div>
</div>
<form class='form-condensed' method='post' enctype='multipart/form-data' id='dataform' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='w-80px'><?php echo $lang->testcase->lib;?></th>
<td class='w-p45-f'>
<div class='input-group'>
<?php echo html::select('lib', $libraries, $libID, "onchange='loadLibModules(this.value);' class='form-control chosen'");?>
</div>
</td>
<td style='padding-left:15px;'>
<div class='input-group' id='moduleIdBox'>
<span class="input-group-addon"><?php echo $lang->testcase->module?></span>
<?php
echo html::select('module', $moduleOptionMenu, $currentModuleID, "onchange='loadModuleRelated();' class='form-control chosen'");
if(count($moduleOptionMenu) == 1)
{
echo "<span class='input-group-btn'>";
echo html::a($this->createLink('tree', 'browse', "rootID=$libID&view=caselib&currentModuleID=0"), "<i class='icon icon-cog'></i>", '_blank', "data-toggle='tooltip' class='btn' title='{$lang->tree->manage}'");
echo '</span>';
echo "<span class='input-group-btn'>";
echo html::a("javascript:loadLibModules($libID)", "<i class='icon icon-refresh'></i>", '', "data-toggle='tooltip' class='btn' title='{$lang->refresh}'");
echo '</span>';
}
?>
</div>
</td><td></td>
</tr>
<tr>
<th><?php echo $lang->testcase->type;?></th>
<td><?php echo html::select('type', $lang->testcase->typeList, $type, "class='form-control chosen'");?></td>
<td style='padding-left:15px'>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testcase->stage?></span>
<?php echo html::select('stage[]', $lang->testcase->stageList, $stage, "class='form-control chosen' multiple='multiple'");?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->title;?></th>
<td colspan='2'>
<div class='row-table'>
<div class='col-table w-p100'>
<div class='input-group w-p100'>
<input type='hidden' id='color' name='color' data-provide='colorpicker' data-wrapper='input-group-btn' data-pull-menu-right='false' data-btn-tip='<?php echo $lang->testcase->colorTag ?>' data-update-text='#title'>
<form method='post' enctype='multipart/form-data' id='dataform' target='hiddenwin'>
<table class='table table-form'>
<tbody>
<tr>
<th><?php echo $lang->testcase->lib;?></th>
<td>
<div class='input-group'>
<?php echo html::select('lib', $libraries, $libID, "onchange='loadLibModules(this.value);' class='form-control chosen'");?>
</div>
</td>
<td style='padding-left:15px;'>
<div class='input-group' id='moduleIdBox'>
<span class="input-group-addon"><?php echo $lang->testcase->module?></span>
<?php
echo html::select('module', $moduleOptionMenu, $currentModuleID, "onchange='loadModuleRelated();' class='form-control chosen'");
if(count($moduleOptionMenu) == 1)
{
echo "<span class='input-group-btn'>";
echo html::a($this->createLink('tree', 'browse', "rootID=$libID&view=caselib&currentModuleID=0"), "<i class='icon icon-cog'></i>", '_blank', "data-toggle='tooltip' class='btn' title='{$lang->tree->manage}'");
echo '</span>';
echo "<span class='input-group-btn'>";
echo html::a("javascript:loadLibModules($libID)", "<i class='icon icon-refresh'></i>", '', "data-toggle='tooltip' class='btn' title='{$lang->refresh}'");
echo '</span>';
}
?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->type;?></th>
<td><?php echo html::select('type', $lang->testcase->typeList, $type, "class='form-control chosen'");?></td>
<td style='padding-left:15px'>
<div class='input-group'>
<span class='input-group-addon'><?php echo $lang->testcase->stage?></span>
<?php echo html::select('stage[]', $lang->testcase->stageList, $stage, "class='form-control chosen' multiple='multiple'");?>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->title;?></th>
<td colspan='2'>
<div class="input-control has-icon-right">
<?php echo html::input('title', $caseTitle, "class='form-control' autocomplete='off'");?>
<?php if(!$this->loadModel('testcase')->forceNotReview()):?>
<span class='input-group-addon'><?php echo html::checkbox('forceNotReview', $lang->testcase->forceNotReview, '', "id='forceNotReview'");?></span>
<?php endif;?>
<div class="colorpicker">
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
<ul class="dropdown-menu clearfix">
<li class="heading"><?php echo $lang->testcase->colorTag;?><i class="icon icon-close"></i></li>
</ul>
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#title" data-provide="colorpicker">
</div>
</div>
<div class='col-table'>
<div class='input-group'>
<span class='input-group-addon fix-border br-0'><?php echo $lang->testcase->pri;?></span>
<?php
$hasCustomPri = false;
foreach($lang->testcase->priList as $priKey => $priValue)
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->pri;?></th>
<td colspan="2">
<?php
$hasCustomPri = false;
foreach($lang->testcase->priList as $priKey => $priValue)
{
if(!empty($priKey) and (string)$priKey != (string)$priValue)
{
if(!empty($priKey) and (string)$priKey != (string)$priValue)
{
$hasCustomPri = true;
break;
}
$hasCustomPri = true;
break;
}
?>
<?php if($hasCustomPri):?>
<?php echo html::select('pri', (array)$lang->testcase->priList, $pri, "class='form-control minw-80px'");?>
<?php else: ?>
<div class='input-group-btn dropdown-pris'>
<button type='button' class='btn dropdown-toggle br-0' data-toggle='dropdown'>
<span class='pri-text'></span> &nbsp;<span class='caret'></span>
</button>
<ul class='dropdown-menu pull-right'></ul>
<?php echo html::select('pri', (array)$lang->testcase->priList, $pri, "class='hide'");?>
</div>
<?php endif; ?>
</div>
</div>
}
$priList = $lang->testcase->priList;
if(end($priList))
{
unset($priList[0]);
$priList[0] = '';
}
?>
<?php if($hasCustomPri):?>
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control chosen'");?>
<?php else: ?>
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control' data-provide='labelSelector'");?>
<?php endif; ?>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->precondition;?></th>
<td colspan='2'><?php echo html::textarea('precondition', $precondition, " rows='2' class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->testcase->steps;?></th>
<td colspan='2'>
<table class='table table-form mg-0 table-bordered' style='border: 1px solid #ddd'>
<thead>
<tr>
<th class='w-40px text-right'><?php echo $lang->testcase->stepID;?></th>
<th width="45%"><?php echo $lang->testcase->stepDesc;?></th>
<th><?php echo $lang->testcase->stepExpect;?></th>
<th class='step-actions'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody id='steps' class='sortable' data-group-name='<?php echo $lang->testcase->groupName ?>'>
<tr class='template step' id='stepTemplate'>
<td class='step-id'></td>
<td>
<div class='input-group'>
<span class='input-group-addon step-item-id'></span>
<textarea rows='1' class='form-control autosize step-steps' name='steps[]'></textarea>
<span class="input-group-addon step-type-toggle">
<input type='hidden' name='stepType[]' value='item' class='step-type'>
<div class='step-type-menu-box'>
<div class='step-type-current'><span></span> <i class='caret'></i></div>
<div class='step-type-menu'>
<a href='javascript:;' href='step-type-option' data-value='step'><?php echo $lang->testcase->step ?></a>
<a href='javascript:;' href='step-type-option' data-value='group'><?php echo $lang->testcase->group ?></a>
<a href='javascript:;' href='step-type-option' data-value='item'><?php echo $lang->testcase->stepChild ?></a>
</div>
</div>
</span>
</div>
</td>
<td><textarea rows='1' class='form-control autosize step-expects' name='expects[]'></textarea></td>
<td class='step-actions'>
<div class='btn-group'>
<button type='button' class='btn btn-step-add'><i class='icon icon-plus'></i></button>
<button type='button' class='btn btn-step-move'><i class='icon icon-move'></i></button>
<button type='button' class='btn btn-step-delete'><i class='icon icon-trash'></i></button>
</div>
</td>
</tr>
<?php foreach($steps as $stepID => $step):?>
<tr class='step'>
<td class='step-id'></td>
<td>
<div class='input-group'>
<span class='input-group-addon step-item-id'></span>
<?php echo html::textarea('steps[]', $step->desc, "rows='1' class='form-control autosize step-steps'") ?>
<span class='input-group-addon step-type-toggle'>
<?php if(!isset($step->type)) $step->type = 'step';?>
<input type='hidden' name='stepType[]' value='<?php echo $step->type ?>' class='step-type'>
<div class='step-type-menu-box'>
<div class='step-type-current'><span></span> <i class='caret'></i></div>
<div class='step-type-menu'>
<a href='javascript:;' href='step-type-option' data-value='step'><?php echo $lang->testcase->step ?></a>
<a href='javascript:;' href='step-type-option' data-value='group'><?php echo $lang->testcase->group ?></a>
<a href='javascript:;' href='step-type-option' data-value='item'><?php echo $lang->testcase->stepChild ?></a>
</div>
</div>
</span>
</div>
</td>
<td><?php echo html::textarea('expects[]', $step->expect, "rows='1' class='form-control autosize step-expects'") ?></td>
<td class='step-actions'>
<div class='btn-group'>
<button type='button' class='btn btn-step-add'><i class='icon icon-plus'></i></button>
<button type='button' class='btn btn-step-move'><i class='icon icon-move'></i></button>
<button type='button' class='btn btn-step-delete'><i class='icon icon-trash'></i></button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->keywords;?></th>
<td colspan='2'><?php echo html::input('keywords', '', "class='form-control' autocomplete='off'");?></td>
</tr>
<tr>
<th><?php echo $lang->testcase->files;?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='2' class='text-center'>
<?php
echo html::submitButton($lang->save, '', 'btn btn-wide btn-primary');
echo ' &nbsp; ';
echo html::backButton($lang->goback, '', 'btn btn-wide');
?>
</td>
</tr>
</tfoot>
</table>
</form>
</div>
<div class='modal fade' id='searchStories'>
<div class='modal-dialog'>
<div class='modal-content'>
<div class='modal-header'>
<button type='button' class='close' data-dismiss='modal'>&times;</button>
<div class='searchInput w-p90'>
<input id='storySearchInput' type='text' class='form-control' placeholder='<?php echo $lang->testcase->searchStories?>'>
<i class='icon icon-search'></i>
</div>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->precondition;?></th>
<td colspan='2'><?php echo html::textarea('precondition', $precondition, " rows='2' class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->testcase->steps;?></th>
<td colspan='2'>
<table class='table table-form mg-0 table-bordered' style='border: 1px solid #ddd'>
<thead>
<tr>
<th class='w-40px text-right'><?php echo $lang->testcase->stepID;?></th>
<th width="45%"><?php echo $lang->testcase->stepDesc;?></th>
<th><?php echo $lang->testcase->stepExpect;?></th>
<th class='step-actions'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody id='steps' class='sortable' data-group-name='<?php echo $lang->testcase->groupName ?>'>
<tr class='template step' id='stepTemplate'>
<td class='step-id'></td>
<td>
<div class='input-group'>
<span class='input-group-addon step-item-id'></span>
<textarea rows='1' class='form-control autosize step-steps' name='steps[]'></textarea>
<span class="input-group-addon step-type-toggle">
<input type='hidden' name='stepType[]' value='item' class='step-type'>
<div class='step-type-menu-box'>
<div class='step-type-current'><span></span> <i class='caret'></i></div>
<div class='step-type-menu'>
<a href='javascript:;' href='step-type-option' data-value='step'><?php echo $lang->testcase->step ?></a>
<a href='javascript:;' href='step-type-option' data-value='group'><?php echo $lang->testcase->group ?></a>
<a href='javascript:;' href='step-type-option' data-value='item'><?php echo $lang->testcase->stepChild ?></a>
</div>
</div>
</span>
</div>
</td>
<td><textarea rows='1' class='form-control autosize step-expects' name='expects[]'></textarea></td>
<td class='step-actions'>
<div class='btn-group'>
<button type='button' class='btn btn-step-add'><i class='icon icon-plus'></i></button>
<button type='button' class='btn btn-step-move'><i class='icon icon-move'></i></button>
<button type='button' class='btn btn-step-delete'><i class='icon icon-remove'></i></button>
</div>
</td>
</tr>
<?php foreach($steps as $stepID => $step):?>
<tr class='step'>
<td class='step-id'></td>
<td>
<div class='input-group'>
<span class='input-group-addon step-item-id'></span>
<?php echo html::textarea('steps[]', $step->desc, "rows='1' class='form-control autosize step-steps'") ?>
<span class='input-group-addon step-type-toggle'>
<?php if(!isset($step->type)) $step->type = 'step';?>
<input type='hidden' name='stepType[]' value='<?php echo $step->type ?>' class='step-type'>
<div class='step-type-menu-box'>
<div class='step-type-current'><span></span> <i class='caret'></i></div>
<div class='step-type-menu'>
<a href='javascript:;' href='step-type-option' data-value='step'><?php echo $lang->testcase->step ?></a>
<a href='javascript:;' href='step-type-option' data-value='group'><?php echo $lang->testcase->group ?></a>
<a href='javascript:;' href='step-type-option' data-value='item'><?php echo $lang->testcase->stepChild ?></a>
</div>
</div>
</span>
</div>
</td>
<td><?php echo html::textarea('expects[]', $step->expect, "rows='1' class='form-control autosize step-expects'") ?></td>
<td class='step-actions'>
<div class='btn-group'>
<button type='button' class='btn btn-step-add'><i class='icon icon-plus'></i></button>
<button type='button' class='btn btn-step-move'><i class='icon icon-move'></i></button>
<button type='button' class='btn btn-step-delete'><i class='icon icon-remove'></i></button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</td>
</tr>
<tr>
<th><?php echo $lang->testcase->keywords;?></th>
<td colspan='2'><?php echo html::input('keywords', '', "class='form-control' autocomplete='off'");?></td>
</tr>
<tr>
<th><?php echo $lang->testcase->files;?></th>
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
</tr>
<tr>
<th></th>
<td colspan='2' class='text-center'><?php echo html::submitButton() . html::backButton();?> </td>
</tr>
</table>
</form>
</div>
<div class='modal fade' id='searchStories'>
<div class='modal-dialog'>
<div class='modal-content'>
<div class='modal-header'>
<button type='button' class='close' data-dismiss='modal'>&times;</button>
<div class='searchInput w-p90'>
<input id='storySearchInput' type='text' class='form-control' placeholder='<?php echo $lang->testcase->searchStories?>'>
<i class='icon icon-search'></i>
</div>
</div>
<div class='modal-body'>
<ul id='searchResult'></ul>
<div class='modal-body'>
<ul id='searchResult'></ul>
</div>
</div>
</div>
</div>
+6 -6
View File
@@ -484,7 +484,7 @@ class testtask extends control
if(!empty($_POST))
{
$changes = $this->testtask->start($taskID);
if(dao::isError()) die(js::error(dao::getError()));
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
if($this->post->comment != '' or !empty($changes))
{
@@ -492,8 +492,8 @@ class testtask extends control
$this->action->logHistory($actionID, $changes);
}
if(isonlybody()) die(js::reload('parent.parent'));
die(js::locate($this->createLink('testtask', 'view', "taskID=$taskID"), 'parent'));
if(isonlybody()) $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('testtask', 'view', "taskID=$taskID")));
}
/* Get task info. */
@@ -566,7 +566,7 @@ class testtask extends control
if(!empty($_POST))
{
$changes = $this->testtask->close($taskID);
if(dao::isError()) die(js::error(dao::getError()));
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
if($this->post->comment != '' or !empty($changes))
{
@@ -574,8 +574,8 @@ class testtask extends control
$this->action->logHistory($actionID, $changes);
}
if(isonlybody()) die(js::reload('parent.parent'));
die(js::locate($this->createLink('testtask', 'view', "taskID=$taskID"), 'parent'));
if(isonlybody()) $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
$this->send(array('result' => 'success', 'message' => $this->lang->success, 'locate' => $this->createLink('testtask', 'view', "taskID=$taskID")));
}
/* Get task info. */
+22
View File
@@ -0,0 +1,22 @@
$(document).ready(function()
{
$('#startForm, #closeForm').ajaxForm(
{
finish:function(response)
{
if(response.locate)
{
if(response.locate == 'parent')
{
parent.$.cookie('selfClose', 1);
setTimeout(function(){parent.$.closeModal(null, 'this')}, 1200);
}
else
{
setTimeout(function(){window.location.href = response.locate;}, 1200);
}
}
return false;
}
});
})
+30 -30
View File
@@ -11,38 +11,38 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div class='container mw-800px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['testtask']);?> <strong><?php echo $testtask->id;?></strong></span>
<strong><?php echo html::a($this->createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?></strong>
<small class='text-danger'> <?php echo $lang->testtask->close;?> <?php echo html::icon($lang->icons['close']);?></small>
<div id='mainContent' class='main-content'>
<div id='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $testtask->id;?></span>
<?php echo html::a($this->createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?>
<small> <?php echo $lang->arrow . $lang->testtask->close;?></small>
</h2>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<th><?php echo $lang->testtask->mailto;?></th>
<td colspan='2'>
<div class='input-group'>
<?php echo html::select('mailto[]', $users, str_replace(' ' , '', $testtask->mailto), "multiple class='form-control'");?>
<?php if($contactLists) echo html::select('', $contactLists, '', "class='form-control chosen' onchange=\"setMailto('mailto', this.value)\"");?>
</div>
</td>
</tr>
<tr>
<td colspan='2' class='text-center'><?php echo html::submitButton() . html::linkButton($lang->goback, $this->session->taskList); ?></td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
<form class='load-indicator main-form' method='post' id='closeForm'>
<table class='table table-form'>
<tr>
<th class='w-60px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
</tr>
<tr>
<th><?php echo $lang->testtask->mailto;?></th>
<td>
<div class='input-group'>
<?php echo html::select('mailto[]', $users, str_replace(' ' , '', $testtask->mailto), "multiple class='form-control chosen'");?>
<?php if($contactLists) echo html::select('', $contactLists, '', "class='form-control chosen' onchange=\"setMailto('mailto', this.value)\"");?>
</div>
</td>
</tr>
<tr>
<td colspan='2' class='text-center'><?php echo html::submitButton() . html::linkButton($lang->goback, $this->session->taskList); ?></td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+26 -24
View File
@@ -12,31 +12,33 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<div class='container mw-800px'>
<div id='titlebar'>
<div class='heading'>
<span class='prefix'><?php echo html::icon($lang->icons['testtask']);?> <strong><?php echo $testtask->id;?></strong></span>
<strong><?php echo html::a($this->createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?></strong>
<small class='text-success'> <?php echo $lang->testtask->start;?> <?php echo html::icon($lang->icons['start']);?></small>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2>
<span class='label label-id'><?php echo $testtask->id;?></span>
<?php echo isonlybody() ? $testtask->name : html::a($this->createLink('testtask', 'view', 'taskID=' . $testtask->id), $testtask->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->testtask->start;?></small>
<?php endif;?>
</div>
</div>
</div>
<form class='form-condensed' method='post' target='hiddenwin'>
<table class='table table-form'>
<tr>
<th class='text-left'><?php echo $lang->comment;?></th>
</tr>
<tr>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control'");?></td>
</tr>
<tr>
<td class='text-center'><?php echo html::submitButton() . html::linkButton($lang->goback, $this->session->taskList); ?></td>
</tr>
</table>
</form>
<div class='main'>
<?php include '../../common/view/action.html.php';?>
<form class='load-indicator main-form' method='post' id='startForm'>
<table class='table table-form'>
<tr>
<th class='w-45px'><?php echo $lang->comment;?></th>
<td><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
</tr>
<tr>
<td colspan="2" class="text-center">
<?php echo html::submitButton();?>
<?php echo html::linkButton($lang->goback, $this->session->taskList);?>
</td>
</tr>
</table>
</form>
<hr class='small' />
<div class='main'><?php include '../../common/view/action.html.php';?></div>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -8,4 +8,4 @@
#todoBatchAddForm .control-time-begin + .chosen-container-single .chosen-single {border-radius: 2px 0 0 2px; border-right-width: 0; padding-right: 1px;}
#todoBatchAddForm .control-time-begin + .chosen-container-active .chosen-single {border-right-width: 1px; padding-right: 0;}
#todoBatchAddHeader [name="date"]:disabled {color: #ccc; text-decoration: line-through;}
.main-header > .input-group {width: 220px;}
.main-header > .input-group {width: 240px;}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 114 KiB

-150
View File
File diff suppressed because one or more lines are too long
+191 -244
View File
@@ -1,88 +1,35 @@
/**
* Create link.
*
* @param string $moduleName
* @param string $methodName
* @param string $vars
* @param string $viewType
* @access public
* @return string
*/
function createLink(moduleName, methodName, vars, viewType, isOnlyBody)
{
if(!viewType) viewType = config.defaultView;
if(!isOnlyBody) isOnlyBody = false;
if(vars)
{
vars = vars.split('&');
for(i = 0; i < vars.length; i ++)
{
splited = vars[i].split('=');
// /**
// * Bind Event for searchbox
// *
// */
// function setSearchBox()
// {
// $('#searchTypeMenu a').click(function()
// {
// $('#searchTypeMenu li.selected').removeClass('selected');
// var $this = $(this);
// $this.closest('li').addClass('selected');
// $("#searchType").val($this.data('value'));
// $("#searchTypeName").text($this.text());
// });
// }
var newvars = new Array()
newvars[0] = splited.shift();
newvars[1] = splited.join('=');
vars[i] = newvars;
}
}
if(config.requestType != 'GET')
{
if(config.requestType == 'PATH_INFO') link = config.webRoot + moduleName + config.requestFix + methodName;
if(config.requestType == 'PATH_INFO2') link = config.webRoot + 'index.php/' + moduleName + config.requestFix + methodName;
if(vars)
{
for(i = 0; i < vars.length; i ++) link += config.requestFix + vars[i][1];
}
link += '.' + viewType;
}
else
{
link = config.router + '?' + config.moduleVar + '=' + moduleName + '&' + config.methodVar + '=' + methodName + '&' + config.viewVar + '=' + viewType;
if(vars) for(i = 0; i < vars.length; i ++) link += '&' + vars[i][0] + '=' + vars[i][1];
}
/* if page has onlybody param then add this param in all link. the param hide header and footer. */
if((typeof(config.onlybody) != 'undefined' && config.onlybody == 'yes') || isOnlyBody)
{
var onlybody = config.requestType != 'GET' ? "?onlybody=yes" : '&onlybody=yes';
link = link + onlybody;
}
return link;
}
/**
* Bind Event for searchbox
*
*/
function setSearchBox()
{
$('#searchTypeMenu a').click(function()
{
$('#searchTypeMenu li.selected').removeClass('selected');
var $this = $(this);
$this.closest('li').addClass('selected');
$("#searchType").val($this.data('value'));
$("#searchTypeName").text($this.text());
});
}
/**
* Go to the view page of one object.
*
* @access public
* @return void
*/
function shortcut()
{
objectType = $('#searchType').attr('value');
objectValue = $("input#searchInput").attr('value');
if(objectType && objectValue)
{
method = objectType == 'testsuite' ? 'library' : 'view';
location.href=createLink(objectType, method, "id=" + objectValue);
}
}
// /**
// * Go to the view page of one object.
// *
// * @access public
// * @return void
// */
// function shortcut()
// {
// objectType = $('#searchType').attr('value');
// objectValue = $("input#searchInput").attr('value');
// if(objectType && objectValue)
// {
// method = objectType == 'testsuite' ? 'library' : 'view';
// location.href=createLink(objectType, method, "id=" + objectValue);
// }
// }
/**
* Show search drop menu.
@@ -203,30 +150,30 @@ function setRequiredFields()
$('.required').closest('td,th').next().css('padding-left', '15px');
}
/**
* Set the help links of forum's items.
*
* @access public
* @return void
*/
function setHelpLink()
{
if(!$.cookie('help')) $.cookie('help', 'off', {expires:config.cookieLife, path:config.webRoot});
className = $.cookie('help') == 'off' ? 'hidden' : '';
// /**
// * Set the help links of forum's items.
// *
// * @access public
// * @return void
// */
// function setHelpLink()
// {
// if(!$.cookie('help')) $.cookie('help', 'off', {expires:config.cookieLife, path:config.webRoot});
// className = $.cookie('help') == 'off' ? 'hidden' : '';
$('form input[id], form select[id], form textarea[id]').each(function()
{
if($(this).attr('type') == 'hidden' || $(this).attr('type') == 'file') return;
currentFieldName = $(this).attr('name') ? $(this).attr('name') : $(this).attr('id');
if(currentFieldName == 'submit' || currentFieldName == 'reset') return;
if(currentFieldName.indexOf('[') > 0) currentFieldName = currentFieldName.substr(0, currentFieldName.indexOf('['));
currentFieldName = currentFieldName.toLowerCase();
helpLink = createLink('help', 'field', 'module=' + config.currentModule + '&method=' + config.currentMethod + '&field=' + currentFieldName);
$(this).after(' <a class="helplink ' + className + '" href=' + helpLink + ' target="_blank">?</a> ');
});
// $('form input[id], form select[id], form textarea[id]').each(function()
// {
// if($(this).attr('type') == 'hidden' || $(this).attr('type') == 'file') return;
// currentFieldName = $(this).attr('name') ? $(this).attr('name') : $(this).attr('id');
// if(currentFieldName == 'submit' || currentFieldName == 'reset') return;
// if(currentFieldName.indexOf('[') > 0) currentFieldName = currentFieldName.substr(0, currentFieldName.indexOf('['));
// currentFieldName = currentFieldName.toLowerCase();
// helpLink = createLink('help', 'field', 'module=' + config.currentModule + '&method=' + config.currentMethod + '&field=' + currentFieldName);
// $(this).after(' <a class="helplink ' + className + '" href=' + helpLink + ' target="_blank">?</a> ');
// });
$("a.helplink").modalTrigger({width:600, type:'iframe'});
}
// $("a.helplink").modalTrigger({width:600, type:'iframe'});
// }
/**
* Set paceholder.
@@ -367,19 +314,19 @@ function removeAnchor(url)
return url;
}
/**
* Get the window size and save to cookie.
*
* @access public
* @return void
*/
function saveWindowSize()
{
width = $(window).width();
height = $(window).height();
$.cookie('windowWidth', width)
$.cookie('windowHeight', height)
}
// /**
// * Get the window size and save to cookie.
// *
// * @access public
// * @return void
// */
// function saveWindowSize()
// {
// width = $(window).width();
// height = $(window).height();
// $.cookie('windowWidth', width)
// $.cookie('windowHeight', height)
// }
/**
* Adjust Outer box's width and height.
@@ -678,39 +625,39 @@ function checkTable($table)
* @access public
* @return void
*/
function toggleSearch()
{
$("#bysearchTab").toggle
(
function()
{
if(typeof(browseType) == 'undefined' || browseType == 'bymodule')
{
$('#bymoduleTab').removeClass('btn-active-text');
}
else
{
$('#' + browseType + 'Tab').removeClass('btn-active-text');
}
$('#bysearchTab').addClass('btn-active-text');
ajaxGetSearchForm();
$('#queryBox').addClass('show');
},
function()
{
if(typeof(browseType) == 'undefined' || browseType == 'bymodule')
{
$('#bymoduleTab').addClass('btn-active-text');
}
else
{
$('#' + browseType +'Tab').addClass('btn-active-text');
}
$('#bysearchTab').removeClass('btn-active-text');
$('#queryBox').removeClass('show');
}
);
}
// function toggleSearch()
// {
// $("#bysearchTab").toggle
// (
// function()
// {
// if(typeof(browseType) == 'undefined' || browseType == 'bymodule')
// {
// $('#bymoduleTab').removeClass('btn-active-text');
// }
// else
// {
// $('#' + browseType + 'Tab').removeClass('btn-active-text');
// }
// $('#bysearchTab').addClass('btn-active-text');
// ajaxGetSearchForm();
// $('#queryBox').addClass('show');
// },
// function()
// {
// if(typeof(browseType) == 'undefined' || browseType == 'bymodule')
// {
// $('#bymoduleTab').addClass('btn-active-text');
// }
// else
// {
// $('#' + browseType +'Tab').addClass('btn-active-text');
// }
// $('#bysearchTab').removeClass('btn-active-text');
// $('#queryBox').removeClass('show');
// }
// );
// }
/**
* Ajax get search form
@@ -1400,47 +1347,47 @@ function removeCookieByKey(cookieKey)
location.href = location.href;
}
/**
* Bind hotkey event
* @access public
* @return void
*/
function initHotKey()
{
$(document).bind('keydown', 'Ctrl+g', function(e)
{
/* CTRL+g, auto focus on the search box. */
$('#searchQuery').val('').focus();
e.stopPropagation();
e.preventDefault();
return false;
}).bind('keydown', 'Alt+up', function()
{
/* Alt+up, go back to the previous page. */
var backLink = $('#back').attr('href');
if(backLink) location.href = backLink;
}).bind('keydown', 'left', function()
{
/* left, go to pre object. */
var preLink = $('#pre').attr('href');
if(!$.cookie('ajax_lastNext'))
{
$.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
$.get(createLink('score', 'ajax', "method=lastNext"));
}
if(preLink) location.href = preLink;
}).bind('keydown', 'right', function()
{
/* right, go to next object. */
var nextLink = $('#next').attr('href');
if(!$.cookie('ajax_lastNext'))
{
$.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
$.get(createLink('score', 'ajax', "method=lastNext"));
}
if(nextLink) location.href = nextLink;
});
}
// /**
// * Bind hotkey event
// * @access public
// * @return void
// */
// function initHotKey()
// {
// $(document).bind('keydown.ctrl_g', function(e)
// {
// /* CTRL+g, auto focus on the search box. */
// $('#searchQuery').val('').focus();
// e.stopPropagation();
// e.preventDefault();
// return false;
// }).bind('keydown.Alt+up', function()
// {
// /* Alt+up, go back to the previous page. */
// var backLink = $('#back').attr('href');
// if(backLink) location.href = backLink;
// }).bind('keydown.left', function()
// {
// /* left, go to pre object. */
// var preLink = $('#pre').attr('href');
// if(!$.cookie('ajax_lastNext'))
// {
// $.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
// $.get(createLink('score', 'ajax', "method=lastNext"));
// }
// if(preLink) location.href = preLink;
// }).bind('keydown.right', function()
// {
// /* right, go to next object. */
// var nextLink = $('#next').attr('href');
// if(!$.cookie('ajax_lastNext'))
// {
// $.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
// $.get(createLink('score', 'ajax', "method=lastNext"));
// }
// if(nextLink) location.href = nextLink;
// });
// }
/**
* Init help link for user to open zentao help website in iframe
@@ -1592,50 +1539,50 @@ function revertModuleCookie()
}
}
/**
* Focus move up or down for input.
*
* @param type up|down
*/
function inputFocusJump(type){
var hasFocus = $('input').is(':focus');
if(hasFocus)
{
var title = $("input:focus").attr('name').replace(/\[\d]/g, '');
var $input = $(":input[name^=" + title + "]:text:not(:disabled):not([name*='%'])");
var num = $input.length;
var index = parseInt($("input:focus").attr('name').replace(/[^0-9]/g, ''));
var nextIndex = type == 'down' ? index + 1 : index - 1;
// /**
// * Focus move up or down for input.
// *
// * @param type up|down
// */
// function inputFocusJump(type){
// var hasFocus = $('input').is(':focus');
// if(hasFocus)
// {
// var title = $("input:focus").attr('name').replace(/\[\d]/g, '');
// var $input = $(":input[name^=" + title + "]:text:not(:disabled):not([name*='%'])");
// var num = $input.length;
// var index = parseInt($("input:focus").attr('name').replace(/[^0-9]/g, ''));
// var nextIndex = type == 'down' ? index + 1 : index - 1;
if(nextIndex < num && nextIndex >= 0)
{
$input[nextIndex].focus();
}
}
}
// if(nextIndex < num && nextIndex >= 0)
// {
// $input[nextIndex].focus();
// }
// }
// }
/**
* Focus move up or down for select.
*
* @param type
*/
function selectFocusJump(type)
{
var hasFocus = $('select').is(':focus');
if(hasFocus)
{
var title = $("select:focus").attr('name').replace(/\[\d]/g, '');
var $select = $("select[name^=" + title + "]:not([name*='%'])");
var num = $select.length;
var index = parseInt($("select:focus").attr('name').replace(/[^0-9]/g, ''));
var nextIndex = type == 'down' ? index + 1 : index - 1;
// /**
// * Focus move up or down for select.
// *
// * @param type
// */
// function selectFocusJump(type)
// {
// var hasFocus = $('select').is(':focus');
// if(hasFocus)
// {
// var title = $("select:focus").attr('name').replace(/\[\d]/g, '');
// var $select = $("select[name^=" + title + "]:not([name*='%'])");
// var num = $select.length;
// var index = parseInt($("select:focus").attr('name').replace(/[^0-9]/g, ''));
// var nextIndex = type == 'down' ? index + 1 : index - 1;
if(nextIndex < num && nextIndex >= 0)
{
$select[nextIndex].focus();
}
}
}
// if(nextIndex < num && nextIndex >= 0)
// {
// $select[nextIndex].focus();
// }
// }
// }
function adjustNoticePosition()
{
@@ -1671,31 +1618,31 @@ needPing = true;
/* When body's ready, execute these. */
$(document).ready(function()
{
setTableBehavior();
setForm();
saveWindowSize();
setSearchBox();
setOuterBox();
// setTableBehavior();
// setForm();
// saveWindowSize();
// setSearchBox();
// setOuterBox();
//setRequiredFields();
setPlaceholder();
setModalTriggerLink();
checkTable();
toggleSearch();
// checkTable();
// toggleSearch();
fixStyle();
// fixStyle();
// Init tree menu
$('.tree').tree({initialState: 'preserve'});
$(window).resize(saveWindowSize); // When window resized, call it again.
// $(window).resize(saveWindowSize); // When window resized, call it again.
if(needPing) setTimeout('setPing()', 1000 * 60 * 10); // After 10 minutes, begin ping.
initPrioritySelector();
initHotKey();
// initHotKey();
initHelpLink();
checkTutorial();
revertModuleCookie();
+14 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long