Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/ajax.js4
-rw-r--r--js/console.js236
-rw-r--r--js/functions.js7
-rw-r--r--js/messages.php6
-rw-r--r--js/navigation.js6
-rw-r--r--libraries/Console.class.php25
-rw-r--r--libraries/DatabaseInterface.class.php36
-rw-r--r--libraries/Footer.class.php60
-rw-r--r--libraries/Response.class.php4
-rw-r--r--test/classes/PMA_Footer_test.php12
-rw-r--r--themes/original/css/common.css.php43
-rw-r--r--themes/original/css/printview.css5
-rw-r--r--themes/pmahomme/css/common.css.php43
-rw-r--r--themes/pmahomme/css/printview.css5
14 files changed, 417 insertions, 75 deletions
diff --git a/js/ajax.js b/js/ajax.js
index 2aad4d0751..3e0752e1f8 100644
--- a/js/ajax.js
+++ b/js/ajax.js
@@ -348,7 +348,6 @@ var AJAX = {
.not('#page_nav_icons')
.not('#page_content')
.not('#selflink')
- .not('#session_debug')
.not('#pma_header')
.not('#pma_footer')
.not('#pma_demo')
@@ -404,9 +403,6 @@ var AJAX = {
if(data._errSubmitMsg){
msg = data._errSubmitMsg;
}
- if (data._debug) {
- $('#session_debug').replaceWith(data._debug);
- }
if (data._errors) {
$('<div/>', {id : 'pma_errors'})
.insertAfter('#selflink')
diff --git a/js/console.js b/js/console.js
index 8f8bcd00c6..3ca4f6431d 100644
--- a/js/console.js
+++ b/js/console.js
@@ -124,6 +124,7 @@ var PMA_console = {
PMA_consoleInput.initialize();
PMA_consoleMessages.initialize();
PMA_consoleBookmarks.initialize();
+ PMA_consoleDebug.initialize();
PMA_console.$consoleToolbar.children('.console_switch').click(PMA_console.toggle);
$(document).keydown(function(event) {
@@ -150,6 +151,10 @@ var PMA_console = {
PMA_console.showCard('#pma_console_options');
});
+ $('#pma_console .button.debug').click(function() {
+ PMA_console.showCard('#debug_console');
+ });
+
PMA_console.$consoleContent.click(function(event) {
if (event.target == this) {
PMA_consoleInput.focus();
@@ -159,6 +164,9 @@ var PMA_console = {
$('#pma_console .mid_layer').click(function() {
PMA_console.hideCard($(this).parent().children('.card'));
});
+ $('#debug_console .switch_button').click(function() {
+ PMA_console.hideCard($(this).closest('.card'));
+ });
$('#pma_bookmarks .switch_button').click(function() {
PMA_console.hideCard($(this).closest('.card'));
});
@@ -931,6 +939,26 @@ var PMA_consoleMessages = {
{db: $message.attr('targetdb'),
table: $message.attr('targettable')});
});
+ $targetMessage.find('.action.dbg_show_trace').click(function () {
+ var $message = $(this).closest('.message');
+ $message.addClass('show_trace');
+ $message.removeClass('hide_trace');
+ });
+ $targetMessage.find('.action.dbg_hide_trace').click(function () {
+ var $message = $(this).closest('.message');
+ $message.addClass('hide_trace');
+ $message.removeClass('show_trace');
+ });
+ $targetMessage.find('.action.dbg_show_args').click(function () {
+ var $message = $(this).closest('.message');
+ $message.addClass('show_args expanded');
+ $message.removeClass('hide_args collapsed');
+ });
+ $targetMessage.find('.action.dbg_hide_args').click(function () {
+ var $message = $(this).closest('.message');
+ $message.addClass('hide_args collapsed');
+ $message.removeClass('show_args expanded');
+ });
if (PMA_consoleInput._codemirror) {
$targetMessage.find('.query:not(.highlighted)').each(function(index, elem) {
CodeMirror.runMode($(elem).text(),
@@ -1071,6 +1099,214 @@ var PMA_consoleBookmarks = {
}
};
+var PMA_consoleDebug = {
+ initialize: function() {
+ // Try to get debug info after every AJAX request
+ $( document ).ajaxSuccess(function(event, xhr, settings, data) {
+ if (data._debug) {
+ PMA_consoleDebug.showLog(data._debug, settings.url);
+ }
+ });
+
+ // Show SQL debug info for first page load
+ if (typeof debugSQLInfo !== 'undefined' && debugSQLInfo !== 'null') {
+ $('#pma_console .button.debug').removeClass('hide');
+ }
+ else {
+ return;
+ }
+ PMA_consoleDebug.showLog(debugSQLInfo);
+ },
+ _formatFunctionCall: function(dbgStep) {
+ var functionName = '';
+ if ('class' in dbgStep) {
+ functionName += dbgStep.class;
+ functionName += dbgStep.type;
+ }
+ functionName += dbgStep.function;
+ if (dbgStep.args.length) {
+ functionName += '(...)';
+ }
+ else {
+ functionName += '()';
+ }
+ return functionName;
+ },
+ _formatFunctionArgs: function(dbgStep) {
+ var $args = $('<div>');
+ if (dbgStep.args.length) {
+ $args.append('<div class="message welcome">')
+ .append(
+ $('<div class="message welcome">')
+ .text(
+ PMA_sprintf(
+ PMA_messages.strConsoleDebugArgsSummary,
+ dbgStep.args.length
+ )
+ )
+ );
+ for (var i = 0; i < dbgStep.args.length; i++) {
+ $args.append(
+ $('<div class="message">')
+ .html(
+ '<pre>' +
+ escapeHtml(JSON.stringify(dbgStep.args[i], null, " ")) +
+ '</pre>'
+ )
+ );
+ }
+ }
+ return $args;
+ },
+ _formatFileName: function(dbgStep) {
+ var fileName = '';
+ if ('file' in dbgStep) {
+ fileName += dbgStep.file;
+ fileName += '#' + dbgStep.line;
+ }
+ return fileName;
+ },
+ _formatBackTrace: function(dbgTrace) {
+ var $traceElem = $('<div class="trace">');
+ $traceElem.append(
+ $('<div class="message welcome">')
+ );
+ var step, $stepElem;
+ for (var stepId in dbgTrace) {
+ if (dbgTrace.hasOwnProperty(stepId)) {
+ step = dbgTrace[stepId];
+ if (!Array.isArray(step) && typeof step !== 'object') {
+ $stepElem =
+ $('<div class="message traceStep collapsed hide_args">')
+ .append(
+ $('<span>').text(step)
+ );
+ }
+ else {
+ if (typeof step.args === 'string' && step.args) {
+ step.args = [step.args];
+ }
+ $stepElem =
+ $('<div class="message traceStep collapsed hide_args">')
+ .append(
+ $('<span class="function">').text(this._formatFunctionCall(step))
+ )
+ .append(
+ $('<span class="file">').text(this._formatFileName(step))
+ );
+ if (step.args.length) {
+ $stepElem
+ .append(
+ $('<span class="args">').html(this._formatFunctionArgs(step))
+ )
+ .prepend(
+ $('<div class="action_content">')
+ .append(
+ '<span class="action dbg_show_args">' +
+ PMA_messages.strConsoleDebugShowArgs +
+ '</span> '
+ )
+ .append(
+ '<span class="action dbg_hide_args">' +
+ PMA_messages.strConsoleDebugHideArgs +
+ '</span> '
+ )
+ );
+ }
+ }
+ $traceElem.append($stepElem);
+ }
+ }
+ return $traceElem;
+ },
+ showLog: function(debugInfo, url) {
+ $('#debug_console .debugLog').empty();
+ $("#debug_console .debug>.welcome").empty();
+ var debugJson = false;
+ if (typeof debugInfo === "object" && 'queries' in debugInfo) {
+ debugJson = debugInfo;
+ }
+ else if (typeof debugInfo === "string") {
+ try {
+ debugJson = JSON.parse(debugInfo);
+ } catch (e) {
+ debugJson = false;
+ }
+ if (debugJson && !('queries' in debugJson)) {
+ debugJson = false;
+ }
+ }
+ if (debugJson === false) {
+ $("#debug_console .debug>.welcome").text(
+ PMA_messages.strConsoleDebugError
+ );
+ return;
+ }
+ var allQueries = debugJson.queries;
+ var uniqueQueries = {};
+
+ var totalExec = allQueries.length;
+
+ // Calculate total time and make unique query array
+ var totalTime = 0;
+ var i, query;
+ for (i = 0; i < totalExec; ++i) {
+ totalTime += allQueries[i].time;
+ if (!(allQueries[i].hash in uniqueQueries)) {
+ uniqueQueries[allQueries[i].hash] = [];
+ }
+ uniqueQueries[allQueries[i].hash].push(allQueries[i]);
+ }
+ // Count total unique queries
+ var totalUnique = 0;
+ for (var hash in uniqueQueries) {
+ if (uniqueQueries.hasOwnProperty(hash)) {
+ ++totalUnique;
+ }
+ }
+ // Show summary
+ $("#debug_console .debug>.welcome").append(
+ $('<span class="debug_summary">').text(
+ PMA_sprintf(
+ PMA_messages.strConsoleDebugSummary,
+ totalUnique,
+ totalExec,
+ totalTime
+ )
+ )
+ );
+ if (url) {
+ $("#debug_console .debug>.welcome").append(
+ $('<span class="script_name">').text(url.split('?')[0])
+ );
+ }
+
+ for (i = 0; i < totalExec; ++i) {
+ query = $('<div class="message collapsed hide_trace">')
+ .append(
+ $('<div class="action_content">')
+ .append(
+ $('#debug_console .templates .debug_query').clone()
+ )
+ )
+ .append(
+ $('<div class="query">')
+ .text(allQueries[i].query)
+ );
+ query.find('.text.time span').text(allQueries[i].time);
+ if ('error' in allQueries[i]) {
+ query.append(
+ $('<div>').html(allQueries[i].error)
+ );
+ }
+ query.append(this._formatBackTrace(allQueries[i].trace));
+ $('#debug_console .debugLog').append(query);
+ }
+
+ PMA_consoleMessages._msgEventBinds($('#debug_console .message:not(.binded)'));
+ }
+};
+
/**
* Executed on page load
*/
diff --git a/js/functions.js b/js/functions.js
index 662cc0ffea..2868e3144e 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1831,7 +1831,8 @@ function codemirrorAutocompleteOnInputRead(instance) {
'ajax_request': true,
'token': PMA_commonParams.get('token'),
'server': PMA_commonParams.get('server'),
- 'db': PMA_commonParams.get('db')
+ 'db': PMA_commonParams.get('db'),
+ 'no_debug': true
};
var columnHintRender = function(elem, self, data) {
@@ -3924,6 +3925,7 @@ AJAX.registerOnload('functions.js', function () {
if ($('#update_recent_tables').length) {
$.get(
$('#update_recent_tables').attr('href'),
+ {no_debug: true},
function (data) {
if (typeof data !== 'undefined' && data.success === true) {
$('#pma_recent_list').html(data.list);
@@ -3941,7 +3943,8 @@ AJAX.registerOnload('functions.js', function () {
data: {
favorite_tables: (isStorageSupported('localStorage') && typeof window.localStorage.favorite_tables !== 'undefined')
? window.localStorage.favorite_tables
- : ''
+ : '',
+ no_debug: true
},
success: function (data) {
// Update localStorage.
diff --git a/js/messages.php b/js/messages.php
index 90256329b4..2b8cf3c4a4 100644
--- a/js/messages.php
+++ b/js/messages.php
@@ -584,8 +584,14 @@ $js_messages['phpErrorsBeingSubmitted'] = '<div class="error">'
. '" width="16" height="16" alt="ajax clock"/>'
. '</div>';
+// For console
$js_messages['strConsoleRequeryConfirm'] = __('Execute this query again?');
$js_messages['strConsoleDeleteBookmarkConfirm'] = __('Do you really want to delete this bookmark?');
+$js_messages['strConsoleDebugError'] = __('Some error occurred while getting SQL debug info.');
+$js_messages['strConsoleDebugSummary'] = __('%s queries executed %s times in %s seconds.');
+$js_messages['strConsoleDebugArgsSummary'] = __('%s argument(s) passed');
+$js_messages['strConsoleDebugShowArgs'] = __('Show arguments');
+$js_messages['strConsoleDebugHideArgs'] = __('Hide arguments');
$js_messages['strNoLocalStorage'] = __('Your web browser does not support local storage of settings or the quota limit has been reached, some features may not work properly for you. In Safari, such problem is commonly caused by "Private Mode Browsing".');
echo "var PMA_messages = new Array();\n";
diff --git a/js/navigation.js b/js/navigation.js
index bbcbdf4d3c..27f5f5fa3c 100644
--- a/js/navigation.js
+++ b/js/navigation.js
@@ -68,9 +68,6 @@ function loadChildNodes(isNode, $expandElem, callback) {
})
.slideDown('slow');
}
- if (data._debug){
- $('#session_debug').replaceWith(data._debug);
- }
if (data._errors) {
$errors = $(data._errors);
if ($errors.children().length > 0) {
@@ -873,7 +870,8 @@ function PMA_ensureNaviSettings(selflink) {
*/
function PMA_reloadNavigation(callback, paths) {
var params = {
- reload: true
+ reload: true,
+ no_debug: true
};
paths = paths || traverseNavigationForPaths();
$.extend(params, paths);
diff --git a/libraries/Console.class.php b/libraries/Console.class.php
index 4074effce1..c7c58e8857 100644
--- a/libraries/Console.class.php
+++ b/libraries/Console.class.php
@@ -244,6 +244,9 @@ class PMA_Console
. __('Bookmarks') . '</span></div>';
}
+ $output .= '<div class="button debug hide"><span>'
+ . __('Debug SQL') . '</span></div>';
+
$output .= '</div>'; // Toolbar end
// Console messages
@@ -267,6 +270,28 @@ class PMA_Console
// Dark the console while other cards cover it
$output .= '<div class="mid_layer"></div>';
+ // Debug SQL card
+ $output .= '<div class="card" id="debug_console">';
+ $output .= '<div class="toolbar"><div class="switch_button">'
+ . '<span>' . __('Debug SQL') . '</span>'
+ . '</div></div>'; // Toolbar
+ $output .= '<div class="content debug">';
+ $output .= '<div class="message welcome"></div>';
+ $output .= '<div class="debugLog"></div>';
+ $output .= '</div>'; // Content
+ $output .= '<div class="templates">'
+ . '<div class="debug_query">'
+ . '<span class="action collapse">' . __('Collapse') . '</span> '
+ . '<span class="action expand">' . __('Expand') . '</span> '
+ . '<span class="action dbg_show_trace">' . __('Show trace') . '</span> '
+ . '<span class="action dbg_hide_trace">' . __('Hide trace') . '</span> '
+ . '<span class="text time">' . __('Time taken:')
+ . ' <span></span>s'
+ . '</span>'
+ . '</div>'
+ . '</div>'; // Template
+ $output .= '</div>'; // Debug SQL card
+
// Bookmarks card:
if ($cfgBookmark) {
diff --git a/libraries/DatabaseInterface.class.php b/libraries/DatabaseInterface.class.php
index 78265a0ff8..2db709a690 100644
--- a/libraries/DatabaseInterface.class.php
+++ b/libraries/DatabaseInterface.class.php
@@ -135,28 +135,26 @@ class PMA_DatabaseInterface
*/
private function _dbgQuery($query, $link, $result, $time)
{
- $hash = md5($query);
-
- if (isset($_SESSION['debug']['queries'][$hash])) {
- $_SESSION['debug']['queries'][$hash]['count']++;
- } else {
- $_SESSION['debug']['queries'][$hash] = array();
- $error_message = $this->getError($link);
- if ($result == false && is_string($error_message)) {
- $_SESSION['debug']['queries'][$hash]['error']
- = '<b style="color:red">'
- . htmlspecialchars($error_message) . '</b>';
+ $dbgInfo = array();
+ $error_message = $this->getError($link);
+ if ($result == false && is_string($error_message)) {
+ $dbgInfo['error']
+ = '<span style="color:red">'
+ . htmlspecialchars($error_message) . '</span>';
+ }
+ $dbgInfo['count'] = 1;
+ $dbgInfo['query'] = htmlspecialchars($query);
+ $dbgInfo['time'] = $time;
+ // Get and slightly format backtrace
+ $dbgInfo['trace'] = debug_backtrace();
+ foreach ($dbgInfo['trace'] as $key => $step) {
+ if (isset($step['file'])) {
+ $dbgInfo['trace'][$key]['file'] = PMA_Error::relPath($step['file']);
}
- $_SESSION['debug']['queries'][$hash]['count'] = 1;
- $_SESSION['debug']['queries'][$hash]['query'] = htmlspecialchars($query);
- $_SESSION['debug']['queries'][$hash]['time'] = $time;
}
+ $dbgInfo['hash'] = md5($query);
- $_SESSION['debug']['queries'][$hash]['trace'][] = PMA_Error::formatBacktrace(
- debug_backtrace(),
- " ",
- "\n"
- );
+ $_SESSION['debug']['queries'][] = $dbgInfo;
}
/**
diff --git a/libraries/Footer.class.php b/libraries/Footer.class.php
index 19753ecee0..3334939a97 100644
--- a/libraries/Footer.class.php
+++ b/libraries/Footer.class.php
@@ -85,35 +85,51 @@ class PMA_Footer
}
/**
+ * Reomove recursions and iterator objects from an object
+ *
+ * @param object|array &$object Object to clean
+ * @param array $stack Stack used to keep track of recursion,
+ * need not be passed for the first time
+ *
+ * @return object Reference passed object
+ */
+ private static function _removeRecursion(&$object, $stack = array())
+ {
+ if ((is_object($object) || is_array($object)) && $object) {
+ if ($object instanceof Traversable) {
+ $object = "***ITERATOR***";
+ } else if (!in_array($object, $stack, true)) {
+ $stack[] = $object;
+ foreach ($object as &$subobject) {
+ self::_removeRecursion($subobject, $stack);
+ }
+ } else {
+ $object = "***RECURSION***";
+ }
+ }
+ return $object;
+ }
+
+ /**
* Renders the debug messages
*
* @return string
*/
public function getDebugMessage()
{
- $retval = '';
- if (! empty($_SESSION['debug'])) {
- $sum_time = 0;
- $sum_exec = 0;
- foreach ($_SESSION['debug']['queries'] as $query) {
- $sum_time += $query['count'] * $query['time'];
- $sum_exec += $query['count'];
- }
-
- $retval .= '<div id="session_debug">';
- $retval .= count($_SESSION['debug']['queries']) . ' queries executed ';
- $retval .= $sum_exec . ' times in ' . $sum_time . ' seconds';
- $retval .= '<pre>';
-
- ob_start();
- print_r($_SESSION['debug']);
- $retval .= ob_get_contents();
- ob_end_clean();
+ $retval = '\'null\'';
+ if ($GLOBALS['cfg']['DBG']['sql']
+ && empty($_REQUEST['no_debug'])
+ && !empty($_SESSION['debug'])
+ ) {
+ // Remove recursions and iterators from $_SESSION['debug']
+ self::_removeRecursion($_SESSION['debug']);
- $retval .= '</pre>';
- $retval .= '</div>';
+ $retval = JSON_encode($_SESSION['debug']);
$_SESSION['debug'] = array();
+ return json_last_error() ? '\'false\'' : $retval;
}
+ $_SESSION['debug'] = array();
return $retval;
}
@@ -323,7 +339,9 @@ class PMA_Footer
$url = $this->getSelfUrl();
$retval .= $this->_getSelfLink($url);
}
- $retval .= $this->getDebugMessage();
+ $this->_scripts->addCode(
+ 'var debugSQLInfo = ' . $this->getDebugMessage() . ';'
+ );
$retval .= $this->getErrorMessages();
$retval .= $this->_scripts->getDisplay();
if ($GLOBALS['cfg']['DBG']['demo']) {
diff --git a/libraries/Response.class.php b/libraries/Response.class.php
index 5c4f9a6c7e..129394b530 100644
--- a/libraries/Response.class.php
+++ b/libraries/Response.class.php
@@ -321,7 +321,9 @@ class PMA_Response
$this->addJSON('_displayMessage', $this->getHeader()->getMessage());
$debug = $this->_footer->getDebugMessage();
- if (/*overload*/mb_strlen($debug)) {
+ if (empty($_REQUEST['no_debug'])
+ && /*overload*/mb_strlen($debug)
+ ) {
$this->addJSON('_debug', $debug);
}
diff --git a/test/classes/PMA_Footer_test.php b/test/classes/PMA_Footer_test.php
index 47968d9d1b..3b64f7314d 100644
--- a/test/classes/PMA_Footer_test.php
+++ b/test/classes/PMA_Footer_test.php
@@ -111,23 +111,23 @@ class PMA_Footer_Test extends PHPUnit_Framework_TestCase
*/
public function testGetDebugMessage()
{
-
+ $GLOBALS['cfg']['DBG']['sql'] = true;
$_SESSION['debug']['queries'] = array(
- 'abc' => array(
+ array(
'count' => 1,
'time' => 0.2,
'query' => 'SELECT * FROM `pma_bookmark` WHERE 1',
),
- 'def' => array(
+ array(
'count' => 1,
'time' => 2.5,
'query' => 'SELECT * FROM `db` WHERE 1',
),
);
- $this->assertRegExp(
- '/<div id="session_debug">2 queries executed 2 times in 2.7 seconds'
- . '<pre>/',
+ $this->assertEquals(
+ '{"queries":[{"count":1,"time":0.2,"query":"SELECT * FROM `pma_bookmark` WHERE 1"},'
+ . '{"count":1,"time":2.5,"query":"SELECT * FROM `db` WHERE 1"}]}',
$this->object->getDebugMessage()
);
}
diff --git a/themes/original/css/common.css.php b/themes/original/css/common.css.php
index ee4cf21122..88be6f331e 100644
--- a/themes/original/css/common.css.php
+++ b/themes/original/css/common.css.php
@@ -43,7 +43,7 @@ body#loginform {
margin: 0;
}
-#page_content, #session_debug {
+#page_content {
margin: 0 .5em;
}
@@ -2674,7 +2674,7 @@ table.show_create td {
margin-<?php echo $left; ?>: 240px;
z-index: 100;
}
-#pma_console>.templates {
+#pma_console .templates {
display: none;
}
#pma_console .mid_text,
@@ -2760,7 +2760,7 @@ table.show_create td {
border-bottom: solid 1px #ccc;
padding-bottom: .2em;
}
-#pma_console .message.expanded .action_content {
+#pma_console .message.expanded>.action_content {
position: relative;
}
#pma_console .message:before,
@@ -2852,9 +2852,12 @@ html.ie8 #pma_console .message .action_content {
#pma_console .message .text {
background: #fff;
}
-#pma_console .message.collapsed:not(:hover) .action_content {
+#pma_console .message.collapsed>.action_content {
display: none;
}
+#pma_console .message.collapsed:hover>.action_content {
+ display: block;
+}
#pma_console .message .bookmark_label {
padding: 0 4px;
top: 0;
@@ -2925,6 +2928,38 @@ html.ie7 #pma_console .query_input {
margin: 0;
padding: 2px 4px;
}
+#pma_console .button.debug.hide {
+ display: none;
+}
+#debug_console .show_trace .trace,
+#debug_console .show_args .args {
+ display: block;
+}
+#debug_console .hide_trace .trace,
+#debug_console .hide_args .args,
+#debug_console .show_trace .action.dbg_show_trace,
+#debug_console .hide_trace .action.dbg_hide_trace,
+#debug_console .traceStep.hide_args .action.dbg_hide_args,
+#debug_console .traceStep.show_args .action.dbg_show_args {
+ display: none;
+}
+
+#debug_console .traceStep:after,
+#debug_console .debug>.welcome:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+#debug_console .debug_summary {
+ float: left;
+}
+#debug_console .traceStep .file,
+#debug_console .script_name {
+ float: right;
+}
+#debug_console .traceStep .args pre {
+ margin: 0;
+}
/* Code mirror console style*/
diff --git a/themes/original/css/printview.css b/themes/original/css/printview.css
index 66c35931a5..0b4d69de14 100644
--- a/themes/original/css/printview.css
+++ b/themes/original/css/printview.css
@@ -98,11 +98,6 @@
display: none;
}
- /* Hide the Debug div */
- #session_debug {
- display: none;
- }
-
/* Hide the #selflink div */
#selflink {
display: none;
diff --git a/themes/pmahomme/css/common.css.php b/themes/pmahomme/css/common.css.php
index 0c0bcf8995..2da9fd2d68 100644
--- a/themes/pmahomme/css/common.css.php
+++ b/themes/pmahomme/css/common.css.php
@@ -42,7 +42,7 @@ body#loginform {
margin: 0;
}
-#page_content, #session_debug {
+#page_content {
margin: 0 .5em;
}
@@ -2996,7 +2996,7 @@ table.show_create td {
position: relative;
margin-<?php echo $left; ?>: 240px;
}
-#pma_console>.templates {
+#pma_console .templates {
display: none;
}
#pma_console .mid_text,
@@ -3082,7 +3082,7 @@ table.show_create td {
border-bottom: solid 1px #ccc;
padding-bottom: .2em;
}
-#pma_console .message.expanded .action_content {
+#pma_console .message.expanded>.action_content {
position: relative;
}
#pma_console .message:before,
@@ -3174,9 +3174,12 @@ html.ie8 #pma_console .message .action_content {
#pma_console .message .text {
background: #fff;
}
-#pma_console .message.collapsed:not(:hover) .action_content {
+#pma_console .message.collapsed>.action_content {
display: none;
}
+#pma_console .message.collapsed:hover>.action_content {
+ display: block;
+}
#pma_console .message .bookmark_label {
padding: 0 4px;
top: 0;
@@ -3247,6 +3250,38 @@ html.ie7 #pma_console .query_input {
margin: 0;
padding: 2px 4px;
}
+#pma_console .button.debug.hide {
+ display: none;
+}
+#debug_console .show_trace .trace,
+#debug_console .show_args .args {
+ display: block;
+}
+#debug_console .hide_trace .trace,
+#debug_console .hide_args .args,
+#debug_console .show_trace .action.dbg_show_trace,
+#debug_console .hide_trace .action.dbg_hide_trace,
+#debug_console .traceStep.hide_args .action.dbg_hide_args,
+#debug_console .traceStep.show_args .action.dbg_show_args {
+ display: none;
+}
+
+#debug_console .traceStep:after,
+#debug_console .debug>.welcome:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+#debug_console .debug_summary {
+ float: left;
+}
+#debug_console .traceStep .file,
+#debug_console .script_name {
+ float: right;
+}
+#debug_console .traceStep .args pre {
+ margin: 0;
+}
/* Code mirror console style*/
diff --git a/themes/pmahomme/css/printview.css b/themes/pmahomme/css/printview.css
index 66c35931a5..0b4d69de14 100644
--- a/themes/pmahomme/css/printview.css
+++ b/themes/pmahomme/css/printview.css
@@ -98,11 +98,6 @@
display: none;
}
- /* Hide the Debug div */
- #session_debug {
- display: none;
- }
-
/* Hide the #selflink div */
#selflink {
display: none;