diff options
author | Christian Foellmann <foellmann@foe-services.de> | 2015-04-15 15:03:13 +0300 |
---|---|---|
committer | Christian Foellmann <foellmann@foe-services.de> | 2015-04-15 15:03:13 +0300 |
commit | a7efaf08fd806c8b1b514ab71df9af5ad317a0cf (patch) | |
tree | 4ed845ee181013dd750becd5348342adea5d0661 | |
parent | f33ecb56244f98b81914369f3d88cc48bf5c1645 (diff) |
UPDATE 4.4.24.4.2
33 files changed, 95 insertions, 35 deletions
@@ -1,6 +1,19 @@ phpMyAdmin - ChangeLog ====================== +4.4.2.0 (2015-04-13) +- bug #4835 PMA_hideShowConnection not called after submit_num_fields +- bug #4836 Server warning after moving from console to direct clicks +- bug #4837 Duplicate new version notification when using the "Back" button +- bug #4839 DOC link in setting is broken +- bug #4841 Status page: Mislukte pogingen per uur value is incorrect +- bug MIME Transformation link fixed +- bug #4838 Prevents console window from moving out of the screen height +- bug #4829 Create procedure via SQL Editor not more possible +- bug #4833 CSS and Javascript are not compressed +- bug #4849 Functions accessed from navigation do not load on ajax dialog +- bug #4850 Relation view on 1920 + 4.4.1.1 (2015-04-08) - bug #4846 Web server's error log is flooded @@ -15,7 +15,7 @@ phpMyAdmin - Readme =================== -Version 4.4.1.1 +Version 4.4.2 A set of PHP-scripts to manage MySQL over the web. diff --git a/js/console.js b/js/console.js index 1eaaa0d736..6523c770e3 100644 --- a/js/console.js +++ b/js/console.js @@ -432,6 +432,9 @@ var PMA_consoleResizer = { * @return void */ _mousemove: function(event) { + if (event.pageY < 35) { + event.pageY = 35 + } PMA_consoleResizer._resultHeight = PMA_consoleResizer._height + (PMA_consoleResizer._posY -event.pageY); // Content min-height is 32, if adjusting height small than it we'll move it out of the page if(PMA_consoleResizer._resultHeight <= 32) { diff --git a/js/functions.js b/js/functions.js index 90c5d0ec7b..9e49f2cf9f 100644 --- a/js/functions.js +++ b/js/functions.js @@ -276,7 +276,8 @@ function PMA_current_version(data) /* Security update */ htmlClass = 'error'; } - $('#maincontainer').after('<div class="' + htmlClass + '">' + message + '</div>'); + $('#newer_version_notice').remove(); + $('#maincontainer').after('<div id="newer_version_notice" class="' + htmlClass + '">' + message + '</div>'); } if (latest === current) { version_information_message = ' (' + PMA_messages.strUpToDate + ')'; @@ -2727,6 +2728,7 @@ AJAX.registerOnload('functions.js', function () { $("#page_content").html(data.message); PMA_highlightSQL($('#page_content')); PMA_verifyColumnsProperties(); + PMA_hideShowConnection($('.create_table_form select[name=tbl_storage_engine]')); PMA_ajaxRemoveMessage($msgbox); } else { PMA_ajaxShowMessage(data.error); diff --git a/js/get_image.js.php b/js/get_image.js.php index c541bdd496..7ac1ffd410 100644 --- a/js/get_image.js.php +++ b/js/get_image.js.php @@ -17,6 +17,13 @@ header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT'); define('PMA_MINIMUM_COMMON', true); require_once './libraries/common.inc.php'; +require_once './libraries/OutputBuffering.class.php'; +$buffer = PMA_OutputBuffering::getInstance(); +$buffer->start(); +register_shutdown_function(function() { + echo PMA_OutputBuffering::getInstance()->getContents(); +}); + // Get the data for the sprites, if it's available if (is_readable($_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php')) { include $_SESSION['PMA_Theme']->getPath() . '/sprites.lib.php'; diff --git a/js/get_scripts.js.php b/js/get_scripts.js.php index fdeddf4c3b..742213e0f1 100644 --- a/js/get_scripts.js.php +++ b/js/get_scripts.js.php @@ -17,6 +17,23 @@ header('Content-Type: text/javascript; charset=UTF-8'); // Enable browser cache for 1 hour header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT'); +// When a token is not presented, even though whitelisted arrays are removed +// in PMA_removeRequestVars(). This is a workaround for that. +$_GET['scripts'] = json_encode($_GET['scripts']); + +// Avoid loading the full common.inc.php because this would add many +// non-js-compatible stuff like DOCTYPE +define('PMA_MINIMUM_COMMON', true); +require_once './libraries/common.inc.php'; + +include_once './libraries/OutputBuffering.class.php'; +$buffer = PMA_OutputBuffering::getInstance(); +$buffer->start(); +register_shutdown_function(function() { + echo PMA_OutputBuffering::getInstance()->getContents(); +}); + +$_GET['scripts'] = json_decode($_GET['scripts']); if (! empty($_GET['scripts']) && is_array($_GET['scripts'])) { foreach ($_GET['scripts'] as $script) { // Sanitise filename diff --git a/js/line_counts.php b/js/line_counts.php index fbff49d7b5..32930d9b25 100644 --- a/js/line_counts.php +++ b/js/line_counts.php @@ -14,7 +14,7 @@ define('LINE_COUNTS', true); $LINE_COUNT = array(); $LINE_COUNT["error_report.js"] = 338; -$LINE_COUNT["functions.js"] = 4537; +$LINE_COUNT["functions.js"] = 4539; $LINE_COUNT["db_central_columns.js"] = 197; $LINE_COUNT["jquery/jquery-ui-timepicker-addon.js"] = 2223; $LINE_COUNT["jquery/jquery.cookie.js"] = 91; @@ -191,7 +191,7 @@ $LINE_COUNT["tbl_tracking.js"] = 95; $LINE_COUNT["makegrid.js"] = 1978; $LINE_COUNT["export.js"] = 401; $LINE_COUNT["doclinks.js"] = 365; -$LINE_COUNT["console.js"] = 1029; +$LINE_COUNT["console.js"] = 1032; $LINE_COUNT["transformations/json.js"] = 17; $LINE_COUNT["transformations/image_upload.js"] = 28; $LINE_COUNT["transformations/xml.js"] = 18; diff --git a/js/messages.php b/js/messages.php index 05b9ee4ae4..07fd963c51 100644 --- a/js/messages.php +++ b/js/messages.php @@ -26,6 +26,13 @@ session_write_close(); require_once './libraries/js_escape.lib.php'; require_once './libraries/Util.class.php'; +require_once './libraries/OutputBuffering.class.php'; +$buffer = PMA_OutputBuffering::getInstance(); +$buffer->start(); +register_shutdown_function(function() { + echo PMA_OutputBuffering::getInstance()->getContents(); +}); + $js_messages['strNoDropDatabases'] = __('"DROP DATABASE" statements are disabled.'); if ($cfg['AllowUserDropDatabase']) { $js_messages['strNoDropDatabases'] = ''; diff --git a/js/whitelist.php b/js/whitelist.php index 0f64f5ce32..af9ec56fcf 100644 --- a/js/whitelist.php +++ b/js/whitelist.php @@ -22,6 +22,13 @@ require_once './libraries/common.inc.php'; // Close session early as we won't write anything there session_write_close(); +require_once './libraries/OutputBuffering.class.php'; +$buffer = PMA_OutputBuffering::getInstance(); +$buffer->start(); +register_shutdown_function(function() { + echo PMA_OutputBuffering::getInstance()->getContents(); +}); + echo "var PMA_gotoWhitelist = new Array();\n"; $i = -1; foreach ($GLOBALS['goto_whitelist'] as $one_whitelist) { diff --git a/libraries/Config.class.php b/libraries/Config.class.php index 6e98bccdcd..7a52f9ff4e 100644 --- a/libraries/Config.class.php +++ b/libraries/Config.class.php @@ -114,7 +114,7 @@ class PMA_Config */ function checkSystem() { - $this->set('PMA_VERSION', '4.4.1.1'); + $this->set('PMA_VERSION', '4.4.2'); /** * @deprecated */ diff --git a/libraries/OutputBuffering.class.php b/libraries/OutputBuffering.class.php index fc25f01686..aff498f58e 100644 --- a/libraries/OutputBuffering.class.php +++ b/libraries/OutputBuffering.class.php @@ -109,7 +109,6 @@ class PMA_OutputBuffering $buffer->_content = ob_get_contents(); ob_end_clean(); } - PMA_Response::response(); } /** diff --git a/libraries/Response.class.php b/libraries/Response.class.php index bf41cca85b..5c4f9a6c7e 100644 --- a/libraries/Response.class.php +++ b/libraries/Response.class.php @@ -98,6 +98,7 @@ class PMA_Response if (! defined('TESTSUITE')) { $buffer = PMA_OutputBuffering::getInstance(); $buffer->start(); + register_shutdown_function('PMA_Response::response'); } $this->_header = new PMA_Header(); $this->_HTML = ''; diff --git a/libraries/Util.class.php b/libraries/Util.class.php index 780bade05e..32f9150ba8 100644 --- a/libraries/Util.class.php +++ b/libraries/Util.class.php @@ -1498,19 +1498,19 @@ class PMA_Util // If we don't want any zeros after the comma just add the thousand separator if ($noTrailingZero) { - $value = self::localizeNumber( + $localizedValue = self::localizeNumber( preg_replace('/(?<=\d)(?=(\d{3})+(?!\d))/', ',', $value) ); } else { //number_format is not multibyte safe, str_replace is safe - $value = self::localizeNumber(number_format($value, $digits_right)); + $localizedValue = self::localizeNumber(number_format($value, $digits_right)); } if ($originalValue != 0 && floatval($value) == 0) { - return ' <' . (1 / self::pow(10, $digits_right)) . ' ' . $unit; + return ' <' . self::localizeNumber((1 / self::pow(10, $digits_right))) . ' ' . $unit; } - return $sign . $value . ' ' . $unit; + return $sign . $localizedValue . ' ' . $unit; } // end of the 'formatNumber' function /** diff --git a/libraries/common.inc.php b/libraries/common.inc.php index e859199ca0..ac243980fd 100644 --- a/libraries/common.inc.php +++ b/libraries/common.inc.php @@ -495,7 +495,9 @@ if ($token_mismatch) { /* Permit redirection with token-mismatch in url.php */ 'url', /* Permit session expiry flag */ - 'session_expired' + 'session_expired', + /* JS loading */ + 'scripts', 'call_done' ); /** * Allow changing themes in test/theme.php diff --git a/libraries/config/messages.inc.php b/libraries/config/messages.inc.php index 6985fa26d2..b880c648e4 100644 --- a/libraries/config/messages.inc.php +++ b/libraries/config/messages.inc.php @@ -249,7 +249,7 @@ $strConfigForm_Other_core_settings_desc $strConfigForm_Page_titles = __('Page titles'); $strConfigForm_Page_titles_desc = __( 'Specify browser\'s title bar text. Refer to ' - . '[doc@cfg_TitleTable]documentation[/doc] for magic strings that can be used ' + . '[doc@faq6-27]documentation[/doc] for magic strings that can be used ' . 'to get special values.' ); $strConfigForm_Query_window = __('Query window'); diff --git a/libraries/language_stats.inc.php b/libraries/language_stats.inc.php index 36555d86c2..9329e3562d 100644 --- a/libraries/language_stats.inc.php +++ b/libraries/language_stats.inc.php @@ -14,7 +14,7 @@ $GLOBALS["language_stats"] = array ( 'bs' => 14, 'ca' => 99, 'ckb' => 17, - 'cs' => 92, + 'cs' => 96, 'cy' => 19, 'da' => 99, 'de' => 100, @@ -36,7 +36,7 @@ $GLOBALS["language_stats"] = array ( 'hy' => 3, 'ia' => 68, 'id' => 73, - 'it' => 79, + 'it' => 98, 'ja' => 73, 'ka' => 15, 'kk' => 10, @@ -57,12 +57,12 @@ $GLOBALS["language_stats"] = array ( 'nl' => 100, 'pa' => 2, 'pl' => 86, - 'pt_BR' => 99, + 'pt_BR' => 100, 'pt' => 59, 'ro' => 59, 'ru' => 96, 'si' => 65, - 'sk' => 83, + 'sk' => 84, 'sl' => 100, 'sq' => 97, 'sr@latin' => 50, diff --git a/libraries/navigation/Nodes/Node_Function.class.php b/libraries/navigation/Nodes/Node_Function.class.php index 38a9c8283b..6f88b409a2 100644 --- a/libraries/navigation/Nodes/Node_Function.class.php +++ b/libraries/navigation/Nodes/Node_Function.class.php @@ -35,10 +35,10 @@ class Node_Function extends Node_DatabaseChild $this->links = array( 'text' => 'db_routines.php?server=' . $GLOBALS['server'] . '&db=%2$s&item_name=%1$s&item_type=FUNCTION' - . '&edit_item=1&token=' . $_SESSION[' PMA_token '], + . '&execute_dialog=1&token=' . $_SESSION[' PMA_token '], 'icon' => 'db_routines.php?server=' . $GLOBALS['server'] . '&db=%2$s&item_name=%1$s&item_type=FUNCTION' - . '&export_item=1&token=' . $_SESSION[' PMA_token '] + . '&edit_item=1&token=' . $_SESSION[' PMA_token '] ); $this->classes = 'function'; } diff --git a/libraries/plugins/import/ImportSql.class.php b/libraries/plugins/import/ImportSql.class.php index 5e9c35f015..8226b57fcc 100644 --- a/libraries/plugins/import/ImportSql.class.php +++ b/libraries/plugins/import/ImportSql.class.php @@ -101,14 +101,16 @@ class ImportSql extends ImportPlugin */ private $_stringFunctions = array( self::READ_MB_FALSE => array( - 'substr' => 'substr', - 'strlen' => 'strlen', - 'strpos' => 'strpos', + 'substr' => 'substr', + 'strlen' => 'strlen', + 'strpos' => 'strpos', + 'strtoupper' => 'strtoupper', ), self::READ_MB_TRUE => array( - 'substr' => 'mb_substr', - 'strlen' => 'mb_strlen', - 'strpos' => 'mb_strpos', + 'substr' => 'mb_substr', + 'strlen' => 'mb_strlen', + 'strpos' => 'mb_strpos', + 'strtoupper' => 'mb_strtoupper', ), ); @@ -366,7 +368,8 @@ class ImportSql extends ImportPlugin } //If DELIMITER is found. - if ($specialChars === $this->_delimiterKeyword) { + $specialCharsUpper = $this->_stringFctToUse['strtoupper']($specialChars); + if ($specialCharsUpper === $this->_delimiterKeyword) { $this->_isInDelimiter = true; $this->_delimiterPosition = $this->_firstSearchChar + $this->_stringFctToUse['strlen']($specialChars); diff --git a/libraries/plugins/transformations/abstract/TextLinkTransformationsPlugin.class.php b/libraries/plugins/transformations/abstract/TextLinkTransformationsPlugin.class.php index 55157f2c1d..92e34920a7 100644 --- a/libraries/plugins/transformations/abstract/TextLinkTransformationsPlugin.class.php +++ b/libraries/plugins/transformations/abstract/TextLinkTransformationsPlugin.class.php @@ -52,7 +52,7 @@ abstract class TextLinkTransformationsPlugin extends TransformationsPlugin $transform_options = array ( 'string' => '<a href="' - . PMA_linkURL((isset($options[0]) ? $options[0] : '') . $append_part) + . (isset($options[0]) ? $options[0] : '') . $append_part . '" title="' . htmlspecialchars(isset($options[1]) ? $options[1] : '') . '" target="_new">' diff --git a/libraries/sql.lib.php b/libraries/sql.lib.php index cbeb3658ea..0489003b4c 100644 --- a/libraries/sql.lib.php +++ b/libraries/sql.lib.php @@ -420,7 +420,7 @@ function PMA_analyzeAndGetTableHtmlForProfilingResults( foreach ($profiling_results as $one_result) { if (isset($profiling_stats['states'][ucwords($one_result['Status'])])) { $states = $profiling_stats['states']; - $states[ucwords($one_result['Status'])]['time'] + $states[ucwords($one_result['Status'])]['total_time'] += $one_result['Duration']; $states[ucwords($one_result['Status'])]['calls']++; } else { diff --git a/locale/bg/LC_MESSAGES/phpmyadmin.mo b/locale/bg/LC_MESSAGES/phpmyadmin.mo Binary files differindex 7e7b5d11f1..1cdf68114a 100644 --- a/locale/bg/LC_MESSAGES/phpmyadmin.mo +++ b/locale/bg/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/cs/LC_MESSAGES/phpmyadmin.mo b/locale/cs/LC_MESSAGES/phpmyadmin.mo Binary files differindex fec89c490c..b5e18add3c 100644 --- a/locale/cs/LC_MESSAGES/phpmyadmin.mo +++ b/locale/cs/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/fr/LC_MESSAGES/phpmyadmin.mo b/locale/fr/LC_MESSAGES/phpmyadmin.mo Binary files differindex 2b262baa4e..46f41e8a84 100644 --- a/locale/fr/LC_MESSAGES/phpmyadmin.mo +++ b/locale/fr/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/it/LC_MESSAGES/phpmyadmin.mo b/locale/it/LC_MESSAGES/phpmyadmin.mo Binary files differindex 1fe373d821..62f3cb103b 100644 --- a/locale/it/LC_MESSAGES/phpmyadmin.mo +++ b/locale/it/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/nb/LC_MESSAGES/phpmyadmin.mo b/locale/nb/LC_MESSAGES/phpmyadmin.mo Binary files differindex 0c78bd810c..d4b71c3900 100644 --- a/locale/nb/LC_MESSAGES/phpmyadmin.mo +++ b/locale/nb/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/nl/LC_MESSAGES/phpmyadmin.mo b/locale/nl/LC_MESSAGES/phpmyadmin.mo Binary files differindex 77774daa75..3db97fb268 100644 --- a/locale/nl/LC_MESSAGES/phpmyadmin.mo +++ b/locale/nl/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/pt_BR/LC_MESSAGES/phpmyadmin.mo b/locale/pt_BR/LC_MESSAGES/phpmyadmin.mo Binary files differindex 11ecb96296..34fb636c67 100644 --- a/locale/pt_BR/LC_MESSAGES/phpmyadmin.mo +++ b/locale/pt_BR/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/ro/LC_MESSAGES/phpmyadmin.mo b/locale/ro/LC_MESSAGES/phpmyadmin.mo Binary files differindex e72d0bcbe5..b5ffd0bbea 100644 --- a/locale/ro/LC_MESSAGES/phpmyadmin.mo +++ b/locale/ro/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/sk/LC_MESSAGES/phpmyadmin.mo b/locale/sk/LC_MESSAGES/phpmyadmin.mo Binary files differindex 708c28550e..392fcb7d34 100644 --- a/locale/sk/LC_MESSAGES/phpmyadmin.mo +++ b/locale/sk/LC_MESSAGES/phpmyadmin.mo diff --git a/locale/tr/LC_MESSAGES/phpmyadmin.mo b/locale/tr/LC_MESSAGES/phpmyadmin.mo Binary files differindex 81450d217e..52a48992c3 100644 --- a/locale/tr/LC_MESSAGES/phpmyadmin.mo +++ b/locale/tr/LC_MESSAGES/phpmyadmin.mo diff --git a/phpmyadmin.css.php b/phpmyadmin.css.php index f7dcade2d2..050953e764 100644 --- a/phpmyadmin.css.php +++ b/phpmyadmin.css.php @@ -19,6 +19,13 @@ if (PMA_USR_BROWSER_AGENT == 'IE' && PMA_USR_BROWSER_VER == '6' && (ini_get('zlib.output_compression')) ) { @ini_set('zlib.output_compression', 'Off'); +} else { + include_once 'libraries/OutputBuffering.class.php'; + $buffer = PMA_OutputBuffering::getInstance(); + $buffer->start(); + register_shutdown_function(function() { + echo PMA_OutputBuffering::getInstance()->getContents(); + }); } // Send correct type: diff --git a/themes/original/css/common.css.php b/themes/original/css/common.css.php index 082d5db6ec..a1bb85ff93 100644 --- a/themes/original/css/common.css.php +++ b/themes/original/css/common.css.php @@ -251,9 +251,6 @@ fieldset .formelement { fieldset .formelement { clear: none; } - #foreign_keys.relationalTable td:first-child + td { - width: 25%; - } #foreign_keys.relationalTable td:first-child + td select { width: auto; margin-right: 1%; @@ -261,7 +258,6 @@ fieldset .formelement { #foreign_keys.relationalTable { width: 100%; } - } /* revert for Gecko */ diff --git a/themes/pmahomme/css/common.css.php b/themes/pmahomme/css/common.css.php index 35652ae8e4..37b9aa9931 100644 --- a/themes/pmahomme/css/common.css.php +++ b/themes/pmahomme/css/common.css.php @@ -535,9 +535,6 @@ fieldset .formelement { fieldset .formelement { clear: none; } - #foreign_keys.relationalTable td:first-child + td { - width: 25%; - } #foreign_keys.relationalTable td:first-child + td select { width: auto; margin-right: 1%; @@ -545,7 +542,6 @@ fieldset .formelement { #foreign_keys.relationalTable { width: 100%; } - } /* revert for Gecko */ |