diff --git a/js/navigation.js b/js/navigation.js index f994951840..eab0c4c77d 100644 --- a/js/navigation.js +++ b/js/navigation.js @@ -8,36 +8,49 @@ /** * Loads child items of a node and executes a given callback * + * @param isNode * @param $expandElem expander * @param callback callback function * * @returns void */ -function loadChildNodes($expandElem, callback) { - if (!$expandElem.hasClass('expander')) { - return; +function loadChildNodes(isNode, $expandElem, callback) { + if (isNode) { + if (!$expandElem.hasClass('expander')) { + return; + } + var $destination = $expandElem.closest('li'); + + var searchClause = PMA_fastFilter.getSearchClause(); + var searchClause2 = PMA_fastFilter.getSearchClause2($expandElem); + + var params = { + aPath: $expandElem.find('span.aPath').text(), + vPath: $expandElem.find('span.vPath').text(), + pos: $expandElem.find('span.pos').text(), + pos2_name: $expandElem.find('span.pos2_name').text(), + pos2_value: $expandElem.find('span.pos2_value').text(), + searchClause: searchClause, + searchClause2: searchClause2 + }; + } else { + var $destination = $('#pma_navigation_tree_content'); + var params = { + aPath: $expandElem.attr('aPath'), + vPath: $expandElem.attr('vPath'), + pos: $expandElem.attr('pos') + }; } - var $destination = $expandElem.closest('li'); - - var searchClause = PMA_fastFilter.getSearchClause(); - var searchClause2 = PMA_fastFilter.getSearchClause2($expandElem); - - var params = { - aPath: $expandElem.find('span.aPath').text(), - vPath: $expandElem.find('span.vPath').text(), - pos: $expandElem.find('span.pos').text(), - pos2_name: $expandElem.find('span.pos2_name').text(), - pos2_value: $expandElem.find('span.pos2_value').text(), - searchClause: searchClause, - searchClause2: searchClause2 - }; var url = $('#pma_navigation').find('a.navigation_url').attr('href'); $.get(url, params, function (data) { if (typeof data !== 'undefined' && data.success === true) { - $expandElem.addClass('loaded'); + if (isNode) { + $expandElem.addClass('loaded'); + } $destination.find('div.list_container').remove(); // FIXME: Hack, there shouldn't be a list container there $destination.append(data.message); + $destination.children('div.list_container').first().show(); if (data._debug){ $('#session_debug').replaceWith(data._debug); } @@ -135,6 +148,10 @@ $(function () { $icon.attr('src', icon_reload_src); }, 1000); }); + + $(document).on("change", '#navi_db_select', function (event) { + $(this).closest('form').trigger('submit'); + }); /** * Register event handler for click on the collapse all @@ -510,7 +527,7 @@ function expandTreeNode($expandElem, callback) { $icon.hide(); $throbber.insertBefore($icon); - loadChildNodes($expandElem, function (data) { + loadChildNodes(true, $expandElem, function (data) { if (typeof data !== 'undefined' && data.success === true) { var $destination = $expandElem.closest('li'); $icon.removeClass('ic_b_plus').addClass('ic_b_minus'); @@ -586,6 +603,13 @@ function PMA_showCurrentNavigation() { } else { handleTableOrDb(table, $dbItem); } + } else { + if (! PMA_commonParams.get('show_navigation_as_tree')) { + loadChildNodes(false, $('option:selected', $('#navi_db_select')), function (data) { + return; + }); + return; + } } } PMA_showFullName($('#pma_navigation_tree')); @@ -688,7 +712,7 @@ function PMA_showCurrentNavigation() { } function loadAndShowTableOrView($expander, $relatedContainer, itemName) { - loadChildNodes($expander, function (data) { + loadChildNodes(true, $expander, function (data) { var $whichItem = findLoadedItem( $relatedContainer.children('div.list_container'), itemName, null, true @@ -825,12 +849,17 @@ function PMA_navigationTreePagination($this) { if (typeof data !== 'undefined' && data.success) { if (isDbSelector) { var val = PMA_fastFilter.getSearchClause(); - $('#pma_navigation_tree') + if (PMA_commonParams.get('show_navigation_as_tree')) { + var $div_elem = $('#pma_navigation_tree'); + } else { + var $div_elem = $('#pma_navigation_select_database'); + } + $div_elem .html(data.message) .children('div') .show(); if (val) { - $('#pma_navigation_tree') + $div_elem .find('li.fast_filter input.searchClause') .val(val); } diff --git a/libraries/navigation/Navigation.class.php b/libraries/navigation/Navigation.class.php index f5d680f57d..3deaff09a1 100644 --- a/libraries/navigation/Navigation.class.php +++ b/libraries/navigation/Navigation.class.php @@ -33,19 +33,11 @@ class PMA_Navigation if (! PMA_Response::getInstance()->isAjax()) { $header = new PMA_NavigationHeader(); $retval = $header->getDisplay(); - $class = ' class="list_container'; - if ($GLOBALS['cfg']['NavigationLinkWithMainPanel']) { - $class .= ' synced'; - } - if ($GLOBALS['cfg']['NavigationTreePointerEnable']) { - $class .= ' highlight'; - } - $class .= '"'; - $retval .= '
'; return $retval; } diff --git a/libraries/navigation/Nodes/Node.class.php b/libraries/navigation/Nodes/Node.class.php index 20d57a7c4b..c4ae81668b 100644 --- a/libraries/navigation/Nodes/Node.class.php +++ b/libraries/navigation/Nodes/Node.class.php @@ -716,7 +716,7 @@ class Node public function getCssClasses($match) { if ($GLOBALS['cfg']['NavigationTreeDisableDatabaseExpansion'] - || ! $GLOBALS['cfg']['ShowNavigationAsTree'] + //|| ! $GLOBALS['cfg']['ShowNavigationAsTree'] ) { return ''; } @@ -743,7 +743,7 @@ class Node public function getIcon($match) { if ($GLOBALS['cfg']['NavigationTreeDisableDatabaseExpansion'] - || ! $GLOBALS['cfg']['ShowNavigationAsTree'] + //|| ! $GLOBALS['cfg']['ShowNavigationAsTree'] ) { return ''; } elseif ($match && ! $this->is_group) { diff --git a/themes/original/css/navigation.css.php b/themes/original/css/navigation.css.php index ea84f8c46a..252760b7de 100644 --- a/themes/original/css/navigation.css.php +++ b/themes/original/css/navigation.css.php @@ -120,6 +120,8 @@ if (! defined('PMA_MINIMUM_COMMON') && ! defined('TESTSUITE')) { height: 74%; position: relative; } +#pma_navigation_select_database { +} #pma_navigation_tree_content { width: 100%; overflow: hidden; diff --git a/themes/pmahomme/css/navigation.css.php b/themes/pmahomme/css/navigation.css.php index fef92c63a3..9c1713c8c8 100644 --- a/themes/pmahomme/css/navigation.css.php +++ b/themes/pmahomme/css/navigation.css.php @@ -106,6 +106,8 @@ if (! defined('PMA_MINIMUM_COMMON') && ! defined('TESTSUITE')) { height: 74%; position: relative; } +#pma_navigation_select_database { +} #pma_navigation_tree_content { width: 100%; overflow: hidden;