diff --git a/js/console.js b/js/console.js
index d746108126..443528e2ec 100644
--- a/js/console.js
+++ b/js/console.js
@@ -943,6 +943,14 @@ var PMA_consoleMessages = {
});
$targetMessage.find('.action.dbg_show_trace').click(function () {
var $message = $(this).closest('.message');
+ if (!$message.find('.trace').length) {
+ PMA_consoleDebug.getQueryDetails(
+ $message.data('queryInfo'),
+ $message.data('totalTime'),
+ $message
+ );
+ PMA_consoleMessages._msgEventBinds($message.find('.message:not(.binded)'));
+ }
$message.addClass('show_trace');
$message.removeClass('hide_trace');
});
@@ -1332,16 +1340,29 @@ var PMA_consoleDebug = {
.append(
$('
')
.text(queryText)
- );
+ )
+ .data('queryInfo', queryInfo)
+ .data('totalTime', totalTime);
if (grouped) {
$query.find('.text.count').removeClass('hide');
$query.find('.text.count span').text(count);
}
$query.find('.text.time span').text(queryTime + 's (' + ((queryTime * 100) / totalTime).toFixed(3) + '%)');
- if (grouped) {
+ return $query;
+ },
+ _appendQueryExtraInfo: function(query, $elem) {
+ if ('error' in query) {
+ $elem.append(
+ $('
').html(query.error)
+ );
+ }
+ $elem.append(this._formatBackTrace(query.trace));
+ },
+ getQueryDetails: function(queryInfo, totalTime, $query) {
+ if (Array.isArray(queryInfo)) {
var $singleQuery;
- for (i in queryInfo) {
+ for (var i in queryInfo) {
$singleQuery = $('
')
.text( (parseInt(i) + 1) + '.' )
.append(
@@ -1359,16 +1380,6 @@ var PMA_consoleDebug = {
} else {
this._appendQueryExtraInfo(queryInfo, $query);
}
-
- return $query;
- },
- _appendQueryExtraInfo: function(query, $elem) {
- if ('error' in query) {
- $elem.append(
- $('
').html(query.error)
- );
- }
- $elem.append(this._formatBackTrace(query.trace));
},
showLog: function(debugInfo, url) {
this._lastDebugInfo.debugInfo = debugInfo;