* change for custom menu.
This commit is contained in:
@@ -336,3 +336,16 @@ $lang->bug->action->unlinkrelatedbug = array('main' => '$date, unlink related bu
|
||||
|
||||
$lang->bug->placeholder = new stdclass();
|
||||
$lang->bug->placeholder->chooseBuilds = 'Choose builds...';
|
||||
|
||||
$lang->bug->featurebar['browse']['unclosed'] = $lang->bug->unclosed;
|
||||
$lang->bug->featurebar['browse']['all'] = $lang->bug->allBugs;
|
||||
$lang->bug->featurebar['browse']['assigntome'] = $lang->bug->assignToMe;
|
||||
$lang->bug->featurebar['browse']['openedbyme'] = $lang->bug->openedByMe;
|
||||
$lang->bug->featurebar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
|
||||
$lang->bug->featurebar['browse']['unconfirmed'] = $lang->bug->confirmedList[0];
|
||||
$lang->bug->featurebar['browse']['assigntonull'] = $lang->bug->assignToNull;
|
||||
$lang->bug->featurebar['browse']['unresolved'] = $lang->bug->unResolved;
|
||||
$lang->bug->featurebar['browse']['toclosed'] = $lang->bug->toClosed;
|
||||
$lang->bug->featurebar['browse']['longlifebugs'] = $lang->bug->longLifeBugs;
|
||||
$lang->bug->featurebar['browse']['postponedbugs'] = $lang->bug->postponedBugs;
|
||||
$lang->bug->featurebar['browse']['needconfirm'] = $lang->bug->needConfirm;
|
||||
|
||||
@@ -336,3 +336,16 @@ $lang->bug->action->unlinkrelatedbug = array('main' => '$date, 由 <strong>$acto
|
||||
|
||||
$lang->bug->placeholder = new stdclass();
|
||||
$lang->bug->placeholder->chooseBuilds = '选择相关版本...';
|
||||
|
||||
$lang->bug->featurebar['browse']['unclosed'] = $lang->bug->unclosed;
|
||||
$lang->bug->featurebar['browse']['all'] = $lang->bug->allBugs;
|
||||
$lang->bug->featurebar['browse']['assigntome'] = $lang->bug->assignToMe;
|
||||
$lang->bug->featurebar['browse']['openedbyme'] = $lang->bug->openedByMe;
|
||||
$lang->bug->featurebar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
|
||||
$lang->bug->featurebar['browse']['unconfirmed'] = $lang->bug->confirmedList[0];
|
||||
$lang->bug->featurebar['browse']['assigntonull'] = $lang->bug->assignToNull;
|
||||
$lang->bug->featurebar['browse']['unresolved'] = $lang->bug->unResolved;
|
||||
$lang->bug->featurebar['browse']['toclosed'] = $lang->bug->toClosed;
|
||||
$lang->bug->featurebar['browse']['longlifebugs'] = $lang->bug->longLifeBugs;
|
||||
$lang->bug->featurebar['browse']['postponedbugs'] = $lang->bug->postponedBugs;
|
||||
$lang->bug->featurebar['browse']['needconfirm'] = $lang->bug->needConfirm;
|
||||
|
||||
@@ -32,21 +32,11 @@ js::set('bugBrowseType', $this->session->bugBrowseType);
|
||||
?>
|
||||
</span>
|
||||
</li>
|
||||
<?php
|
||||
echo "<li id='unclosedTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=unclosed¶m=0"), $lang->bug->unclosed) . "</li>";
|
||||
echo "<li id='allTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=all¶m=0&orderBy=$orderBy&recTotal=0&recPerPage=200"), $lang->bug->allBugs) . "</li>";
|
||||
echo "<li id='assigntomeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=assignToMe¶m=0"), $lang->bug->assignToMe) . "</li>";
|
||||
echo "<li id='openedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=openedByMe¶m=0"), $lang->bug->openedByMe) . "</li>";
|
||||
echo "<li id='resolvedbymeTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=resolvedByMe¶m=0"), $lang->bug->resolvedByMe) . "</li>";
|
||||
echo "<li id='unconfirmedTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=unconfirmed¶m=0"), $lang->bug->confirmedList[0]) . "</li>";
|
||||
echo "<li id='assigntonullTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=assignToNull¶m=0"), $lang->bug->assignToNull) . "</li>";
|
||||
echo "<li id='unresolvedTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=unResolved¶m=0"), $lang->bug->unResolved) . "</li>";
|
||||
echo "<li id='toclosedTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=toClosed¶m=0"), $lang->bug->toClosed) . "</li>";
|
||||
echo "<li id='longlifebugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=longLifeBugs¶m=0"), $lang->bug->longLifeBugs) . "</li>";
|
||||
echo "<li id='postponedbugsTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=postponedBugs¶m=0"), $lang->bug->postponedBugs) . "</li>";
|
||||
echo "<li id='needconfirmTab'>" . html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=needconfirm¶m=0"), $lang->bug->needConfirm) . "</li>";
|
||||
echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> {$lang->bug->byQuery}</a></li> ";
|
||||
?>
|
||||
<?php foreach($app->customMenu['featurebar'] as $type => $featurebar):?>
|
||||
<?php if($featurebar['status'] == 'hide') continue;?>
|
||||
<li id='<?php echo $type?>Tab'><?php echo html::a($this->createLink('bug', 'browse', "productid=$productID&branch=$branch&browseType=unclosed¶m=0"), $featurebar['link'])?></li>
|
||||
<?php endforeach;?>
|
||||
<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> <?php echo $lang->bug->byQuery;?></a></li>
|
||||
</ul>
|
||||
<div class='actions'>
|
||||
<div class='btn-group'>
|
||||
|
||||
@@ -28,66 +28,60 @@ $lang->my->menuOrder[55] = 'changePassword';
|
||||
$lang->todo->menuOrder = $lang->my->menuOrder;
|
||||
|
||||
/* product menu order. */
|
||||
$lang->product->menuOrder[5] = 'index';
|
||||
$lang->product->menuOrder[10] = 'story';
|
||||
$lang->product->menuOrder[15] = 'dynamic';
|
||||
$lang->product->menuOrder[20] = 'plan';
|
||||
$lang->product->menuOrder[25] = 'release';
|
||||
$lang->product->menuOrder[30] = 'roadmap';
|
||||
$lang->product->menuOrder[35] = 'doc';
|
||||
$lang->product->menuOrder[40] = 'project';
|
||||
$lang->product->menuOrder[45] = 'branch';
|
||||
$lang->product->menuOrder[50] = 'module';
|
||||
$lang->product->menuOrder[55] = 'view';
|
||||
$lang->product->menuOrder[60] = 'create';
|
||||
$lang->product->menuOrder[65] = 'all';
|
||||
$lang->product->menuOrder[5] = 'list';
|
||||
$lang->product->menuOrder[10] = 'index';
|
||||
$lang->product->menuOrder[15] = 'story';
|
||||
$lang->product->menuOrder[20] = 'dynamic';
|
||||
$lang->product->menuOrder[25] = 'plan';
|
||||
$lang->product->menuOrder[30] = 'release';
|
||||
$lang->product->menuOrder[35] = 'roadmap';
|
||||
$lang->product->menuOrder[40] = 'doc';
|
||||
$lang->product->menuOrder[45] = 'project';
|
||||
$lang->product->menuOrder[50] = 'branch';
|
||||
$lang->product->menuOrder[55] = 'module';
|
||||
$lang->product->menuOrder[60] = 'view';
|
||||
$lang->product->menuOrder[65] = 'create';
|
||||
$lang->product->menuOrder[70] = 'all';
|
||||
$lang->story->menuOrder = $lang->product->menuOrder;
|
||||
$lang->productplan->menuOrder = $lang->product->menuOrder;
|
||||
$lang->release->menuOrder = $lang->product->menuOrder;
|
||||
$lang->branch->menuOrder = $lang->product->menuOrder;
|
||||
|
||||
/* project menu order. */
|
||||
$lang->project->menuOrder[1] = 'index';
|
||||
$lang->project->menuOrder[5] = 'task';
|
||||
$lang->project->menuOrder[10] = 'story';
|
||||
$lang->project->menuOrder[15] = 'bug';
|
||||
$lang->project->menuOrder[20] = 'build';
|
||||
$lang->project->menuOrder[25] = 'testtask';
|
||||
$lang->project->menuOrder[30] = 'burn';
|
||||
$lang->project->menuOrder[35] = 'team';
|
||||
$lang->project->menuOrder[40] = 'dynamic';
|
||||
$lang->project->menuOrder[45] = 'doc';
|
||||
$lang->project->menuOrder[50] = 'product';
|
||||
$lang->project->menuOrder[55] = 'linkstory';
|
||||
$lang->project->menuOrder[5] = 'list';
|
||||
$lang->project->menuOrder[10] = 'index';
|
||||
$lang->project->menuOrder[15] = 'task';
|
||||
$lang->project->menuOrder[20] = 'story';
|
||||
$lang->project->menuOrder[25] = 'bug';
|
||||
$lang->project->menuOrder[30] = 'build';
|
||||
$lang->project->menuOrder[35] = 'testtask';
|
||||
$lang->project->menuOrder[40] = 'team';
|
||||
$lang->project->menuOrder[45] = 'dynamic';
|
||||
$lang->project->menuOrder[50] = 'doc';
|
||||
$lang->project->menuOrder[55] = 'product';
|
||||
$lang->project->menuOrder[60] = 'view';
|
||||
$lang->project->menuOrder[65] = 'order';
|
||||
$lang->project->menuOrder[70] = 'create';
|
||||
$lang->project->menuOrder[75] = 'copy';
|
||||
$lang->project->menuOrder[80] = 'all';
|
||||
$lang->project->menuOrder[65] = 'create';
|
||||
$lang->project->menuOrder[70] = 'all';
|
||||
$lang->task->menuOrder = $lang->project->menuOrder;
|
||||
$lang->build->menuOrder = $lang->project->menuOrder;
|
||||
|
||||
/* bug menu order. */
|
||||
$lang->bug->menuOrder[0] = 'product';
|
||||
$lang->bug->menuOrder[1] = 'index';
|
||||
$lang->bug->menuOrder[5] = 'bug';
|
||||
$lang->bug->menuOrder[10] = 'testcase';
|
||||
$lang->bug->menuOrder[15] = 'testtask';
|
||||
|
||||
/* testcase menu order. */
|
||||
$lang->testcase->menuOrder[0] = 'product';
|
||||
$lang->testcase->menuOrder[1] = 'index';
|
||||
$lang->testcase->menuOrder[5] = 'bug';
|
||||
$lang->testcase->menuOrder[10] = 'testcase';
|
||||
$lang->testcase->menuOrder[15] = 'testtask';
|
||||
$lang->testtask->menuOrder = $lang->testcase->menuOrder;
|
||||
/* qa menu order. */
|
||||
$lang->qa->menuOrder[5] = 'product';
|
||||
$lang->qa->menuOrder[10] = 'index';
|
||||
$lang->qa->menuOrder[15] = 'bug';
|
||||
$lang->qa->menuOrder[20] = 'testcase';
|
||||
$lang->qa->menuOrder[25] = 'testtask';
|
||||
$lang->bug->menuOrder = $lang->qa->menuOrder;
|
||||
$lang->testcase->menuOrder = $lang->bug->menuOrder;
|
||||
$lang->testtask->menuOrder = $lang->testcase->menuOrder;
|
||||
|
||||
/* doc menu order. */
|
||||
$lang->doc->menuOrder[5] = 'browse';
|
||||
$lang->doc->menuOrder[10] = 'edit';
|
||||
$lang->doc->menuOrder[15] = 'module';
|
||||
$lang->doc->menuOrder[20] = 'delete';
|
||||
$lang->doc->menuOrder[25] = 'create';
|
||||
$lang->doc->menuOrder[5] = 'list';
|
||||
$lang->doc->menuOrder[10] = 'browse';
|
||||
$lang->doc->menuOrder[15] = 'edit';
|
||||
$lang->doc->menuOrder[20] = 'module';
|
||||
$lang->doc->menuOrder[25] = 'delete';
|
||||
$lang->doc->menuOrder[30] = 'create';
|
||||
|
||||
/* report menu order. */
|
||||
$lang->report->menuOrder[5] = 'product';
|
||||
@@ -96,15 +90,15 @@ $lang->report->menuOrder[15] = 'test';
|
||||
$lang->report->menuOrder[20] = 'staff';
|
||||
|
||||
/* company menu order. */
|
||||
$lang->company->menuOrder[0] = 'name';
|
||||
$lang->company->menuOrder[5] = 'browseUser';
|
||||
$lang->company->menuOrder[10] = 'dept';
|
||||
$lang->company->menuOrder[15] = 'browseGroup';
|
||||
$lang->company->menuOrder[20] = 'view';
|
||||
$lang->company->menuOrder[25] = 'dynamic';
|
||||
$lang->company->menuOrder[30] = 'addGroup';
|
||||
$lang->company->menuOrder[35] = 'batchAddUser';
|
||||
$lang->company->menuOrder[40] = 'addUser';
|
||||
$lang->company->menuOrder[5] = 'name';
|
||||
$lang->company->menuOrder[10] = 'browseUser';
|
||||
$lang->company->menuOrder[15] = 'dept';
|
||||
$lang->company->menuOrder[20] = 'browseGroup';
|
||||
$lang->company->menuOrder[25] = 'view';
|
||||
$lang->company->menuOrder[30] = 'dynamic';
|
||||
$lang->company->menuOrder[35] = 'addGroup';
|
||||
$lang->company->menuOrder[40] = 'batchAddUser';
|
||||
$lang->company->menuOrder[45] = 'addUser';
|
||||
$lang->dept->menuOrder = $lang->company->menuOrder;
|
||||
$lang->group->menuOrder = $lang->company->menuOrder;
|
||||
$lang->user->menuOrder = $lang->company->menuOrder;
|
||||
@@ -113,24 +107,22 @@ $lang->user->menuOrder = $lang->company->menuOrder;
|
||||
$lang->admin->menuOrder[5] = 'index';
|
||||
$lang->admin->menuOrder[10] = 'extension';
|
||||
$lang->admin->menuOrder[15] = 'custom';
|
||||
$lang->admin->menuOrder[20] = 'editor';
|
||||
$lang->admin->menuOrder[25] = 'mail';
|
||||
$lang->admin->menuOrder[30] = 'custom';
|
||||
$lang->admin->menuOrder[40] = 'convert';
|
||||
$lang->admin->menuOrder[45] = 'cron';
|
||||
$lang->admin->menuOrder[50] = 'backup';
|
||||
$lang->admin->menuOrder[55] = 'dev';
|
||||
$lang->admin->menuOrder[60] = 'safe';
|
||||
$lang->admin->menuOrder[65] = 'sso';
|
||||
$lang->admin->menuOrder[70] = 'trashes';
|
||||
$lang->admin->menuOrder[20] = 'mail';
|
||||
$lang->admin->menuOrder[25] = 'custom';
|
||||
$lang->admin->menuOrder[30] = 'convert';
|
||||
$lang->admin->menuOrder[35] = 'cron';
|
||||
$lang->admin->menuOrder[40] = 'backup';
|
||||
$lang->admin->menuOrder[45] = 'dev';
|
||||
$lang->admin->menuOrder[50] = 'safe';
|
||||
$lang->admin->menuOrder[55] = 'sso';
|
||||
$lang->admin->menuOrder[60] = 'trashes';
|
||||
$lang->convert->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->upgrade->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->action->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->backup->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->cron->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->extension->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->custom->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->editor->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->mail->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->custom->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->backup->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->cron->menuOrder = $lang->admin->menuOrder;
|
||||
$lang->dev->menuOrder = $lang->admin->menuOrder;
|
||||
|
||||
+8
-47
@@ -381,6 +381,7 @@ class commonModel extends model
|
||||
public static function printMainmenu($moduleName, $methodName = '')
|
||||
{
|
||||
global $app, $lang;
|
||||
if(empty($app->customMenu)) $app->customMenu = customModel::getCustomMenu($app->getModuleName(), $app->getMethodName());
|
||||
echo "<ul class='nav'>\n";
|
||||
|
||||
/* Set the main main menu. */
|
||||
@@ -395,31 +396,13 @@ class commonModel extends model
|
||||
if($moduleName == 'task' and !isset($lang->menu->task)) $mainMenu = 'project';
|
||||
}
|
||||
|
||||
/* Sort menu according to menuOrder. */
|
||||
if(isset($lang->menuOrder))
|
||||
{
|
||||
$menus = $lang->menu;
|
||||
$lang->menu = new stdclass();
|
||||
|
||||
ksort($lang->menuOrder, SORT_ASC);
|
||||
foreach($lang->menuOrder as $key)
|
||||
{
|
||||
$menu = $menus->$key;
|
||||
unset($menus->$key);
|
||||
$lang->menu->$key = $menu;
|
||||
}
|
||||
foreach($menus as $key => $menu)
|
||||
{
|
||||
$lang->menu->$key = $menu;
|
||||
}
|
||||
}
|
||||
|
||||
$activeName = $app->getViewType() == 'mhtml' ? 'ui-btn-active' : 'active';
|
||||
/* Print all main menus. */
|
||||
foreach($lang->menu as $menuKey => $menu)
|
||||
foreach($app->customMenu['main'] as $menuKey => $menuContent)
|
||||
{
|
||||
if($menuContent['status'] == 'hide') continue;
|
||||
$active = $menuKey == $mainMenu ? "class='$activeName'" : '';
|
||||
$link = explode('|', $menu);
|
||||
$link = explode('|', $menuContent['link']);
|
||||
list($menuLabel, $module, $method) = $link;
|
||||
$vars = isset($link[3]) ? $link[3] : '';
|
||||
|
||||
@@ -494,36 +477,11 @@ class commonModel extends model
|
||||
$currentModule = $app->getModuleName();
|
||||
$currentMethod = $app->getMethodName();
|
||||
|
||||
/* Sort the subMenu according to menuOrder. */
|
||||
if(isset($lang->$moduleName->menuOrder))
|
||||
{
|
||||
$menus = json_decode(json_encode($submenus), true);
|
||||
$submenus = new stdclass();
|
||||
|
||||
ksort($lang->$moduleName->menuOrder, SORT_ASC);
|
||||
if(isset($menus['list']))
|
||||
{
|
||||
$submenus->list = $menus['list'];
|
||||
unset($menus['list']);
|
||||
}
|
||||
foreach($lang->$moduleName->menuOrder as $order)
|
||||
{
|
||||
if(($order != 'list') && isset($menus[$order]))
|
||||
{
|
||||
$subOrder = $menus[$order];
|
||||
unset($menus[$order]);
|
||||
$submenus->$order = $subOrder;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($menus as $key => $menu) $submenus->$key = $menu;
|
||||
}
|
||||
|
||||
/* The beginning of the menu. */
|
||||
echo "<ul class='nav'>\n";
|
||||
|
||||
/* Cycling to print every sub menus. */
|
||||
foreach($submenus as $subMenuKey => $submenu)
|
||||
foreach($app->customMenu['module'] as $subMenuKey => $submenu)
|
||||
{
|
||||
/* Init the these vars. */
|
||||
$link = $submenu;
|
||||
@@ -532,8 +490,11 @@ class commonModel extends model
|
||||
$float = '';
|
||||
$active = '';
|
||||
$target = '';
|
||||
$status = '';
|
||||
$order = '';
|
||||
|
||||
if(is_array($submenu)) extract($submenu); // If the sub menu is an array, extract it.
|
||||
if($status == 'hide') continue;
|
||||
|
||||
/* Print the menu. */
|
||||
if(strpos($link, '|') === false)
|
||||
|
||||
@@ -122,4 +122,122 @@ class customModel extends model
|
||||
->beginIF($params['section'])->andWhere('section')->in($params['section'])->fi()
|
||||
->beginIF($params['key'])->andWhere('`key`')->in($params['key'])->fi();
|
||||
}
|
||||
|
||||
public static function getCustomMenu($module, $method)
|
||||
{
|
||||
global $app, $lang, $config;
|
||||
if(!isset($lang->$module->menu)) return array();
|
||||
$allMenu['main'] = $lang->menu;
|
||||
$allMenu['module'] = $lang->$module->menu;
|
||||
|
||||
/* Process main and module menu. */
|
||||
$processedMenus = array();
|
||||
foreach($allMenu as $type => $menu)
|
||||
{
|
||||
$menucustom = '';
|
||||
$menuOrder = array();
|
||||
$menuStatus = array();
|
||||
if($type == 'main') $menucustom = isset($config->menucustom->main) ? $config->menucustom->main : '';
|
||||
if($type == 'module')$menucustom = isset($config->menucustomModule->$module) ? $config->menucustomModule->$module : '';
|
||||
/* Get order and status from config. */
|
||||
if($menucustom)
|
||||
{
|
||||
$menuStatus = json_decode($menucustom, true);
|
||||
$i = 1;
|
||||
foreach($menuStatus as $menuKey => $status)
|
||||
{
|
||||
$order = $i * 5;
|
||||
$menuOrder[$order] = $menuKey;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(empty($menuOrder)) $menuOrder = $type == 'main' ? $lang->menuOrder : $lang->$module->menuOrder;
|
||||
|
||||
/* Merge all menu. */
|
||||
$inOrderMenu = ',' . join(',', $menuOrder) . ',';
|
||||
$notInOrderMenu = array();
|
||||
foreach($menu as $menuKey => $menuName)
|
||||
{
|
||||
if(strpos($inOrderMenu, ",$menuKey,") === false) $notInOrderMenu[] = $menuKey;
|
||||
}
|
||||
if($notInOrderMenu)
|
||||
{
|
||||
$order = count($menuOrder) * 5;
|
||||
foreach($notInOrderMenu as $menuKey)
|
||||
{
|
||||
$order = $order + 5;
|
||||
$menuOrder[$order] = $menuKey;
|
||||
}
|
||||
}
|
||||
ksort($menuOrder, SORT_ASC);
|
||||
|
||||
/* Rebuild menu. */
|
||||
$processedMenu = new stdclass();
|
||||
foreach($menuOrder as $order => $menuKey)
|
||||
{
|
||||
if(!isset($menu->$menuKey)) continue;
|
||||
$menuContent = $menu->$menuKey;
|
||||
if(is_string($menuContent)) $menuContent = array('link' => $menuContent);
|
||||
$menuContent['status'] = isset($menuStatus[$menuKey]) ? $menuStatus[$menuKey] : 'show';
|
||||
$menuContent['order'] = $order;
|
||||
|
||||
if(strpos($menuContent['link'], '|') !== false)
|
||||
{
|
||||
list($menuTitle, $menuModule, $menuMethod) = explode('|', $menuContent['link']);
|
||||
if($menuContent['status'] == 'show' and !common::hasPriv($menuModule, $menuMethod)) $menuContent['status'] = 'hide';
|
||||
}
|
||||
|
||||
$processedMenu->$menuKey = $menuContent;
|
||||
}
|
||||
$processedMenus[$type] = $processedMenu;
|
||||
}
|
||||
|
||||
/* Process featurebar. */
|
||||
$app->loadLang($module);
|
||||
$featurebar = '';
|
||||
if(isset($lang->$module->featurebar[$method])) $featurebar = $lang->$module->featurebar[$method];
|
||||
$menucustomKey = 'menucustom' . $module;
|
||||
if($featurebar)
|
||||
{
|
||||
$menuOrder = array();
|
||||
$menuStatus = array();
|
||||
if(isset($config->$menucustomKey->$method))
|
||||
{
|
||||
$menuStatus = json_decode($config->$menucustomKey->$method, true);
|
||||
foreach($menuStatus as $menuKey => $status) $menuOrder[] = $menuKey;
|
||||
}
|
||||
|
||||
/* Merge all menu. */
|
||||
$inOrderMenu = ',' . join(',', $menuOrder) . ',';
|
||||
$notInOrderMenu = array();
|
||||
foreach($featurebar as $menuKey => $menuName)
|
||||
{
|
||||
if(strpos($inOrderMenu, ",$menuKey,") === false) $notInOrderMenu[] = $menuKey;
|
||||
}
|
||||
if($notInOrderMenu)
|
||||
{
|
||||
$order = count($menuOrder);
|
||||
foreach($notInOrderMenu as $menuKey)
|
||||
{
|
||||
$menuOrder[$order] = $menuKey;
|
||||
$order++;
|
||||
}
|
||||
}
|
||||
ksort($menuOrder, SORT_ASC);
|
||||
|
||||
$processedMenu = new stdclass();
|
||||
foreach($menuOrder as $order => $menuKey)
|
||||
{
|
||||
$menuContent = $featurebar[$menuKey];
|
||||
$menuContent = array('link' => $menuContent);
|
||||
$menuContent['status'] = isset($menuStatus[$menuKey]) ? $menuStatus[$menuKey] : 'show';
|
||||
$menuContent['order'] = ($order + 1) * 5;
|
||||
|
||||
$processedMenu->$menuKey = $menuContent;
|
||||
}
|
||||
$processedMenus['featurebar'] = $processedMenu;
|
||||
}
|
||||
|
||||
return $processedMenus;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,3 +93,15 @@ $lang->product->aclList['custom'] = "Whitelist({$lang->projectCommon} team memb
|
||||
|
||||
$lang->product->storySummary = "Total <strong>%s</strong> stories in this page, estimate <strong>%s</strong> hours, case coverage is %s ";
|
||||
$lang->product->noMatched = "No matched {$lang->productCommon} including '%s'";
|
||||
|
||||
$lang->product->featurebar['browse']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->product->featurebar['browse']['allstory'] = $lang->product->allStory;
|
||||
$lang->product->featurebar['browse']['assignedtome'] = $lang->product->assignedToMe;
|
||||
$lang->product->featurebar['browse']['openedbyme'] = $lang->product->openedByMe;
|
||||
$lang->product->featurebar['browse']['reviewedbyme'] = $lang->product->reviewedByMe;
|
||||
$lang->product->featurebar['browse']['closedbyme'] = $lang->product->closedByMe;
|
||||
$lang->product->featurebar['browse']['draftstory'] = $lang->product->draftStory;
|
||||
$lang->product->featurebar['browse']['activestory'] = $lang->product->activeStory;
|
||||
$lang->product->featurebar['browse']['changedstory'] = $lang->product->changedStory;
|
||||
$lang->product->featurebar['browse']['willclose'] = $lang->product->willClose;
|
||||
$lang->product->featurebar['browse']['closedstory'] = $lang->product->closedStory;
|
||||
|
||||
@@ -93,3 +93,15 @@ $lang->product->aclList['custom'] = '自定义白名单(团队成员和白名
|
||||
|
||||
$lang->product->storySummary = "本页共 <strong>%s</strong> 个需求,预计 <strong>%s</strong> 个工时,用例覆盖率<strong>%s</strong>。";
|
||||
$lang->product->noMatched = '找不到包含"%s"的' . $lang->productCommon;
|
||||
|
||||
$lang->product->featurebar['browse']['unclosed'] = $lang->product->unclosed;
|
||||
$lang->product->featurebar['browse']['allstory'] = $lang->product->allStory;
|
||||
$lang->product->featurebar['browse']['assignedtome'] = $lang->product->assignedToMe;
|
||||
$lang->product->featurebar['browse']['openedbyme'] = $lang->product->openedByMe;
|
||||
$lang->product->featurebar['browse']['reviewedbyme'] = $lang->product->reviewedByMe;
|
||||
$lang->product->featurebar['browse']['closedbyme'] = $lang->product->closedByMe;
|
||||
$lang->product->featurebar['browse']['draftstory'] = $lang->product->draftStory;
|
||||
$lang->product->featurebar['browse']['activestory'] = $lang->product->activeStory;
|
||||
$lang->product->featurebar['browse']['changedstory'] = $lang->product->changedStory;
|
||||
$lang->product->featurebar['browse']['willclose'] = $lang->product->willClose;
|
||||
$lang->product->featurebar['browse']['closedstory'] = $lang->product->closedStory;
|
||||
|
||||
@@ -28,17 +28,10 @@
|
||||
?>
|
||||
</span>
|
||||
</li>
|
||||
<li id='unclosedTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=unclosed"), $lang->product->unclosed);?></li>
|
||||
<li id='allstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=allStory"), $lang->product->allStory);?></li>
|
||||
<li id='assignedtomeTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=assignedtome"), $lang->product->assignedToMe);?></li>
|
||||
<li id='openedbymeTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=openedByMe"), $lang->product->openedByMe);?></li>
|
||||
<li id='reviewedbymeTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=reviewedByMe"), $lang->product->reviewedByMe);?></li>
|
||||
<li id='closedbymeTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=closedByMe"), $lang->product->closedByMe);?></li>
|
||||
<li id='draftstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=draftStory"), $lang->product->draftStory);?></li>
|
||||
<li id='activestoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=activeStory"), $lang->product->activeStory);?></li>
|
||||
<li id='changedstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=changedStory"), $lang->product->changedStory);?></li>
|
||||
<li id='willcloseTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=willClose"), $lang->product->willClose);?></li>
|
||||
<li id='closedstoryTab'> <?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=closedStory"), $lang->product->closedStory);?></li>
|
||||
<?php foreach($app->customMenu['featurebar'] as $type => $featurebar):?>
|
||||
<?php if($featurebar['status'] == 'hide') continue;?>
|
||||
<li id='<?php echo $type?>Tab'><?php echo html::a($this->inlink('browse', "productID=$productID&branch=$branch&browseType=$type"), $featurebar['link']);?></li>
|
||||
<?php endforeach;?>
|
||||
<li id='bysearchTab'><a href='javascript:;'><i class='icon-search icon'></i> <?php echo $lang->product->searchStory;?></a></li>
|
||||
</ul>
|
||||
<div class='actions'>
|
||||
|
||||
@@ -237,3 +237,14 @@ $lang->printKanban->taskStatus = 'Status';
|
||||
|
||||
$lang->printKanban->typeList['all'] = 'All';
|
||||
$lang->printKanban->typeList['increment'] = 'Increment';
|
||||
|
||||
$lang->project->featurebar['task']['unclosed'] = $lang->project->unclosed;
|
||||
$lang->project->featurebar['task']['all'] = $lang->project->allTasks;
|
||||
$lang->project->featurebar['task']['kanban'] = $lang->project->kanban;
|
||||
$lang->project->featurebar['task']['burn'] = $lang->project->burn;
|
||||
$lang->project->featurebar['task']['assignedtome'] = $lang->project->assignedToMe;
|
||||
$lang->project->featurebar['task']['status'] = $lang->project->statusSelects[''];
|
||||
$lang->project->featurebar['task']['group'] = $lang->project->groups[''];
|
||||
$lang->project->featurebar['grouptask'] = $lang->project->featurebar['task'];
|
||||
$lang->project->featurebar['kanban'] = $lang->project->featurebar['task'];
|
||||
$lang->project->featurebar['burn'] = $lang->project->featurebar['task'];
|
||||
|
||||
@@ -248,3 +248,14 @@ $lang->printKanban->taskStatus = '状态';
|
||||
|
||||
$lang->printKanban->typeList['all'] = '全部';
|
||||
$lang->printKanban->typeList['increment'] = '增量';
|
||||
|
||||
$lang->project->featurebar['task']['unclosed'] = $lang->project->unclosed;
|
||||
$lang->project->featurebar['task']['all'] = $lang->project->allTasks;
|
||||
$lang->project->featurebar['task']['kanban'] = $lang->project->kanban;
|
||||
$lang->project->featurebar['task']['burn'] = $lang->project->burn;
|
||||
$lang->project->featurebar['task']['assignedtome'] = $lang->project->assignedToMe;
|
||||
$lang->project->featurebar['task']['status'] = $lang->project->statusSelects[''];
|
||||
$lang->project->featurebar['task']['group'] = $lang->project->groups[''];
|
||||
$lang->project->featurebar['grouptask'] = $lang->project->featurebar['task'];
|
||||
$lang->project->featurebar['kanban'] = $lang->project->featurebar['task'];
|
||||
$lang->project->featurebar['burn'] = $lang->project->featurebar['task'];
|
||||
|
||||
@@ -15,43 +15,54 @@
|
||||
</span>
|
||||
</li>
|
||||
<?php endif;?>
|
||||
<?php
|
||||
$hasBrowsePriv = common::hasPriv('project', 'task');
|
||||
$hasKanbanPriv = common::hasPriv('project', 'kanban');
|
||||
$hasBurnPriv = common::hasPriv('project', 'burn');
|
||||
$hasGroupTaskPriv = common::hasPriv('project', 'groupTask');
|
||||
?>
|
||||
<?php foreach($app->customMenu['featurebar'] as $type => $featurebar):?>
|
||||
<?php
|
||||
if($featurebar['status'] == 'hide') continue;
|
||||
if($hasBrowsePriv and ($type == 'unclosed' or $type == 'all' or $type == 'assignedtome')) echo "<li id='{$type}Tab'>" . html::a(inlink('task', "project=$projectID&type=$type"), $featurebar['link']) . '</li>' ;
|
||||
if($hasKanbanPriv and $type == 'kanban') echo "<li id='kanbanTab'>" . html::a(inlink('kanban', "projectID=$projectID"), $featurebar['link']) . '</li>';
|
||||
if($hasBurnPriv and $type == 'burn' and ($project->type == 'sprint' or $project->type == 'waterfall')) echo "<li id='burnTab'>" . html::a(inlink('burn', "project=$projectID"), $featurebar['link']) . '</li>' ;
|
||||
if($hasBrowsePriv and $type == 'status')
|
||||
{
|
||||
echo "<li id='statusTab' class='dropdown'>";
|
||||
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
|
||||
$current = zget($lang->project->statusSelects, $taskBrowseType, '');
|
||||
if(empty($current)) $current = $featurebar['link'];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->project->statusSelects as $key => $value)
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
|
||||
echo html::a($this->createLink('project', 'task', "project=$projectID&type=$key"), $value);
|
||||
}
|
||||
echo '</ul></li>';
|
||||
}
|
||||
elseif($hasGroupTaskPriv and $type == 'group')
|
||||
{
|
||||
echo "<li id='groupTab' class='dropdown'>";
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
$current = zget($lang->project->groups, isset($groupBy) ? $groupBy : '', '');
|
||||
if(empty($current)) $current = $featurebar['link'];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->project->groups as $key => $value)
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
|
||||
echo html::a($this->createLink('project', 'groupTask', "project=$projectID&groupBy=$key"), $value);
|
||||
}
|
||||
echo '</ul></li>';
|
||||
}
|
||||
?>
|
||||
<?php endforeach;?>
|
||||
|
||||
<?php
|
||||
echo "<li id='unclosedTab'>"; common::printLink('project', 'task', "project=$projectID&type=unclosed", $lang->project->unclosed); echo '</li>' ;
|
||||
echo "<li id='allTab'>"; common::printLink('project', 'task', "project=$projectID&type=all", $lang->project->allTasks); echo '</li>' ;
|
||||
echo "<li id='kanbanTab'>"; common::printLink('project', 'kanban', "projectID=$projectID", $lang->project->kanban, '', '', false); echo '</li>';
|
||||
if($project->type == 'sprint' or $project->type == 'waterfall') print "<li id='burnTab'>" and common::printLink('project', 'burn', "project=$projectID", $lang->project->burn); print '</li>' ;
|
||||
echo "<li id='assignedtomeTab'>"; common::printLink('project', 'task', "project=$projectID&type=assignedtome", $lang->project->assignedToMe); echo '</li>' ;
|
||||
|
||||
echo "<li id='statusTab' class='dropdown'>";
|
||||
$taskBrowseType = isset($status) ? $this->session->taskBrowseType : '';
|
||||
$current = zget($lang->project->statusSelects, $taskBrowseType, '');
|
||||
if(empty($current)) $current = $lang->project->statusSelects[''];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->project->statusSelects as $key => $value)
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $taskBrowseType ? " class='active'" : '') . '>';
|
||||
echo html::a($this->createLink('project', 'task', "project=$projectID&type=$key"), $value);
|
||||
}
|
||||
echo '</ul></li>';
|
||||
|
||||
echo "<li id='groupTab' class='dropdown'>";
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
$current = zget($lang->project->groups, isset($groupBy) ? $groupBy : '', '');
|
||||
if(empty($current)) $current = $lang->project->groups[''];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->project->groups as $key => $value)
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
|
||||
echo html::a($this->createLink('project', 'groupTask', "project=$projectID&groupBy=$key"), $value);
|
||||
}
|
||||
echo '</ul></li>';
|
||||
|
||||
|
||||
if($this->methodName == 'task') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> {$lang->project->byQuery}</a></li> ";
|
||||
?>
|
||||
</ul>
|
||||
|
||||
@@ -145,3 +145,10 @@ $lang->testcase->noFunction = 'Iconv and mb_convert_encoding does not exist, yo
|
||||
$lang->testcase->noRequire = "In the row of %s, the %s is a required field";
|
||||
|
||||
$lang->testcase->searchStories = 'Type to search stories';
|
||||
|
||||
$lang->testcase->featurebar['browse']['all'] = $lang->testcase->allCases;
|
||||
$lang->testcase->featurebar['browse']['needconfirm'] = $lang->testcase->needConfirm;
|
||||
$lang->testcase->featurebar['browse']['group'] = '';
|
||||
$lang->testcase->featurebar['browse']['zerocase'] = '';
|
||||
$lang->testcase->featurebar['groupcase'] = $lang->testcase->featurebar['browse'];
|
||||
if(isset($lang->story))$lang->story->featurebar['zerocase'] = $lang->testcase->featurebar['browse'];
|
||||
|
||||
@@ -145,3 +145,10 @@ $lang->testcase->noFunction = '不存在iconv和mb_convert_encoding转码方法
|
||||
$lang->testcase->noRequire = "%s行的“%s”是必填字段,不能为空";
|
||||
|
||||
$lang->testcase->searchStories = '键入来搜索需求';
|
||||
|
||||
$lang->testcase->featurebar['browse']['all'] = $lang->testcase->allCases;
|
||||
$lang->testcase->featurebar['browse']['needconfirm'] = $lang->testcase->needConfirm;
|
||||
$lang->testcase->featurebar['browse']['group'] = '';
|
||||
$lang->testcase->featurebar['browse']['zerocase'] = '';
|
||||
$lang->testcase->featurebar['groupcase'] = $lang->testcase->featurebar['browse'];
|
||||
if(isset($lang->story))$lang->story->featurebar['zerocase'] = $lang->testcase->featurebar['browse'];
|
||||
|
||||
@@ -16,11 +16,14 @@
|
||||
</span>
|
||||
</li>
|
||||
<?php endif;?>
|
||||
<?php foreach($app->customMenu['featurebar'] as $type => $featurebar):?>
|
||||
<?php if($featurebar['status'] == 'hide') continue;?>
|
||||
<?php
|
||||
echo "<li id='allTab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=all"), $lang->testcase->allCases) . "</li>";
|
||||
echo "<li id='needconfirmTab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=needconfirm"), $lang->testcase->needConfirm) . "</li>";
|
||||
|
||||
if(common::hasPriv('testcase', 'groupcase'))
|
||||
if(common::hasPriv('testcase', 'browse') and ($type == 'all' or $type == 'needconfirm'))
|
||||
{
|
||||
echo "<li id='{$type}Tab'>" . html::a($this->createLink('testcase', 'browse', "productid=$productID&branch=$branch&browseType=$type"), $featurebar['link']) . "</li>";
|
||||
}
|
||||
elseif($type == 'group' and common::hasPriv('testcase', 'groupcase'))
|
||||
{
|
||||
echo "<li id='groupTab' class='dropdown'>";
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
@@ -36,8 +39,13 @@
|
||||
}
|
||||
echo '</ul></li>';
|
||||
}
|
||||
|
||||
if(common::hasPriv('story', 'zeroCase')) echo "<li id='zerocaseTab'>" . html::a($this->createLink('story', 'zeroCase', "productID=$productID"), $lang->story->zeroCase) . '</li>';
|
||||
elseif($type == 'zerocase' and common::hasPriv('story', 'zeroCase'))
|
||||
{
|
||||
echo "<li id='zerocaseTab'>" . html::a($this->createLink('story', 'zeroCase', "productID=$productID"), $lang->story->zeroCase) . '</li>';
|
||||
}
|
||||
?>
|
||||
<?php endforeach;?>
|
||||
<?php
|
||||
if($this->methodName == 'browse') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> {$lang->testcase->bySearch}</a></li> ";
|
||||
?>
|
||||
</ul>
|
||||
|
||||
@@ -103,3 +103,8 @@ $lang->testtask->action = new stdclass();
|
||||
$lang->testtask->action->testtaskopened = '$date, 由 <strong>$actor</strong> opened test task. <strong>$extra</strong>。' . "\n";
|
||||
$lang->testtask->action->testtaskstarted = '$date, 由 <strong>$actor</strong> started test task. <strong>$extra</strong>。' . "\n";
|
||||
$lang->testtask->action->testtaskclosed = '$date, 由 <strong>$actor</strong> finished test task. <strong>$extra</strong>。' . "\n";
|
||||
|
||||
$lang->testtask->featurebar['cases']['all'] = $lang->testtask->allCases;
|
||||
$lang->testtask->featurebar['cases']['assignedtome'] = $lang->testtask->assignedToMe;
|
||||
$lang->testtask->featurebar['cases']['group'] = '';
|
||||
$lang->testtask->featurebar['groupcase'] = $lang->testtask->featurebar['cases'];
|
||||
|
||||
@@ -103,3 +103,8 @@ $lang->testtask->action = new stdclass();
|
||||
$lang->testtask->action->testtaskopened = '$date, 由 <strong>$actor</strong> 创建版本 <strong>$extra</strong>。' . "\n";
|
||||
$lang->testtask->action->testtaskstarted = '$date, 由 <strong>$actor</strong> 启动版本 <strong>$extra</strong>。' . "\n";
|
||||
$lang->testtask->action->testtaskclosed = '$date, 由 <strong>$actor</strong> 完成版本 <strong>$extra</strong>。' . "\n";
|
||||
|
||||
$lang->testtask->featurebar['cases']['all'] = $lang->testtask->allCases;
|
||||
$lang->testtask->featurebar['cases']['assignedtome'] = $lang->testtask->assignedToMe;
|
||||
$lang->testtask->featurebar['cases']['group'] = '';
|
||||
$lang->testtask->featurebar['groupcase'] = $lang->testtask->featurebar['cases'];
|
||||
|
||||
@@ -3,25 +3,32 @@
|
||||
<?php echo "<span class='prefix'>" . html::icon($lang->icons['usecase']) . '</span><strong>' . $task->name . '</strong>';?>
|
||||
</div>
|
||||
<div class='nav'>
|
||||
<?php foreach($app->customMenu['featurebar'] as $type => $featurebar):?>
|
||||
<?php if($featurebar['status'] == 'hide') continue;?>
|
||||
<?php
|
||||
echo "<li id='allTab'>" . html::a($this->inlink('cases', "taskID=$taskID&browseType=all¶m=0"), $lang->testtask->allCases) . "</li>";
|
||||
echo "<li id='assignedtomeTab'>" . html::a($this->inlink('cases', "taskID=$taskID&browseType=assignedtome¶m=0"), $lang->testtask->assignedToMe) . "</li>";
|
||||
|
||||
echo "<li id='groupTab' class='dropdown'>";
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
|
||||
if(empty($current)) $current = $lang->testcase->groups[''];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->testcase->groups as $key => $value)
|
||||
if(common::hasPriv('testtask', 'cases') and ($type == 'all' or $type == 'assignedtome'))
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
|
||||
echo html::a($this->inlink('groupCase', "taskID=$taskID&groupBy=$key"), $value);
|
||||
echo "<li id='{$type}Tab'>" . html::a($this->inlink('cases', "taskID=$taskID&browseType=$type¶m=0"), $featurebar['link']) . "</li>";
|
||||
}
|
||||
echo '</ul></li>';
|
||||
|
||||
|
||||
elseif(common::hasPriv('testtask', 'cases') and $type == 'group')
|
||||
{
|
||||
echo "<li id='groupTab' class='dropdown'>";
|
||||
$groupBy = isset($groupBy) ? $groupBy : '';
|
||||
$current = zget($lang->testcase->groups, isset($groupBy) ? $groupBy : '', '');
|
||||
if(empty($current)) $current = $lang->testcase->groups[''];
|
||||
echo html::a('javascript:;', $current . " <span class='caret'></span>", '', "data-toggle='dropdown'");
|
||||
echo "<ul class='dropdown-menu'>";
|
||||
foreach ($lang->testcase->groups as $key => $value)
|
||||
{
|
||||
if($key == '') continue;
|
||||
echo '<li' . ($key == $groupBy ? " class='active'" : '') . '>';
|
||||
echo html::a($this->inlink('groupCase', "taskID=$taskID&groupBy=$key"), $value);
|
||||
}
|
||||
echo '</ul></li>';
|
||||
}
|
||||
?>
|
||||
<?php endforeach;?>
|
||||
<?php
|
||||
if($this->methodName == 'cases') echo "<li id='bysearchTab'><a href='#'><i class='icon-search icon'></i> {$lang->testcase->bySearch}</a></li> ";
|
||||
echo '<li>' . html::a(inlink('view', "taskID=$taskID"), $lang->testtask->view) . '</li>';
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user