This commit is contained in:
Catouse
2018-06-14 17:27:47 +08:00
89 changed files with 635 additions and 474 deletions
+9 -1
View File
@@ -607,7 +607,12 @@ class actionModel extends model
->beginIF($projectID == 'all' or $productID == 'all')->andWhere("IF((objectType!= 'doc' && objectType!= 'doclib'), ($condition), '1=1')")->fi()
->beginIF($docs and !$this->app->user->admin)->andWhere("IF(objectType != 'doc', '1=1', objectID " . helper::dbIN($docs) . ")")->fi()
->beginIF($libs and !$this->app->user->admin)->andWhere("IF(objectType != 'doclib', '1=1', objectID " . helper::dbIN(array_keys($libs)) . ') ')->fi()
->orderBy($orderBy)->page($pager)->fetchAll();
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('objectType')->notin('bug,build,project,task,taskcase,testreport,testsuite,testtask')->fi()
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('objectType')->notin('product,productplan,release,story,testcase,testreport,testsuite')->fi()
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('objectType')->notin('project,productplan,release,story,task')->fi()
->orderBy($orderBy)
->page($pager)
->fetchAll();
if(!$actions) return array();
@@ -691,6 +696,9 @@ class actionModel extends model
{
return $actions = $this->dao->select('*')->from(TABLE_ACTION)
->where($sql)
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('objectType')->notin('bug,build,project,task,taskcase,testreport,testsuite,testtask')->fi()
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('objectType')->notin('product,productplan,release,story,testcase,testreport,testsuite')->fi()
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('objectType')->notin('project,productplan,release,story,task')->fi()
->orderBy($orderBy)
->page($pager)
->fetchAll();
+3
View File
@@ -123,6 +123,9 @@ class blockModel extends model
$blocks = $this->dao->select('*')->from(TABLE_BLOCK)->where('account')->eq($this->app->user->account)
->andWhere('module')->eq($module)
->andWhere('hidden')->eq(0)
->beginIF($this->config->global->flow == 'onlyStory')->andWhere('source')->notin('project,qa')->fi()
->beginIF($this->config->global->flow == 'onlyTask')->andWhere('source')->notin('product,qa')->fi()
->beginIF($this->config->global->flow == 'onlyTest')->andWhere('source')->notin('product,project')->fi()
->orderBy('`order`')
->fetchAll('id');
@@ -13,11 +13,15 @@
<div id='assigntomeBlock'>
<ul class="nav nav-secondary">
<?php foreach($hasViewPriv as $type => $bool):?>
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTask' && $type == 'task') continue;?>
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTest' && $type == 'bug') continue;?>
<li<?php if($type === 'todo') echo ' class="active"';?>><a data-tab href='#assigntomeTab-<?php echo $type;?>'><?php echo $lang->block->availableBlocks->$type;?></a></li>
<?php endforeach;?>
</ul>
<div class="tab-content">
<?php foreach($hasViewPriv as $type => $bool):?>
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTask' && $type == 'task') continue;?>
<?php if($config->global->flow != 'full' && $config->global->flow != 'onlyTest' && $type == 'bug') continue;?>
<div class="tab-pane<?php if($type === 'todo') echo ' active';?>" id="assigntomeTab-<?php echo $type?>">
<?php include "{$type}block.html.php";?>
</div>
@@ -29,4 +33,4 @@
#assigntomeBlock .block-todoes {padding-top: 10px}
#assigntomeBlock > .nav {position: absolute; top: -41px; left: 120px;}
#assigntomeBlock .block-todoes .todoes-form{top: -55px;}
</style>
</style>
+1 -1
View File
@@ -91,7 +91,7 @@ class bug extends control
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
/* Set menu and save session. */
$this->bug->setMenu($this->products, $productID, $branch, $moduleID);
$this->bug->setMenu($this->products, $productID, $branch, $moduleID, $browseType, $orderBy);
$this->session->set('bugList', $this->app->getURI(true));
/* Process the order by field. */
-3
View File
@@ -4,9 +4,6 @@ $(function()
if(flow == 'onlyTest')
{
toggleSearch();
$(".export").modalTrigger({width:650, type:'iframe'});
$('#subNavbar > .nav > li').removeClass('active');
$('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active');
+10
View File
@@ -1,5 +1,7 @@
$(function()
{
$('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover');
if(typeof page == 'undefined') page = '';
if(page == 'create')
{
@@ -20,6 +22,14 @@ $(function()
oldProductID = $('#product').val();
$("#story, #task, #mailto").chosen(defaultChosenOptions);
}
if(flow != 'full')
{
$('.querybox-toggle').click(function()
{
$(this).parent().toggleClass('active');
});
}
});
/**
+87 -8
View File
@@ -15,22 +15,71 @@ class bugModel extends model
{
/**
* Set menu.
*
* @param array $products
* @param int $productID
*
* @param array $products
* @param int $productID
* @param int $branch
* @param int $moduleID
* @param string $browseType
* @param string $orderBy
* @access public
* @return void
*/
public function setMenu($products, $productID, $branch = 0, $moduleID = 0)
public function setMenu($products, $productID, $branch = 0, $moduleID = 0, $browseType = 'unclosed', $orderBy = '')
{
$this->loadModel('product')->setMenu($products, $productID, $branch, $moduleID, 'bug');
$selectHtml = $this->product->select($products, $productID, 'bug', 'browse', '', $branch, $moduleID, 'bug');
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
}
else
{
if(common::hasPriv('bug', 'report'))
{
$link = helper::createLink('bug', 'report', "productID=$productID&browseType=$browseType&branchID=$branch&moduleID=$moduleID");
$pageActions .= html::a($link, "<i class='icon-common-report icon-bar-chart muted'></i> <span class='text'>" . $this->lang->bug->report->common . '</span>', '', "class='btn btn-link'");
}
if(common::hasPriv('bug', 'export'))
{
$link = helper::createLink('bug', 'export', "productID=$productID&orderBy=$orderBy");
$pageActions .= "<div class='btn-group'>";
$pageActions .= "<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown'>";
$pageActions .= "<i class='icon icon-export muted'></i><span class='text'>{$this->lang->export}</span><span class='caret'></span></button>";
$pageActions .= '</button>';
$pageActions .= "<ul class='dropdown-menu' id='exportActionMenu'>";
$pageActions .= '<li>' . html::a($link, $this->lang->bug->export, '', "class='export'") . '</li>';
$pageActions .= '</ul>';
$pageActions .= '</div>';
}
if(common::hasPriv('bug', 'batchCreate'))
{
$link = helper::createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID");
$pageActions .= html::a($link, "<i class='icon icon-plus'></i>" . $this->lang->bug->batchCreate, '', "class='btn btn-secondary'");
}
if(commonModel::isTutorialMode())
{
$wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&extra=moduleID=$moduleID");
$link = helper::createLink('tutorial', 'wizard', "module=bug&method=create&params=$wizardParams");
$pageActions .= html::a($link, "<i class='icon-plus'></i>" . $this->lang->bug->create, '', "class='btn btn-primary btn-bug-create'");
}
else
{
if(common::hasPriv('bug', 'create'))
{
$link = helper::createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID");
$pageActions .= html::a($link, "<i class='icon icon-plus'></i>" . $this->lang->bug->create, '', "class='btn btn-primary'");
}
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $productIndex;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->bug->menu as $key => $menu)
{
if($this->config->global->flow != 'onlyTest')
@@ -46,6 +95,36 @@ class bugModel extends model
}
common::setMenuVars($this->lang->bug->menu, $key, $replace);
}
if($this->config->global->flow != 'full')
{
$tmpMenu = (array)$this->lang->bug->menu;
$moreMenu = array_slice($tmpMenu, -6);
$tmpMenu = array_slice($tmpMenu, 0, count($tmpMenu) - 6);
if($moreMenu)
{
$moreKey = 'more';
$moreLabel = $this->lang->more;
if(strpos(",unconfirmed,assigntonull,longlifebugs,postponedbugs,overduebugs,needconfirm,", ",$browseType,") !== false)
{
$moreKey = $browseType;
$moreLabel = $this->lang->bug->featureBar['browse'][$browseType];
}
$more = "<a data-toggle='dropdown'>{$moreLabel}<span class='caret'></span></a>";
$more .= "<ul class='dropdown-menu'>";
foreach($moreMenu as $menu)
{
list($label, $module, $method, $params) = explode('|', $menu);
if(common::hasPriv($module, $method))
{
$more .= '<li>' . html::a(helper::createLink($module, $method, $params), $label) . '</li>';
}
}
$more .= '</ul>';
$tmpMenu[$moreKey] = $more;
}
if($this->app->getMethodName() != 'view') $tmpMenu['bysearch'] = "<a class='querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'> </i>{$this->lang->bug->byQuery}</a>";
$this->lang->bug->menu = (object)$tmpMenu;
}
}
/**
+1 -1
View File
@@ -32,7 +32,7 @@
{
if($field) $visibleFields[$field] = '';
}
foreach(explode(',', $this->config->bug->create->requiredFields) as $field)
foreach(explode(',', $config->bug->create->requiredFields) as $field)
{
if($field)
{
+1 -1
View File
@@ -32,7 +32,7 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->bug->edit->requiredFields) as $field)
foreach(explode(',', $config->bug->edit->requiredFields) as $field)
{
if($field)
{
+6 -55
View File
@@ -16,61 +16,13 @@ include '../../common/view/datatable.fix.html.php';
js::set('browseType', $browseType);
js::set('moduleID', $moduleID);
js::set('bugBrowseType', ($browseType == 'bymodule' and $this->session->bugBrowseType == 'bysearch') ? 'all' : $this->session->bugBrowseType);
js::set('flow', $this->config->global->flow);
js::set('productID', $productID);
js::set('branch', $branch);
js::set('flow', $config->global->flow);
js::set('productID', $productID);
js::set('branch', $branch);
$currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($browseType, array_keys($lang->bug->mySelects)) ? $browseType : '';
?>
<?php if($config->global->flow == 'full'):?>
<div id="mainMenu" class="clearfix">
<?php if($this->config->global->flow == 'onlyTest'):?>
<div id='featurebar'>
<ul class='submenu hidden'>
<li id='moreMenus' class='hidden'>
<a href='###' class='dropdown-toggle' data-toggle='dropdown'>
<?php echo $lang->more;?> <span class='caret'></span>
</a>
<ul class='dropdown-menu right'>
</ul>
</li>
<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;<?php echo $lang->bug->byQuery;?></a></li>
<li class='right'>
<div class='btn-group' id='createActionMenu'>
<?php
$misc = common::hasPriv('bug', 'create') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('bug', 'create') ? $this->createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID") : '#';
echo html::a($link, "<i class='icon icon-plus'></i>" . $lang->bug->create, '', $misc);
$misc = common::hasPriv('bug', 'batchCreate') ? '' : "disabled";
$link = common::hasPriv('bug', 'batchCreate') ? $this->createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID") : '#';
?>
<button type='button' class='btn btn-primary dropdown-toggle <?php echo $misc?>' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<ul class='dropdown-menu right'>
<?php echo "<li>" . html::a($link, $lang->bug->batchCreate, '', "class='$misc'") . "</li>";?>
</ul>
</div>
</li>
<li class='right'>
<?php common::printLink('bug', 'report', "productID=$productID&browseType=$browseType&branchID=$branch&moduleID=$moduleID", "<i class='icon icon-bar-chart muted'></i> " . $lang->bug->report->common); ?>
</li>
<li class='right'>
<a href='###' class='dropdown-toggle' data-toggle='dropdown'>
<i class='icon-download-alt'></i> <?php echo $lang->export ?>
<span class='caret'></span>
</a>
<ul class='dropdown-menu' id='exportActionMenu'>
<?php
$misc = common::hasPriv('bug', 'export') ? "class='export'" : "class=disabled";
$link = common::hasPriv('bug', 'export') ? $this->createLink('bug', 'export', "productID=$productID&orderBy=$orderBy") : '#';
echo "<li>" . html::a($link, $lang->bug->export, '', $misc) . "</li>";
?>
</ul>
</li>
</ul>
<div id='queryBox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
</div>
<?php else:?>
<div id="sidebarHeader">
<div class="title">
<?php
@@ -102,7 +54,6 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
foreach($menus as $menuItem)
{
if(isset($menuItem->hidden) and $menuItem->name != 'QUERY') continue;
if($this->config->global->flow == 'onlyTest' and $menuItem->name == 'needconfirm') continue;
$menuBrowseType = strpos($menuItem->name, 'QUERY') === 0 ? 'bySearch' : $menuItem->name;
$label = "<span class='text'>{$menuItem->text}</span>";
@@ -195,8 +146,8 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
}
?>
</div>
<?php endif;?>
</div>
<?php endif;?>
<div id="mainContent" class="main-row fade">
<div class="side-col" id="sidebar">
<div class="sidebar-toggle"><i class="icon icon-angle-left"></i></div>
@@ -221,7 +172,7 @@ $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($brow
</div>
<?php
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
$useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable');
$vars = "productID=$productID&branch=$branch&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
if($useDatatable) include '../../common/view/datatable.html.php';
+4 -4
View File
@@ -62,7 +62,7 @@ js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
</div>
</td>
</tr>
<?php $showProject = (strpos(",$showFields,", ',project,') !== false && $this->config->global->flow != 'onlyTest');?>
<?php $showProject = (strpos(",$showFields,", ',project,') !== false && $config->global->flow != 'onlyTest');?>
<?php if($showProject):?>
<tr>
<th><?php echo $lang->bug->project;?></th>
@@ -148,7 +148,7 @@ js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
</td>
</tr>
<?php endif;?>
<?php if($this->config->global->flow != 'onlyTest' && $showProject):?>
<?php if($config->global->flow != 'onlyTest' && $showProject):?>
<?php $showOS = strpos(",$showFields,", ',os,') !== false;?>
<?php $showBrowser = strpos(",$showFields,", ',browser,') !== false;?>
<tr>
@@ -210,13 +210,13 @@ js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
$showStory = strpos(",$showFields,", ',story,') !== false;
$showTask = strpos(",$showFields,", ',task,') !== false;
?>
<?php if($showStory and $this->config->global->flow != 'onlyTest'):?>
<?php if($showStory and $config->global->flow != 'onlyTest'):?>
<tr>
<th><?php echo $lang->bug->story;?></th>
<td colspan='2'><div id='storyIdBox' class='input-group'><?php echo html::select('story', empty($stories) ? '' : $stories, $storyID, "class='form-control chosen'");?></div></td>
</tr>
<?php endif;?>
<?php if($showTask and $this->config->global->flow != 'onlyTest'):?>
<?php if($showTask and $config->global->flow != 'onlyTest'):?>
<tr>
<th><?php echo $lang->bug->task;?></th>
<td colspan='2'><div id='taskIdBox' class='input-group'> <?php echo html::select('task', '', $taskID, "class='form-control chosen'") . html::hidden('oldTaskID', $taskID);?></div></td>
+2 -2
View File
@@ -115,7 +115,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</div>
</td>
</tr>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th><?php echo $lang->bug->productplan;?></th>
<td>
@@ -184,7 +184,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
</tbody>
</table>
</div>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<div class='detail'>
<div class='detail-title'><?php echo $lang->bug->legendPrjStoryTask;?></div>
<table class='table table-form'>
+1 -1
View File
@@ -18,7 +18,7 @@
<tr>
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
<?php $color = empty($bug->color) ? '#333' : $bug->color;?>
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink('bug', 'view', "bugID=$bug->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
<?php echo html::a(zget($config->mail, 'domain', common::getSysURL()) . helper::createLink('bug', 'view', "bugID=$bug->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
</td>
</tr>
</table>
+2 -2
View File
@@ -288,7 +288,7 @@
</td>
</tr>
<?php endif;?>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<?php if($bug->toStory != 0):?>
<tr>
<th><?php echo $lang->bug->toStory;?></th>
@@ -328,7 +328,7 @@ $convertParams = "productID=$productID&branch=$bug->branch&moduleID=0&from=bug&b
common::printIcon('bug', 'close', $params, $bug, 'button', '', '', 'text-danger iframe showinonlybody', true);
common::printIcon('bug', 'activate', $params, $bug, 'button', '', '', 'text-success iframe showinonlybody', true);
if($this->config->global->flow != 'onlyTest') common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story']);
if($config->global->flow != 'onlyTest') common::printIcon('bug', 'toStory', "product=$bug->product&branch=$bug->branch&module=0&story=0&project=0&bugID=$bug->id", $bug, 'button', $lang->icons['story']);
common::printIcon('bug', 'createCase', $convertParams, $bug, 'button', 'sitemap');
echo "<div class='divider'></div>";
+1
View File
@@ -58,3 +58,4 @@ $lang->build->placeholder->filePath = ' 該版本軟件包下載存儲地址';
$lang->build->action = new stdclass();
$lang->build->action->buildopened = '$date, 由 <strong>$actor</strong> 創建版本 <strong>$extra</strong>。' . "\n";
$lang->backhome = '返回';
+1 -1
View File
@@ -70,7 +70,7 @@
<td colspan="3" class="text-center form-actions">
<?php echo html::submitButton('', '', 'btn btn-wide btn-primary');?>
<?php echo html::backButton('', '', 'btn btn-wide');?>
<?php echo $this->config->global->flow != 'onlyTest' ? html::hidden('project', $build->project) : '';?>
<?php echo $config->global->flow != 'onlyTest' ? html::hidden('project', $build->project) : '';?>
</td>
</tr>
</table>
+6 -6
View File
@@ -13,7 +13,7 @@
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmUnlinkStory', $lang->build->confirmUnlinkStory)?>
<?php js::set('confirmUnlinkBug', $lang->build->confirmUnlinkBug)?>
<?php js::set('flow', $this->config->global->flow)?>
<?php js::set('flow', $config->global->flow)?>
<?php if(isonlybody()):?>
<style>
#stories .action{display:none;}
@@ -38,7 +38,7 @@ tbody tr td:first-child input{display:none;}
<?php
if(!$build->deleted)
{
if($this->config->global->flow != 'onlyTest')
if($config->global->flow != 'onlyTest')
{
if(common::hasPriv('build', 'linkStory')) echo html::a(inlink('view', "buildID=$build->id&type=story&link=true"), '<i class="icon-link"></i> ' . $lang->build->linkStory, '', "class='btn btn-link'");
if(common::hasPriv('build', 'linkBug')) echo html::a(inlink('view', "buildID=$build->id&type=bug&link=true"), '<i class="icon-bug"></i> ' . $lang->build->linkBug, '', "class='btn btn-link'");
@@ -50,7 +50,7 @@ tbody tr td:first-child input{display:none;}
</div>
</div>
<div id='mainContent' class='main-content'>
<?php if($this->config->global->flow == 'onlyTest'):?>
<?php if($config->global->flow == 'onlyTest'):?>
<div class='detail'>
<div class='detail-title'><?php echo $lang->build->desc;?></div>
<div class='detail-content article-content'><?php echo $build->desc;?></div>
@@ -314,7 +314,7 @@ tbody tr td:first-child input{display:none;}
<th><?php echo $lang->build->filePath;?></th>
<td style='word-break:break-all;'><?php echo html::a($build->filePath, $build->filePath, '_blank');?></td>
</tr>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th style="vertical-align:top"><?php echo $lang->build->desc;?></th>
<td>
@@ -329,7 +329,7 @@ tbody tr td:first-child input{display:none;}
</table>
</div>
</div>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<?php echo $this->fetch('file', 'printFiles', array('files' => $build->files, 'fieldset' => 'true'));?>
<?php endif;?>
<?php include '../../common/view/action.html.php';?>
@@ -339,7 +339,7 @@ tbody tr td:first-child input{display:none;}
</div>
<?php endif;?>
</div>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<?php js::set('param', helper::safe64Decode($param))?>
<?php js::set('link', $link)?>
<?php js::set('buildID', $build->id)?>
+36 -35
View File
@@ -160,13 +160,14 @@ $lang->exportTypeList['selected'] = 'Selected';
$lang->lang = 'Language';
/* 风格列表。*/
$lang->themes['default'] = 'ZenTao Blue (default)';
$lang->themes['green'] = 'Green';
$lang->themes['red'] = 'Red';
$lang->themes['purple'] = 'Purple';
$lang->themes['pink'] = 'Pink';
$lang->themes['blackberry'] = 'Blackberry';
$lang->themes['classic'] = 'Classic';
$lang->theme = 'Theme';
$lang->themes['default'] = 'ZenTao Blue (default)';
$lang->themes['green'] = 'Green';
$lang->themes['red'] = 'Red';
$lang->themes['purple'] = 'Purple';
$lang->themes['pink'] = 'Pink';
$lang->themes['blackberry'] = 'Blackberry';
$lang->themes['classic'] = 'Classic';
/* 首页菜单设置。*/
$lang->index = new stdclass();
@@ -634,6 +635,8 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
unset($lang->searchObjects['project']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
@@ -664,14 +667,13 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
unset($lang->product->menu);
unset($lang->product->menuOrder);
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['story']);
unset($lang->searchObjects['product']);
unset($lang->searchObjects['testcase']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['productplan']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
@@ -713,32 +715,34 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->bug->menu = new stdclass();
$lang->bug->menu->unclosed = 'Open|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->all = 'All|bug|browse|productID=%s&branch=%s&browseType=all&param=%s';
$lang->bug->menu->assigntome = 'AssignedToMe|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->unclosed = 'Open|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->openedbyme = 'CreatedByMe|bug|browse|productID=%s&branch=%s&browseType=openedbyme&param=%s';
$lang->bug->menu->assigntome = 'AssignedToMe|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->resolvedbyme = 'ResolvedByMe|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme&param=%s';
$lang->bug->menu->toclosed = 'ToBeClosed|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->unresolved = 'Unresolved|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->unconfirmed = 'Unconfirmed|bug|browse|productID=%s&branch=%s&browseType=unconfirmed&param=%s';
$lang->bug->menu->assigntonull = 'Unassigned|bug|browse|productID=%s&branch=%s&browseType=assigntonull&param=%s';
$lang->bug->menu->unresolved = 'Unresolved|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->toclosed = 'ToBeClosed|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->longlifebugs = 'Pending|bug|browse|productID=%s&branch=%s&browseType=longlifebugs&param=%s';
$lang->bug->menu->postponedbugs = 'PostPoned|bug|browse|productID=%s&branch=%s&browseType=postponedbugs&param=%s';
$lang->bug->menu->overduebugs = 'Overdue|bug|browse|productID=%s&branch=%s&browseType=overduebugs&param=%s';
$lang->bug->menu->needconfirm = 'NeedConfirm|bug|browse|productID=%s&branch=%s&browseType=needconfirm&param=%s';
$lang->bug->menuOrder[5] = 'product';
$lang->bug->menuOrder[10] = 'unclosed';
$lang->bug->menuOrder[15] = 'all';
$lang->bug->menuOrder[20] = 'assigntome';
$lang->bug->menuOrder[25] = 'openedbyme';
$lang->bug->menuOrder[10] = 'all';
$lang->bug->menuOrder[15] = 'unclosed';
$lang->bug->menuOrder[20] = 'openedbyme';
$lang->bug->menuOrder[25] = 'assigntome';
$lang->bug->menuOrder[30] = 'resolvedbyme';
$lang->bug->menuOrder[35] = 'unresolved';
$lang->bug->menuOrder[40] = 'assigntonull';
$lang->bug->menuOrder[45] = 'unresolved';
$lang->bug->menuOrder[50] = 'toclosed';
$lang->bug->menuOrder[35] = 'toclosed';
$lang->bug->menuOrder[40] = 'unresolved';
$lang->bug->menuOrder[45] = 'unconfirmed';
$lang->bug->menuOrder[50] = 'assigntonull';
$lang->bug->menuOrder[55] = 'longlifebugs';
$lang->bug->menuOrder[60] = 'postponedbugs';
$lang->bug->menuOrder[65] = 'overduebugs';
$lang->bug->menuOrder[70] = 'needconfirm';
/* Adjust sub menu of testcase. */
$lang->testcase->menu = new stdclass();
@@ -753,30 +757,26 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->testsuite->menu = new stdclass();
$lang->testsuite->menu->create = array('link' => "<i class='icon-plus'></i> Create Suite|testsuite|create|productID=%s", 'float' => 'right');
$lang->testsuite->menuOrder[5] = 'product';
$lang->testsuite->menuOrder[10] = 'create';
/* Adjust sub menu of testtask. */
$lang->testtask->menu = new stdclass();
$lang->testtask->menu->totalStatus = 'All|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->wait = 'Wait|testtask|browse|productID=%s&branch=%s&type=%s,wait';
$lang->testtask->menu->doing = 'Doing|testtask|browse|productID=%s&branch=%s&type=%s,doing';
$lang->testtask->menu->blocked = 'Blocked|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
$lang->testtask->menu->done = 'Done|testtask|browse|productID=%s&branch=%s&type=%s,done';
$lang->testtask->menu->totalStatus = 'All|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->report = array('link' => 'Report|testreport|browse');
$lang->testtask->menu->create = array('link' => "<i class='icon-plus'></i> Create|testtask|create|productID=%s", 'float' => 'right');
$lang->testtask->menuOrder[5] = 'product';
$lang->testtask->menuOrder[10] = 'scope';
$lang->testtask->menuOrder[15] = 'wait';
$lang->testtask->menuOrder[20] = 'doing';
$lang->testtask->menuOrder[25] = 'blocked';
$lang->testtask->menuOrder[30] = 'done';
$lang->testtask->menuOrder[35] = 'totalStatus';
$lang->testtask->menuOrder[40] = 'report';
$lang->testtask->menuOrder[45] = 'create';
$lang->testtask->menuOrder[5] = 'product';
$lang->testtask->menuOrder[10] = 'scope';
$lang->testtask->menuOrder[15] = 'totalStatus';
$lang->testtask->menuOrder[20] = 'wait';
$lang->testtask->menuOrder[25] = 'doing';
$lang->testtask->menuOrder[30] = 'blocked';
$lang->testtask->menuOrder[35] = 'done';
$lang->testtask->menuOrder[40] = 'report';
$lang->testreport->menu = $lang->testtask->menu;
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
@@ -824,5 +824,6 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
unset($lang->searchObjects['story']);
unset($lang->searchObjects['task']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['project']);
unset($lang->searchObjects['productplan']);
}
+25 -25
View File
@@ -635,6 +635,8 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
unset($lang->searchObjects['project']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
@@ -665,14 +667,13 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
unset($lang->product->menu);
unset($lang->product->menuOrder);
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['story']);
unset($lang->searchObjects['product']);
unset($lang->searchObjects['testcase']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['productplan']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
@@ -714,32 +715,34 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->bug->menu = new stdclass();
$lang->bug->menu->unclosed = '未关闭|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->all = '所有|bug|browse|productID=%s&branch=%s&browseType=all&param=%s';
$lang->bug->menu->assigntome = '指派给我|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->unclosed = '未关闭|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->openedbyme = '由我创建|bug|browse|productID=%s&branch=%s&browseType=openedbyme&param=%s';
$lang->bug->menu->assigntome = '指派给我|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->resolvedbyme = '由我解决|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme&param=%s';
$lang->bug->menu->toclosed = '待关闭|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->unresolved = '未解决|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->unconfirmed = '未确认|bug|browse|productID=%s&branch=%s&browseType=unconfirmed&param=%s';
$lang->bug->menu->assigntonull = '未指派|bug|browse|productID=%s&branch=%s&browseType=assigntonull&param=%s';
$lang->bug->menu->unresolved = '未解决|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->toclosed = '待关闭|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->longlifebugs = '久未处理|bug|browse|productID=%s&branch=%s&browseType=longlifebugs&param=%s';
$lang->bug->menu->postponedbugs = '被延期|bug|browse|productID=%s&branch=%s&browseType=postponedbugs&param=%s';
$lang->bug->menu->overduebugs = '过期Bug|bug|browse|productID=%s&branch=%s&browseType=overduebugs&param=%s';
$lang->bug->menu->needconfirm = '需求变动|bug|browse|productID=%s&branch=%s&browseType=needconfirm&param=%s';
$lang->bug->menuOrder[5] = 'product';
$lang->bug->menuOrder[10] = 'unclosed';
$lang->bug->menuOrder[15] = 'all';
$lang->bug->menuOrder[20] = 'assigntome';
$lang->bug->menuOrder[25] = 'openedbyme';
$lang->bug->menuOrder[10] = 'all';
$lang->bug->menuOrder[15] = 'unclosed';
$lang->bug->menuOrder[20] = 'openedbyme';
$lang->bug->menuOrder[25] = 'assigntome';
$lang->bug->menuOrder[30] = 'resolvedbyme';
$lang->bug->menuOrder[35] = 'unresolved';
$lang->bug->menuOrder[40] = 'assigntonull';
$lang->bug->menuOrder[45] = 'unresolved';
$lang->bug->menuOrder[50] = 'toclosed';
$lang->bug->menuOrder[35] = 'toclosed';
$lang->bug->menuOrder[40] = 'unresolved';
$lang->bug->menuOrder[45] = 'unconfirmed';
$lang->bug->menuOrder[50] = 'assigntonull';
$lang->bug->menuOrder[55] = 'longlifebugs';
$lang->bug->menuOrder[60] = 'postponedbugs';
$lang->bug->menuOrder[65] = 'overduebugs';
$lang->bug->menuOrder[70] = 'needconfirm';
/* Adjust sub menu of testcase. */
$lang->testcase->menu = new stdclass();
@@ -754,30 +757,26 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->testsuite->menu = new stdclass();
$lang->testsuite->menu->create = array('link' => "<i class='icon-plus'></i> 建套件|testsuite|create|productID=%s", 'float' => 'right');
$lang->testsuite->menuOrder[5] = 'product';
$lang->testsuite->menuOrder[10] = 'create';
/* Adjust sub menu of testtask. */
$lang->testtask->menu = new stdclass();
$lang->testtask->menu->totalStatus = '所有|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->wait = '待测版本|testtask|browse|productID=%s&branch=%s&type=%s,wait';
$lang->testtask->menu->doing = '测试中版本|testtask|browse|productID=%s&branch=%s&type=%s,doing';
$lang->testtask->menu->blocked = '被阻塞版本|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
$lang->testtask->menu->done = '已测版本|testtask|browse|productID=%s&branch=%s&type=%s,done';
$lang->testtask->menu->totalStatus = '全部|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->report = array('link' => '报告|testreport|browse', 'alias' => 'view,create,edit');
$lang->testtask->menu->create = array('link' => "<i class='icon-plus'></i> 提交测试|testtask|create|productID=%s", 'float' => 'right');
$lang->testtask->menuOrder[5] = 'product';
$lang->testtask->menuOrder[10] = 'scope';
$lang->testtask->menuOrder[15] = 'wait';
$lang->testtask->menuOrder[20] = 'doing';
$lang->testtask->menuOrder[25] = 'blocked';
$lang->testtask->menuOrder[30] = 'done';
$lang->testtask->menuOrder[35] = 'totalStatus';
$lang->testtask->menuOrder[15] = 'totalStatus';
$lang->testtask->menuOrder[20] = 'wait';
$lang->testtask->menuOrder[25] = 'doing';
$lang->testtask->menuOrder[30] = 'blocked';
$lang->testtask->menuOrder[35] = 'done';
$lang->testtask->menuOrder[40] = 'report';
$lang->testtask->menuOrder[45] = 'create';
$lang->testreport->menu = $lang->testtask->menu;
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
@@ -825,5 +824,6 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
unset($lang->searchObjects['story']);
unset($lang->searchObjects['task']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['project']);
unset($lang->searchObjects['productplan']);
}
+25 -25
View File
@@ -635,6 +635,8 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyStory')
unset($lang->searchObjects['project']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
@@ -665,14 +667,13 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTask')
unset($lang->product->menu);
unset($lang->product->menuOrder);
unset($lang->searchObjects['bug']);
unset($lang->searchObjects['story']);
unset($lang->searchObjects['product']);
unset($lang->searchObjects['testcase']);
unset($lang->searchObjects['build']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['productplan']);
unset($lang->searchObjects['testtask']);
unset($lang->searchObjects['testsuite']);
unset($lang->searchObjects['testreport']);
}
if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
@@ -714,32 +715,34 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->bug->menu = new stdclass();
$lang->bug->menu->unclosed = '未關閉|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->all = '所有|bug|browse|productID=%s&branch=%s&browseType=all&param=%s';
$lang->bug->menu->assigntome = '指派給我|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->unclosed = '未關閉|bug|browse|productID=%s&branch=%s&browseType=unclosed&param=%s';
$lang->bug->menu->openedbyme = '由我創建|bug|browse|productID=%s&branch=%s&browseType=openedbyme&param=%s';
$lang->bug->menu->assigntome = '指派給我|bug|browse|productID=%s&branch=%s&browseType=assigntome&param=%s';
$lang->bug->menu->resolvedbyme = '由我解決|bug|browse|productID=%s&branch=%s&browseType=resolvedbyme&param=%s';
$lang->bug->menu->toclosed = '待關閉|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->unresolved = '未解決|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->unconfirmed = '未確認|bug|browse|productID=%s&branch=%s&browseType=unconfirmed&param=%s';
$lang->bug->menu->assigntonull = '未指派|bug|browse|productID=%s&branch=%s&browseType=assigntonull&param=%s';
$lang->bug->menu->unresolved = '未解決|bug|browse|productID=%s&branch=%s&browseType=unresolved&param=%s';
$lang->bug->menu->toclosed = '待關閉|bug|browse|productID=%s&branch=%s&browseType=toclosed&param=%s';
$lang->bug->menu->longlifebugs = '久未處理|bug|browse|productID=%s&branch=%s&browseType=longlifebugs&param=%s';
$lang->bug->menu->postponedbugs = '被延期|bug|browse|productID=%s&branch=%s&browseType=postponedbugs&param=%s';
$lang->bug->menu->overduebugs = '過期Bug|bug|browse|productID=%s&branch=%s&browseType=overduebugs&param=%s';
$lang->bug->menu->needconfirm = '需求變動|bug|browse|productID=%s&branch=%s&browseType=needconfirm&param=%s';
$lang->bug->menuOrder[5] = 'product';
$lang->bug->menuOrder[10] = 'unclosed';
$lang->bug->menuOrder[15] = 'all';
$lang->bug->menuOrder[20] = 'assigntome';
$lang->bug->menuOrder[25] = 'openedbyme';
$lang->bug->menuOrder[10] = 'all';
$lang->bug->menuOrder[15] = 'unclosed';
$lang->bug->menuOrder[20] = 'openedbyme';
$lang->bug->menuOrder[25] = 'assigntome';
$lang->bug->menuOrder[30] = 'resolvedbyme';
$lang->bug->menuOrder[35] = 'unresolved';
$lang->bug->menuOrder[40] = 'assigntonull';
$lang->bug->menuOrder[45] = 'unresolved';
$lang->bug->menuOrder[50] = 'toclosed';
$lang->bug->menuOrder[35] = 'toclosed';
$lang->bug->menuOrder[40] = 'unresolved';
$lang->bug->menuOrder[45] = 'unconfirmed';
$lang->bug->menuOrder[50] = 'assigntonull';
$lang->bug->menuOrder[55] = 'longlifebugs';
$lang->bug->menuOrder[60] = 'postponedbugs';
$lang->bug->menuOrder[65] = 'overduebugs';
$lang->bug->menuOrder[70] = 'needconfirm';
/* Adjust sub menu of testcase. */
$lang->testcase->menu = new stdclass();
@@ -754,30 +757,26 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
/* Adjust sub menu of bug module. */
$lang->testsuite->menu = new stdclass();
$lang->testsuite->menu->create = array('link' => "<i class='icon-plus'></i> 建套件|testsuite|create|productID=%s", 'float' => 'right');
$lang->testsuite->menuOrder[5] = 'product';
$lang->testsuite->menuOrder[10] = 'create';
/* Adjust sub menu of testtask. */
$lang->testtask->menu = new stdclass();
$lang->testtask->menu->totalStatus = '所有|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->wait = '待測版本|testtask|browse|productID=%s&branch=%s&type=%s,wait';
$lang->testtask->menu->doing = '測試中版本|testtask|browse|productID=%s&branch=%s&type=%s,doing';
$lang->testtask->menu->blocked = '被阻塞版本|testtask|browse|productID=%s&branch=%s&type=%s,blocked';
$lang->testtask->menu->done = '已測版本|testtask|browse|productID=%s&branch=%s&type=%s,done';
$lang->testtask->menu->totalStatus = '全部|testtask|browse|productID=%s&branch=%s&type=%s,totalStatus';
$lang->testtask->menu->report = array('link' => '報告|testreport|browse', 'alias' => 'view,create,edit');
$lang->testtask->menu->create = array('link' => "<i class='icon-plus'></i> 提交測試|testtask|create|productID=%s", 'float' => 'right');
$lang->testtask->menuOrder[5] = 'product';
$lang->testtask->menuOrder[10] = 'scope';
$lang->testtask->menuOrder[15] = 'wait';
$lang->testtask->menuOrder[20] = 'doing';
$lang->testtask->menuOrder[25] = 'blocked';
$lang->testtask->menuOrder[30] = 'done';
$lang->testtask->menuOrder[35] = 'totalStatus';
$lang->testtask->menuOrder[15] = 'totalStatus';
$lang->testtask->menuOrder[20] = 'wait';
$lang->testtask->menuOrder[25] = 'doing';
$lang->testtask->menuOrder[30] = 'blocked';
$lang->testtask->menuOrder[35] = 'done';
$lang->testtask->menuOrder[40] = 'report';
$lang->testtask->menuOrder[45] = 'create';
$lang->testreport->menu = $lang->testtask->menu;
$lang->testreport->menuOrder = $lang->testtask->menuOrder;
@@ -825,5 +824,6 @@ if(isset($config->global->flow) and $config->global->flow == 'onlyTest')
unset($lang->searchObjects['story']);
unset($lang->searchObjects['task']);
unset($lang->searchObjects['release']);
unset($lang->searchObjects['project']);
unset($lang->searchObjects['productplan']);
}
+1 -1
View File
@@ -13,7 +13,7 @@ $(function()
var $btnToolbar = $('#main .table-header .btn-toolbar:first');
if($btnToolbar.length > 0)
{
<?php $mode = isset($this->config->datatable->$datatableId->mode) ? $this->config->datatable->$datatableId->mode : 'table';?>
<?php $mode = isset($config->datatable->$datatableId->mode) ? $config->datatable->$datatableId->mode : 'table';?>
// $btnToolbar.append("<a href=\"javascript:saveDatatableConfig('mode', 'table', true);\" class='btn btn-link <?php echo $mode == 'table' ? 'btn-active-line' : '';?>'><?php echo $lang->datatable->table?></a>");
// $btnToolbar.append("<a href=\"javascript:saveDatatableConfig('mode', 'datatable', true);\" class='btn btn-link <?php echo $mode == 'datatable' ? 'btn-active-line' : '';?>'><?php echo $lang->datatable->datatable?></a>");
$btnToolbar.append("<a id='tableCustomBtn' class='btn btn-link' title='<?php echo $lang->datatable->custom?>' href='<?php echo $this->createLink('datatable', 'ajaxCustom', 'id=' . $this->moduleName . '&method=' . $this->methodName)?>' data-toggle='modal' data-type='ajax'><i class='icon icon-cog'></i></a>");
+3 -3
View File
@@ -55,13 +55,13 @@ $(function()
}, 90 * 1000);
})
<?php if(!empty($this->config->sso->redirect)):?>
<?php if(!empty($config->sso->redirect)):?>
<?php
$ranzhiAddr = $this->config->sso->addr;
$ranzhiAddr = $config->sso->addr;
$ranzhiURL = substr($ranzhiAddr, 0, strrpos($ranzhiAddr, '/sys/'));
?>
<?php if(!empty($ranzhiURL)):?>
$(function(){ redirect('<?php echo $ranzhiURL?>', '<?php echo $this->config->sso->code?>'); });
$(function(){ redirect('<?php echo $ranzhiURL?>', '<?php echo $config->sso->code?>'); });
<?php endif;?>
<?php endif;?>
</script>
+4 -4
View File
@@ -13,12 +13,12 @@ if($extHookFiles) foreach($extHookFiles as $extHookFile) include $extHookFile;
?>
<?php if(empty($_GET['onlybody']) or $_GET['onlybody'] != 'yes'):?>
<?php $this->app->loadConfig('sso');?>
<?php if(!empty($this->config->sso->redirect)) js::set('ssoRedirect', $this->config->sso->redirect);?>
<?php if(!empty($config->sso->redirect)) js::set('ssoRedirect', $config->sso->redirect);?>
<header id='header'>
<div id='mainHeader'>
<div class='container'>
<hrgroup id='heading'>
<?php if(empty($this->config->sso->redirect)):?>
<?php if(empty($config->sso->redirect)):?>
<?php $heading = sprintf($lang->welcome, $app->company->name);?>
<h1 id='companyname' title='<?php echo $heading . strlen($heading);?>'<?php if(strlen($heading) > 36) echo " class='long-name'" ?>><?php echo html::a(helper::createLink('index'), $heading);?></h1>
<?php endif;?>
@@ -45,7 +45,7 @@ if($extHookFiles) foreach($extHookFiles as $extHookFile) include $extHookFile;
</div>
</div>
<?php
if(!empty($this->config->sso->redirect))
if(!empty($config->sso->redirect))
{
css::import($defaultTheme . 'bindranzhi.css');
js::import($jsRoot . 'bindranzhi.js');
@@ -54,5 +54,5 @@ if($extHookFiles) foreach($extHookFiles as $extHookFile) include $extHookFile;
</header>
<?php endif;?>
<main id='main' <?php if(!empty($this->config->sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> >
<main id='main' <?php if(!empty($config->sso->redirect)) echo "class='ranzhiFixedTfootAction'";?> >
<div class='container'>
+1 -1
View File
@@ -4,7 +4,7 @@ js::import($jsRoot . 'jquery/validation/min.js');
?>
<style>label.error {color:red}</style>
<script>
requiredFields = "<?php echo isset($this->config->{$this->app->getModuleName()}->{$this->app->getMethodName()}->requiredFields) ? $this->config->{$this->app->getModuleName()}->{$this->app->getMethodName()}->requiredFields : '';?>";
requiredFields = "<?php echo isset($config->{$this->app->getModuleName()}->{$this->app->getMethodName()}->requiredFields) ? $config->{$this->app->getModuleName()}->{$this->app->getMethodName()}->requiredFields : '';?>";
$(document).ready(function()
{
if(typeOf requiredFields == 'unDefined') return;
+1 -1
View File
@@ -109,7 +109,7 @@ js::set('confirmDelete', $lang->user->confirmDelete);
{
echo html::a('javascript:;', "<i class='icon icon-unlink'></i>", '', "class='btn disabled'");
}
if((strtotime(date('Y-m-d H:i:s')) - strtotime($user->locked)) < $this->config->user->lockMinutes * 60)
if((strtotime(date('Y-m-d H:i:s')) - strtotime($user->locked)) < $config->user->lockMinutes * 60)
{
common::printIcon('user', 'unlock', "userID=$user->account", '', 'list', 'unlock', "hiddenwin");
}
+1 -1
View File
@@ -27,7 +27,7 @@
<?php endforeach;?>
<div class="input-control space w-150px"><?php echo html::select('account', $users, $account, 'onchange=changeUser(this.value) class="form-control chosen"');?></div>
<div class="input-control space w-150px"><?php echo html::select('product', $products, $product, 'onchange=changeProduct(this.value) class="form-control chosen"');?></div>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<div class="input-control space w-150px"><?php echo html::select('project', $projects, $project, 'onchange=changeProject(this.value) class="form-control chosen"'); ?></div>
<?php endif;?>
<a class="btn btn-link querybox-toggle" id="bysearchTab"><i class="icon icon-search muted"></i> <?php echo $lang->action->dynamic->search;?></a>
+1 -1
View File
@@ -27,7 +27,7 @@
<nav id='modulemenu'>
<ul></ul>
</nav>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<nav id='featurebar'>
<ul></ul>
</nav>
+2 -2
View File
@@ -51,8 +51,8 @@
<div class="row row-grid files-grid" data-size="300">
<?php foreach($libs as $libID => $lib):?>
<?php if($libID == 'project' and $from != 'doc') continue;?>
<?php if(strpos($this->config->doc->custom->objectLibs, 'files') === false && $libID == 'files') continue;?>
<?php if(strpos($this->config->doc->custom->objectLibs, 'customFiles') === false && isset($lib->main) && !$lib->main) continue;?>
<?php if(strpos($config->doc->custom->objectLibs, 'files') === false && $libID == 'files') continue;?>
<?php if(strpos($config->doc->custom->objectLibs, 'customFiles') === false && isset($lib->main) && !$lib->main) continue;?>
<?php $libLink = inlink('browse', "libID=$libID&browseType=all&param=0&orderBy=id_desc&from=$from");?>
<?php if($libID == 'project') $libLink = inlink('allLibs', "type=project&product=$object->id");?>
+1 -1
View File
@@ -24,7 +24,7 @@
<div class="btn-group">
<form class='input-control has-icon-right table-col' method='get'>
<?php
if($this->config->requestType == 'GET')
if($config->requestType == 'GET')
{
echo html::hidden('m', 'doc');
echo html::hidden('f', 'showFiles');
+1 -1
View File
@@ -95,7 +95,7 @@
<td colspan='2' class='text-center'>
<?php
echo html::submitButton();
if($this->config->mail->turnon and $mailExist) echo html::linkButton($lang->mail->test, inlink('test'));
if($config->mail->turnon and $mailExist) echo html::linkButton($lang->mail->test, inlink('test'));
echo html::linkButton($lang->mail->reset, inlink('reset'));
if(common::hasPriv('mail', 'browse') and !empty($config->mail->async) and !empty($config->global->cron)) echo html::linkButton($lang->mail->browse, inlink('browse'));
?>
+2 -2
View File
@@ -53,9 +53,9 @@
<td colspan='2' class='text-center'>
<?php
echo html::submitButton();
if($this->config->mail->turnon and $mailExist) echo html::linkButton($lang->mail->test, inlink('test'));
if($config->mail->turnon and $mailExist) echo html::linkButton($lang->mail->test, inlink('test'));
echo html::linkButton($lang->mail->closeSendCloud, inlink('reset'));
if($this->config->mail->turnon and common::hasPriv('mail', 'sendcloudUser')) echo html::linkButton($lang->mail->sendcloudUser, inlink('sendcloudUser'));
if($config->mail->turnon and common::hasPriv('mail', 'sendcloudUser')) echo html::linkButton($lang->mail->sendcloudUser, inlink('sendcloudUser'));
if(common::hasPriv('mail', 'browse') and !empty($config->mail->async) and !empty($config->global->cron)) echo html::linkButton($lang->mail->browse, inlink('browse'));
?>
</td>
+1 -1
View File
@@ -63,7 +63,7 @@
<td colspan='3' class='text-center form-actions'>
<?php echo html::submitButton('', '', 'btn btn-primary btn-wide');?>
<?php
if($this->config->mail->turnon and $mailExist) echo html::a(inlink('test'), $lang->mail->test, '', "class='btn btn-wide'");
if($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'");
?>
+1 -1
View File
@@ -79,7 +79,7 @@
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses');
common::printIcon('story', 'close', $vars, $story, 'list', 'off', '', 'iframe', true);
common::printIcon('story', 'edit', $vars, $story, 'list');
if($this->config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap');
if($config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap');
?>
</td>
</tr>
+21 -9
View File
@@ -52,27 +52,39 @@ class productModel extends model
$selectHtml = $this->select($products, $productID, $currentModule, $currentMethod, $extra, $branch, $module, $moduleType);
$label = $this->lang->product->index;
if($this->config->global->flow != 'full') $label = $this->lang->product->all;
if($currentModule == 'product' && $currentMethod == 'all') $label = $this->lang->product->all;
if($currentModule == 'product' && $currentMethod == 'create') $label = $this->lang->product->create;
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $label . ' <span class="caret"></span></button>';
$productIndex .= '<ul class="dropdown-menu">';
if(common::hasPriv('product', 'index')) $productIndex .= '<li>' . html::a(helper::createLink('product', 'index', 'locate=no'), '<i class="icon icon-home"></i> ' . $this->lang->product->index) . '</li>';
if(common::hasPriv('product', 'all')) $productIndex .= '<li>' . html::a(helper::createLink('product', 'all'), '<i class="icon icon-cards-view"></i> ' . $this->lang->product->all) . '</li>';
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $label . ' <span class="caret"></span></button>';
$pageNav .= '<ul class="dropdown-menu">';
if($this->config->global->flow == 'full' && common::hasPriv('product', 'index')) $pageNav .= '<li>' . html::a(helper::createLink('product', 'index', 'locate=no'), '<i class="icon icon-home"></i> ' . $this->lang->product->index) . '</li>';
if(common::hasPriv('product', 'all')) $pageNav .= '<li>' . html::a(helper::createLink('product', 'all'), '<i class="icon icon-cards-view"></i> ' . $this->lang->product->all) . '</li>';
if(common::isTutorialMode())
{
$wizardParams = helper::safe64Encode('');
$link = helper::createLink('tutorial', 'wizard', "module=product&method=create&params=$wizardParams");
$productIndex .= '<li>' . html::a($link, "<i class='icon icon-plus'></i> {$this->lang->product->create}", '', "class='create-product-btn'") . '</li>';
$pageNav .= '<li>' . html::a($link, "<i class='icon icon-plus'></i> {$this->lang->product->create}", '', "class='create-product-btn'") . '</li>';
}
else
{
if(common::hasPriv('product', 'create')) $productIndex .= '<li>' . html::a(helper::createLink('product', 'create'), '<i class="icon icon-plus"></i> ' . $this->lang->product->create) . '</li>';
if(common::hasPriv('product', 'create')) $pageNav .= '<li>' . html::a(helper::createLink('product', 'create'), '<i class="icon icon-plus"></i> ' . $this->lang->product->create) . '</li>';
}
$productIndex .= '</ul></div></div>';
$productIndex .= $selectHtml;
$pageNav .= '</ul></div></div>';
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $productIndex;
$pageActions = '';
if($this->config->global->flow != 'full')
{
if($currentMethod == 'build' && common::hasPriv('build', 'create'))
{
$this->app->loadLang('build');
$pageActions .= html::a(helper::createLink('build', 'create', "productID=$productID"), "<i class='icon icon-plus'></i> {$this->lang->build->create}", '', "class='btn btn-primary'");
}
}
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->product->menu as $key => $menu)
{
$replace = $productID;
+1 -1
View File
@@ -25,7 +25,7 @@
{
if($field) $visibleFields[$field] = '';
}
foreach(explode(',', $this->config->product->edit->requiredFields) as $field)
foreach(explode(',', $config->product->edit->requiredFields) as $field)
{
if($field)
{
+1 -1
View File
@@ -136,7 +136,7 @@
</div>
<?php
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
$useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable');
$vars = "productID=$productID&branch=$branch&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
if($useDatatable) include '../../common/view/datatable.html.php';
+61 -59
View File
@@ -1,59 +1,61 @@
<?php
/**
* The build view file of product module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmDelete', $lang->build->confirmDelete)?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<a class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->product->build;?></span><span class='label label-light label-badge'><?php echo count($builds);?></span></a>
</div>
<div class='btn-toolbar pull-right'><?php common::printLink('build', 'create', "product=$product->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?></div>
</div>
<div id='mainContent' class='main-table'>
<table class='table' id='buildList'>
<thead>
<tr class='text-center'>
<th class='w-id'><?php echo $lang->build->id;?></th>
<th><?php echo $lang->build->name;?></th>
<th><?php echo $lang->build->scmPath;?></th>
<th><?php echo $lang->build->filePath;?></th>
<th class='c-date'><?php echo $lang->build->date;?></th>
<th class='c-user'><?php echo $lang->build->builder;?></th>
<th class='c-actions-3'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($builds as $build):?>
<tr class='text-center'>
<td><?php echo $build->id;?></td>
<td class='text-left'><?php echo html::a($this->createLink('build', 'view', "build=$build->id"), $build->name);?></td>
<td class='text-left' title="<?php echo $build->scmPath?>"><?php echo strpos($build->scmPath, 'http') === 0 ? html::a($build->scmPath) : $build->scmPath;?></td>
<td class='text-left' title="<?php echo $build->filePath?>"><?php echo strpos($build->filePath, 'http') === 0 ? html::a($build->filePath) : $build->filePath;?></td>
<td><?php echo $build->date?></td>
<td><?php echo $users[$build->builder]?></td>
<td class='c-actions'>
<?php
common::printIcon('testtask', 'create', "product=$product->id&project=0&build=$build->id", '', 'list', 'bullhorn');
common::printIcon('build', 'edit', "buildID=$build->id", '', 'list');
if(common::hasPriv('build', 'delete'))
{
$deleteURL = $this->createLink('build', 'delete', "buildID=$build->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"buildList\",confirmDelete)", '<i class="icon-trash"></i>', '', "class='btn' title='{$lang->build->delete}'");
}
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
<?php
/**
* The build view file of product module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmDelete', $lang->build->confirmDelete)?>
<?php if($config->global->flow == 'full'):?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<a class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->product->build;?></span><span class='label label-light label-badge'><?php echo count($builds);?></span></a>
</div>
<div class='btn-toolbar pull-right'><?php common::printLink('build', 'create', "product=$product->id", "<i class='icon icon-plus'></i> " . $lang->build->create, '', "class='btn btn-primary'");?></div>
</div>
<?php endif;?>
<div id='mainContent' class='main-table'>
<table class='table' id='buildList'>
<thead>
<tr class='text-center'>
<th class='w-id'><?php echo $lang->build->id;?></th>
<th><?php echo $lang->build->name;?></th>
<th><?php echo $lang->build->scmPath;?></th>
<th><?php echo $lang->build->filePath;?></th>
<th class='c-date'><?php echo $lang->build->date;?></th>
<th class='c-user'><?php echo $lang->build->builder;?></th>
<th class='c-actions-3'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($builds as $build):?>
<tr class='text-center'>
<td><?php echo $build->id;?></td>
<td class='text-left'><?php echo html::a($this->createLink('build', 'view', "build=$build->id"), $build->name);?></td>
<td class='text-left' title="<?php echo $build->scmPath?>"><?php echo strpos($build->scmPath, 'http') === 0 ? html::a($build->scmPath) : $build->scmPath;?></td>
<td class='text-left' title="<?php echo $build->filePath?>"><?php echo strpos($build->filePath, 'http') === 0 ? html::a($build->filePath) : $build->filePath;?></td>
<td><?php echo $build->date?></td>
<td><?php echo $users[$build->builder]?></td>
<td class='c-actions'>
<?php
common::printIcon('testtask', 'create', "product=$product->id&project=0&build=$build->id", '', 'list', 'bullhorn');
common::printIcon('build', 'edit', "buildID=$build->id", '', 'list');
if(common::hasPriv('build', 'delete'))
{
$deleteURL = $this->createLink('build', 'delete', "buildID=$build->id&confirm=yes");
echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"buildList\",confirmDelete)", '<i class="icon-trash"></i>', '', "class='btn' title='{$lang->build->delete}'");
}
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>
+1 -1
View File
@@ -19,7 +19,7 @@
<?php echo $this->fetch('block', 'dashboard', 'module=product');?>
<?php endif;?>
<script>
<?php if(isset($this->config->product->homepage) && $this->config->product->homepage != 'index'):?>
<?php if(isset($config->product->homepage) && $config->product->homepage != 'index'):?>
$(function()
{
$('#modulemenu .nav li.right:last').after("<li class='right'><a style='font-size:12px' href='javascript:setHomepage(\"product\", \"index\")'><i class='icon icon-cog'></i> <?php echo $lang->homepage?></a></li>")
+1 -1
View File
@@ -156,7 +156,7 @@
</table>
</div>
</div>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<div class="detail">
<div class="detail-title"><strong><?php echo $lang->product->otherInfo;?></strong></div>
<div class="detail-content">
+1 -1
View File
@@ -26,7 +26,7 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->project->edit->requiredFields) as $field)
foreach(explode(',', $config->project->edit->requiredFields) as $field)
{
if($field)
{
+2 -2
View File
@@ -86,7 +86,7 @@
<td><?php echo html::select('type', $lang->project->typeList, '', "class='form-control' onchange='showTypeTips()'");?></td>
<td class='muted' colspan='2'><div class='type-tips'><?php echo $lang->project->typeDesc;?></div></td>
</tr>
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<th><?php echo $lang->project->manageProducts;?></th>
<td class='text-left' id='productsBox' colspan="3">
<div class='row'>
@@ -111,7 +111,7 @@
</div>
</td>
</tr>
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<th><?php echo $lang->project->linkPlan;?></th>
<td colspan="3" id="plansBox">
<div class='row'>
+2 -2
View File
@@ -72,7 +72,7 @@
<th><?php echo $lang->project->status;?></th>
<td><?php echo html::select('status', $lang->project->statusList, $project->status, "class='form-control'");?></td>
</tr>
<?php if($this->config->global->flow == 'onlyTask'):?>
<?php if($config->global->flow == 'onlyTask'):?>
<tr>
<th><?php echo $lang->project->owner;?></th>
<td><?php echo html::select('PM', $pmUsers, $project->PM, "class='form-control chosen'");?></td>
@@ -108,7 +108,7 @@
</td>
</tr>
<?php endif;?>
<tr <?php if($this->config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<tr <?php if($config->global->flow == 'onlyTask') echo "class='hidden'";?>>
<th><?php echo $lang->project->manageProducts;?></th>
<td class='text-left' id='productsBox' colspan="2">
<div class='row'>
+1 -1
View File
@@ -171,7 +171,7 @@ js::set('browseType', $browseType);
</div>
<?php
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
$useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable');
$vars = "projectID=$project->id&status=$status&parma=$param&orderBy=%s&recTotal=$recTotal&recPerPage=$recPerPage";
$customFields = $this->datatable->getSetting('project');
+1 -1
View File
@@ -2,7 +2,7 @@
<p><strong><?php echo $lang->project->afterInfo;?></strong></p>
<div>
<?php echo html::a($this->createLink('project', 'team', "projectID=$projectID"), $lang->project->setTeam, '', "class='btn'");?>
<?php if($this->config->global->flow != 'onlyTask' && $project->type != 'ops') echo html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory, '', "class='btn'");?>
<?php if($config->global->flow != 'onlyTask' && $project->type != 'ops') echo html::a($this->createLink('project', 'linkstory', "projectID=$projectID"), $lang->project->linkStory, '', "class='btn'");?>
<?php echo html::a($this->createLink('task', 'create', "project=$projectID"), $lang->project->createTask, '', "class='btn'");?>
<?php echo html::a($this->createLink('project', 'task', "projectID=$projectID"), $lang->project->goback, '', "class='btn'");?>
</div>
+1 -1
View File
@@ -14,7 +14,7 @@
common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', 'btn btn-info btn-icon');
common::printIcon('story', 'close', $vars, $story, 'list', 'off', '', 'btn btn-info btn-icon iframe', true);
common::printIcon('story', 'edit', $vars, $story, 'list', '', '', 'btn btn-info btn-icon');
if($this->config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap', '', 'btn btn-info btn-icon');
if($config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=&param=0&$vars", $story, 'list', 'sitemap', '', 'btn btn-info btn-icon');
?>
</div>
</div>
+2 -2
View File
@@ -71,7 +71,7 @@
<div class="panel-body">
<div class="row row-grid">
<?php $i = 9; $j = 0;?>
<?php if($this->config->global->flow != 'onlyTask'):?>
<?php if($config->global->flow != 'onlyTask'):?>
<?php if($project->PM):?>
<?php $i--;?>
<?php unset($teamMembers[$project->PM]);?>
@@ -166,7 +166,7 @@
</p>
</div>
</div>
<?php if($this->config->global->flow != 'onlyTask'):?>
<?php if($config->global->flow != 'onlyTask'):?>
<div class="detail">
<div class="detail-title">
<strong><?php echo $lang->project->manageProducts;?></strong>
+1 -1
View File
@@ -13,7 +13,7 @@
<?php include '../../common/view/header.html.php';?>
<?php echo $this->fetch('block', 'dashboard', 'module=qa');?>
<script>
<?php if($this->config->qa->homepage != 'index'):?>
<?php if($config->qa->homepage != 'index'):?>
$(function()
{
$('#modulemenu .nav li:last').after("<li class='right'><a style='font-size:12px' href='javascript:setHomepage(\"qa\", \"index\")'><i class='icon icon-cog'></i> <?php echo $lang->homepage?></a></li>")
+1 -1
View File
@@ -57,7 +57,7 @@
<td class='c-actions'>
<?php
if(common::hasPriv('release', 'linkStory')) echo html::a(inlink('view', "releaseID=$release->id&type=story&link=true"), '<i class="icon-link"></i> ', '', "class='btn' title='{$lang->release->linkStory}'");
if(common::hasPriv('release', 'linkBug') and $this->config->global->flow != 'onlyStory') echo html::a(inlink('view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ', '', "class='btn' title='{$lang->release->linkBug}'");
if(common::hasPriv('release', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ', '', "class='btn' title='{$lang->release->linkBug}'");
if(common::hasPriv('release', 'changeStatus', $release))
{
$changedStatus = $release->status == 'normal' ? 'terminate' : 'normal';
+3 -3
View File
@@ -31,7 +31,7 @@
if(!$release->deleted)
{
if(common::hasPriv('release', 'linkStory')) echo html::a(inlink('view', "releaseID=$release->id&type=story&link=true"), '<i class="icon-link"></i> ' . $lang->release->linkStory, '', "class='btn btn-link'");
if(common::hasPriv('release', 'linkBug') and $this->config->global->flow != 'onlyStory') echo html::a(inlink('view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ' . $lang->release->linkBug, '', "class='btn btn-link'");
if(common::hasPriv('release', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "releaseID=$release->id&type=bug&link=true"), '<i class="icon-bug"></i> ' . $lang->release->linkBug, '', "class='btn btn-link'");
if(common::hasPriv('release', 'changeStatus', $release))
{
@@ -51,12 +51,12 @@
<?php $countStories = count($stories); $countBugs = count($bugs); $countLeftBugs = count($leftBugs);?>
<ul class='nav nav-tabs'>
<li <?php if($type == 'story') echo "class='active'"?>><a href='#stories' data-toggle='tab'><?php echo html::icon($lang->icons['story'], 'text-green') . ' ' . $lang->release->stories;?></a></li>
<?php if($this->config->global->flow != 'onlyStory'):?>
<?php if($config->global->flow != 'onlyStory'):?>
<li <?php if($type == 'bug') echo "class='active'"?>><a href='#bugs' data-toggle='tab'><?php echo html::icon($lang->icons['bug'], 'text-green') . ' ' . $lang->release->bugs;?></a></li>
<li <?php if($type == 'leftBug') echo "class='active'"?>><a href='#leftBugs' data-toggle='tab'><?php echo html::icon($lang->icons['bug'], 'text-red') . ' ' . $lang->release->generatedBugs;?></a></li>
<?php endif;?>
<li <?php if($type == 'releaseInfo') echo "class='active'"?>><a href='#releaseInfo' data-toggle='tab'><?php echo html::icon($lang->icons['plan'], 'text-info') . ' ' . $lang->release->view;?></a></li>
<?php if($countStories or ($this->config->global->flow != 'onlyStory' and ($countBugs or $countLeftBugs))):?>
<?php if($countStories or ($config->global->flow != 'onlyStory' and ($countBugs or $countLeftBugs))):?>
<li class='pull-right'><div><?php common::printIcon('release', 'export', '', '', 'button', '', '', "export btn-sm");?></div></li>
<?php endif;?>
</ul>
+1 -1
View File
@@ -28,7 +28,7 @@
{
if($field) $visibleFields[$field] = '';
}
foreach(explode(',', $this->config->story->create->requiredFields) as $field)
foreach(explode(',', $config->story->create->requiredFields) as $field)
{
if($field)
{
+1 -1
View File
@@ -18,7 +18,7 @@
<tr>
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
<?php $color = empty($story->color) ? '#333' : $story->color;?>
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink('story', 'view', "storyID=$story->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
<?php echo html::a(zget($config->mail, 'domain', common::getSysURL()) . helper::createLink('story', 'view', "storyID=$story->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
</td>
</tr>
</table>
+1 -1
View File
@@ -340,7 +340,7 @@
common::printIcon('story', 'close', "storyID=$story->id", $story, 'button', '', '', 'iframe showinonlybody', true);
common::printIcon('story', 'activate', "storyID=$story->id", $story, 'button', '', '', 'iframe showinonlybody', true);
if($this->config->global->flow != 'onlyStory' and !isonlybody() and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
if($config->global->flow != 'onlyStory' and !isonlybody() and (common::hasPriv('testcase', 'create') or common::hasPriv('testcase', 'batchCreate')))
{
$this->app->loadLang('testcase');
echo "<div class='btn-group dropup'>";
+3 -3
View File
@@ -22,7 +22,7 @@
<?php echo $lang->task->batchCreate;?>
<?php endif;?>
</h2>
<?php if($project->type != 'ops' && $this->config->global->flow != 'onlyTask'):?>
<?php if($project->type != 'ops' && $config->global->flow != 'onlyTask'):?>
<a class="checkbox-primary pull-left" id='zeroTaskStory' href='javascript:toggleZeroTaskStory();'>
<label><?php echo $lang->story->zeroTask;?></label>
</a>
@@ -40,7 +40,7 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->task->create->requiredFields) as $field)
foreach(explode(',', $config->task->create->requiredFields) as $field)
{
if($field)
{
@@ -49,7 +49,7 @@
}
}
$colspan = count($visibleFields) + 3;
$hiddenStory = ((isonlybody() and $storyID) || $this->config->global->flow == 'onlyTask') ? ' hidden' : '';
$hiddenStory = ((isonlybody() and $storyID) || $config->global->flow == 'onlyTask') ? ' hidden' : '';
if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1;
?>
<form method='post' class='load-indicator batch-actions-form' enctype='multipart/form-data' target='hiddenwin' id="batchCreateForm">
+1 -1
View File
@@ -36,7 +36,7 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->task->edit->requiredFields) as $field)
foreach(explode(',', $config->task->edit->requiredFields) as $field)
{
if($field)
{
+5 -5
View File
@@ -12,7 +12,7 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<?php js::set('toTaskList', $this->config->global->flow == 'onlyTask' || !empty($task->id));?>
<?php js::set('toTaskList', $config->global->flow == 'onlyTask' || !empty($task->id));?>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
@@ -48,7 +48,7 @@
<button id='selectAllUser' type="button" class="btn btn-link<?php if($task->type !== 'affair') echo ' hidden';?>"><?php echo $lang->task->selectAllUser;?></button>
</td>
</tr>
<?php if(strpos(",$showFields,", ',story,') !== false and $this->config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
<?php if(strpos(",$showFields,", ',story,') !== false and $config->global->flow != 'onlyTask' and $project->type != 'ops'):?>
<tr>
<th><?php echo $lang->task->story;?></th>
<td colspan='3'>
@@ -75,7 +75,7 @@
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#name" data-provide="colorpicker">
</div>
<?php echo html::input('name', $task->name, "class='form-control' autocomplete='off' required");?>
<?php if($this->config->global->flow != 'onlyTask'):?>
<?php if($config->global->flow != 'onlyTask'):?>
<a href='javascript:copyStoryTitle();' id='copyButton' class='input-control-icon-right'><?php echo $lang->task->copyStoryTitle;?></a>
<?php echo html::hidden("storyEstimate") . html::hidden("storyDesc") . html::hidden("storyPri");?>
<?php endif;?>
@@ -159,9 +159,9 @@
</td>
</tr>
<?php endif;?>
<tr <?php echo $this->config->global->flow == 'onlyTask' ? "class='hidden'" : '';?>>
<tr <?php echo $config->global->flow == 'onlyTask' ? "class='hidden'" : '';?>>
<th><?php echo $lang->task->afterSubmit;?></th>
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $this->config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
</tr>
<tr>
<td colspan='4' class='text-center form-actions'>
+1 -1
View File
@@ -18,7 +18,7 @@
<tr>
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
<?php $color = empty($task->color) ? '#333' : $task->color;?>
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink('task', 'view', "taskID=$task->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
<?php echo html::a(zget($config->mail, 'domain', common::getSysURL()) . helper::createLink('task', 'view', "taskID=$task->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
</td>
</tr>
</table>
+1 -1
View File
@@ -80,7 +80,7 @@ class testcase extends control
$queryID = ($browseType == 'bysearch') ? (int)$param : 0;
/* Set menu, save session. */
$this->testcase->setMenu($this->products, $productID, $branch, $moduleID, $suiteID);
$this->testcase->setMenu($this->products, $productID, $branch, $moduleID, $suiteID, $orderBy);
$this->session->set('caseList', $this->app->getURI(true));
$this->session->set('productID', $productID);
$this->session->set('moduleID', $moduleID);
-3
View File
@@ -17,9 +17,6 @@ $(function()
if(flow == 'onlyTest')
{
toggleSearch();
$('.export').modalTrigger({width:650, type:'iframe', afterShown: setCheckedCookie})
$('#subNavbar > .nav > li').removeClass('active');
$('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active');
}
+13
View File
@@ -1,3 +1,16 @@
$(function()
{
$('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover');
if(flow != 'full')
{
$('.querybox-toggle').click(function()
{
$(this).parent().toggleClass('active');
});
}
})
var newRowID = 0;
/**
* Load modules and stories of a product.
+6 -1
View File
@@ -1,3 +1,8 @@
$(function()
{
$('.querybox-toggle').parent().addClass('active');
})
function reload(libID)
{
link = createLink('testcase','importFromLib','productID='+ productID + '&branch=' + branch + '&libID='+libID);
@@ -18,4 +23,4 @@ function setModule(obj)
$(this).find("[data-module='" + libModule + "']").find("select[id^='module']").val(moduleID).trigger("chosen:updated");
}
})
}
}
+95 -14
View File
@@ -16,21 +16,91 @@ class testcaseModel extends model
/**
* Set menu.
*
* @param array $products
* @param int $productID
* @param array $products
* @param int $productID
* @param int $branch
* @param int $moduleID
* @param int $suiteID
* @param string $orderBy
* @access public
* @return void
*/
public function setMenu($products, $productID, $branch = 0, $moduleID = 0, $suiteID = 0)
public function setMenu($products, $productID, $branch = 0, $moduleID = 0, $suiteID = 0, $orderBy = 'id_desc')
{
$this->loadModel('product')->setMenu($products, $productID, $branch, $moduleID, 'case');
$selectHtml = $this->product->select($products, $productID, 'testcase', 'browse', '', $branch, $moduleID, 'case');
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
}
else
{
$exportPriv = common::hasPriv('testcase', 'export');
$exportTempletPriv = common::hasPriv('testcase', 'exportTemplet');
$importPriv = common::hasPriv('testcase', 'import');
$importFromLibPriv = common::hasPriv('testcase', 'importFromLib');
if($exportPriv or $exportTempletPriv)
{
$pageActions .= "<div class='btn-group'>";
$pageActions .= "<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown'>";
$pageActions .= "<i class='icon icon-export muted'></i> {$this->lang->export}";
$pageActions .= "<span class='caret'></span>";
$pageActions .= '</button>';
$pageActions .= "<ul class='dropdown-menu' id='exportActionMenu'>";
if($exportPriv)
{
$link = helper::createLink('testcase', 'export', "productID=$productID&orderBy=$orderBy");
$pageActions .= '<li>' . html::a($link, $this->lang->testcase->export, '', "class='export'") . '</li>';
}
if($exportTempletPriv)
{
$link = helper::createLink('testcase', 'exportTemplet', "productID=$productID");
$pageActions .= '<li>' . html::a($link, $this->lang->testcase->exportTemplet, '', "class='export'") . '</li>';
}
$pageActions .= '</ul>';
$pageActions .= '</div>';
$this->lang->modulePageNav = $productIndex;
}
if($importPriv or $importFromLibPriv)
{
$pageActions .= "<div class='btn-group'>";
$pageActions .= "<button type='button' class='btn btn-link dropdown-toggle' data-toggle='dropdown' id='importAction'><i class='icon icon-import muted'></i> {$this->lang->import}<span class='caret'></span></button>";
$pageActions .= "<ul class='dropdown-menu' id='importActionMenu'>";
if($importPriv)
{
$link = helper::createLink('testcase', 'import', "productID=$productID&branch=$branch");
$pageActions .= '<li>' . html::a($link, $this->lang->testcase->importFile, '', "class='export'") . '</li>';
}
if($importFromLibPriv)
{
$link = helper::createLink('testcase', 'importFromLib', "productID=$productID&branch=$branch");
$pageActions .= '<li>' . html::a($link, $this->lang->testcase->importFromLib) . '</li>';
}
$pageActions .= '</ul>';
$pageActions .= '</div>';
}
$initModule = isset($moduleID) ? (int)$moduleID : 0;
if(common::hasPriv('testcase', 'batchCreate'))
{
$link = helper::createLink('testcase', 'batchCreate', "productID=$productID&branch=$branch&moduleID=$initModule");
$pageActions .= html::a($link, "<i class='icon-plus'></i> " . $this->lang->testcase->batchCreate, '', "class='btn btn-secondary'");
}
if(common::hasPriv('testcase', 'create'))
{
$link = helper::createLink('testcase', 'create', "productID=$productID&branch=$branch&moduleID=$initModule");
$pageActions .= html::a($link, "<i class='icon-plus'></i> " . $this->lang->testcase->create, '', "class='btn btn-primary'");
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->testcase->menu as $key => $menu)
{
if($this->config->global->flow != 'onlyTest')
@@ -46,18 +116,28 @@ class testcaseModel extends model
$currentSuite = zget($suiteList, $currentSuiteID, '');
$currentLable = empty($currentSuite) ? $this->lang->testsuite->common : $currentSuite->name;
$replace = "<li id='bysuiteTab' class='dropdown'>";
$replace = "<li id='bysuiteTab' class='dropdown' data-id='bysuite'>";
$replace .= html::a('javascript:;', $currentLable . " <span class='caret'></span>", '', "data-toggle='dropdown'");
$replace .="<ul class='dropdown-menu' style='max-height:240px; overflow-y:auto'>";
foreach ($suiteList as $suiteID => $suite)
if($suiteList)
{
$suiteName = $suite->name;
if($suite->type == 'public') $suiteName .= " <span class='label label-info'>{$this->lang->testsuite->authorList[$suite->type]}</span>";
foreach($suiteList as $suiteID => $suite)
{
$suiteName = $suite->name;
if($suite->type == 'public') $suiteName .= " <span class='label label-info'>{$this->lang->testsuite->authorList[$suite->type]}</span>";
$replace .= '<li' . ($suiteID == (int)$currentSuiteID ? " class='active'" : '') . '>';
$replace .= html::a(helper::createLink('testcase', 'browse', "productID=$productID&branch=$branch&browseType=bySuite&param=$suiteID"), $suiteName);
$replace .= "</li>";
$replace .= '<li' . ($suiteID == (int)$currentSuiteID ? " class='active'" : '') . '>';
$replace .= html::a(helper::createLink('testcase', 'browse', "productID=$productID&branch=$branch&browseType=bySuite&param=$suiteID"), $suiteName);
$replace .= "</li>";
}
}
else
{
if(common::hasPriv('testsuite', 'create'))
{
$replace .= '<li>' . html::a(helper::createLink('testsuite', 'create', "productID=$productID"), $this->lang->testsuite->create) . '</li>';
}
}
$replace .= '</ul></li>';
@@ -71,6 +151,7 @@ class testcaseModel extends model
}
common::setMenuVars($this->lang->testcase->menu, $key, $replace);
}
if($this->config->global->flow != 'full' && $this->app->getMethodName() != 'view') $this->lang->testcase->menu->bysearch = "<a class='querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'> </i>{$this->lang->testcase->bySearch}</a>";
}
/**
+1 -1
View File
@@ -36,7 +36,7 @@
{
if($field) $visibleFields[$field] = '';
}
foreach(explode(',', $this->config->testcase->create->requiredFields) as $field)
foreach(explode(',', $config->testcase->create->requiredFields) as $field)
{
if($field)
{
+1 -1
View File
@@ -30,7 +30,7 @@
{
if($field)$visibleFields[$field] = '';
}
foreach(explode(',', $this->config->testcase->edit->requiredFields) as $field)
foreach(explode(',', $config->testcase->edit->requiredFields) as $field)
{
if($field)
{
+1 -1
View File
@@ -47,7 +47,7 @@ js::set('branch', $branch);
</div>
<?php
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
$useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable');
$vars = "productID=$productID&branch=$branch&browseType=$browseType&param=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
if($useDatatable) include '../../common/view/datatable.html.php';
+3 -63
View File
@@ -1,66 +1,6 @@
<?php js::set('flow', $this->config->global->flow);?>
<?php js::set('flow', $config->global->flow);?>
<?php if(!isset($branch)) $branch = 0;?>
<?php if($this->config->global->flow == 'onlyTest'):?>
<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 "<a id='bysearchTab' class='btn btn-link querybox-toggle'><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 icon-export muted'></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 icon-import muted'></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'");
}
?>
</div>
</div>
<div id='queryBox' class='<?php if($browseType =='bysearch') echo 'show';?>'></div>
<?php else:?>
<?php if($config->global->flow == 'full'):?>
<div id='mainMenu' class='clearfix'>
<div id="sidebarHeader">
<div class="title">
@@ -85,7 +25,7 @@
if(isset($menuItem->hidden) and $menuItem->name != 'QUERY') continue;
$menuType = $menuItem->name;
if(!$config->testcase->needReview and empty($config->testcase->forceReview) and $menuType == 'wait') continue;
if($this->config->global->flow == 'onlyTest' and (strpos(',needconfirm,group,zerocase,', ',' . $menuType . ',') !== false)) continue;
if($config->global->flow == 'onlyTest' and (strpos(',needconfirm,group,zerocase,', ',' . $menuType . ',') !== false)) continue;
if($hasBrowsePriv and $menuType == 'QUERY')
{
if(isset($lang->custom->queryList))
+1 -1
View File
@@ -63,7 +63,7 @@
</td>
<?php endif;?>
</tr>
<?php if(strpos(",$showFields,", ',story,') !== false and $this->config->global->flow != 'onlyTest'):?>
<?php if(strpos(",$showFields,", ',story,') !== false and $config->global->flow != 'onlyTest'):?>
<tr>
<th><?php echo $lang->testcase->lblStory;?></th>
<td colspan='2'>
+1 -1
View File
@@ -190,7 +190,7 @@
</td>
</tr>
<?php endif;?>
<?php if(!$isLibCase and $this->config->global->flow != 'onlyTest'):?>
<?php if(!$isLibCase and $config->global->flow != 'onlyTest'):?>
<tr>
<th><?php echo $lang->testcase->story;?></th>
<td class='text-left'><div id='storyIdBox'><?php echo html::select('story', $stories, $case->story, 'class=form-control chosen');?></div>
@@ -11,6 +11,7 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('flow', $config->global->flow);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<div class='input-group w-150px'>
+1 -1
View File
@@ -131,7 +131,7 @@
?>
</td>
</tr>
<?php if(!$isLibCase and $this->config->global->flow != 'onlyTest'):?>
<?php if(!$isLibCase and $config->global->flow != 'onlyTest'):?>
<tr class='nofixed'>
<th><?php echo $lang->testcase->story;?></th>
<td>
+18 -4
View File
@@ -28,11 +28,25 @@ class testreportModel extends model
/* Remove branch. */
if(strpos($selectHtml, 'currentBranch') !== false) $selectHtml = substr($selectHtml, 0, strrpos($selectHtml, "<div class='btn-group'>")) . '</div>';
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
}
else
{
if(common::hasPriv('testtask', 'create'))
{
$link = helper::createLink('testtask', 'create', "productID=$productID");
$pageActions .= html::a($link, "<i class='icon icon-plus'></i> {$this->lang->testtask->create}", '', "class='btn btn-primary'");
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $productIndex;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->testtask->menu as $key => $value)
{
if($this->config->global->flow != 'onlyTest')
+2
View File
@@ -11,6 +11,7 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php if($config->global->flow == 'full'):?>
<div id='mainMenu' class='clearfix'>
<div class='pull-left btn-toolbar'>
<span class='btn btn-link btn-active-text'>
@@ -19,6 +20,7 @@
</span>
</div>
</div>
<?php endif;?>
<div id='mainContent' class='main-table'>
<table class='table has-sort-head table-fixed' id='reportList'>
<?php $vars = "objectID=$objectID&objectType=$objectType&extra=$extra&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
-2
View File
@@ -14,5 +14,3 @@
.datatable-menu {display:none;}
.pl-5px{padding-left:5px;}
#pageActions {top: -60px;}
+8 -2
View File
@@ -1,4 +1,10 @@
$(document).ready(function()
$(function()
{
if(typeof(flow) != 'undefined' && flow == 'onlyTest') toggleSearch();
if(flow != 'full')
{
$('.querybox-toggle').click(function()
{
$(this).parent().toggleClass('active');
});
}
})
+1
View File
@@ -44,6 +44,7 @@ $lang->testsuite->libraryDelete = 'Do you want to delete this library?';
$lang->testsuite->confirmUnlinkCase = 'Do you want to unlink this Case?';
$lang->testsuite->noticeNone = 'You have not created a suite yet.';
$lang->testsuite->noModule = '<div>You have no modules</div><div>Manage now</div>';
$lang->testsuite->noTestsuite = 'No testsuite. You could ';
$lang->testsuite->lblCases = 'Cases';
$lang->testsuite->lblUnlinkCase = 'Unlink Case';
+1
View File
@@ -44,6 +44,7 @@ $lang->testsuite->libraryDelete = '您确认要删除该用例库吗?';
$lang->testsuite->confirmUnlinkCase = '您确认要移除该用例吗?';
$lang->testsuite->noticeNone = '您还没有创建套件';
$lang->testsuite->noModule = '<div>您现在还没有模块信息</div><div>请维护用例库模块</div>';
$lang->testsuite->noTestsuite = '暂时没有套件,您现在可以';
$lang->testsuite->lblCases = '用例列表';
$lang->testsuite->lblUnlinkCase = '移除用例';
+1
View File
@@ -44,6 +44,7 @@ $lang->testsuite->libraryDelete = '您確認要刪除該用例庫嗎?';
$lang->testsuite->confirmUnlinkCase = '您確認要移除該用例嗎?';
$lang->testsuite->noticeNone = '您還沒有創建套件';
$lang->testsuite->noModule = '<div>您現在還沒有模組信息</div><div>請維護用例庫模組</div>';
$lang->testsuite->noTestsuite = '暫時沒有套件,您現在可以';
$lang->testsuite->lblCases = '用例列表';
$lang->testsuite->lblUnlinkCase = '移除用例';
+73 -11
View File
@@ -27,11 +27,25 @@ class testsuiteModel extends model
$selectHtml = $this->select($products, $productID, 'testsuite', 'browse');
if(strpos($selectHtml, 'currentBranch') !== false) $selectHtml = substr($selectHtml, 0, strrpos($selectHtml, "<div class='btn-group'>")) . '</div>';
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
}
else
{
if(common::hasPriv('testsuite', 'create'))
{
$link = helper::createLink('testsuite', 'create', "productID=$productID");
$pageActions .= html::a($link, "<i class='icon icon-plus'></i> {$this->lang->testsuite->create}", '', "class='btn btn-primary'");
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $productIndex;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->testsuite->menu as $key => $value)
{
$replace = $productID;
@@ -118,14 +132,53 @@ class testsuiteModel extends model
setCookie("lastCaseLib", $libID, $this->config->cookieLife, $this->config->webRoot);
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $this->lang->qa->index . ' <span class="caret"></span></button>';
$productIndex .= '<ul class="dropdown-menu">';
if(common::hasPriv('testsuite', 'createLib')) $productIndex .= '<li>' . html::a(helper::createLink('testsuite', 'createLib'), '<i class="icon icon-plus"></i> ' . $this->lang->testsuite->createLib) . '</li>';
$productIndex .= '</ul></div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav .= '<div class="btn-group angle-btn"><div class="btn-group"><button data-toggle="dropdown" type="button" class="btn">' . $this->lang->qa->index . ' <span class="caret"></span></button>';
$pageNav .= '<ul class="dropdown-menu">';
if(common::hasPriv('testsuite', 'createLib')) $pageNav .= '<li>' . html::a(helper::createLink('testsuite', 'createLib'), '<i class="icon icon-plus"></i> ' . $this->lang->testsuite->createLib) . '</li>';
$pageNav .= '</ul></div></div>';
$this->lang->modulePageNav = $productIndex;
if(common::hasPriv('testsuite', 'libView'))
{
$link = helper::createLink('testsuite', 'libView', "libID=$libID");
$pageActions .= html::a($link, "<i class='icon icon-list-alt muted'> </i>" . $this->lang->testsuite->view, '', "class='btn'");
}
}
else
{
$this->app->loadLang('testcase');
$pageActions .= "<div class='btn-group'>";
if(common::hasPriv('testsuite', 'exportTemplet'))
{
$link = helper::createLink('testsuite', 'exportTemplet', "libID=$libID");
$pageActions .= html::a($link, "<i class='icon icon-export muted'> </i>" . $this->lang->testsuite->exportTemplet, '', "class='btn btn-link export'");
}
if(common::hasPriv('testsuite', 'import'))
{
$link = helper::createLink('testsuite', 'import', "libID=$libID");
$pageActions .= html::a($link, "<i class='icon muted icon-import'> </i>" . $this->lang->testcase->importFile, '', "class='btn btn-link export'");
}
$pageActions .= '</div>';
$params = "libID=$libID&moduleID=" . (isset($moduleID) ? $moduleID : 0);
if(common::hasPriv('testsuite', 'batchCreateCase'))
{
$link = helper::createLink('testsuite', 'batchCreateCase', $params);
$pageActions .= html::a($link, "<i class='icon-plus'></i>" . $this->lang->testcase->batchCreate, '', "class='btn btn-secondary'");
}
if(common::hasPriv('testsuite', 'createCase'))
{
$link = helper::createLink('testsuite', 'createCase', $params);
$pageActions .= html::a($link, "<i class='icon-plus'></i>" . $this->lang->testcase->create, '', "class='btn btn-primary'");
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->caselib->menu as $key => $value)
{
$replace = '';
@@ -133,8 +186,17 @@ class testsuiteModel extends model
common::setMenuVars($this->lang->caselib->menu, $key, $replace);
}
$this->lang->testsuite->menu = $this->lang->caselib->menu;
if($this->config->global->flow != 'full' && $this->app->getMethodName() != 'libview') $this->lang->testsuite->menu->bysearch = "<a class='querybox-toggle' id='bysearchTab'><i class='icon icon-search muted'> </i>{$this->lang->testcase->bySearch}</a>";
}
/**
* Save lib state.
*
* @param int $libID
* @param array $libraries
* @access public
* @return int
*/
public function saveLibState($libID = 0, $libraries = array())
{
if($libID > 0) $this->session->set('caseLib', (int)$libID);
+8 -2
View File
@@ -12,8 +12,8 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php js::set('confirmDelete', $lang->testsuite->confirmDelete)?>
<?php js::set('flow', $this->config->global->flow);?>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php js::set('flow', $config->global->flow);?>
<?php if($config->global->flow != 'onlyTest'):?>
<div id="mainMenu" class='clearfix'>
<div class="btn-toolbar pull-left">
<a href class='btn btn-link btn-active-text'>
@@ -26,6 +26,11 @@
</div>
</div>
<?php endif;?>
<?php if(empty($suites)):?>
<div class="table-empty-tip">
<p><span class="text-muted"><?php echo $lang->testsuite->noTestsuite;?></span> <?php common::printLink('testsuite', 'create', "productID={$productID}", "<i class='icon icon-plus'></i> " . $lang->testsuite->create, '', "class='btn btn-info'");?></p>
</div>
<?php else:?>
<div id='mainContent' class='main-table'>
<table class='table has-sort-head' id='suiteList'>
<thead>
@@ -71,4 +76,5 @@
<div class='table-footer'><?php $pager->show('right', 'pagerjs');?></div>
<?php endif;?>
</div>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>
+5 -54
View File
@@ -17,58 +17,9 @@ js::set('browseType', $browseType);
js::set('moduleID', $moduleID);
js::set('confirmDelete', $lang->testsuite->confirmDelete);
js::set('batchDelete', $lang->testcase->confirmBatchDelete);
js::set('flow', $this->config->global->flow);
js::set('flow', $config->global->flow);
?>
<?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;}
#querybox #searchform{border-bottom: 1px solid #ddd; margin-bottom: 20px;}
</style>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
</div>
<ul class='submenu hidden'>
<?php echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i>&nbsp;{$lang->testcase->bySearch}</a></li> ";?>
<li class='right'>
<div class='btn-group' id='createActionMenu'>
<?php
$misc = common::hasPriv('testsuite', 'createCase') ? "class='btn btn-primary'" : "class='btn btn-primary disabled'";
$link = common::hasPriv('testsuite', 'createCase') ? $this->createLink('testsuite', 'createCase', "libID=$libID&moduleID=" . (isset($moduleID) ? $moduleID : 0)) : '#';
echo html::a($link, "<i class='icon-plus'></i>" . $lang->testcase->create, '', $misc);
?>
<button type='button' class='btn btn-primary dropdown-toggle' data-toggle='dropdown'>
<span class='caret'></span>
</button>
<ul class='dropdown-menu pull-right'>
<?php
$misc = common::hasPriv('testsuite', 'batchCreateCase') ? '' : "class=disabled";
$link = common::hasPriv('testsuite', 'batchCreateCase') ? $this->createLink('testsuite', 'batchCreateCase', "libID=$libID&moduleID=" . (isset($moduleID) ? $moduleID : 0)) : '#';
echo "<li>" . html::a($link, $lang->testcase->batchCreate, '', $misc) . "</li>";
?>
</ul>
</div>
</li>
<li class='right'>
<?php
$link = common::hasPriv('testsuite', 'import') ? $this->createLink('testsuite', 'import', "libID=$libID") : '#';
if(common::hasPriv('testsuite', 'import')) echo html::a($link, "<i class='icon-upload-alt'></i> " . $lang->testcase->importFile, '', "class='export'");
?>
</li>
<li class='right'>
<?php
$link = common::hasPriv('testsuite', 'exportTemplet') ? $this->createLink('testsuite', 'exportTemplet', "libID=$libID") : '#';
if(common::hasPriv('testsuite', 'exportTemplet')) echo html::a($link, "<i class='icon-download-alt'></i> " . $lang->testsuite->exportTemplet, '', "class='export'");
?>
</li>
</ul>
</div>
<?php else:?>
<div id='pageActions'>
<?php common::printLink('testsuite', 'libView', "libID=$libID", "<i class='icon icon-list-alt muted'> </i>" . $lang->testsuite->view, '', "class='btn'");?>
</div>
<?php if($config->global->flow == 'full'):?>
<div id='mainMenu' class='clearfix'>
<div id="sidebarHeader">
<div class="title">
@@ -83,7 +34,6 @@ js::set('flow', $this->config->global->flow);
?>
</div>
</div>
<?php endif;?>
<div class='btn-toolbar pull-left'>
<?php
if(common::hasPriv('testsuite', 'library'))
@@ -104,6 +54,7 @@ js::set('flow', $this->config->global->flow);
<?php common::printLink('testsuite', 'createCase', $params, "<i class='icon-plus'></i>" . $lang->testcase->create, '', "class='btn btn-primary'");?>
</div>
</div>
<?php endif;?>
<div id="mainContent" class="main-row fade">
<div class="side-col" id="sidebar">
<div class="sidebar-toggle"><i class="icon icon-angle-left"></i></div>
@@ -250,11 +201,11 @@ js::set('flow', $this->config->global->flow);
</div>
<script>
$('#module' + moduleID).addClass('active');
<?php if($config->global->flow == 'full'):?>
$('#<?php echo $this->session->libBrowseType?>Tab').addClass('btn-active-text').append("<span class='label label-light label-badge'><?php echo $pager->recTotal;?></span>");
<?php endif;?>
if(flow == 'onlyTest')
{
toggleSearch();
$('#subNavbar > .nav > li').removeClass('active');
$('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active');
}
+1 -1
View File
@@ -12,7 +12,7 @@
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/tablesorter.html.php';?>
<?php js::set('flow', $this->config->global->flow);?>
<?php js::set('flow', $config->global->flow);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<?php common::printBack($this->session->testsuiteList, 'btn btn-link');?>
+2 -2
View File
@@ -2,8 +2,8 @@ $(document).ready(function()
{
if(flow == 'onlyTest')
{
$('#modulemenu > .nav > li').removeClass('active');
$('#modulemenu > .nav > li[data-id=' + status + ']').addClass('active');
$('#subNavbar > .nav > li').removeClass('active');
$('#subNavbar > .nav > li[data-id=' + status + ']').addClass('active');
}
});
+18 -4
View File
@@ -44,11 +44,25 @@ class testtaskModel extends model
if(common::hasPriv('testreport', 'browse')) $this->lang->modulePageActions .= html::a(helper::createLink('testreport', 'browse', "objectID=$productID&objectType=product&extra={$testtask->id}"), "<i class='icon icon-flag'> </i>" . $this->lang->testtask->reportField, '', "class='btn'");
}
$this->app->loadLang('qa');
$productIndex = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
$productIndex .= $selectHtml;
$pageNav = '';
$pageActions = '';
if($this->config->global->flow == 'full')
{
$this->app->loadLang('qa');
$pageNav = '<div class="btn-group angle-btn"><div class="btn-group">' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '</div></div>';
}
else
{
if(common::hasPriv('testtask', 'create'))
{
$link = helper::createLink('testtask', 'create', "productID=$productID");
$pageActions .= html::a($link, "<i class='icon icon-plus'></i> {$this->lang->testtask->create}", '', "class='btn btn-primary'");
}
}
$pageNav .= $selectHtml;
$this->lang->modulePageNav = $productIndex;
$this->lang->modulePageNav = $pageNav;
$this->lang->modulePageActions = $pageActions;
foreach($this->lang->testtask->menu as $key => $value)
{
if($this->config->global->flow != 'onlyTest')
+4 -4
View File
@@ -13,13 +13,13 @@
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/datepicker.html.php';?>
<?php js::set('confirmDelete', $lang->testtask->confirmDelete)?>
<?php js::set('flow', $this->config->global->flow);?>
<?php js::set('flow', $config->global->flow);?>
<?php
$scope = $this->session->testTaskVersionScope;
$status = $this->session->testTaskVersionStatus;
?>
<?php js::set('status', $status);?>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<div id="mainMenu" class='clearfix'>
<div class="btn-toolbar pull-left">
<div class='btn-group'>
@@ -61,7 +61,7 @@ $status = $this->session->testTaskVersionStatus;
<th class='c-id text-left'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
<th class='w-200px text-left'><?php common::printOrderLink('name', $orderBy, $vars, $lang->testtask->name);?></th>
<th class='text-left'> <?php common::printOrderLink('product', $orderBy, $vars, $lang->testtask->product);?></th>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<th class='text-left'> <?php common::printOrderLink('project', $orderBy, $vars, $lang->testtask->project);?></th>
<?php endif;?>
<th class='text-left'> <?php common::printOrderLink('build', $orderBy, $vars, $lang->testtask->build);?></th>
@@ -78,7 +78,7 @@ $status = $this->session->testTaskVersionStatus;
<td><?php echo html::a(inlink('cases', "taskID=$task->id"), sprintf('%03d', $task->id));?></td>
<td class='c-name' title="<?php echo $task->name?>"><?php echo html::a(inlink('cases', "taskID=$task->id"), $task->name);?></td>
<td class='c-name' title="<?php echo $task->productName?>"><?php echo $task->productName?></td>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<td class='c-name' title="<?php echo $task->projectName?>"><?php echo $task->projectName?></td>
<?php endif;?>
<td class='c-name'><?php echo ($task->build == 'trunk' || empty($task->buildName)) ? $lang->trunk : html::a($this->createLink('build', 'view', "buildID=$task->build",'',true), $task->buildName);?></td>
+1 -1
View File
@@ -21,7 +21,7 @@
if($hasCasesPriv) echo html::a($this->inlink('cases', "taskID=$taskID&browseType=all&param=0"), "<span class='text'>{$lang->testtask->allCases}</span>", '', "id='allTab' class='btn btn-link'");
if($hasCasesPriv) echo html::a($this->inlink('cases', "taskID=$taskID&browseType=assignedtome&param=0"), "<span class='text'>{$lang->testtask->assignedToMe}</span>", '', "id='assignedtomeTab' class='btn btn-link'");
if($hasGroupPriv and $this->config->global->flow != 'onlyTest')
if($hasGroupPriv and $config->global->flow != 'onlyTest')
{
echo "<div class='btn-group'>";
$active = $browseType == 'group' ? 'btn-active-text' : '';
+3 -3
View File
@@ -28,7 +28,7 @@
<?php
$vars = "taskID=$task->id&browseType=$browseType&param=$param&orderBy=%s&recToal={$pager->recTotal}&recPerPage={$pager->recPerPage}";
$datatableId = $this->moduleName . ucfirst($this->methodName);
$useDatatable = (isset($this->config->datatable->$datatableId->mode) and $this->config->datatable->$datatableId->mode == 'datatable');
$useDatatable = (isset($config->datatable->$datatableId->mode) and $config->datatable->$datatableId->mode == 'datatable');
$canBatchEdit = common::hasPriv('testcase', 'batchEdit');
$canBatchUnlink = common::hasPriv('testtask', 'batchUnlinkCases');
@@ -39,8 +39,8 @@
if($useDatatable) include '../../common/view/datatable.html.php';
if(!$useDatatable) include '../../common/view/tablesorter.html.php';
$this->config->testcase->datatable->defaultField = $this->config->testtask->datatable->defaultField;
$this->config->testcase->datatable->fieldList['actions']['width'] = '90';
$config->testcase->datatable->defaultField = $config->testtask->datatable->defaultField;
$config->testcase->datatable->fieldList['actions']['width'] = '90';
$setting = $this->datatable->getSetting('testtask');
$widths = $this->datatable->setFixedFieldWidth($setting);
+1 -1
View File
@@ -32,7 +32,7 @@
<td class='w-p35-f'><?php echo html::input('product', $productID, "class='form-control'");?></td><td></td>
</tr>
<?php endif;?>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th class='w-80px'><?php echo $lang->testtask->project;?></th>
<td class='w-p35-f'><?php echo html::select('project', $projects, '', "class='form-control chosen' onchange='loadProjectRelated(this.value)'");?></td><td></td>
+1 -1
View File
@@ -24,7 +24,7 @@
</div>
<form method='post' target='hiddenwin' id='dataform'>
<table class='table table-form'>
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th class='w-80px'><?php echo $lang->testtask->project;?></th>
<td class='w-p35-f'>
+1 -1
View File
@@ -18,7 +18,7 @@
<tr>
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
<?php $color = empty($testtask->color) ? '#333' : $testtask->color;?>
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink('testtask', 'view', "testtaskID=$testtask->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
<?php echo html::a(zget($config->mail, 'domain', common::getSysURL()) . helper::createLink('testtask', 'view', "testtaskID=$testtask->id"), $mailTitle, '', "style='color: {$color}; text-decoration: underline;'");?>
</td>
</tr>
</table>
+1 -1
View File
@@ -49,7 +49,7 @@
<div class="detail-title"><?php echo $lang->testtask->legendBasicInfo;?></div>
<div class="detail-content">
<table class="table table-data">
<?php if($this->config->global->flow != 'onlyTest'):?>
<?php if($config->global->flow != 'onlyTest'):?>
<tr>
<th class='w-80px'><?php echo $lang->testtask->project;?></th>
<td><?php echo html::a($this->createLink('project', 'story', "projectID=$task->project"), $task->projectName);?></td>