diff --git a/js/ajax.js b/js/ajax.js
index 3c13151975..f43a2d0977 100644
--- a/js/ajax.js
+++ b/js/ajax.js
@@ -136,7 +136,7 @@ var AJAX = {
return true;
} else if (href && href.match(/^mailto/)) {
return true;
- } else if ($(this).hasClass('ui-datepicker-next') ||
+ } else if ($(this).hasClass('ui-datepicker-next') ||
$(this).hasClass('ui-datepicker-prev')
) {
return true;
@@ -255,6 +255,7 @@ var AJAX = {
$('#page_content').replaceWith(
"
" + data.message + "
"
);
+ PMA_highlightSQL($('#page_content'));
}
if (data._selflink) {
@@ -277,6 +278,7 @@ var AJAX = {
}
if (data._displayMessage) {
$('#page_content').prepend(data._displayMessage);
+ PMA_highlightSQL($('#page_content'));
}
$('#pma_errors').remove();
diff --git a/js/functions.js b/js/functions.js
index f680b35cd0..efde26fc5d 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1486,6 +1486,25 @@ function catchKeypressesFromSqlTextboxes(event) {
}
}
+/**
+ * Higlights SQL using CodeMirror.
+ */
+function PMA_highlightSQL(base)
+{
+ var $elm = base.find('code.sql');
+ $elm.each(function () {
+ var $sql = $(this);
+ /* We only care about visible elements to avoid double processing */
+ if ($sql.is(":visible")) {
+ var $highlight = $('');
+ $sql.append($highlight);
+ console.log('Highlight SQL: ' + $sql.text());
+ CodeMirror.runMode($sql.text(), 'text/x-mysql', $highlight[0]);
+ $sql.find('pre').hide();
+ }
+ });
+}
+
/**
* Show a message on the top of the page for an Ajax request
*
@@ -1597,6 +1616,7 @@ function PMA_ajaxShowMessage(message, timeout)
PMA_messages.strDismiss
);
}
+ PMA_highlightSQL($retval);
return $retval;
}
@@ -2109,6 +2129,7 @@ AJAX.registerOnload('functions.js', function () {
$.post($form.attr('action'), $form.serialize() + "&submit_num_fields=1", function (data) {
if (data.success) {
$("#page_content").html(data.message);
+ PMA_highlightSQL($('#page_content'));
PMA_verifyColumnsProperties();
PMA_ajaxRemoveMessage($msgbox);
} else {
@@ -2217,6 +2238,7 @@ AJAX.registerOnload('functions.js', function () {
PMA_commonParams.set('table', tbl);
PMA_commonActions.refreshMain(false, function () {
$('#page_content').html(data.message);
+ PMA_highlightSQL($('#page_content'));
});
} else {
PMA_ajaxShowMessage(data.error, false);
@@ -2247,6 +2269,7 @@ AJAX.registerOnload('functions.js', function () {
PMA_ajaxShowMessage(data.message);
$("").prependTo("#page_content");
$("#sqlqueryresults").html(data.sql_query);
+ PMA_highlightSQL($('#page_content'));
scrollToTop();
} else if (data.success === true) {
var $temp_div = $("");
@@ -2255,6 +2278,7 @@ AJAX.registerOnload('functions.js', function () {
PMA_ajaxShowMessage($success);
$("").prependTo("#page_content");
$("#sqlqueryresults").html(data.message);
+ PMA_highlightSQL($('#page_content'));
PMA_init_slider();
$("#sqlqueryresults").children("fieldset,br").remove();
scrollToTop();
@@ -2399,6 +2423,7 @@ AJAX.registerOnload('functions.js', function () {
$.post($the_form.attr('action'), $the_form.serialize() + '&change_pw=' + this_value, function (data) {
if (data.success === true) {
$("#page_content").prepend(data.message);
+ PMA_highlightSQL($('#page_content'));
$("#change_password_dialog").hide().remove();
$("#edit_user_dialog").dialog("close").remove();
PMA_ajaxRemoveMessage($msgbox);
@@ -2809,6 +2834,7 @@ function indexEditorDialog(url, title, callback_success, callback_failure)
$('')
.html(data.sql_query)
.prependTo('#page_content');
+ PMA_highlightSQL($('#page_content'));
}
$("#result_query .notice").remove();
$("#result_query").prepend(data.message);
@@ -3413,6 +3439,7 @@ AJAX.registerOnload('functions.js', function () {
PMA_ajaxShowMessage(data.message);
$("").prependTo("#page_content");
$("#sqlqueryresults").html(data.sql_query);
+ PMA_highlightSQL($('#page_content'));
} else {
PMA_ajaxShowMessage(data.error, false);
}
@@ -3446,10 +3473,7 @@ AJAX.registerOnload('functions.js', function () {
$elm.focus().bind('keydown', catchKeypressesFromSqlTextboxes);
}
}
- $elm = $('code.sql');
- if ($elm.length > 0) {
- CodeMirror.colorize($elm, 'text/x-mysql');
- }
+ PMA_highlightSQL($('body'));
});
AJAX.registerTeardown('functions.js', function () {
if (codemirror_editor) {
diff --git a/js/indexes.js b/js/indexes.js
index 919afe0011..b016f19463 100644
--- a/js/indexes.js
+++ b/js/indexes.js
@@ -159,6 +159,7 @@ AJAX.registerOnload('indexes.js', function () {
$('')
.html(data.sql_query)
.prependTo('#page_content');
+ PMA_highlightSQL($('#page_content'));
}
PMA_commonActions.refreshMain(false, function () {
$("a.ajax[href^=#indexes]").click();
diff --git a/js/server_privileges.js b/js/server_privileges.js
index 9da401a922..8a643c7625 100644
--- a/js/server_privileges.js
+++ b/js/server_privileges.js
@@ -101,6 +101,7 @@ function addUser($form)
PMA_ajaxShowMessage(data.message);
$("#result_query").remove();
$('#page_content').prepend(data.sql_query);
+ PMA_highlightSQL($('#page_content'));
$("#result_query").css({
'margin-top' : '0.5em'
});
@@ -234,6 +235,7 @@ AJAX.registerOnload('server_privileges.js', function () {
.find("form[name=usersForm]")
.append('')
.end();
+ PMA_highlightSQL($div);
displayPasswordGenerateButton();
PMA_showHints($div);
PMA_ajaxRemoveMessage($msgbox);
@@ -361,6 +363,8 @@ AJAX.registerOnload('server_privileges.js', function () {
$div.empty();
}
$div.html(data.message);
+ PMA_highlightSQL($div);
+ var $div = $('#edit_user_dialog');
displayPasswordGenerateButton();
$(checkboxes_sel).trigger("change");
PMA_ajaxRemoveMessage($msgbox);
@@ -430,6 +434,7 @@ AJAX.registerOnload('server_privileges.js', function () {
if (data.sql_query) {
$("#result_query").remove();
$('#page_content').prepend(data.sql_query);
+ PMA_highlightSQL($('#page_content'));
$("#result_query").css({
'margin-top' : '0.5em'
});
diff --git a/js/sql.js b/js/sql.js
index cdf06690d3..aeb681a708 100644
--- a/js/sql.js
+++ b/js/sql.js
@@ -304,6 +304,7 @@ AJAX.registerOnload('sql.js', function () {
$('')
.html(data.sql_query)
.prependTo('#page_content');
+ PMA_highlightSQL($('#page_content'));
}
});
PMA_reloadNavigation();
diff --git a/js/tbl_select.js b/js/tbl_select.js
index 742e17fb25..7df822864a 100644
--- a/js/tbl_select.js
+++ b/js/tbl_select.js
@@ -128,6 +128,7 @@ AJAX.registerOnload('tbl_select.js', function () {
} else {
$("#sqlqueryresults").html(data.error);
}
+ PMA_highlightSQL($('#sqlqueryresults'));
}); // end $.post()
});
diff --git a/js/tbl_structure.js b/js/tbl_structure.js
index 5f20efce79..9ea8d5f1bf 100644
--- a/js/tbl_structure.js
+++ b/js/tbl_structure.js
@@ -85,6 +85,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
.append(data.message)
.append(data.sql_query)
.show();
+ PMA_highlightSQL($('#page_content'));
$("#result_query .notice").remove();
$form.remove();
PMA_ajaxRemoveMessage($msg);
@@ -109,6 +110,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
$('')
.html(data.message)
.insertBefore('#page_content');
+ PMA_highlightSQL($('#page_content'));
PMA_verifyColumnsProperties();
} else {
PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + " : " + data.error, false);
@@ -135,6 +137,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
.html(data.message)
)
.show();
+ PMA_highlightSQL($('#page_content'));
PMA_verifyColumnsProperties();
} else {
$('#page_content').show();
@@ -180,6 +183,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
$('')
.html(data.sql_query)
.prependTo('#page_content');
+ PMA_highlightSQL($('#page_content'));
}
toggleRowColors($curr_row.next());
// Adjust the row numbers
@@ -235,6 +239,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
$('')
.html(data.sql_query)
.prependTo('#page_content');
+ PMA_highlightSQL($('#page_content'));
}
});
PMA_reloadNavigation();