Manage a config proporty to limit the number of items at first level in navigation panel.

Signed-off-by: Hugues Peccatte <hugues.peccatte@gmail.com>
This commit is contained in:
Hugues Peccatte 2014-04-20 16:04:53 +02:00
parent e0c64783a3
commit 6cb5756e7d
7 changed files with 63 additions and 2 deletions

View File

@ -1374,6 +1374,14 @@ Cookie authentication options
Navigation panel setup
----------------------
.. config:option:: $cfg['FirstLevelNavigationItems']
:type: integer
:default: 25
The number of items that can be displayed on each page of the first level
of navigation tree.
.. config:option:: $cfg['MaxNavigationItems']
:type: integer

View File

@ -847,6 +847,13 @@ $cfg['Error_Handler']['display'] = false;
* Navigation panel setup
*/
/**
* maximum number of items displayed on first level in navigation panel
*
* @global integer $cfg['FirstLevelNavigationItems']
*/
$cfg['FirstLevelNavigationItems'] = 25;
/**
* maximum number of items displayed in navigation panel
*

View File

@ -211,6 +211,7 @@ $cfg_db['_validators'] = array(
'CharTextareaRows' => 'validatePositiveNumber',
'ExecTimeLimit' => 'validateNonNegativeNumber',
'Export/sql_max_query_size' => 'validatePositiveNumber',
'FirstLevelNavigationItems' => 'validatePositiveNumber',
'ForeignKeyMaxLimit' => 'validatePositiveNumber',
'Import/csv_enclosed' => array(array('validateByRegex', '/^.?$/')),
'Import/csv_escaped' => array(array('validateByRegex', '/^.$/')),

View File

@ -398,6 +398,11 @@ $strConfigMaxDbList_cmt = __('Users cannot set a higher value');
$strConfigMaxDbList_desc
= __('Maximum number of databases displayed in database list.');
$strConfigMaxDbList_name = __('Maximum databases');
$strConfigFirstLevelNavigationItems_desc = __(
'The number of items that can be displayed on each page on first level of the '
. 'navigation tree.'
);
$strConfigFirstLevelNavigationItems_name = __('Maximum items on first level');
$strConfigMaxNavigationItems_desc = __(
'The number of items that can be displayed on each page of the navigation tree.'
);

View File

@ -170,6 +170,7 @@ $forms['Navi_panel']['Navi_panel'] = array(
'NavigationLogoLink',
'NavigationLogoLinkWindow',
'NavigationTreePointerEnable',
'FirstLevelNavigationItems',
'MaxNavigationItems',
'NavigationTreeEnableGrouping',
'NavigationTreeDisableDatabaseExpansion',

View File

@ -83,6 +83,7 @@ $forms['Navi_panel']['Navi_panel'] = array(
'NavigationLogoLink',
'NavigationLogoLinkWindow',
'NavigationTreePointerEnable',
'FirstLevelNavigationItems',
'MaxNavigationItems',
'NavigationTreeEnableGrouping',
'NavigationTreeDisableDatabaseExpansion',

View File

@ -360,11 +360,49 @@ class Node
*/
public function getData($type, $pos, $searchClause = '')
{
$query = "SELECT `SCHEMA_NAME` ";
/*$query = "SELECT `SCHEMA_NAME` ";
$query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` ";
$query .= $this->_getWhereClause($searchClause);
$query .= "ORDER BY `SCHEMA_NAME` ASC ";
$query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxNavigationItems']}";
$query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxNavigationItems']}";*/
$query = "SELECT `SCHEMA_NAME` ";
$query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA`, ";
$query .= " (";
$query .= " select DB_first_level ";
$query .= " from ( ";
$query .= " SELECT distinct SUBSTRING_INDEX(SCHEMA_NAME, ";
$query .= "'{$GLOBALS['cfg']['NavigationTreeDbSeparator']}', 1) ";
$query .= "DB_first_level ";
$query .= " FROM INFORMATION_SCHEMA.SCHEMATA ";
$query .= $this->_getWhereClause($searchClause);
$query .= " ) t ";
$query .= " ORDER BY DB_first_level ASC ";
$query .= " LIMIT $pos, {$GLOBALS['cfg']['FirstLevelNavigationItems']}";
$query .= " ) t2 ";
$query .= "where 1 = locate(concat(DB_first_level, ";
$query .= "'{$GLOBALS['cfg']['NavigationTreeDbSeparator']}'), ";
$query .= "concat(SCHEMA_NAME, ";
$query .= "'{$GLOBALS['cfg']['NavigationTreeDbSeparator']}')) ";
$query .= "order by SCHEMA_NAME ASC";
/*echo $query;
SELECT `SCHEMA_NAME`
FROM `INFORMATION_SCHEMA`.`SCHEMATA`,
(
select DB_first_level
from (
SELECT distinct SUBSTRING_INDEX(SCHEMA_NAME, '_', 1) DB_first_level
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE TRUE
) t
ORDER BY DB_first_level ASC
LIMIT 0, 5
) t2
where 1 = locate(concat(DB_first_level, '_'), concat(SCHEMA_NAME, '_'))
order by SCHEMA_NAME ASC
*/
return $GLOBALS['dbi']->fetchResult($query);
}