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();