Merge branch '15.0.beta3' of https://gitlab.zcorp.cc/easycorp/zentaopms into 15.0.beta3
This commit is contained in:
@@ -27,8 +27,7 @@ class build extends control
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$executionID = $this->post->execution;
|
||||
$buildID = $this->build->create($executionID);
|
||||
$buildID = $this->build->create($executionID);
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
$this->loadModel('action')->create('build', $buildID, 'opened');
|
||||
|
||||
|
||||
@@ -23,10 +23,13 @@ class caselibModel extends model
|
||||
*/
|
||||
public function setLibMenu($libraries, $libID, $moduleID = 0)
|
||||
{
|
||||
/* Set case lib menu. */
|
||||
$this->loadModel('qa')->setMenu($this->loadModel('product')->getPairs(), $this->session->product);
|
||||
|
||||
$currentLibName = zget($libraries, $libID, '');
|
||||
|
||||
$isMobile = $this->app->viewType == 'mhtml';
|
||||
$selectHtml = '';
|
||||
$isMobile = $this->app->viewType == 'mhtml';
|
||||
$selectHtml = '';
|
||||
if(!empty($libraries))
|
||||
{
|
||||
if($isMobile)
|
||||
|
||||
@@ -64,7 +64,6 @@ $lang->required = 'Pflicht';
|
||||
$lang->noData = 'Kein Datensatz';
|
||||
$lang->fullscreen = 'Fullscreen';
|
||||
$lang->retrack = 'Retrack';
|
||||
$lang->recent = 'Kürzlich';
|
||||
$lang->whitelist = 'Weiße Liste';
|
||||
|
||||
$lang->actions = 'Aktionen';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->required = 'Required';
|
||||
$lang->noData = 'No data.';
|
||||
$lang->fullscreen = 'Fullscreen';
|
||||
$lang->retrack = 'Retrack';
|
||||
$lang->recent = 'Recent';
|
||||
$lang->whitelist = 'Access whitelist';
|
||||
|
||||
$lang->actions = 'Action';
|
||||
@@ -152,6 +151,7 @@ $lang->custom->common = 'Custom';
|
||||
$lang->extension->common = 'Extension';
|
||||
$lang->company->common = 'Company';
|
||||
$lang->dept->common = 'Dept';
|
||||
$lang->program->list = 'Program List';
|
||||
|
||||
$lang->personnel->common = 'Member';
|
||||
$lang->personnel->invest = 'Investment';
|
||||
|
||||
@@ -64,7 +64,6 @@ $lang->required = 'Obligatoire';
|
||||
$lang->noData = 'No data.';
|
||||
$lang->fullscreen = 'Plein Ecran';
|
||||
$lang->retrack = 'Réduire';
|
||||
$lang->recent = 'Récent';
|
||||
$lang->whitelist = 'Liste blanche';
|
||||
|
||||
$lang->actions = 'Action';
|
||||
|
||||
@@ -20,7 +20,7 @@ $lang->mainNav->report = "<i class='icon icon-statistic'></i> {$lang->report-
|
||||
$lang->mainNav->system = "<i class='icon icon-group'></i> {$lang->system->common}|my|team|";
|
||||
$lang->mainNav->admin = "<i class='icon icon-cog-outline'></i> {$lang->admin->common}|admin|index|";
|
||||
|
||||
$lang->dividerMenu = ',devops,report,';
|
||||
$lang->dividerMenu = ',devops,system,';
|
||||
$lang->mainNav->menuOrder[5] = 'my';
|
||||
if($config->systemMode == 'new') $lang->mainNav->menuOrder[10] = 'program';
|
||||
$lang->mainNav->menuOrder[15] = 'product';
|
||||
@@ -28,9 +28,9 @@ $lang->mainNav->menuOrder[20] = 'project';
|
||||
$lang->mainNav->menuOrder[21] = 'execution';
|
||||
$lang->mainNav->menuOrder[23] = 'qa';
|
||||
$lang->mainNav->menuOrder[25] = 'devops';
|
||||
$lang->mainNav->menuOrder[30] = 'system';
|
||||
$lang->mainNav->menuOrder[35] = 'doc';
|
||||
$lang->mainNav->menuOrder[40] = 'report';
|
||||
$lang->mainNav->menuOrder[30] = 'doc';
|
||||
$lang->mainNav->menuOrder[35] = 'report';
|
||||
$lang->mainNav->menuOrder[40] = 'system';
|
||||
$lang->mainNav->menuOrder[45] = 'admin';
|
||||
|
||||
/* My menu. */
|
||||
@@ -85,7 +85,7 @@ $lang->my->dividerMenu = ',work,dynamic,';
|
||||
|
||||
/* Program menu. */
|
||||
$lang->program->homeMenu = new stdclass();
|
||||
$lang->program->homeMenu->browse = array('link' => "{$lang->program->common}|program|browse|");
|
||||
$lang->program->homeMenu->browse = array('link' => "{$lang->program->list}|program|browse|");
|
||||
|
||||
$lang->program->menu = new stdclass();
|
||||
$lang->program->menu->product = array('link' => "{$lang->product->common}|program|product|programID=%s", 'alias' => 'view');
|
||||
@@ -404,7 +404,7 @@ $lang->admin->menu->custom = array('link' => "{$lang->custom->common}|custom|
|
||||
$lang->admin->menu->extension = array('link' => "{$lang->extension->common}|extension|browse", 'subModule' => 'extension');
|
||||
$lang->admin->menu->dev = array('link' => "$lang->redev|dev|api", 'alias' => 'db', 'subModule' => 'dev,editor,entry');
|
||||
$lang->admin->menu->message = array('link' => "{$lang->message->common}|message|index", 'subModule' => 'message,mail,webhook');
|
||||
$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,search,admin', 'exclude' => 'admin-index');
|
||||
$lang->admin->menu->system = array('link' => "{$lang->admin->system}|backup|index", 'subModule' => 'cron,backup,action,admin', 'exclude' => 'admin-index');
|
||||
|
||||
/* Admin menu order. */
|
||||
$lang->admin->menuOrder[5] = 'index';
|
||||
|
||||
@@ -64,7 +64,6 @@ $lang->required = 'Bắt buộc';
|
||||
$lang->noData = 'Không có dữ liệu.';
|
||||
$lang->fullscreen = 'Fullscreen';
|
||||
$lang->retrack = 'Retrack';
|
||||
$lang->recent = 'Recente';
|
||||
$lang->whitelist = 'Lista bianca';
|
||||
|
||||
$lang->actions = 'Hành động';
|
||||
|
||||
@@ -69,7 +69,6 @@ $lang->required = '必填';
|
||||
$lang->noData = '暂无';
|
||||
$lang->fullscreen = '全屏';
|
||||
$lang->retrack = '收起';
|
||||
$lang->recent = '近期';
|
||||
$lang->whitelist = '访问白名单';
|
||||
|
||||
$lang->actions = '操作';
|
||||
@@ -152,6 +151,7 @@ $lang->custom->common = '自定义';
|
||||
$lang->extension->common = '插件';
|
||||
$lang->company->common = '公司';
|
||||
$lang->dept->common = '部门';
|
||||
$lang->program->list = '项目集列表';
|
||||
|
||||
$lang->personnel->common = '人员';
|
||||
$lang->personnel->invest = '投入人员';
|
||||
|
||||
@@ -64,7 +64,6 @@ $lang->required = '必填';
|
||||
$lang->noData = '暫無';
|
||||
$lang->fullscreen = '全屏';
|
||||
$lang->retrack = '收起';
|
||||
$lang->recent = '近期';
|
||||
$lang->whitelist = '訪問白名單';
|
||||
|
||||
$lang->actions = '操作';
|
||||
|
||||
@@ -615,18 +615,6 @@ class commonModel extends model
|
||||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print recent menu.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public static function printRecentMenu()
|
||||
{
|
||||
global $lang;
|
||||
echo '<li><a id="recentMenu"><i class="icon icon-recent"></i><span class="text">' . $lang->recent . '</span></a></li>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the main menu.
|
||||
*
|
||||
|
||||
@@ -122,7 +122,7 @@ class doc extends control
|
||||
else
|
||||
{
|
||||
$menuType = (!$type && (in_array($browseType, array_keys($this->lang->doc->fastMenuList)) || $browseType == 'bysearch')) ? $browseType : $type;
|
||||
$this->doc->setMenu($menuType, $libID, $moduleID, $productID, $executionID);
|
||||
$this->doc->setMenu();
|
||||
}
|
||||
$this->session->set('docList', $this->app->getURI(true));
|
||||
|
||||
@@ -348,7 +348,7 @@ class doc extends control
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->doc->setMenu($type, $libID, $moduleID, $lib->product, $lib->execution);
|
||||
$this->doc->setMenu();
|
||||
}
|
||||
|
||||
$this->view->title = $lib->name . $this->lang->colon . $this->lang->doc->create;
|
||||
@@ -420,7 +420,7 @@ class doc extends control
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->doc->setMenu($type, $libID, $doc->module, $lib->product, $lib->execution);
|
||||
$this->doc->setMenu();
|
||||
}
|
||||
|
||||
/* Set my menu. */
|
||||
@@ -483,7 +483,7 @@ class doc extends control
|
||||
else
|
||||
{
|
||||
/* Set menu. */
|
||||
$this->doc->setMenu($type, $doc->lib, $doc->module, $lib->product, $lib->execution);
|
||||
$this->doc->setMenu();
|
||||
}
|
||||
|
||||
$this->view->title = "DOC #$doc->id $doc->title - " . $lib->name;
|
||||
@@ -736,7 +736,7 @@ class doc extends control
|
||||
$this->view->title = $libName;
|
||||
$this->view->position[] = $libName;
|
||||
|
||||
$this->doc->setMenu($type, $libID = 0, $moduleID = 0, $productID = 0, $executionID = 0, $crumb);
|
||||
$this->doc->setMenu();
|
||||
|
||||
/* Load pager. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
@@ -820,7 +820,7 @@ class doc extends control
|
||||
if(!$this->executionID->checkPriv($objectID)) $this->accessDenied();
|
||||
}
|
||||
|
||||
$this->doc->setMenu($type, $libID = 0, $moduleID = 0, $productID, $executionID, $crumb);
|
||||
$this->doc->setMenu();
|
||||
}
|
||||
|
||||
/* Load pager. */
|
||||
@@ -887,7 +887,7 @@ class doc extends control
|
||||
$crumb .= html::a(inlink('objectLibs', "type=$type&objectID=$objectID"), $object->name);
|
||||
$productID = $type == 'product' ? $objectID : 0;
|
||||
$executionID = $type == 'execution' ? $objectID : 0;
|
||||
$this->doc->setMenu($type, 0, 0, $productID, $executionID, $crumb);
|
||||
$this->doc->setMenu();
|
||||
|
||||
}
|
||||
elseif($from == 'execution')
|
||||
|
||||
+3
-109
@@ -14,119 +14,14 @@
|
||||
class docModel extends model
|
||||
{
|
||||
/**
|
||||
* Set menus
|
||||
* Set menu.
|
||||
*
|
||||
* @param array $libs
|
||||
* @param int $libID
|
||||
* @param string $moduleID
|
||||
* @param int $productID
|
||||
* @param int $executionID
|
||||
* @param string $crumb
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setMenu($type = '', $libID = 0, $moduleID = 0, $productID = 0, $executionID = 0, $crumb = '')
|
||||
public function setMenu()
|
||||
{
|
||||
$btnStyle = $this->lang->navGroup->doc == 'doc' ? 'header-btn' : 'angle-btn';
|
||||
$isLimitWidth = $this->lang->navGroup->doc == 'doc' ? '' : 'btn-limit';
|
||||
$selectHtml = "<div class='btn-group $btnStyle'>";
|
||||
$selectHtml .= html::a(helper::createLink('doc', 'index'), $this->lang->doc->index, '', "class='btn'");
|
||||
$selectHtml .= '</div>';
|
||||
|
||||
if($type)
|
||||
{
|
||||
$fastLib = in_array($type, array_keys($this->lang->doc->fastMenuList)) ? $this->lang->doc->fastMenuList[$type] : $this->lang->doc->fast;
|
||||
|
||||
if($libID)
|
||||
{
|
||||
$lib = $this->getLibById($libID);
|
||||
if(!$this->checkPrivLib($lib))
|
||||
{
|
||||
echo(js::alert($this->lang->doc->accessDenied));
|
||||
$loginLink = $this->config->requestType == 'GET' ? "?{$this->config->moduleVar}=user&{$this->config->methodVar}=login" : "user{$this->config->requestFix}login";
|
||||
if(strpos($this->server->http_referer, $loginLink) !== false) die(js::locate(inlink('index')));
|
||||
die(js::locate('back'));
|
||||
}
|
||||
|
||||
$type = $lib->type;
|
||||
}
|
||||
|
||||
if(isset($this->lang->doc->libTypeList[$type]))
|
||||
{
|
||||
$mainLib = $this->lang->doc->libTypeList[$type];
|
||||
$selectHtml .= "<div class='btn-group $btnStyle'>";
|
||||
$selectHtml .= "<div class='btn-group'>";
|
||||
$selectHtml .= "<a data-toggle='dropdown' class='btn $isLimitWidth' title=$mainLib>" . $mainLib . " <span class='caret'></span></a>";
|
||||
$selectHtml .= "<ul class='dropdown-menu'>";
|
||||
foreach($this->lang->doc->libTypeList as $libType => $libName)
|
||||
{
|
||||
$selectHtml .= '<li>' . html::a(helper::createLink('doc', 'allLibs', "type=$libType"), "<i class='icon {$this->lang->doc->libIconList[$libType]}'></i> {$this->lang->doc->libTypeList[$libType]}") . '</li>';
|
||||
}
|
||||
$selectHtml .='</ul></div></div>';
|
||||
}
|
||||
|
||||
$currentLib = 0;
|
||||
if(in_array($type, array_keys($this->lang->doc->libTypeList)))
|
||||
{
|
||||
if($type == 'product') $currentLib = $productID;
|
||||
if($type == 'execution') $currentLib = $executionID;
|
||||
if($type != 'product' and $type != 'execution') $currentLib = $libID;
|
||||
|
||||
if($currentLib)
|
||||
{
|
||||
$allLibGroups = $this->getAllLibGroups($libID);
|
||||
$currentGroups = $allLibGroups[$type];
|
||||
/* Append closed execution. */
|
||||
if(!isset($currentGroups[$currentLib]) and $type == 'execution')
|
||||
{
|
||||
$execution = $this->dao->select('id,name,status')->from(TABLE_EXECUTION)->where('id')->eq($currentLib)->fetch();
|
||||
$currentGroups[$currentLib] = (array)$execution;
|
||||
}
|
||||
$currentLibName = is_array($currentGroups[$currentLib]) ? $currentGroups[$currentLib]['name'] : $currentGroups[$currentLib];
|
||||
|
||||
$selectHtml .= "<div class='btn-group $btnStyle'>";
|
||||
$selectHtml .= "<div class='btn-group'>";
|
||||
$selectHtml .= "<a data-toggle='dropdown' class='btn $isLimitWidth' title=$currentLibName>" . $currentLibName . ' <span class="caret"></span></a>';
|
||||
$selectHtml .='<ul class="dropdown-menu">';
|
||||
if($type == 'product' or $type == 'execution')
|
||||
{
|
||||
foreach($currentGroups as $groupID => $libGroups)
|
||||
{
|
||||
$link = helper::createLink('doc', 'objectLibs', "type=$type&objectID=$groupID");
|
||||
$icon = $this->lang->doc->libIconList[$type];
|
||||
|
||||
$active = $currentLib == $groupID ? "class='active'" : '';
|
||||
$selectHtml .= "<li $active>" . html::a($link, "<i class='icon {$icon}'></i> {$libGroups['name']}") . '</li>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($currentGroups as $groupID => $groupName)
|
||||
{
|
||||
$active = $currentLib == $groupID ? "class='active'" : '';
|
||||
$selectHtml .= "<li $active>" . html::a(helper::createLink('doc', 'browse', "libID=$groupID"), "<i class='icon {$this->lang->doc->libIconList[$type]}'></i> {$groupName}") . '</li>';
|
||||
}
|
||||
}
|
||||
|
||||
$selectHtml .= '</ul></div></div>';
|
||||
}
|
||||
}
|
||||
|
||||
/* Determines whether the doc lib is editable. */
|
||||
$docLib = new stdClass();
|
||||
$docLib->product = $productID;
|
||||
$docLib->execution = $executionID;
|
||||
$canBeChanged = common::canBeChanged('doc', $docLib);
|
||||
|
||||
$lib = isset($lib) ? $lib : new stdClass();
|
||||
$actions = $this->setFastMenu($fastLib);
|
||||
$actions .= ($canBeChanged and common::hasPriv('doc', 'createLib', $lib)) ? html::a(helper::createLink('doc', 'createLib', "type={$type}&objectID={$currentLib}"), "<i class='icon icon-plus'></i> " . $this->lang->doc->createlib, '', "class='btn btn-secondary iframe'") : '';
|
||||
|
||||
$this->lang->TRActions = $actions;
|
||||
}
|
||||
|
||||
//$selectHtml .= $crumb ? $crumb : $this->getCrumbs($libID, $moduleID);
|
||||
$this->lang->modulePageNav = $selectHtml;
|
||||
$this->lang->switcherMenu = "<div class='btn-group header-btn'>" . html::a(helper::createLink('doc', 'index'), "<i class='icon icon-doc'></i> {$this->lang->doc->common}", '', "class='btn'") . '</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1878,7 +1773,6 @@ class docModel extends model
|
||||
$navCSS .= <<<EOF
|
||||
#subHeader {margin-top: -50px; background: rgba(0,0,0,0);}
|
||||
#pageActions .btn-link {color: #fff; font-size: 14px; line-height: 18px; border: #84a2e2 1px solid;}
|
||||
.header-btn {padding: 0;}
|
||||
EOF;
|
||||
if($this->app->rawMethod != 'index') $navCSS .= '.header-btn+.header-btn::after, .header-btn+.header-btn::before {top: -50px;}';
|
||||
}
|
||||
|
||||
@@ -2566,41 +2566,6 @@ class execution extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recent executions.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetRecentExecutions()
|
||||
{
|
||||
$allExecutions = $this->execution->getRecentExecutions();
|
||||
if(!empty($allExecutions))
|
||||
{
|
||||
foreach($allExecutions as $type => $executionList)
|
||||
{
|
||||
echo '<div class="heading">'. $this->lang->execution->$type . '</div>';
|
||||
$color = $type == 'recent' ? 'text-brown' : '';
|
||||
$executions = $allExecutions[$type];
|
||||
$executionsName = array();
|
||||
foreach($executions as $execution) $executionsName[] = $execution->name;
|
||||
$executionsPinYin = common::convert2Pinyin($executionsName);
|
||||
foreach($executions as $execution)
|
||||
{
|
||||
$link = helper::createLink('execution', 'task', 'executionID=' . $execution->id, '', false, $execution->project);
|
||||
$execution->code = empty($execution->code) ? $execution->name : $execution->code;
|
||||
$dataKey = 'date-key="' . zget($executionsPinYin, $execution->name, $execution->name) . '"';
|
||||
$class = "class='search-list-item $color' title='$execution->name' $dataKey";
|
||||
echo html::a($link, '<i class="icon icon-' . $this->lang->icons[$execution->type] . '"></i> ' . $execution->name, '', $class);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<div class="table-empty-tip">' . $this->lang->noData . '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update order.
|
||||
*
|
||||
@@ -2799,7 +2764,7 @@ class execution extends control
|
||||
$this->fetch('file', 'export2' . $this->post->fileType, $_POST);
|
||||
}
|
||||
|
||||
$this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->execution->common;
|
||||
$this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->executionCommon;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
$lang->executionCommon = $lang->executionCommon;
|
||||
$lang->execution->common = $lang->executionCommon;
|
||||
$lang->execution->allExecutions = 'Alle';
|
||||
$lang->execution->allExecutionAB = 'All Executions';
|
||||
$lang->execution->id = $lang->executionCommon . ' ID';
|
||||
$lang->execution->type = 'Typ';
|
||||
$lang->execution->name = 'Name';
|
||||
@@ -176,27 +177,30 @@ $lang->execution->unlinkStoryTasks = 'Verknüpfung aufheben';
|
||||
$lang->execution->linkedProducts = 'Verküpfte Produkte';
|
||||
$lang->execution->unlinkedProducts = 'Produkt verknüpfung aufheben';
|
||||
$lang->execution->view = "Übersicht";
|
||||
$lang->execution->startAction = "Start {$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "Activate {$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "Delay {$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "Suspend {$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "Close {$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "{$lang->executionCommon} Request";
|
||||
$lang->execution->teamAction = "{$lang->executionCommon} Members";
|
||||
$lang->execution->kanbanAction = "{$lang->executionCommon} Kanban";
|
||||
$lang->execution->startAction = "Start Execution";
|
||||
$lang->execution->activateAction = "Activate Execution";
|
||||
$lang->execution->delayAction = "Delay Execution";
|
||||
$lang->execution->suspendAction = "Suspend Execution";
|
||||
$lang->execution->closeAction = "Close Execution";
|
||||
$lang->execution->testtaskAction = "Execution Request";
|
||||
$lang->execution->teamAction = "Execution Members";
|
||||
$lang->execution->kanbanAction = "Execution Kanban";
|
||||
$lang->execution->printKanbanAction = "Print Kanban";
|
||||
$lang->execution->treeAction = "{$lang->executionCommon} Tree View";
|
||||
$lang->execution->exportAction = "Export {$lang->executionCommon}";
|
||||
$lang->execution->treeAction = "Execution Tree View";
|
||||
$lang->execution->exportAction = "Export Execution";
|
||||
$lang->execution->computeBurnAction = "Compute Burn";
|
||||
$lang->execution->create = "Erstelle Projekt";
|
||||
$lang->execution->createExec = "Create Execution";
|
||||
$lang->execution->copyExec = "Copy Execution";
|
||||
$lang->execution->copy = "Kopiere {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Lösche";
|
||||
$lang->execution->deleteAB = "Lösche Execution";
|
||||
$lang->execution->browse = "Durchsuchen";
|
||||
$lang->execution->list = "{$lang->executionCommon} List";
|
||||
$lang->execution->edit = "Bearbeiten";
|
||||
$lang->execution->editAB = "Bearbeiten";
|
||||
$lang->execution->batchEdit = "Mehere bearbeiten";
|
||||
$lang->execution->batchEditAB = "Mehere bearbeiten";
|
||||
$lang->execution->manageMembers = 'Teams verwalten';
|
||||
$lang->execution->unlinkMember = 'Mitgliefer entfernen';
|
||||
$lang->execution->unlinkStory = 'Story entfernen';
|
||||
|
||||
@@ -13,10 +13,11 @@
|
||||
$lang->executionCommon = $lang->executionCommon;
|
||||
$lang->execution->common = 'Execution';
|
||||
$lang->execution->allExecutions = 'All ' . $lang->executionCommon . 's';
|
||||
$lang->execution->allExecutionAB = 'All Executions';
|
||||
$lang->execution->id = $lang->executionCommon . ' ID';
|
||||
$lang->execution->type = 'Type';
|
||||
$lang->execution->name = "{$lang->executionCommon} Name";
|
||||
$lang->execution->code = 'Code';
|
||||
$lang->execution->type = $lang->executionCommon . 'Type';
|
||||
$lang->execution->name = $lang->executionCommon . 'Name';
|
||||
$lang->execution->code = $lang->executionCommon . 'Code';
|
||||
$lang->execution->project = 'Project';
|
||||
$lang->execution->execName = 'Execution Name';
|
||||
$lang->execution->execCode = 'Execution Code';
|
||||
@@ -39,10 +40,10 @@ $lang->execution->workHour = ' Hours';
|
||||
$lang->execution->workHourUnit = 'H';
|
||||
$lang->execution->totalHours = 'Available Hours';
|
||||
$lang->execution->totalDays = 'Available Days';
|
||||
$lang->execution->status = 'Status';
|
||||
$lang->execution->status = $lang->executionCommon . 'Status';
|
||||
$lang->execution->execStatus = 'Status';
|
||||
$lang->execution->subStatus = 'Sub Status';
|
||||
$lang->execution->desc = 'Description';
|
||||
$lang->execution->desc = $lang->executionCommon . 'Description';
|
||||
$lang->execution->execDesc = 'Description';
|
||||
$lang->execution->owner = 'Owner';
|
||||
$lang->execution->PO = "{$lang->executionCommon} Owner";
|
||||
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Linked Plan';
|
||||
$lang->execution->unlinkStoryTasks = 'Unlink';
|
||||
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
|
||||
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
|
||||
$lang->execution->view = "{$lang->executionCommon} Detail";
|
||||
$lang->execution->startAction = "Start {$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "Activate {$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "Delay {$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "Suspend {$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "Close {$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "{$lang->executionCommon} Request";
|
||||
$lang->execution->teamAction = "{$lang->executionCommon} Members";
|
||||
$lang->execution->kanbanAction = "{$lang->executionCommon} Kanban";
|
||||
$lang->execution->view = "Execution Detail";
|
||||
$lang->execution->startAction = "Start Execution";
|
||||
$lang->execution->activateAction = "Activate Execution";
|
||||
$lang->execution->delayAction = "Delay Execution";
|
||||
$lang->execution->suspendAction = "Suspend Execution";
|
||||
$lang->execution->closeAction = "Close Execution";
|
||||
$lang->execution->testtaskAction = "Execution Request";
|
||||
$lang->execution->teamAction = "Execution Members"
|
||||
$lang->execution->kanbanAction = "Execution Kanban";
|
||||
$lang->execution->printKanbanAction = "Print Kanban";
|
||||
$lang->execution->treeAction = "{$lang->executionCommon} Tree View";
|
||||
$lang->execution->exportAction = "Export {$lang->executionCommon}";
|
||||
$lang->execution->treeAction = "Execution Tree View";
|
||||
$lang->execution->exportAction = "Export Execution";
|
||||
$lang->execution->computeBurnAction = "Update Burndown";
|
||||
$lang->execution->create = "Create {$lang->executionCommon}";
|
||||
$lang->execution->createExec = "Create Execution";
|
||||
$lang->execution->copyExec = "Copy Execution";
|
||||
$lang->execution->copy = "Copy {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Delete {$lang->executionCommon}";
|
||||
$lang->execution->deleteAB = "Delete Execution";
|
||||
$lang->execution->browse = "{$lang->executionCommon} List";
|
||||
$lang->execution->list = "{$lang->executionCommon} List";
|
||||
$lang->execution->edit = "Edit {$lang->executionCommon}";
|
||||
$lang->execution->editAB = "Edit Execution";
|
||||
$lang->execution->batchEdit = "Edit";
|
||||
$lang->execution->batchEditAB = "Batch Edit";
|
||||
$lang->execution->manageMembers = 'Manage Team';
|
||||
$lang->execution->unlinkMember = 'Remove Member';
|
||||
$lang->execution->unlinkStory = 'Unlink Story';
|
||||
|
||||
@@ -13,10 +13,11 @@
|
||||
$lang->executionCommon = $lang->executionCommon;
|
||||
$lang->execution->common = $lang->executionCommon;
|
||||
$lang->execution->allExecutions = 'Tous les ' . $lang->executionCommon . 's';
|
||||
$lang->execution->allExecutionAB = 'All Executions';
|
||||
$lang->execution->id = $lang->executionCommon . ' ID';
|
||||
$lang->execution->type = 'Type';
|
||||
$lang->execution->name = "Nom du {$lang->executionCommon}";
|
||||
$lang->execution->code = 'Code';
|
||||
$lang->execution->type = $lang->executionCommon . 'Type';
|
||||
$lang->execution->name = $lang->executionCommon . 'Name';
|
||||
$lang->execution->code = $lang->executionCommon . 'Code';
|
||||
$lang->execution->project = 'Project';
|
||||
$lang->execution->execName = 'Execution Name';
|
||||
$lang->execution->execCode = 'Execution Code';
|
||||
@@ -39,10 +40,10 @@ $lang->execution->workHour = ' Heures';
|
||||
$lang->execution->workHourUnit = 'H';
|
||||
$lang->execution->totalHours = 'Budget (Heure)';
|
||||
$lang->execution->totalDays = 'Budget (Jour)';
|
||||
$lang->execution->status = 'Statut';
|
||||
$lang->execution->status = $lang->executionCommon . 'Status';
|
||||
$lang->execution->execStatus = 'Status';
|
||||
$lang->execution->subStatus = 'Sub Status';
|
||||
$lang->execution->desc = 'Description';
|
||||
$lang->execution->desc = $lang->executionCommon . 'Description';
|
||||
$lang->execution->execDesc = 'Description';
|
||||
$lang->execution->owner = 'Propriétaire';
|
||||
$lang->execution->PO = "Propriétaire {$lang->executionCommon}";
|
||||
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Plans liés';
|
||||
$lang->execution->unlinkStoryTasks = 'Dissocier';
|
||||
$lang->execution->linkedProducts = "{$lang->productCommon}s liés à ce {$lang->executionCommon}";
|
||||
$lang->execution->unlinkedProducts = "{$lang->productCommon}s dissociés de ce {$lang->executionCommon}";
|
||||
$lang->execution->view = "Détail du {$lang->executionCommon}";
|
||||
$lang->execution->startAction = "Commencer le {$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "Activer le {$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "Ajourner le {$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "Suspendre le {$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "Fermer le {$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "Recettes du {$lang->executionCommon}";
|
||||
$lang->execution->teamAction = "Membres du {$lang->executionCommon}";
|
||||
$lang->execution->kanbanAction = "Kaban {$lang->executionCommon}";
|
||||
$lang->execution->view = "Détail du Execution";
|
||||
$lang->execution->startAction = "Commencer le "
|
||||
$lang->execution->activateAction = "Activer le Execution";
|
||||
$lang->execution->delayAction = "Ajourner le Execution";
|
||||
$lang->execution->suspendAction = "Suspendre le Execution";
|
||||
$lang->execution->closeAction = "Fermer le Execution";
|
||||
$lang->execution->testtaskAction = "Recettes du Execution";
|
||||
$lang->execution->teamAction = "Membres du Execution";
|
||||
$lang->execution->kanbanAction = "Kaban Execution";
|
||||
$lang->execution->printKanbanAction = "Imprimer le Kanban";
|
||||
$lang->execution->treeAction = "Arborescence {$lang->executionCommon}";
|
||||
$lang->execution->exportAction = "Exporter {$lang->executionCommon}";
|
||||
$lang->execution->treeAction = "Arborescence Execution";
|
||||
$lang->execution->exportAction = "Exporter Execution";
|
||||
$lang->execution->computeBurnAction = "Calculer Atterrissage";
|
||||
$lang->execution->create = "Créer {$lang->executionCommon}";
|
||||
$lang->execution->createExec = "Create Execution";
|
||||
$lang->execution->copyExec = "Copy Execution";
|
||||
$lang->execution->copy = "Copier {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Supprimer {$lang->executionCommon}";
|
||||
$lang->execution->deleteAB = "Delete Execution";
|
||||
$lang->execution->browse = "Liste du {$lang->executionCommon}";
|
||||
$lang->execution->list = "{$lang->executionCommon} List";
|
||||
$lang->execution->edit = "Editer {$lang->executionCommon}";
|
||||
$lang->execution->editAB = "Edit Execution";
|
||||
$lang->execution->batchEdit = "Edition par lot";
|
||||
$lang->execution->batchEditAB = "Batch Edit";
|
||||
$lang->execution->manageMembers = 'Organiser Equipe';
|
||||
$lang->execution->unlinkMember = 'Retirer le membre';
|
||||
$lang->execution->unlinkStory = 'Dissocier Story';
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
$lang->executionCommon = $lang->executionCommon;
|
||||
$lang->execution->common = $lang->executionCommon;
|
||||
$lang->execution->allExecutions = 'Tất cả ' . $lang->executionCommon;
|
||||
$lang->execution->allExecutionAB = 'All Executions';
|
||||
$lang->execution->id = 'ID '.$lang->executionCommon;
|
||||
$lang->execution->type = 'Loại';
|
||||
$lang->execution->name = "Tên {$lang->executionCommon}";
|
||||
@@ -39,10 +40,10 @@ $lang->execution->workHour = 'giờ';
|
||||
$lang->execution->workHourUnit = 'H';
|
||||
$lang->execution->totalHours = 'Giờ khả dụng';
|
||||
$lang->execution->totalDays = 'Ngày khả dụng';
|
||||
$lang->execution->status = 'Tình trạng';
|
||||
$lang->execution->status = $lang->executionCommon . 'Status';
|
||||
$lang->execution->execStatus = 'Status';
|
||||
$lang->execution->subStatus = 'Tình trạng con';
|
||||
$lang->execution->desc = 'Mô tả';
|
||||
$lang->execution->desc = $lang->executionCommon . 'Description';
|
||||
$lang->execution->execDesc = 'Description';
|
||||
$lang->execution->owner = 'Sở hữu';
|
||||
$lang->execution->PO = "Sở hữu {$lang->executionCommon}";
|
||||
@@ -156,10 +157,10 @@ $lang->execution->groupTask = 'Xem kiểu nhóm';
|
||||
$lang->execution->story = 'Danh sách câu chuyện';
|
||||
$lang->execution->qa = 'QA';
|
||||
$lang->execution->bug = 'Danh sách Bug';
|
||||
$lang->execution->testcase = 'Testcase List';
|
||||
$lang->execution->dynamic = 'Lịch sử';
|
||||
$lang->execution->latestDynamic = 'Lịch sử';
|
||||
$lang->execution->build = 'Danh sách bản dựng';
|
||||
$lang->execution->testtask = 'Kiểm thử';
|
||||
$lang->execution->testtask = 'Request';
|
||||
$lang->execution->burn = 'Burndown';
|
||||
$lang->execution->computeBurn = 'Cập nhật';
|
||||
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = 'Kế hoạch liên kết';
|
||||
$lang->execution->unlinkStoryTasks = 'Hủy liên kết';
|
||||
$lang->execution->linkedProducts = "{$lang->productCommon} liên kết";
|
||||
$lang->execution->unlinkedProducts = "{$lang->productCommon} đã hủy liên kết";
|
||||
$lang->execution->view = "Chi tiết {$lang->executionCommon}";
|
||||
$lang->execution->startAction = "Bắt đầu {$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "Kích hoạt {$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "Tạm ngưng {$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "Đình chỉ {$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "Đóng {$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "Yêu cầu {$lang->executionCommon}";
|
||||
$lang->execution->teamAction = "Thành viên {$lang->executionCommon}";
|
||||
$lang->execution->kanbanAction = "Kanban {$lang->executionCommon}";
|
||||
$lang->execution->view = "Chi tiết Execution";
|
||||
$lang->execution->startAction = "Bắt đầu Execution";
|
||||
$lang->execution->activateAction = "Kích hoạt Execution";
|
||||
$lang->execution->delayAction = "Tạm ngưng Execution";
|
||||
$lang->execution->suspendAction = "Đình chỉ Execution";
|
||||
$lang->execution->closeAction = "Đóng Execution";
|
||||
$lang->execution->testtaskAction = "Yêu cầu Execution";
|
||||
$lang->execution->teamAction = "Thành viên Execution";
|
||||
$lang->execution->kanbanAction = "Kanban Execution";
|
||||
$lang->execution->printKanbanAction = "In Kanban";
|
||||
$lang->execution->treeAction = "Xem cây {$lang->executionCommon}";
|
||||
$lang->execution->exportAction = "Xuất {$lang->executionCommon}";
|
||||
$lang->execution->treeAction = "Xem cây Execution";
|
||||
$lang->execution->exportAction = "Xuất Execution";
|
||||
$lang->execution->computeBurnAction = "Tính Burndown";
|
||||
$lang->execution->create = "Tạo {$lang->executionCommon}";
|
||||
$lang->execution->copy = "Sao chép {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Xóa {$lang->executionCommon}";
|
||||
$lang->execution->copy = "Sao chép Execution";
|
||||
$lang->execution->delete = "Xóa Execution";
|
||||
$lang->execution->copy = "Copy {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Delete {$lang->executionCommon}";
|
||||
$lang->execution->deleteAB = "Delete Execution";
|
||||
$lang->execution->browse = "{$lang->executionCommon} List";
|
||||
$lang->execution->list = "{$lang->executionCommon} List";
|
||||
$lang->execution->edit = "Sửa {$lang->executionCommon}";
|
||||
$lang->execution->editAB = "Edit Execution";
|
||||
$lang->execution->batchEdit = "Sửa hàng loạt";
|
||||
$lang->execution->batchEditAB = "Batch Edit";
|
||||
$lang->execution->manageMembers = 'Quản lý đội nhóm';
|
||||
$lang->execution->unlinkMember = 'Gỡ bỏ thành viên';
|
||||
$lang->execution->unlinkStory = 'Hủy liên kết câu chuyện';
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
$lang->executionCommon = $lang->executionCommon;
|
||||
$lang->execution->common = '执行';
|
||||
$lang->execution->allExecutions = '所有' . $lang->executionCommon;
|
||||
$lang->execution->allExecutionAB = '所有执行';
|
||||
$lang->execution->id = $lang->executionCommon . '编号';
|
||||
$lang->execution->type = $lang->executionCommon . '类型';
|
||||
$lang->execution->name = $lang->executionCommon . '名称';
|
||||
@@ -150,7 +151,7 @@ $lang->execution->burnByList['estimate'] = "按计划工时查看";
|
||||
$lang->execution->burnByList['storyPoint'] = '按故事点查看';
|
||||
|
||||
/* 方法列表。*/
|
||||
$lang->execution->index = "{$lang->executionCommon}主页";
|
||||
$lang->execution->index = "执行主页";
|
||||
$lang->execution->task = '任务列表';
|
||||
$lang->execution->groupTask = '分组浏览任务';
|
||||
$lang->execution->story = "{$lang->SRCommon}列表";
|
||||
@@ -175,28 +176,31 @@ $lang->execution->linkPlan = "关联计划";
|
||||
$lang->execution->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
|
||||
$lang->execution->linkedProducts = '已关联';
|
||||
$lang->execution->unlinkedProducts = '未关联';
|
||||
$lang->execution->view = "{$lang->executionCommon}概况";
|
||||
$lang->execution->startAction = "开始{$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "激活{$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "延期{$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "挂起{$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "关闭{$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "{$lang->executionCommon}测试单";
|
||||
$lang->execution->teamAction = "{$lang->executionCommon}团队";
|
||||
$lang->execution->kanbanAction = "{$lang->executionCommon}看板";
|
||||
$lang->execution->view = "执行概况";
|
||||
$lang->execution->startAction = "开始执行";
|
||||
$lang->execution->activateAction = "激活执行";
|
||||
$lang->execution->delayAction = "延期执行";
|
||||
$lang->execution->suspendAction = "挂起执行";
|
||||
$lang->execution->closeAction = "关闭执行";
|
||||
$lang->execution->testtaskAction = "执行测试单";
|
||||
$lang->execution->teamAction = "执行团队";
|
||||
$lang->execution->kanbanAction = "执行看板";
|
||||
$lang->execution->printKanbanAction = "打印看板";
|
||||
$lang->execution->treeAction = "{$lang->executionCommon}树状图";
|
||||
$lang->execution->exportAction = "导出{$lang->executionCommon}";
|
||||
$lang->execution->treeAction = "执行树状图";
|
||||
$lang->execution->exportAction = "导出执行";
|
||||
$lang->execution->computeBurnAction = "计算燃尽图";
|
||||
$lang->execution->create = "添加{$lang->executionCommon}";
|
||||
$lang->execution->createExec = "添加执行";
|
||||
$lang->execution->copyExec = "复制执行";
|
||||
$lang->execution->copy = "复制{$lang->executionCommon}";
|
||||
$lang->execution->delete = "删除{$lang->executionCommon}";
|
||||
$lang->execution->browse = "浏览{$lang->executionCommon}";
|
||||
$lang->execution->deleteAB = "删除执行";
|
||||
$lang->execution->browse = "浏览执行";
|
||||
$lang->execution->list = "{$lang->executionCommon}列表";
|
||||
$lang->execution->edit = "编辑{$lang->executionCommon}";
|
||||
$lang->execution->editAB = "编辑执行";
|
||||
$lang->execution->batchEdit = "编辑";
|
||||
$lang->execution->batchEditAB = "批量编辑";
|
||||
$lang->execution->manageMembers = '团队管理';
|
||||
$lang->execution->unlinkMember = '移除成员';
|
||||
$lang->execution->unlinkStory = "移除{$lang->SRCommon}";
|
||||
|
||||
@@ -3483,58 +3483,6 @@ class executionModel extends model
|
||||
if(!empty($products)) $this->user->updateUserView(array_keys($products), 'product', $users);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recent executions.
|
||||
*
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getRecentExecutions()
|
||||
{
|
||||
$isView = (empty($this->app->user->view->sprints) || empty($this->app->user->view->projects)) ? false : true;
|
||||
if(!$this->app->user->admin && $isView === false) return array();
|
||||
|
||||
$executions = $this->dao->select('t1.id,t1.project,t1.code,t1.name,t1.type')->from(TABLE_EXECUTION)->alias('t1')
|
||||
->leftJoin(TABLE_TEAM)->alias('t2')->on('t1.id=t2.root')
|
||||
->where('t1.type')->in('stage,sprint')
|
||||
->andWhere('t2.account')->eq($this->app->user->account)
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->sprints)->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t1.project')->in($this->app->user->view->projects)->fi()
|
||||
->andWhere('t1.status')->ne('closed')
|
||||
->andWhere('t1.deleted')->eq('0')
|
||||
->orderBy('project_desc, id_desc')
|
||||
->fetchAll();
|
||||
|
||||
/* Get the project or product to which the execution belongs. */
|
||||
$projectIdList = array();
|
||||
$stageIdList = array();
|
||||
foreach($executions as $execution)
|
||||
{
|
||||
if($execution->type == 'stage') $stageIdList[$execution->id] = $execution->id;
|
||||
$projectIdList[$execution->project] = $execution->project;
|
||||
}
|
||||
$projectPairs = $this->loadModel('project')->getPairsByIdList($projectIdList);
|
||||
$productPairs = $this->getStageLinkProductPairs($stageIdList);
|
||||
|
||||
$recentExecutions = isset($this->config->execution->recentExecutions) ? explode(',', $this->config->execution->recentExecutions) : array();
|
||||
$allExecution = array('recent' => array(), 'involved' => array());
|
||||
foreach($executions as $execution)
|
||||
{
|
||||
if($execution->type == 'stage') $execution->name = zget($projectPairs, $execution->project) . '/' . zget($productPairs, $execution->id) . '/' . $execution->name;
|
||||
if($execution->type == 'sprint') $execution->name = zget($projectPairs, $execution->project) . '/' . $execution->name;
|
||||
if(in_array($execution->id, $recentExecutions))
|
||||
{
|
||||
$index = array_search($execution->id, $recentExecutions);
|
||||
$allExecution['recent'][$index] = $execution;
|
||||
continue;
|
||||
}
|
||||
$allExecution['involved'][] = $execution;
|
||||
}
|
||||
|
||||
ksort($allExecution['recent']);
|
||||
return $allExecution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the products associated with the stage.
|
||||
*
|
||||
|
||||
@@ -209,6 +209,10 @@ if($config->systemMode == 'new')
|
||||
$lang->resource->project->view = 'view';
|
||||
$lang->resource->project->dynamic = 'dynamic';
|
||||
$lang->resource->project->build = 'build';
|
||||
$lang->resource->project->qa = 'qa';
|
||||
$lang->resource->project->bug = 'bug';
|
||||
$lang->resource->project->testcase = 'testcase';
|
||||
$lang->resource->project->testtask = 'testtask';
|
||||
|
||||
$lang->project->methodOrder[0] = 'index';
|
||||
$lang->project->methodOrder[5] = 'browse';
|
||||
@@ -238,6 +242,10 @@ if($config->systemMode == 'new')
|
||||
$lang->project->methodOrder[125] = 'view';
|
||||
$lang->project->methodOrder[130] = 'dynamic';
|
||||
$lang->project->methodOrder[135] = 'build';
|
||||
$lang->project->methodOrder[140] = 'qa';
|
||||
$lang->project->methodOrder[145] = 'bug';
|
||||
$lang->project->methodOrder[150] = 'testcase';
|
||||
$lang->project->methodOrder[155] = 'testtask';
|
||||
|
||||
/* Personnel . */
|
||||
$lang->resource->personnel = new stdclass();
|
||||
@@ -509,18 +517,18 @@ $lang->release->methodOrder[70] = 'changeStatus';
|
||||
|
||||
/* Execution. */
|
||||
$lang->resource->execution = new stdclass();
|
||||
$lang->resource->execution->index = 'index';
|
||||
//$lang->resource->execution->index = 'index';
|
||||
$lang->resource->execution->view = 'view';
|
||||
$lang->resource->execution->browse = 'browse';
|
||||
$lang->resource->execution->create = 'create';
|
||||
$lang->resource->execution->edit = 'edit';
|
||||
$lang->resource->execution->batchedit = 'batchEdit';
|
||||
$lang->resource->execution->edit = 'editAB';
|
||||
$lang->resource->execution->batchedit = 'batchEditAB';
|
||||
$lang->resource->execution->start = 'startAction';
|
||||
$lang->resource->execution->activate = 'activateAction';
|
||||
$lang->resource->execution->putoff = 'delayAction';
|
||||
$lang->resource->execution->suspend = 'suspendAction';
|
||||
$lang->resource->execution->close = 'closeAction';
|
||||
$lang->resource->execution->delete = 'delete';
|
||||
$lang->resource->execution->delete = 'deleteAB';
|
||||
$lang->resource->execution->task = 'task';
|
||||
$lang->resource->execution->grouptask = 'groupTask';
|
||||
$lang->resource->execution->importtask = 'importTask';
|
||||
@@ -553,10 +561,10 @@ $lang->resource->execution->printKanban = 'printKanbanAction';
|
||||
$lang->resource->execution->tree = 'treeAction';
|
||||
$lang->resource->execution->treeTask = 'treeOnlyTask';
|
||||
$lang->resource->execution->treeStory = 'treeOnlyStory';
|
||||
$lang->resource->execution->all = 'allExecutions';
|
||||
//$lang->resource->execution->all = 'allExecutionAB';
|
||||
$lang->resource->execution->kanbanHideCols = 'kanbanHideCols';
|
||||
$lang->resource->execution->kanbanColsColor = 'kanbanColsColor';
|
||||
$lang->resource->execution->export = 'exportAction';
|
||||
//$lang->resource->execution->export = 'exportAction';
|
||||
$lang->resource->execution->storyKanban = 'storyKanban';
|
||||
$lang->resource->execution->storySort = 'storySort';
|
||||
$lang->resource->execution->whitelist = 'whitelist';
|
||||
@@ -564,7 +572,7 @@ $lang->resource->execution->addWhitelist = 'addWhitelist';
|
||||
$lang->resource->execution->unbindWhitelist = 'unbindWhitelist';
|
||||
//if($config->systemMode == 'classic') $lang->resource->project->list = 'list';
|
||||
|
||||
$lang->execution->methodOrder[0] = 'index';
|
||||
//$lang->execution->methodOrder[0] = 'index';
|
||||
//if($config->systemMode == 'classic') $lang->project->methodOrder[1] = 'list';
|
||||
$lang->execution->methodOrder[5] = 'view';
|
||||
$lang->execution->methodOrder[10] = 'browse';
|
||||
@@ -610,8 +618,8 @@ $lang->execution->methodOrder[205] = 'kanbanColsColor';
|
||||
$lang->execution->methodOrder[210] = 'tree';
|
||||
$lang->execution->methodOrder[215] = 'treeTask';
|
||||
$lang->execution->methodOrder[220] = 'treeStory';
|
||||
$lang->execution->methodOrder[225] = 'all';
|
||||
$lang->execution->methodOrder[230] = 'export';
|
||||
//$lang->execution->methodOrder[225] = 'all';
|
||||
//$lang->execution->methodOrder[230] = 'export';
|
||||
$lang->execution->methodOrder[235] = 'storyKanban';
|
||||
$lang->execution->methodOrder[240] = 'storySort';
|
||||
$lang->execution->methodOrder[245] = 'whitelist';
|
||||
@@ -1213,14 +1221,14 @@ $lang->tree->methodOrder[30] = 'delete';
|
||||
/* Report. */
|
||||
$lang->resource->report = new stdclass();
|
||||
$lang->resource->report->index = 'index';
|
||||
$lang->resource->report->executionDeviation = 'executionDeviation';
|
||||
$lang->resource->report->projectDeviation = 'projectDeviation';
|
||||
$lang->resource->report->productSummary = 'productSummary';
|
||||
$lang->resource->report->bugCreate = 'bugCreate';
|
||||
$lang->resource->report->bugAssign = 'bugAssign';
|
||||
$lang->resource->report->workload = 'workload';
|
||||
|
||||
$lang->report->methodOrder[0] = 'index';
|
||||
$lang->report->methodOrder[5] = 'executionDeviation';
|
||||
$lang->report->methodOrder[5] = 'projectDeviation';
|
||||
$lang->report->methodOrder[10] = 'productSummary';
|
||||
$lang->report->methodOrder[15] = 'bugCreate';
|
||||
$lang->report->methodOrder[20] = 'workload';
|
||||
|
||||
+13
-20
@@ -43,11 +43,12 @@ body.menu-hide {padding-left: 0;}
|
||||
#appsBar {position: fixed; left: 96px; bottom: 0; right: 0; height: 40px; z-index: 1012; background: #fff; border-top: 1px solid #eff1f7;}
|
||||
.menu-hide #appsBar {left: 40px;}
|
||||
#bars {position: absolute; left: 0; top: 0; bottom: 0; padding: 0 5px;}
|
||||
#bars > li {padding: 8px 5px;}
|
||||
#bars > li > a {height: 24px; color: #fff; background: #3c4353; padding: 2px 8px; line-height: 20px; border-radius: 2px;}
|
||||
#bars > li > a:hover, #bars > li > a:active, #bars > li > a:focus {background: #3c495c;}
|
||||
#bars > li.active > a, #bars > li.active > a:active, #bars > li.active > a:focus {background: #0c64eb;}
|
||||
#bars > li.active:after {content: ' '; display: block; position: absolute; background: #a0cafa; height: 3px; left: 5px; right: 5px; bottom: 0; border-radius: 2px;}
|
||||
#bars > li {padding: 8px 2px;}
|
||||
#bars > li > a {height: 24px; color: #000; padding: 2px 8px; line-height: 20px; border-radius: 2px;}
|
||||
#bars > li > a:hover, #bars > li > a:active, #bars > li > a:focus {background: #16a8f8;}
|
||||
#bars > li.active > a, #bars > li.active > a:active, #bars > li.active > a:focus {font-weight: 600; border-bottom: 2px solid #16a8f8;}
|
||||
#bars > li.active:after {content: ' '; display: block; position: absolute; height: 3px; left: 5px; right: 5px; bottom: 0; border-radius: 2px;}
|
||||
#bars > li.divider{margin-right: 5px; margin-top: 10px; height: 20px; border-right: 1px solid #d9d9d9;}
|
||||
|
||||
#userNav {float: none; margin: 0;}
|
||||
#userNav>li {text-align: center;}
|
||||
@@ -62,16 +63,12 @@ body.menu-hide {padding-left: 0;}
|
||||
#poweredBy {width: 40%; position: absolute; top: 4px; right: 0; padding: 0;}
|
||||
|
||||
#globalSearchDiv {width: 52%; float: right; margin-right: 4px;}
|
||||
@media screen and (max-height: 768px)
|
||||
{
|
||||
#globalSearchDiv {width: 62%;}
|
||||
}
|
||||
#globalSearchDiv .input-group {width: 82%; float: right; margin-top: 2px;}
|
||||
@media screen and (max-height: 768px)
|
||||
{
|
||||
#globalSearchDiv .input-group {width: 100%;}
|
||||
}
|
||||
#globalSearchInput {height: 28px; padding-left: 10px;}
|
||||
#globalSearchDiv .input-group {width: 194px; float: right; margin-top: 2px;}
|
||||
#searchbox .dropdown-menu.show-quick-go.with-active {min-width: 270px;}
|
||||
#searchbox .dropdown-menu.show-quick-go > li {padding: 0 5px;}
|
||||
#searchbox .dropdown-menu {min-width: 150px;}
|
||||
|
||||
#globalSearchInput {width: 150px; height: 28px; padding-left: 10px; border-right: 0px;}
|
||||
#globalSearchButton {height: 28px;}
|
||||
|
||||
#globalBarLogo {width: 100%; float: right;}
|
||||
@@ -83,7 +80,7 @@ body.menu-hide {padding-left: 0;}
|
||||
#searchbox a:hover {color: white;}
|
||||
#searchbox {width: 100%;}
|
||||
#searchbox .dropdown-menu {margin-top: 0px; left: 1px; position: absolute; top: -50px;}
|
||||
#searchbox .dropdown-menu > li > a {padding: 5px 8px;}
|
||||
#searchbox .dropdown-menu > li > a {padding: 5px 0px 5px 2px;}
|
||||
#searchbox .dropdown-menu > li {display: none;}
|
||||
#searchbox .dropdown-menu > li.search-type-all {width: 100%; display: block;}
|
||||
#searchbox .dropdown-menu > li:hover {position: relative;}
|
||||
@@ -106,8 +103,4 @@ body.menu-hide {padding-left: 0;}
|
||||
@media screen and (max-height: 768px)
|
||||
{
|
||||
#upgradeContent{width: 85%;}
|
||||
.version-name {width: 25%; text-overflow: ellipsis; white-space: nowrap;}
|
||||
.version-date {width: 20%; color: #8a8a8a;}
|
||||
.version-explain {width: 25%; color: #8a8a8a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
|
||||
.version-actions {width: 30%;}
|
||||
}
|
||||
|
||||
@@ -114,11 +114,11 @@
|
||||
{
|
||||
if(methodLowerCase === 'create' && (link.params.programID || link.params.$1)) return 'program';
|
||||
}
|
||||
if(moduleName === 'user')
|
||||
if(moduleName === 'user')
|
||||
{
|
||||
if(['todo', 'task', 'story', 'bug', 'testtask', 'testcase', 'execution', 'dynamic', 'profile', 'view'].includes(methodLowerCase)) return 'system';
|
||||
}
|
||||
if(moduleName === 'my')
|
||||
if(moduleName === 'my')
|
||||
{
|
||||
if(['team'].includes(methodLowerCase)) return 'system';
|
||||
}
|
||||
@@ -219,6 +219,9 @@
|
||||
.attr('data-app', appCode)
|
||||
.attr('class', 'show-in-app')
|
||||
.html(app.text);
|
||||
var barCount = $('#bars li').length;
|
||||
|
||||
if(barCount) $bar = $('<li class="divider"></li>').appendTo($bars);
|
||||
$bar = $('<li></li>').attr('data-app', appCode)
|
||||
.attr('id', 'appBar-' + appCode)
|
||||
.append($link)
|
||||
|
||||
@@ -36,9 +36,6 @@ js::set('defaultOpen', $open);
|
||||
<nav id='menuNav'>
|
||||
<ul class='nav nav-default' id='menuMainNav'>
|
||||
</ul>
|
||||
<ul class='nav nav-default'>
|
||||
<?php commonModel::printRecentMenu();?>
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="table-col col-right">
|
||||
<div id="moreExecution" class="more-execution-show" data-ride="searchList">
|
||||
|
||||
@@ -30,8 +30,8 @@ $lang->project->moduleSetting = 'List Settings';
|
||||
$lang->project->moduleOpen = 'Program Name';
|
||||
$lang->project->dynamic = 'Dynamic';
|
||||
$lang->project->qa = 'QA';
|
||||
$lang->project->bug = 'Bug';
|
||||
$lang->project->testcase = 'Case';
|
||||
$lang->project->bug = 'Bug List';
|
||||
$lang->project->testcase = 'Case List';
|
||||
$lang->project->testtask = 'Test Task';
|
||||
$lang->project->build = 'Build';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
|
||||
@@ -30,8 +30,8 @@ $lang->project->moduleSetting = 'List Settings';
|
||||
$lang->project->moduleOpen = 'Program Name';
|
||||
$lang->project->dynamic = 'Dynamic';
|
||||
$lang->project->qa = 'QA';
|
||||
$lang->project->bug = 'Bug';
|
||||
$lang->project->testcase = 'Case';
|
||||
$lang->project->bug = 'Bug List';
|
||||
$lang->project->testcase = 'Case List';
|
||||
$lang->project->testtask = 'Test Task';
|
||||
$lang->project->build = 'Build';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
|
||||
@@ -30,8 +30,8 @@ $lang->project->moduleSetting = 'List Settings';
|
||||
$lang->project->moduleOpen = 'Program Name';
|
||||
$lang->project->dynamic = 'Dynamic';
|
||||
$lang->project->qa = 'QA';
|
||||
$lang->project->bug = 'Bug';
|
||||
$lang->project->testcase = 'Case';
|
||||
$lang->project->bug = 'Bug List';
|
||||
$lang->project->testcase = 'Case List';
|
||||
$lang->project->testtask = 'Test Task';
|
||||
$lang->project->build = 'Build';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
|
||||
@@ -30,8 +30,8 @@ $lang->project->moduleSetting = 'List Settings';
|
||||
$lang->project->moduleOpen = 'Program Name';
|
||||
$lang->project->dynamic = 'Dynamic';
|
||||
$lang->project->qa = 'QA';
|
||||
$lang->project->bug = 'Bug';
|
||||
$lang->project->testcase = 'Case';
|
||||
$lang->project->bug = 'Bug List';
|
||||
$lang->project->testcase = 'Case List';
|
||||
$lang->project->testtask = 'Test Task';
|
||||
$lang->project->build = 'Build';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
|
||||
@@ -30,8 +30,8 @@ $lang->project->moduleSetting = '列表设置';
|
||||
$lang->project->moduleOpen = '显示项目集名';
|
||||
$lang->project->dynamic = '动态';
|
||||
$lang->project->qa = '测试仪表盘';
|
||||
$lang->project->bug = 'Bug';
|
||||
$lang->project->testcase = '用例';
|
||||
$lang->project->bug = 'Bug列表';
|
||||
$lang->project->testcase = '用例列表';
|
||||
$lang->project->testtask = '测试单';
|
||||
$lang->project->build = '版本';
|
||||
$lang->project->updateOrder = '排序';
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
<?php
|
||||
$config->qa->menuList = array('caselib', 'testreport', 'testsuite', 'testtask', 'testcase', 'bug', 'qa', 'automation');
|
||||
$config->qa->menuList = array('caselib', 'testreport', 'testsuite', 'testtask', 'testcase', 'bug', 'qa', 'automation');
|
||||
$config->qa->noDropMenuModule = array('qa', 'caselib', 'automation');
|
||||
|
||||
@@ -9,5 +9,4 @@
|
||||
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa->common = 'QS';
|
||||
$lang->qa->index = 'QS Home';
|
||||
|
||||
@@ -9,5 +9,4 @@
|
||||
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa->common = 'QA';
|
||||
$lang->qa->index = 'QA Home';
|
||||
|
||||
@@ -9,5 +9,4 @@
|
||||
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link https://www.zentao.pm
|
||||
*/
|
||||
$lang->qa->common = 'QA';
|
||||
$lang->qa->index = 'Accueil Qualité';
|
||||
|
||||
@@ -9,5 +9,4 @@
|
||||
* @version $Id: vi.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa->common = 'QA';
|
||||
$lang->qa->index = 'Trang QA';
|
||||
|
||||
@@ -9,5 +9,4 @@
|
||||
* @version $Id: zh-cn.php 4129 2013-01-18 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->qa->common = '测试视图';
|
||||
$lang->qa->index = '测试主页';
|
||||
|
||||
+2
-1
@@ -38,7 +38,8 @@ class qaModel extends model
|
||||
$productIndex .= $selectHtml;
|
||||
}
|
||||
|
||||
if($this->app->rawModule != 'qa') $this->lang->switcherMenu = $this->product->getSwitcher($productID, $extra, $branch);
|
||||
$this->lang->switcherMenu = "<div class='btn-group header-btn'>" . html::a(helper::createLink('qa', 'index'), "<i class='icon icon-test'></i> {$this->lang->qa->common}", '', "class='btn'") . '</div>';
|
||||
if(!in_array($this->app->rawModule, $this->config->qa->noDropMenuModule)) $this->lang->switcherMenu .= $this->product->getSwitcher($productID, $extra, $branch);
|
||||
common::setMenuVars('qa', $productID);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ class report extends control
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
/* Set report menu. */
|
||||
$this->report->setMenu();
|
||||
|
||||
/* Set report menu group. */
|
||||
$this->projectID = isset($_GET['project']) ? $_GET['project'] : 0;
|
||||
if(!$this->projectID) $this->lang->navGroup->report = 'report';
|
||||
|
||||
@@ -9,16 +9,15 @@
|
||||
* @version $Id: en.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->report->common = 'Berichte';
|
||||
$lang->report->index = 'Home';
|
||||
$lang->report->list = 'Liste';
|
||||
$lang->report->item = 'Eintrag';
|
||||
$lang->report->value = 'Wert';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'Undefiniert';
|
||||
$lang->report->query = 'Abfrage';
|
||||
$lang->report->annual = 'Annual Summary';
|
||||
$lang->report->project = 'Project';
|
||||
$lang->report->index = 'Home';
|
||||
$lang->report->list = 'Liste';
|
||||
$lang->report->item = 'Eintrag';
|
||||
$lang->report->value = 'Wert';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'Undefiniert';
|
||||
$lang->report->query = 'Abfrage';
|
||||
$lang->report->annual = 'Annual Summary';
|
||||
$lang->report->project = 'Project';
|
||||
|
||||
$lang->report->colors[] = 'AFD8F8';
|
||||
$lang->report->colors[] = 'F6BD0F';
|
||||
|
||||
@@ -9,16 +9,15 @@
|
||||
* @version $Id: en.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->report->common = 'Report';
|
||||
$lang->report->index = 'Report Home';
|
||||
$lang->report->list = 'Report';
|
||||
$lang->report->item = 'Item';
|
||||
$lang->report->value = 'Value';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'Undefined';
|
||||
$lang->report->query = 'Query';
|
||||
$lang->report->annual = 'Annual Summary';
|
||||
$lang->report->project = 'Project';
|
||||
$lang->report->index = 'Report Home';
|
||||
$lang->report->list = 'Report';
|
||||
$lang->report->item = 'Item';
|
||||
$lang->report->value = 'Value';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'Undefined';
|
||||
$lang->report->query = 'Query';
|
||||
$lang->report->annual = 'Annual Summary';
|
||||
$lang->report->project = 'Project';
|
||||
|
||||
$lang->report->colors[] = 'AFD8F8';
|
||||
$lang->report->colors[] = 'F6BD0F';
|
||||
|
||||
@@ -9,16 +9,15 @@
|
||||
* @version $Id: en.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link https://www.zentao.pm
|
||||
*/
|
||||
$lang->report->common = 'Rapports';
|
||||
$lang->report->index = 'Accueil Rapports';
|
||||
$lang->report->list = 'Rapports';
|
||||
$lang->report->item = 'Item';
|
||||
$lang->report->value = 'Valeur';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'N/D';
|
||||
$lang->report->query = 'Requête';
|
||||
$lang->report->annual = 'Résumé Annuel';
|
||||
$lang->report->project = 'Project';
|
||||
$lang->report->index = 'Accueil Rapports';
|
||||
$lang->report->list = 'Rapports';
|
||||
$lang->report->item = 'Item';
|
||||
$lang->report->value = 'Valeur';
|
||||
$lang->report->percent = '%';
|
||||
$lang->report->undefined = 'N/D';
|
||||
$lang->report->query = 'Requête';
|
||||
$lang->report->annual = 'Résumé Annuel';
|
||||
$lang->report->project = 'Project';
|
||||
|
||||
$lang->report->colors[] = 'AFD8F8';
|
||||
$lang->report->colors[] = 'F6BD0F';
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
* @version $Id: vi.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->report->common = 'Báo cáo';
|
||||
$lang->report->index = 'Trang báo cáo';
|
||||
$lang->report->list = 'Báo cáo';
|
||||
$lang->report->item = 'Hạng mục';
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
* @version $Id: zh-cn.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->report->common = '统计视图';
|
||||
$lang->report->index = '统计首页';
|
||||
$lang->report->list = '统计报表';
|
||||
$lang->report->item = '条目';
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
<?php
|
||||
class reportModel extends model
|
||||
{
|
||||
public function setMenu()
|
||||
{
|
||||
$this->lang->switcherMenu = "<div class='btn-group header-btn'>" . html::a(helper::createLink('report', 'productsummary'), "<i class='icon icon-statistic'></i> {$this->lang->report->common}", '', "class='btn'") . '</div>';
|
||||
}
|
||||
/**
|
||||
* Compute percent of every item.
|
||||
*
|
||||
|
||||
@@ -93,10 +93,10 @@ li.tree-item-story > .tree-actions .tree-action[data-type=delete] {display: none
|
||||
<?php if($viewType != 'line' && $viewType != 'trainskill' && $viewType != 'trainpost'):?>
|
||||
<td class="text-middle text-right with-padding">
|
||||
<?php
|
||||
echo "<span>" . html::a($this->createLink('tree', 'browse', "root=$rootID&viewType=$viewType¤tModuleID=0&branch=0&from=$from"), empty($root->name) ? '' : $root->name) . "<i class='icon icon-angle-right muted'></i></span>";
|
||||
echo "<span>" . html::a($this->createLink('tree', 'browse', "root=$rootID&viewType=$viewType¤tModuleID=0&branch=0&from=$from", '', ''), empty($root->name) ? '' : $root->name, '', "data-app='{$this->app->openApp}'") . "<i class='icon icon-angle-right muted'></i></span>";
|
||||
foreach($parentModules as $module)
|
||||
{
|
||||
echo "<span>" . html::a($this->createLink('tree', 'browse', "root=$rootID&viewType=$viewType¤tModuleID=$module->id&branch=0&from=$from"), $module->name) . " <i class='icon icon-angle-right muted'></i></span>";
|
||||
echo "<span>" . html::a($this->createLink('tree', 'browse', "root=$rootID&viewType=$viewType¤tModuleID=$module->id&branch=0&from=$from"), $module->name, '', "data-app='{$this->app->openApp}'") . " <i class='icon icon-angle-right muted'></i></span>";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
@@ -174,7 +174,7 @@ li.tree-item-story > .tree-actions .tree-action[data-type=delete] {display: none
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php js::set('openApp', $this->app->openApp);?>
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
@@ -194,7 +194,7 @@ $(function()
|
||||
},
|
||||
itemCreator: function($li, item)
|
||||
{
|
||||
var link = (item.id !== undefined && item.type != 'line') ? ('<a href="' + createLink('tree', 'browse', 'rootID=<?php echo $rootID ?>&viewType=<?php echo $viewType ?>&moduleID={0}&branch={1}&from=<?php echo $from;?>'.format(item.id, item.branch)) + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
||||
var link = (item.id !== undefined && item.type != 'line') ? ('<a href="' + createLink('tree', 'browse', 'rootID=<?php echo $rootID ?>&viewType=<?php echo $viewType ?>&moduleID={0}&branch={1}&from=<?php echo $from;?>'.format(item.id, item.branch)) + '" data-app="' + openApp + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
||||
var $toggle = $('<span class="module-name" data-id="' + item.id + '">' + link + '</span>');
|
||||
if(item.type === 'bug') $toggle.append(' <span class="text-muted">[B]</span>');
|
||||
if(item.type === 'case') $toggle.append(' <span class="text-muted">[C]</span>');
|
||||
@@ -290,6 +290,7 @@ $(function()
|
||||
|
||||
$('#subNavbar > ul > li > a[href*=tree][href*=browse]').not('[href*=<?php echo $viewType;?>]').parent().removeClass('active');
|
||||
if(window.config.viewType == 'line') $('#modulemenu > .nav > li > a[href*=product][href*=all]').parent('li[data-id=all]').addClass('active');
|
||||
if(viewType == 'case' || viewType == 'caselib') $('#subNavbar li[data-id="' + viewType +'"]').addClass('active');
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -16,8 +16,8 @@
|
||||
<glyph unicode="" glyph-name="ellipsis-v" d="M603.025 648.532c0-51.576-39.443-91.024-91.025-91.024-51.576 0-91.024 39.448-91.024 91.024s39.448 91.024 91.024 91.024c51.576 0.003 91.025-39.443 91.025-91.024zM603.025 284.444c0-51.576-39.443-91.024-91.024-91.024s-91.020 39.448-91.020 91.024c0 51.576 39.448 91.024 91.020 91.024s91.024-39.448 91.024-91.024zM603.025-79.644c0-51.576-39.443-91.024-91.024-91.024s-91.024 39.448-91.024 91.024 39.448 91.024 91.024 91.024c51.576 0 91.024-39.443 91.024-91.024z" />
|
||||
<glyph unicode="" glyph-name="first-page" d="M235.552 551.503h89.714v-534.113h-89.714v534.113zM788.448 79.98l-62.59-62.59-267.059 267.059 267.059 267.059 62.59-62.59-204.464-204.464z" />
|
||||
<glyph unicode="" glyph-name="last-page" d="M698.73 551.503h89.715v-534.115h-89.715v534.115zM235.552 488.909l62.591 62.591 267.059-267.059-267.059-267.059-62.591 62.591 204.465 204.465z" />
|
||||
<glyph unicode="" glyph-name="expand-alt" d="M729.208 299.956v-31.026c0-8.73-6.786-15.514-15.514-15.514h-170.668v-170.668c0-8.73-6.786-15.514-15.514-15.514h-31.026c-8.73 0-15.514 6.786-15.514 15.514v170.668h-170.668c-8.73 0-15.514 6.786-15.514 15.514v31.026c0 8.73 6.786 15.514 15.514 15.514h170.668v170.668c0 8.73 6.786 15.514 15.514 15.514h31.026c8.73 0 15.514-6.786 15.514-15.514v-170.668h170.668c8.73 0 15.514-6.786 15.514-15.514zM791.271 82.748v403.391c0 42.666-34.911 77.574-77.574 77.574h-403.391c-42.666 0-77.574-34.911-77.574-77.574v-403.391c0-42.666 34.911-77.574 77.574-77.574h403.391c42.666 0 77.574 34.911 77.574 77.574zM853.335 486.139v-403.391c0-77.094-62.545-139.638-139.638-139.638h-403.391c-77.094 0-139.638 62.545-139.638 139.638v403.391c0 77.094 62.545 139.638 139.638 139.638h403.391c77.094 0 139.638-62.545 139.638-139.638z" />
|
||||
<glyph unicode="" glyph-name="collapse-alt" d="M729.201 299.963v-31.024c0-8.729-6.788-15.519-15.519-15.519h-403.385c-8.729 0-15.519 6.788-15.519 15.519v31.024c0 8.729 6.788 15.519 15.519 15.519h403.385c8.729 0 15.519-6.788 15.519-15.519zM791.265 82.748v403.385c0 42.664-34.912 77.574-77.574 77.574h-403.385c-42.664 0-77.574-34.912-77.574-77.574v-403.385c0-42.664 34.912-77.574 77.574-77.574h403.385c42.664 0 77.574 34.912 77.574 77.574zM853.329 486.14v-403.385c0-77.089-62.55-139.637-139.637-139.637h-403.385c-77.089 0-139.637 62.55-139.637 139.637v403.385c0 77.089 62.55 139.637 139.637 139.637h403.385c77.089 0 139.637-62.55 139.637-139.637z" />
|
||||
<glyph unicode="" glyph-name="expand-alt" d="M850.488 682.666v0c32.991 0 59.732-26.744 59.732-59.732v-676.977c0-32.991-26.744-59.732-59.732-59.732h-676.977c-32.991 0-59.732 26.744-59.732 59.732 0 0 0 0 0 0v676.977c0 32.991 26.744 59.732 59.732 59.732h676.977zM850.488 622.932h-676.977v-676.977h676.977v676.977zM512 513.42v0c15.383 0 28.25-11.686 29.729-26.999l0.139-2.866v-169.244h169.244c15.383-0.001 28.25-11.686 29.729-26.999l0.139-2.866v0.002c0-15.383-11.684-28.25-26.999-29.729l-2.868-0.139h-169.244v-169.244c-0.007-16.496-13.387-29.86-29.883-29.854-15.374 0.007-28.23 11.683-29.714 26.985l-0.139 2.866v169.244h-169.244c-15.383 0.001-28.25 11.686-29.729 26.999l-0.139 2.866v-0.002c0 15.383 11.684 28.25 26.999 29.729l2.868 0.139h169.244v169.244c0 16.496 13.372 29.868 29.868 29.868v0z" />
|
||||
<glyph unicode="" glyph-name="collapse-alt" d="M850.488 682.666v0c32.991 0 59.732-26.744 59.732-59.732v-676.977c0-32.991-26.744-59.732-59.732-59.732h-676.977c-32.991 0-59.732 26.744-59.732 59.732 0 0 0 0 0 0v676.977c0 32.991 26.744 59.732 59.732 59.732h676.977zM850.488 622.932h-676.977v-676.977h676.977v676.977zM541.867 314.312h169.244c15.383-0.001 28.25-11.686 29.729-26.999l0.139-2.866c0-15.381-11.684-28.248-26.999-29.729l-2.868-0.139h-398.222c-15.383 0.001-28.25 11.686-29.729 26.999l-0.139 2.866c0 15.381 11.684 28.248 26.999 29.729l2.868 0.139h228.976z" />
|
||||
<glyph unicode="" glyph-name="more" horiz-adv-x="2269" d="M584.076 11.354h-73.155v423.937l-173.013-419.364h-91.81l-172.976 419.364v-423.937h-73.155v549.070h100.662l191.375-463.88 191.375 463.88h100.698zM1880.394 337.848h352.244v-73.155h-352.244v73.155zM934.053 486.829c110.94 0 201.179-90.238 201.179-201.179s-90.238-201.179-201.179-201.179-201.179 90.238-201.179 201.179 90.238 201.179 201.179 201.179zM934.053 559.985c-151.505 0-274.334-122.828-274.334-274.334s122.828-274.334 274.334-274.334 274.334 122.828 274.334 274.334c0 151.505-122.828 274.334-274.334 274.334v0zM1281.066 557.132h73.155v-548.667h-73.155v548.667zM1317.644 557.132h262.335v-73.155h-262.335v73.155zM1317.644 301.088h262.335v-73.155h-262.335v73.155zM1577.31 557.132v-73.155c50.404 0 91.445-41.040 91.445-91.445s-41.040-91.445-91.445-91.445v-73.155c90.896 0 164.6 73.704 164.6 164.6s-73.704 164.6-164.6 164.6zM1765.102 11.318l-239.036 272.321-54.977-48.282 196.679-224.039zM2269.033 11.318h-441.055v545.814h441.055v-73.155h-367.9v-399.502h367.9z" />
|
||||
<glyph unicode="" glyph-name="bell" d="M697.982 61.265v280.069c0 115.965-70.017 210.052-185.982 210.052s-185.982-94.087-185.982-210.052v-280.069h371.965zM792.069 109.401l94.087-94.087v-45.947h-748.306v45.947l94.087 94.087v231.929c0 144.411 76.581 262.563 210.052 295.384v32.822c0 39.385 30.632 70.017 70.017 70.017s70.017-30.632 70.017-70.017v-32.822c133.472-32.822 210.052-153.162 210.052-295.384v-231.929zM512-170.668c-50.325 0-94.087 41.572-94.087 91.896h188.17c0-50.325-43.762-91.896-94.087-91.896z" />
|
||||
<glyph unicode="" glyph-name="circle" d="M512-80.926c200.847 0 365.37 164.523 365.37 365.37s-164.523 365.37-365.37 365.37-365.37-164.523-365.37-365.37 164.523-365.37 365.37-365.37zM512 739.556c252.127 0 455.112-202.984 455.112-455.112s-202.984-455.112-455.112-455.112-455.112 202.984-455.112 455.112 202.984 455.112 455.112 455.112z" />
|
||||
|
||||
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 189 KiB |
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user