From b43f4c7fed71963e499ef7bf81cf24b3cc73cf9b Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Fri, 30 Aug 2013 12:30:05 +0530 Subject: [PATCH 01/10] Expand the navigation and highlight the current database or table/view --- js/common.js | 19 +- js/navigation.js | 318 ++++++++++++++---- libraries/navigation/NavigationTree.class.php | 3 +- .../navigation/Nodes/Node_Database.class.php | 1 + .../navigation/Nodes/Node_Table.class.php | 1 + .../Nodes/Node_Table_Container.class.php | 3 +- .../navigation/Nodes/Node_View.class.php | 1 + .../Nodes/Node_View_Container.class.php | 1 + themes/original/css/navigation.css.php | 4 + themes/pmahomme/css/navigation.css.php | 4 + 10 files changed, 279 insertions(+), 76 deletions(-) diff --git a/js/common.js b/js/common.js index 5bd674fc06..c61cd6b2cc 100644 --- a/js/common.js +++ b/js/common.js @@ -37,16 +37,19 @@ var PMA_commonParams = (function () { */ setAll: function (obj) { var reload = false; + var updateNavigation = false; for (var i in obj) { if (params[i] !== undefined && params[i] !== obj[i]) { reload = true; } - // To expand the database in use and collapse the previous one - if(i == 'db' && obj[i] !== '') { - PMA_autoExpandDatabaseInUse(params['db'], obj[i]); + if (i == 'db' || i == 'table') { + updateNavigation = true; } params[i] = obj[i]; } + if (updateNavigation) { + PMA_showCurrentNavigation(); + } if (reload) { PMA_querywindow.refresh(); } @@ -74,10 +77,10 @@ var PMA_commonParams = (function () { if (params[name] !== undefined && params[name] !== value) { PMA_querywindow.refresh(); } - if(name == 'db' && value !== '') { - PMA_autoExpandDatabaseInUse(params['db'], value); - } params[name] = value; + if(name == 'db' || name == 'table') { + PMA_showCurrentNavigation(); + } return this; }, /** @@ -114,10 +117,8 @@ var PMA_commonActions = { */ setDb: function (new_db) { if (new_db != PMA_commonParams.get('db')) { - if(new_db !== '') { - PMA_autoExpandDatabaseInUse(PMA_commonParams.get('db'), new_db); - } PMA_commonParams.set('db', new_db); + PMA_showCurrentNavigation(); PMA_querywindow.refresh(); } }, diff --git a/js/navigation.js b/js/navigation.js index 74848515f7..31fb3c19cf 100644 --- a/js/navigation.js +++ b/js/navigation.js @@ -29,7 +29,12 @@ $(function() { $('#pma_navigation_tree a.expander').live('click', function(event) { event.preventDefault(); event.stopImmediatePropagation(); - PMA_expandNavigationTree($(this)); + var $icon = $(this).find('img'); + if ($icon.is('.ic_b_plus')) { + expandTreeNode($(this)); + } else { + collapseTreeNode($(this)); + } }); /** @@ -38,6 +43,9 @@ $(function() { */ $('#pma_navigation_reload').live('click', function (event) { event.preventDefault(); + $('#pma_navigation .throbber') + .first() + .css('visibility', 'visible'); PMA_reloadNavigation(); }); @@ -156,54 +164,42 @@ $(function() { event.preventDefault(); PMA_createViewDialog($(this)); }); + + PMA_showCurrentNavigation(); }); /** - * Expands/collapses the navigation tree and sets to view the expanded + * Expands a node in navigation tree. * - * @param object $expandElem the element that initiated the expanding - * @return void + * @param $expandElem expander + * @param callback callback function + * + * @returns void */ -function PMA_expandNavigationTree($expandElem) { +function expandTreeNode($expandElem, callback) +{ var $children = $expandElem.closest('li').children('div.list_container'); var $icon = $expandElem.find('img'); if ($expandElem.hasClass('loaded')) { if ($icon.is('.ic_b_plus')) { $icon.removeClass('ic_b_plus').addClass('ic_b_minus'); $children.show('fast'); - } else { - $icon.removeClass('ic_b_minus').addClass('ic_b_plus'); - $children.hide('fast'); + } + if (callback && typeof callback == 'function') { + callback.call(); } } else { - var $destination = $expandElem.closest('li'); - if($icon.siblings('.throbber').length <= 0) { - var $throbber = $('#pma_navigation .throbber') - .first() - .clone() - .css('visibility', 'visible'); - $icon.hide(); - $throbber.insertBefore($icon); - } + var $throbber = $('#pma_navigation .throbber') + .first() + .clone() + .css('visibility', 'visible') + .click(false); + $icon.hide(); + $throbber.insertBefore($icon); - 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) { + loadChildNodes($expandElem, function(data) { if (data.success === true) { - $expandElem.addClass('loaded'); - $destination.find('div.list_container').remove(); // FIXME: Hack, there shouldn't be a list container there - $destination.append(data.message); + var $destination = $expandElem.closest('li'); $icon.removeClass('ic_b_plus').addClass('ic_b_minus'); $destination .children('div.list_container') @@ -213,18 +209,20 @@ function PMA_expandNavigationTree($expandElem) { .find('a.expander.container') .click(); } + if (callback && typeof callback == 'function') { + callback.call(); + } } else { PMA_ajaxShowMessage(data.error, false); } $icon.show(); - if($icon.siblings('.throbber').length) - $icon.siblings('.throbber').remove(); + $throbber.remove(); }); } $expandElem.blur(); } -/* +/** * Auto-scrolls the newly chosen database * * @param object $element The element to set to view @@ -242,36 +240,224 @@ function scrollToView($element, $container) { } } -/* - * Auto-expands the newly chosen database +/** + * Collapses a node in navigation tree. * - * @param string $oldDb The previous database - * @param string $newDb The newly chosen database + * @param $expandElem expander * + * @returns void */ -function PMA_autoExpandDatabaseInUse($oldDb, $newDb) { - var $expandElem, $icon; - //Collapse the previous database - if($oldDb !== '' && $oldDb !== $newDb) { - $expandElem = $('#pma_navigation_tree a.dbLink:contains("' + $oldDb + '")') - .parent().find('a.expander').eq(0); - $icon = $expandElem.find('img'); - if ($icon.is('.ic_b_minus')) - PMA_expandNavigationTree($expandElem); - } - //expand the newly chosen database - $expandElem = $('#pma_navigation_tree a.dbLink:contains("' + $newDb + '")') - .parent().find('a.expander').eq(0); - $icon = $expandElem.find('img'); - if ($icon.is('.ic_b_plus')) { - PMA_expandNavigationTree($expandElem); - } - //scroll to new database - if ($oldDb !== $newDb) { - setTimeout(function() { - scrollToView($expandElem.closest('li'), $('#pma_navigation_tree_content')); - }, 200); +function collapseTreeNode($expandElem) { + var $children = $expandElem.closest('li').children('div.list_container'); + var $icon = $expandElem.find('img'); + if ($expandElem.hasClass('loaded')) { + if ($icon.is('.ic_b_minus')) { + $icon.removeClass('ic_b_minus').addClass('ic_b_plus'); + $children.hide('fast'); + } } + $expandElem.blur(); +} + +/** + * Loads child items of a node and executes a given callback + * + * @param $expandElem expander + * @param callback callback function + * + * @returns void + */ +function loadChildNodes($expandElem, callback) { + 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 (data.success === true) { + $expandElem.addClass('loaded'); + $destination.find('div.list_container').remove(); // FIXME: Hack, there shouldn't be a list container there + $destination.append(data.message); + if (callback && typeof callback == 'function') { + callback(data); + } + } + }); +} + +/** + * Expand the navigation and highlight the current database or table/view + * + * @returns void + */ +function PMA_showCurrentNavigation() +{ + var db = PMA_commonParams.get('db'); + var table = PMA_commonParams.get('table'); + $('#pma_navigation_tree') + .find('li.selected') + .removeClass('selected'); + if (db && table) { // if we are at the table/view level + // open the database in the tree + var $dbItem = highlightLoadedItem( + $('#pma_navigation_tree > div'), db, 'database', false, false + ); + // open the table in the tree and select it + var $expander = $dbItem.children('div:first').children('a.expander'); + // if not loaded or loaded but collapsed + if (! $expander.hasClass('loaded') + || $expander.find('img').is('.ic_b_plus') + ) { + expandTreeNode($expander, function() { + loadAndHighlightTableOrView($dbItem, table); + }); + } else { + loadAndHighlightTableOrView($dbItem, table); + } + } else if (db) { // if we are at the database level + // open in the tree and select the database + highlightLoadedItem( + $('#pma_navigation_tree > div'), db, 'database', true, true + ); + } + + function highlightLoadedItem($container, name, clazz, doSelect, doOpen) { + var ret = false; + $container.children('ul').children('li').each(function() { + var $li = $(this); + // this is a navigation group, recurse + if ($li.is('.navGroup')) { + var $container = $li.children('div.list_container'); + var $childRet = highlightLoadedItem( + $container, name, clazz, doSelect, doOpen + ); + if ($childRet) { + ret = $childRet; + return false; + } + } else { // this is a real navigation item + // name and class matches + if ($li.is('.' + clazz) && $li.children('a').text() == name) { + if (doSelect) { + $li.addClass('selected'); + } + if (doOpen) { + var $expander = $li.find('div:first').children('a.expander'); + if ($expander.length > 0) { + expandTreeNode($expander, function() { + scrollToView($li, $('#pma_navigation_tree_content')); + }); + } + } + // taverse up and expand and parent navigation groups + $li.parents('.navGroup').each(function() { + $cont = $(this).children('div.list_container'); + if (! $cont.is(':visible')) { + $(this) + .children('div:first') + .children('a.expander') + .click(); + } + }); + ret = $li; + return false; + } + } + }); + return ret; + } + + function loadAndHighlightTableOrView($dbItem, table) { + var $container = $dbItem.children('div.list_container'); + var $tableContainer = $container + .children('ul') + .children('li.tableContainer'); + var $viewContainer = $container + .children('ul') + .children('li.viewContainer'); + + if ($tableContainer.length > 0) { + var $expander = $tableContainer + .children('div:first') + .children('a.expander'); + + if (! $expander.hasClass('loaded') ) { + loadChildNodes($expander, function(data) { + highlightTableOrView($tableContainer, $viewContainer, table); + }); + } else { + highlightTableOrView($tableContainer, $viewContainer, table); + } + } else if ($viewContainer.length > 0) { + highlightView($viewContainer, table); + } else { + // no containers, highlight the item + highlightLoadedItem($container, table, 'table', true, false); + } + } + + function highlightTableOrView($tableContainer, $viewContainer, table) + { + if (isItemInContainer($tableContainer, table, 'table')) { + var $expander = $tableContainer + .children('div:first') + .children('a.expander'); + if ($expander.find('img').is('.ic_b_plus')) { + expandTreeNode($expander); + } + highlightLoadedItem( + $tableContainer.children('div.list_container'), + table, 'table', true, false + ); + } else if ($viewContainer.length > 0) { + highlightView($viewContainer, table); + } + } + + function isItemInContainer($container, name, clazz) + { + $items = $container.find('li.' + clazz); + var found = false; + $items.each(function() { + if ($(this).children('a').text() == name) { + found = true; + return false; + } + }); + return found; + } + + function highlightView($viewContainer, view) { + var $expander = $viewContainer + .children('div:first') + .children('a.expander'); + if (! $expander.hasClass('loaded') + || $expander.find('img').is('.ic_b_plus') + ) { + expandTreeNode($expander, function() { + highlightLoadedItem( + $viewContainer.children('div.list_container'), + view, 'view', true, false + ); + }); + } else { + highlightLoadedItem( + $viewContainer.children('div.list_container'), + view, 'view', true, false + ); + } + } } /** @@ -323,13 +509,17 @@ function PMA_reloadNavigation(callback) { }); var url = $('#pma_navigation').find('a.navigation_url').attr('href'); $.post(url, params, function (data) { + // Hide throbber if it's visible + $('#pma_navigation .throbber') + .first() + .css('visibility', 'hidden'); if (data.success) { $('#pma_navigation_tree').html(data.message).children('div').show(); + PMA_showCurrentNavigation(); // Fire the callback, if any if (typeof callback === 'function') { callback.call(); } - PMA_autoExpandDatabaseInUse('', PMA_commonParams.get('db')); } else { PMA_ajaxShowMessage(data.error); } diff --git a/libraries/navigation/NavigationTree.class.php b/libraries/navigation/NavigationTree.class.php index bb6e1d1d4f..24eaf93312 100644 --- a/libraries/navigation/NavigationTree.class.php +++ b/libraries/navigation/NavigationTree.class.php @@ -881,7 +881,6 @@ class PMA_NavigationTree $retval .= ""; } - $dblinkclass = ' class="dbLink"'; $linkClass = ''; $haveAjax = array( 'functions', @@ -933,7 +932,7 @@ class PMA_NavigationTree $retval .= htmlspecialchars($node->name); $retval .= ""; } else { - $retval .= ""; + $retval .= ""; $retval .= htmlspecialchars($node->real_name); $retval .= ""; } diff --git a/libraries/navigation/Nodes/Node_Database.class.php b/libraries/navigation/Nodes/Node_Database.class.php index 45ff0c12a0..ba823dd281 100644 --- a/libraries/navigation/Nodes/Node_Database.class.php +++ b/libraries/navigation/Nodes/Node_Database.class.php @@ -35,6 +35,7 @@ class Node_Database extends Node 'icon' => 'db_operations.php?server=' . $GLOBALS['server'] . '&db=%1$s&token=' . $GLOBALS['token'] ); + $this->classes = 'database'; } /** diff --git a/libraries/navigation/Nodes/Node_Table.class.php b/libraries/navigation/Nodes/Node_Table.class.php index 08d620888f..b27e0da8c8 100644 --- a/libraries/navigation/Nodes/Node_Table.class.php +++ b/libraries/navigation/Nodes/Node_Table.class.php @@ -38,6 +38,7 @@ class Node_Table extends Node . '?server=' . $GLOBALS['server'] . '&db=%2$s&table=%1$s&token=' . $GLOBALS['token'] ); + $this->classes = 'table'; } /** diff --git a/libraries/navigation/Nodes/Node_Table_Container.class.php b/libraries/navigation/Nodes/Node_Table_Container.class.php index 3d3ef146d1..0efa9fc116 100644 --- a/libraries/navigation/Nodes/Node_Table_Container.class.php +++ b/libraries/navigation/Nodes/Node_Table_Container.class.php @@ -35,7 +35,8 @@ class Node_Table_Container extends Node $this->separator = $GLOBALS['cfg']['NavigationTreeTableSeparator']; $this->separator_depth = (int)($GLOBALS['cfg']['NavigationTreeTableLevel']); } - $this->real_name = 'tables'; + $this->real_name = 'tables'; + $this->classes = 'tableContainer'; $new = PMA_NodeFactory::getInstance('Node', _pgettext('Create new table', 'New')); $new->isNew = true; diff --git a/libraries/navigation/Nodes/Node_View.class.php b/libraries/navigation/Nodes/Node_View.class.php index 3f47579a7e..f9d3cfcb6c 100644 --- a/libraries/navigation/Nodes/Node_View.class.php +++ b/libraries/navigation/Nodes/Node_View.class.php @@ -38,6 +38,7 @@ class Node_View extends Node . '&db=%2$s&table=%1$s' . '&token=' . $GLOBALS['token'] ); + $this->classes = 'view'; } } diff --git a/libraries/navigation/Nodes/Node_View_Container.class.php b/libraries/navigation/Nodes/Node_View_Container.class.php index ada9027ff4..39544fb177 100644 --- a/libraries/navigation/Nodes/Node_View_Container.class.php +++ b/libraries/navigation/Nodes/Node_View_Container.class.php @@ -31,6 +31,7 @@ class Node_View_Container extends Node 'icon' => 'db_structure.php?server=' . $GLOBALS['server'] . '&db=%1$s&token=' . $GLOBALS['token'], ); + $this->classes = 'viewContainer'; $this->real_name = 'views'; $new = PMA_NodeFactory::getInstance('Node', _pgettext('Create new view', 'New')); diff --git a/themes/original/css/navigation.css.php b/themes/original/css/navigation.css.php index 0d88478d25..fd91206d9c 100644 --- a/themes/original/css/navigation.css.php +++ b/themes/original/css/navigation.css.php @@ -128,6 +128,10 @@ if (! defined('PMA_MINIMUM_COMMON') && ! defined('TESTSUITE')) { color: ; background-color: ; } +#pma_navigation_tree li.selected { + color: ; + background-color: ; +} #pma_navigation_tree ul { clear: both; padding: 0; diff --git a/themes/pmahomme/css/navigation.css.php b/themes/pmahomme/css/navigation.css.php index 7d30f11e14..0d747f73da 100644 --- a/themes/pmahomme/css/navigation.css.php +++ b/themes/pmahomme/css/navigation.css.php @@ -113,6 +113,10 @@ if (! defined('PMA_MINIMUM_COMMON') && ! defined('TESTSUITE')) { color: ; background-color: ; } +#pma_navigation_tree li.selected { + color: ; + background-color: ; +} #pma_navigation_tree ul { clear: both; padding: 0; From 6f29a89aec0a10d831117d5c9599656aafdfd144 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Sat, 31 Aug 2013 07:18:31 +0530 Subject: [PATCH 02/10] Make scrolling work for table/views as well --- js/navigation.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/js/navigation.js b/js/navigation.js index 31fb3c19cf..6d26c5e52e 100644 --- a/js/navigation.js +++ b/js/navigation.js @@ -351,6 +351,9 @@ function PMA_showCurrentNavigation() if ($li.is('.' + clazz) && $li.children('a').text() == name) { if (doSelect) { $li.addClass('selected'); + if (! doOpen) { // if the node will be opened no point scrolling now + scrollToView($li, $('#pma_navigation_tree_content')); + } } if (doOpen) { var $expander = $li.find('div:first').children('a.expander'); From 9c8267a9a8c7aaf53879fed0b70b996331c8ce44 Mon Sep 17 00:00:00 2001 From: Kasun Chathuranga Date: Sat, 31 Aug 2013 12:42:45 +0530 Subject: [PATCH 03/10] Properly open and select database when "Use " command is issued --- js/common.js | 6 ++---- js/sql.js | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/js/common.js b/js/common.js index c61cd6b2cc..02dd342c78 100644 --- a/js/common.js +++ b/js/common.js @@ -78,7 +78,7 @@ var PMA_commonParams = (function () { PMA_querywindow.refresh(); } params[name] = value; - if(name == 'db' || name == 'table') { + if (name == 'db' || name == 'table') { PMA_showCurrentNavigation(); } return this; @@ -117,9 +117,7 @@ var PMA_commonActions = { */ setDb: function (new_db) { if (new_db != PMA_commonParams.get('db')) { - PMA_commonParams.set('db', new_db); - PMA_showCurrentNavigation(); - PMA_querywindow.refresh(); + PMA_commonParams.setAll({'db': new_db, 'table': ''}); } }, /** diff --git a/js/sql.js b/js/sql.js index 1d770669b6..7e847019ad 100644 --- a/js/sql.js +++ b/js/sql.js @@ -296,7 +296,17 @@ AJAX.registerOnload('sql.js', function() { } else if (typeof data.reload != 'undefined') { // this happens if a USE or DROP command was typed PMA_commonActions.setDb(data.db); - PMA_commonActions.refreshMain(false, function () { + var url; + if (data.db) { + if (data.table) { + url = 'table_sql.php'; + } else { + url = 'db_sql.php'; + } + } else { + url = 'server_sql.php'; + } + PMA_commonActions.refreshMain(url, function () { if ($('#result_query').length) { $('#result_query').remove(); } @@ -307,7 +317,7 @@ AJAX.registerOnload('sql.js', function() { } }); } - + $sqlqueryresults.show().trigger('makegrid'); $('#togglequerybox').show(); PMA_init_slider(); @@ -581,7 +591,7 @@ function makeProfilingChart() ) { return; } - + var data = []; $.each(jQuery.parseJSON($('#profilingChartData').html()),function(key,value) { data.push([key,parseFloat(value)]); From e11573bc546045d63cf4136c8dff1d30fcf06341 Mon Sep 17 00:00:00 2001 From: Dong-bum Kim Date: Sat, 31 Aug 2013 13:16:27 +0200 Subject: [PATCH 04/10] Translated using Weblate (Korean) Currently translated at 74.0% (1931 of 2609) --- po/ko.po | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/po/ko.po b/po/ko.po index 885c739090..f2bc9eeefb 100644 --- a/po/ko.po +++ b/po/ko.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: phpMyAdmin 4.0.6-dev\n" "Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2013-07-29 15:07+0200\n" -"PO-Revision-Date: 2013-08-31 12:56+0200\n" -"Last-Translator: Myung Han Yu \n" +"PO-Revision-Date: 2013-08-31 13:16+0200\n" +"Last-Translator: Dong-bum Kim \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" @@ -4904,7 +4904,7 @@ msgstr "" #: libraries/config/messages.inc.php:272 msgid "Limit column characters" -msgstr "" +msgstr "컬럼 문자 제한" #: libraries/config/messages.inc.php:273 msgid "" @@ -4962,7 +4962,7 @@ msgstr "LONGTEXT의 경우 더 큰 textarea를 사용" #: libraries/config/messages.inc.php:283 msgid "Maximum number of characters used when a SQL query is displayed" -msgstr "" +msgstr "SQL 쿼리 출력시 사용할 문자수" #: libraries/config/messages.inc.php:284 msgid "Maximum displayed SQL length" @@ -5217,7 +5217,7 @@ msgstr "MySQL 예약어 경고" #: libraries/config/messages.inc.php:341 msgid "How to display the menu tabs" -msgstr "" +msgstr "메뉴탭 보여주기 방식" #: libraries/config/messages.inc.php:343 msgid "How to display various action links" @@ -5225,7 +5225,7 @@ msgstr "" #: libraries/config/messages.inc.php:344 msgid "Disallow BLOB and BINARY columns from editing" -msgstr "" +msgstr "BLOB, 바이너리 컬럼 편집 허용 안함" #: libraries/config/messages.inc.php:345 msgid "Protect binary columns" @@ -5248,7 +5248,7 @@ msgstr "" #: libraries/config/messages.inc.php:350 msgid "Query history length" -msgstr "" +msgstr "쿼리 기록 길이" #: libraries/config/messages.inc.php:351 msgid "Tab displayed when opening a new query window" @@ -5321,7 +5321,7 @@ msgstr "사용하지 않으면 빈칸으로 두세요" #: libraries/config/messages.inc.php:369 msgid "Host authorization order" -msgstr "" +msgstr "호스트 인증 지시" #: libraries/config/messages.inc.php:370 msgid "Leave blank for defaults" @@ -5474,7 +5474,7 @@ msgstr "SQL 쿼리 히스토리 테이블" #: libraries/config/messages.inc.php:403 msgid "Hostname where MySQL server is running" -msgstr "" +msgstr "MySQL 서버가 구동중인 호스트의 이름" #: libraries/config/messages.inc.php:404 msgid "Server hostname" @@ -5681,7 +5681,6 @@ msgid "Defines the list of statements the auto-creation uses for new versions." msgstr "" #: libraries/config/messages.inc.php:446 -#, fuzzy #| msgid "Statements" msgid "Statements to track" msgstr "문장 추적" @@ -5730,7 +5729,7 @@ msgstr "" #: libraries/config/messages.inc.php:456 msgid "Verbose name of this server" -msgstr "" +msgstr "이 서버 이름 보기" #: libraries/config/messages.inc.php:457 msgid "Whether a user should be displayed a "show all (rows)" button" @@ -5738,7 +5737,7 @@ msgstr "" #: libraries/config/messages.inc.php:458 msgid "Allow to display all the rows" -msgstr "" +msgstr "모든 행 보기 허용" #: libraries/config/messages.inc.php:459 msgid "" @@ -5853,7 +5852,7 @@ msgstr "SQL 질의" #: libraries/config/messages.inc.php:483 msgid "Allow to display database and table statistics (eg. space usage)" -msgstr "" +msgstr "데이터베이스와 테이블 상태 출력 허용 (사용량 등)" #: libraries/config/messages.inc.php:484 msgid "Show statistics" From dc3163974c2be51a75787912f270d9da3d46bcfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Fri, 30 Aug 2013 15:47:29 +0200 Subject: [PATCH 05/10] Translated using Weblate (Malay) Currently translated at 15.2% (397 of 2609) --- po/ms.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/ms.po b/po/ms.po index dd5d2a5394..78efd3989e 100644 --- a/po/ms.po +++ b/po/ms.po @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: phpMyAdmin 4.0.6-dev\n" "Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2013-07-29 15:07+0200\n" -"PO-Revision-Date: 2013-05-07 17:19+0200\n" +"PO-Revision-Date: 2013-08-30 15:47+0200\n" "Last-Translator: Michal Čihař \n" "Language-Team: Malay \n" "Language: ms\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 1.6-dev\n" +"X-Generator: Weblate 1.7-dev\n" #: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:344 #: libraries/DisplayResults.class.php:813 @@ -12111,7 +12111,7 @@ msgstr "Jadual %s telah disalin ke %s." #: tbl_move_copy.php:79 msgid "The table name is empty!" -msgstr "Nama jadual adalah kosong" +msgstr "Nama jadual adalah kosong!" #: tbl_printview.php:65 #, fuzzy From ee1e8f92643aa1b416cd7f4c97594fb359373a5d Mon Sep 17 00:00:00 2001 From: shanyan baishui Date: Sat, 31 Aug 2013 03:56:18 +0200 Subject: [PATCH 06/10] Translated using Weblate (Simplified Chinese) Currently translated at 99.0% (2582 of 2609) --- po/zh_CN.po | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index e71c0a943d..0c31e07b55 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: phpMyAdmin 4.0.6-dev\n" "Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2013-07-29 15:07+0200\n" -"PO-Revision-Date: 2013-08-28 17:26+0200\n" +"PO-Revision-Date: 2013-08-31 03:56+0200\n" "Last-Translator: shanyan baishui \n" "Language-Team: Simplified Chinese " "\n" @@ -4064,27 +4064,27 @@ msgstr "默认显示模式" #: libraries/config/messages.inc.php:50 msgid "Tab that is displayed when entering a database" -msgstr "当进入数据库时默认显示的选项卡" +msgstr "当进入数据库时默认显示的标签页" #: libraries/config/messages.inc.php:51 msgid "Default database tab" -msgstr "数据库默认选项卡" +msgstr "数据库默认标签页" #: libraries/config/messages.inc.php:52 msgid "Tab that is displayed when entering a server" -msgstr "当进入服务器时默认显示的选项卡" +msgstr "当进入服务器时默认显示的标签页" #: libraries/config/messages.inc.php:53 msgid "Default server tab" -msgstr "服务器默认选项卡" +msgstr "服务器默认标签页" #: libraries/config/messages.inc.php:54 msgid "Tab that is displayed when entering a table" -msgstr "当进入表时默认显示的选项卡" +msgstr "当进入表时默认显示的标签页" #: libraries/config/messages.inc.php:55 msgid "Default table tab" -msgstr "表默认选项卡" +msgstr "表默认标签页" #: libraries/config/messages.inc.php:56 msgid "Whether the table structure actions should be hidden" @@ -4850,16 +4850,16 @@ msgstr "放大 LONGTEXT 的文本框" #: libraries/config/messages.inc.php:283 msgid "Maximum number of characters used when a SQL query is displayed" -msgstr "显示 SQL 语句时可以使用的最多字符数" +msgstr "显示 SQL 语句时的最大字数" #: libraries/config/messages.inc.php:284 msgid "Maximum displayed SQL length" -msgstr "显示 SQL 语句的最大长度" +msgstr "SQL 最大显示长度" #: libraries/config/messages.inc.php:285 libraries/config/messages.inc.php:292 #: libraries/config/messages.inc.php:348 msgid "Users cannot set a higher value" -msgstr "用户不能设置更大的值" +msgstr "用户设置不能超过该值" #: libraries/config/messages.inc.php:286 msgid "Maximum number of databases displayed in database list" @@ -4872,20 +4872,18 @@ msgstr "最大数据库数量" #: libraries/config/messages.inc.php:288 msgid "" "The number of items that can be displayed on each page of the navigation tree" -msgstr "导航树上每页能显示的项目数量" +msgstr "每页导航树所能显示的最大项数" #: libraries/config/messages.inc.php:289 msgid "Maximum items in branch" -msgstr "分支中最大项目数" +msgstr "节点中最大项数" #: libraries/config/messages.inc.php:290 msgid "" "Number of rows displayed when browsing a result set. If the result set " "contains more rows, "Previous" and "Next" links will be " "shown." -msgstr "" -"浏览一个结果集时一次显示的最多行数。如果结果集超过此值,将会显示 "上一页" -"" 和 "下一页" 的链接。" +msgstr "浏览结果集时显示的行数。若结果集总行数超过该值,将会显示 "上一页" 和 "下一页" 的链接。" #: libraries/config/messages.inc.php:291 msgid "Maximum number of rows to display" @@ -4893,11 +4891,11 @@ msgstr "显示的最多行数" #: libraries/config/messages.inc.php:293 msgid "Maximum number of tables displayed in table list" -msgstr "在数据表列表中最多显示的数据表个数" +msgstr "在表列表中最多显示的表个数" #: libraries/config/messages.inc.php:294 msgid "Maximum tables" -msgstr "最大数据表数量" +msgstr "最大表数量" #: libraries/config/messages.inc.php:295 msgid "" @@ -4913,7 +4911,7 @@ msgstr "mcrypt 警告" msgid "" "The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] " "([kbd]0[/kbd] for no limit)" -msgstr "一个脚本可分配到的内存大小,例 [kbd]32MB[/kbd] ([kbd]0[/kbd]为不限制)" +msgstr "一个脚本可分配的内存大小,如 [kbd]32MB[/kbd]([kbd]0[/kbd] 为无限制)" #: libraries/config/messages.inc.php:298 msgid "Memory limit" @@ -4921,33 +4919,33 @@ msgstr "内存限制" #: libraries/config/messages.inc.php:299 msgid "Show logo in navigation panel" -msgstr "在导航面板中显示 logo" +msgstr "在导航面板中显示徽标" #: libraries/config/messages.inc.php:300 msgid "Display logo" -msgstr "显示 logo" +msgstr "显示徽标" #: libraries/config/messages.inc.php:301 msgid "URL where logo in the navigation panel will point to" -msgstr "导航面板中 logo 指向的链接地址" +msgstr "导航面板中徽标指向的链接地址" #: libraries/config/messages.inc.php:302 msgid "Logo link URL" -msgstr "Logo 链接地址" +msgstr "徽标链接地址" #: libraries/config/messages.inc.php:303 msgid "" "Open the linked page in the main window ([kbd]main[/kbd]) or in a new one " "([kbd]new[/kbd])" -msgstr "在主窗口 ([kbd]main[/kbd]) 或新窗口 ([kbd]new[/kbd]) 打开目标页面" +msgstr "在主窗口([kbd]main[/kbd])或新窗口([kbd]new[/kbd])打开目标页面" #: libraries/config/messages.inc.php:304 msgid "Logo link target" -msgstr "Logo 链接目标" +msgstr "徽标链接目标" #: libraries/config/messages.inc.php:305 msgid "Display server choice at the top of the navigation panel" -msgstr "在导航面板的顶部显示可选服务器" +msgstr "在导航面板顶部显示可选的服务器" #: libraries/config/messages.inc.php:306 msgid "Display servers selection" From b91e9d12cfd505df0785a6d8e6f9b7b7773df984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Fri, 30 Aug 2013 15:46:19 +0200 Subject: [PATCH 07/10] Translated using Weblate (Telugu) Currently translated at 13.2% (345 of 2609) --- po/te.po | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/po/te.po b/po/te.po index e7ab6b73ee..2201ad4cfa 100644 --- a/po/te.po +++ b/po/te.po @@ -7,16 +7,15 @@ msgstr "" "Project-Id-Version: phpMyAdmin 4.0.6-dev\n" "Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2013-07-29 15:07+0200\n" -"PO-Revision-Date: 2012-11-06 12:16+0200\n" -"Last-Translator: వీవెన్ \n" -"Language-Team: Telugu \n" +"PO-Revision-Date: 2013-08-30 15:46+0200\n" +"Last-Translator: Michal Čihař \n" +"Language-Team: Telugu \n" "Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 1.3-dev\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 1.7-dev\n" #: browse_foreigners.php:51 browse_foreigners.php:75 js/messages.php:344 #: libraries/DisplayResults.class.php:813 @@ -111,7 +110,7 @@ msgstr "" #: db_create.php:74 #, php-format msgid "Database %1$s has been created." -msgstr "%1$s డేటాబేసు సృష్టించబడింది" +msgstr "%1$s డేటాబేసు సృష్టించబడింది." #: db_datadict.php:51 libraries/operations.lib.php:36 msgid "Database comment: " @@ -276,7 +275,7 @@ msgstr "" #: db_export.php:33 db_printview.php:92 db_tracking.php:49 export.php:558 #: libraries/DBQbe.class.php:268 msgid "No tables found in database." -msgstr "డేటాబేస్ లో ఏ పట్టికలు లేవు" +msgstr "డేటాబేస్ లో ఏ పట్టికలు లేవు." #: db_export.php:40 libraries/DbSearch.class.php:438 server_export.php:25 msgid "Select All" @@ -7403,7 +7402,7 @@ msgstr "డేటాబేసుకు ఈ పేరు పెట్టండి #: libraries/operations.lib.php:115 #, php-format msgid "Database %s has been dropped." -msgstr "%s డేటాబేస్ తుడిచివేయడమైనది" +msgstr "%s డేటాబేస్ తుడిచివేయడమైనది." # మొదటి అనువాదము #: libraries/operations.lib.php:131 @@ -9340,7 +9339,7 @@ msgstr "" # మొదటి అనువాదము #: libraries/server_privileges.lib.php:1922 msgid "… keep the old one." -msgstr "… పాతదే ఉంచుము" +msgstr "… పాతదే ఉంచుము." #: libraries/server_privileges.lib.php:1923 msgid "… delete the old one from the user tables." @@ -11077,7 +11076,7 @@ msgstr "" # మొదటి అనువాదము #: server_status_variables.php:542 msgid "The number of pages created." -msgstr "సృష్టించబడిన పుటల సంఖ్య" +msgstr "సృష్టించబడిన పుటల సంఖ్య." #: server_status_variables.php:545 msgid "" @@ -11088,12 +11087,12 @@ msgstr "" # మొదటి అనువాదము #: server_status_variables.php:550 msgid "The number of pages read." -msgstr "చదివిన పుటల సంఖ్య" +msgstr "చదివిన పుటల సంఖ్య." # మొదటి అనువాదము #: server_status_variables.php:553 msgid "The number of pages written." -msgstr "వ్రాసిన పుటల సంఖ్య" +msgstr "వ్రాసిన పుటల సంఖ్య." #: server_status_variables.php:556 msgid "The number of row locks currently being waited for." From 2ca79320ee5e56525a06de8d3aaeca928d8c2056 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Sat, 31 Aug 2013 08:04:23 -0400 Subject: [PATCH 08/10] 4.0.6-rc2 --- README | 2 +- doc/conf.py | 2 +- libraries/Config.class.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README b/README index 36c0246f1d..49d5d82d3b 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ phpMyAdmin - Readme =================== -Version 4.0.6-rc1 +Version 4.0.6-rc2 A set of PHP-scripts to manage MySQL over the web. diff --git a/doc/conf.py b/doc/conf.py index 20c1c4be1d..476e591072 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -49,7 +49,7 @@ copyright = u'2012 - 2013, The phpMyAdmin devel team' # built documents. # # The short X.Y version. -version = '4.0.6-rc1' +version = '4.0.6-rc2' # The full version, including alpha/beta/rc tags. release = version diff --git a/libraries/Config.class.php b/libraries/Config.class.php index 30321d9b04..86b7dd1501 100644 --- a/libraries/Config.class.php +++ b/libraries/Config.class.php @@ -102,7 +102,7 @@ class PMA_Config */ function checkSystem() { - $this->set('PMA_VERSION', '4.0.6-rc1'); + $this->set('PMA_VERSION', '4.0.6-rc2'); /** * @deprecated */ From 9c47057449c9116e0e1b1de8540bd6544a2ddc89 Mon Sep 17 00:00:00 2001 From: shanyan baishui Date: Sat, 31 Aug 2013 16:18:46 +0200 Subject: [PATCH 09/10] Translated using Weblate (Simplified Chinese) Currently translated at 99.0% (2583 of 2609) --- po/zh_CN.po | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index 0c31e07b55..e48eaf01a0 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: phpMyAdmin 4.0.6-dev\n" "Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2013-07-29 15:07+0200\n" -"PO-Revision-Date: 2013-08-31 03:56+0200\n" +"PO-Revision-Date: 2013-08-31 16:18+0200\n" "Last-Translator: shanyan baishui \n" "Language-Team: Simplified Chinese " "\n" @@ -4959,49 +4959,49 @@ msgstr "快速访问图标的目标" msgid "" "Defines the minimum number of items (tables, views, routines and events) to " "display a filter box." -msgstr "显示快速搜索框的最少项目(表,视图,例程和事件)数量。" +msgstr "设置达到多少个项(表、视图、程序和事件)时将显示筛选框。" #: libraries/config/messages.inc.php:309 msgid "Minimum number of items to display the filter box" -msgstr "过滤框显示的最小条目数量" +msgstr "显示筛选框的最少项数" #: libraries/config/messages.inc.php:310 msgid "Minimum number of databases to display the database filter box" -msgstr "数据库搜索框显示的最少数据表数量" +msgstr "设置达到多少个数据库时将显示数据库筛选框" #: libraries/config/messages.inc.php:311 msgid "" "Group items in the navigation tree (determined by the separator defined " "below)" -msgstr "在导航列表中组合项目(以下述的分隔符来区分)" +msgstr "将导航树中的项分组(根据下面设置的分隔符分组)" #: libraries/config/messages.inc.php:312 msgid "Group items in the tree" -msgstr "在树列表中组合项目" +msgstr "分组树中的项" #: libraries/config/messages.inc.php:313 msgid "String that separates databases into different tree levels" -msgstr "将数据库分为不同树级的分割符" +msgstr "将数据库分为不同层级的字符串" #: libraries/config/messages.inc.php:314 msgid "Database tree separator" -msgstr "树状数据库分隔符" +msgstr "数据库树分隔符" #: libraries/config/messages.inc.php:315 msgid "String that separates tables into different tree levels" -msgstr "将表分为不同树级的分隔符" +msgstr "将表分为不同层级的字符串" #: libraries/config/messages.inc.php:316 msgid "Table tree separator" -msgstr "树形表分隔符" +msgstr "表树分隔符" #: libraries/config/messages.inc.php:317 msgid "Maximum table tree depth" -msgstr "数据表树最大深度" +msgstr "表树最大深度" #: libraries/config/messages.inc.php:318 msgid "Highlight server under the mouse cursor" -msgstr "高亮显示鼠标所在位置的服务器" +msgstr "高亮鼠标指针所在位置的服务器" #: libraries/config/messages.inc.php:319 msgid "Enable highlighting" @@ -5009,7 +5009,7 @@ msgstr "启用高亮" #: libraries/config/messages.inc.php:320 msgid "Maximum number of recently used tables; set 0 to disable" -msgstr "最近使用的表数的最大值;设为0则关闭" +msgstr "最近使用的表的最大数量;设为 0 为禁用" #: libraries/config/messages.inc.php:321 msgid "Recently used tables" @@ -5021,11 +5021,11 @@ msgstr "它们是编辑、复制和删除链接" #: libraries/config/messages.inc.php:323 msgid "Where to show the table row links" -msgstr "表中每行数据操作链接位置" +msgstr "表行链接显示位置" #: libraries/config/messages.inc.php:324 msgid "Use natural order for sorting table and database names" -msgstr "为数据库和数据表名使用自然排序" +msgstr "为表和数据库名使用自然排序" #: libraries/config/messages.inc.php:325 msgid "Natural order" @@ -5034,13 +5034,12 @@ msgstr "自然排序" #: libraries/config/messages.inc.php:326 libraries/config/messages.inc.php:340 #: libraries/config/messages.inc.php:342 msgid "Use only icons, only text or both" -msgstr "仅使用图标、文本或都使用" +msgstr "仅使用图标、文字或都有" #: libraries/config/messages.inc.php:327 -#, fuzzy #| msgid "Iconic navigation bar" msgid "Table navigation bar" -msgstr "导航条显示" +msgstr "表导航条" #: libraries/config/messages.inc.php:328 msgid "use GZip output buffering for increased speed in HTTP transfers" @@ -5054,9 +5053,7 @@ msgstr "GZip 输出缓冲" msgid "" "[kbd]SMART[/kbd] - i.e. descending order for columns of type TIME, DATE, " "DATETIME and TIMESTAMP, ascending order otherwise" -msgstr "" -"[kbd]SMART[/kbd] - 如:对 TIME、DATE、DATETIME 和 TIMESTAMP 类型的字段递减排" -"序,其他字段递增" +msgstr "[kbd]SMART[/kbd] - 即对 TIME、DATE、DATETIME 和 TIMESTAMP 类型的字段递减排序,其它字段递增" #: libraries/config/messages.inc.php:331 msgid "Default sorting order" From 1bab8bfeeaf508cbe5fb8ff7ed1b910b7faca3eb Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Mon, 2 Sep 2013 07:56:08 -0400 Subject: [PATCH 10/10] The rendering of "view output as text" should not be affected by the fix for the memory problems in export --- export.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/export.php b/export.php index 54ad70ddd2..065c0fbbd3 100644 --- a/export.php +++ b/export.php @@ -6,10 +6,17 @@ * @package PhpMyAdmin */ +/** + * If we are sending the export file (as opposed to just displaying it + * as text), we have to bypass the usual PMA_Response mechanism + */ +if ($_POST['output_format'] == 'sendit') { + define('PMA_BYPASS_GET_INSTANCE', 1); +} + /** * Get the variables sent or posted to this script and a core script */ -define('PMA_BYPASS_GET_INSTANCE', 1); require_once 'libraries/common.inc.php'; require_once 'libraries/zip.lib.php'; require_once 'libraries/plugin_interface.lib.php';