diff --git a/module/bug/control.php b/module/bug/control.php index 93fb5e71fb..1cd4977818 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -91,7 +91,7 @@ class bug extends control $queryID = ($browseType == 'bysearch') ? (int)$param : 0; /* Set menu and save session. */ - $this->bug->setMenu($this->products, $productID, $branch, $moduleID); + $this->bug->setMenu($this->products, $productID, $branch, $moduleID, $browseType, $orderBy); $this->session->set('bugList', $this->app->getURI(true)); /* Process the order by field. */ diff --git a/module/bug/js/browse.js b/module/bug/js/browse.js index 157727287f..042da561a1 100644 --- a/module/bug/js/browse.js +++ b/module/bug/js/browse.js @@ -4,9 +4,6 @@ $(function() if(flow == 'onlyTest') { - toggleSearch(); - $(".export").modalTrigger({width:650, type:'iframe'}); - $('#subNavbar > .nav > li').removeClass('active'); $('#subNavbar > .nav > li[data-id=' + browseType + ']').addClass('active'); diff --git a/module/bug/js/common.js b/module/bug/js/common.js index 6ee65a4f8d..0dfe01be23 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -1,5 +1,7 @@ $(function() { + $('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover'); + if(typeof page == 'undefined') page = ''; if(page == 'create') { @@ -20,6 +22,14 @@ $(function() oldProductID = $('#product').val(); $("#story, #task, #mailto").chosen(defaultChosenOptions); } + + if(flow != 'full') + { + $('.querybox-toggle').click(function() + { + $(this).parent().toggleClass('active'); + }); + } }); /** diff --git a/module/bug/model.php b/module/bug/model.php index 3d7ad1f2fb..17354c1295 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -15,22 +15,71 @@ class bugModel extends model { /** * Set menu. - * - * @param array $products - * @param int $productID + * + * @param array $products + * @param int $productID + * @param int $branch + * @param int $moduleID + * @param string $browseType + * @param string $orderBy * @access public * @return void */ - public function setMenu($products, $productID, $branch = 0, $moduleID = 0) + public function setMenu($products, $productID, $branch = 0, $moduleID = 0, $browseType = 'unclosed', $orderBy = '') { $this->loadModel('product')->setMenu($products, $productID, $branch, $moduleID, 'bug'); $selectHtml = $this->product->select($products, $productID, 'bug', 'browse', '', $branch, $moduleID, 'bug'); - $this->app->loadLang('qa'); - $productIndex = '
' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '
'; - $productIndex .= $selectHtml; + $pageNav = ''; + $pageActions = ''; + if($this->config->global->flow == 'full') + { + $this->app->loadLang('qa'); + $pageNav = '
' . html::a(helper::createLink('qa', 'index', 'locate=no'), $this->lang->qa->index, '', "class='btn'") . '
'; + } + else + { + if(common::hasPriv('bug', 'report')) + { + $link = helper::createLink('bug', 'report', "productID=$productID&browseType=$browseType&branchID=$branch&moduleID=$moduleID"); + $pageActions .= html::a($link, " " . $this->lang->bug->report->common . '', '', "class='btn btn-link'"); + } + if(common::hasPriv('bug', 'export')) + { + $link = helper::createLink('bug', 'export', "productID=$productID&orderBy=$orderBy"); + $pageActions .= "
"; + $pageActions .= ""; + $pageActions .= ''; + $pageActions .= "'; + $pageActions .= '
'; + } + if(common::hasPriv('bug', 'batchCreate')) + { + $link = helper::createLink('bug', 'batchCreate', "productID=$productID&branch=$branch&projectID=0&moduleID=$moduleID"); + $pageActions .= html::a($link, "" . $this->lang->bug->batchCreate, '', "class='btn btn-secondary'"); + } + if(commonModel::isTutorialMode()) + { + $wizardParams = helper::safe64Encode("productID=$productID&branch=$branch&extra=moduleID=$moduleID"); + $link = helper::createLink('tutorial', 'wizard', "module=bug&method=create¶ms=$wizardParams"); + $pageActions .= html::a($link, "" . $this->lang->bug->create, '', "class='btn btn-primary btn-bug-create'"); + } + else + { + if(common::hasPriv('bug', 'create')) + { + $link = helper::createLink('bug', 'create', "productID=$productID&branch=$branch&extra=moduleID=$moduleID"); + $pageActions .= html::a($link, "" . $this->lang->bug->create, '', "class='btn btn-primary'"); + } + } + } + $pageNav .= $selectHtml; - $this->lang->modulePageNav = $productIndex; + $this->lang->modulePageNav = $pageNav; + $this->lang->modulePageActions = $pageActions; foreach($this->lang->bug->menu as $key => $menu) { if($this->config->global->flow != 'onlyTest') @@ -46,6 +95,36 @@ class bugModel extends model } common::setMenuVars($this->lang->bug->menu, $key, $replace); } + if($this->config->global->flow != 'full') + { + $tmpMenu = (array)$this->lang->bug->menu; + $moreMenu = array_slice($tmpMenu, -6); + $tmpMenu = array_slice($tmpMenu, 0, count($tmpMenu) - 6); + if($moreMenu) + { + $moreKey = 'more'; + $moreLabel = $this->lang->more; + if(strpos(",unconfirmed,assigntonull,longlifebugs,postponedbugs,overduebugs,needconfirm,", ",$browseType,") !== false) + { + $moreKey = $browseType; + $moreLabel = $this->lang->bug->featureBar['browse'][$browseType]; + } + $more = "{$moreLabel}"; + $more .= "'; + $tmpMenu[$moreKey] = $more; + } + if($this->app->getMethodName() != 'view') $tmpMenu['bysearch'] = " {$this->lang->bug->byQuery}"; + $this->lang->bug->menu = (object)$tmpMenu; + } } /** diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php index 3757c46210..31a9ccb8ed 100644 --- a/module/bug/view/browse.html.php +++ b/module/bug/view/browse.html.php @@ -16,61 +16,13 @@ include '../../common/view/datatable.fix.html.php'; js::set('browseType', $browseType); js::set('moduleID', $moduleID); js::set('bugBrowseType', ($browseType == 'bymodule' and $this->session->bugBrowseType == 'bysearch') ? 'all' : $this->session->bugBrowseType); -js::set('flow', $this->config->global->flow); -js::set('productID', $productID); -js::set('branch', $branch); +js::set('flow', $this->config->global->flow); +js::set('productID', $productID); +js::set('branch', $branch); $currentBrowseType = isset($lang->bug->mySelects[$browseType]) && in_array($browseType, array_keys($lang->bug->mySelects)) ? $browseType : ''; ?> +config->global->flow == 'full'):?>