Assign codeMirrorEditor global var to the window object

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2022-06-30 11:37:29 -03:00
parent ef299ea809
commit 2341139e3d
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8
4 changed files with 57 additions and 60 deletions

View File

@ -23,7 +23,7 @@ let ajaxMessageCount = 0;
* Object containing CodeMirror editor of the query editor in SQL tab.
* @type {(object|boolean|null)}
*/
var codeMirrorEditor = false;
window.codeMirrorEditor = false;
/**
* Object containing CodeMirror editor of the inline query editor.
@ -744,9 +744,9 @@ Functions.confirmQuery = function (theForm1, sqlQuery1) {
Functions.checkSqlQuery = function (theForm) {
// get the textarea element containing the query
var sqlQuery;
if (codeMirrorEditor) {
codeMirrorEditor.save();
sqlQuery = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
window.codeMirrorEditor.save();
sqlQuery = window.codeMirrorEditor.getValue();
} else {
sqlQuery = theForm.elements.sql_query.value;
}
@ -768,8 +768,8 @@ Functions.checkSqlQuery = function (theForm) {
alert(Messages.strFormEmpty);
}
if (codeMirrorEditor) {
codeMirrorEditor.focus();
if (window.codeMirrorEditor) {
window.codeMirrorEditor.focus();
} else if (codeMirrorInlineEditor) {
codeMirrorInlineEditor.focus();
}
@ -1107,7 +1107,7 @@ Functions.setSelectOptions = function (theForm, theSelect, doCheck) {
*/
Functions.updateQueryParameters = function () {
if ($('#parameterized').is(':checked')) {
var query = codeMirrorEditor ? codeMirrorEditor.getValue() : $('#sqlquery').val();
var query = window.codeMirrorEditor ? window.codeMirrorEditor.getValue() : $('#sqlquery').val();
var allParameters = query.match(/:[a-zA-Z0-9_]+/g);
var parameters = [];
@ -1193,8 +1193,8 @@ Functions.teardownSqlQueryEditEvents = () => {
$(document).off('click', 'a.inline_edit_sql');
$(document).off('click', 'input#sql_query_edit_save');
$(document).off('click', 'input#sql_query_edit_discard');
if (codeMirrorEditor) {
codeMirrorEditor.off('blur');
if (window.codeMirrorEditor) {
window.codeMirrorEditor.off('blur');
} else {
$(document).off('blur', '#sqlquery');
}
@ -1209,8 +1209,8 @@ Functions.teardownSqlQueryEditEvents = () => {
codeMirrorInlineEditor.toTextArea();
codeMirrorInlineEditor = false;
}
if (codeMirrorEditor) {
$(codeMirrorEditor.getWrapperElement()).off('keydown');
if (window.codeMirrorEditor) {
$(window.codeMirrorEditor.getWrapperElement()).off('keydown');
}
};
@ -3636,9 +3636,9 @@ Functions.onloadCodeMirrorEditor = () => {
}
if ($elm.length > 0) {
if (typeof CodeMirror !== 'undefined') {
codeMirrorEditor = Functions.getSqlEditor($elm);
codeMirrorEditor.focus();
codeMirrorEditor.on('blur', Functions.updateQueryParameters);
window.codeMirrorEditor = Functions.getSqlEditor($elm);
window.codeMirrorEditor.focus();
window.codeMirrorEditor.on('blur', Functions.updateQueryParameters);
} else {
// without codemirror
$elm.trigger('focus').on('blur', Functions.updateQueryParameters);
@ -3651,10 +3651,10 @@ Functions.onloadCodeMirrorEditor = () => {
* @return {void}
*/
Functions.teardownCodeMirrorEditor = () => {
if (codeMirrorEditor) {
$('#sqlquery').text(codeMirrorEditor.getValue());
codeMirrorEditor.toTextArea();
codeMirrorEditor = false;
if (window.codeMirrorEditor) {
$('#sqlquery').text(window.codeMirrorEditor.getValue());
window.codeMirrorEditor.toTextArea();
window.codeMirrorEditor = false;
}
};
@ -3779,7 +3779,7 @@ Functions.onloadCreateView = function () {
}
if ($('textarea[name="view[as]"]').length !== 0) {
codeMirrorEditor = Functions.getSqlEditor($('textarea[name="view[as]"]'));
window.codeMirrorEditor = Functions.getSqlEditor($('textarea[name="view[as]"]'));
}
};
@ -3793,7 +3793,7 @@ Functions.createViewModal = function ($this) {
Functions.ajaxRemoveMessage($msg);
$('#createViewModalGoButton').on('click', function () {
if (typeof CodeMirror !== 'undefined') {
codeMirrorEditor.save();
window.codeMirrorEditor.save();
}
$msg = Functions.ajaxShowMessage();
$.post('index.php?route=/view/create', $('#createViewModal').find('form').serialize(), function (data) {
@ -3810,7 +3810,7 @@ Functions.createViewModal = function ($this) {
$('#createViewModal').find('.modal-body').first().html(data.message);
// Attach syntax highlighted editor
$('#createViewModal').on('shown.bs.modal', function () {
codeMirrorEditor = Functions.getSqlEditor($('#createViewModal').find('textarea'));
window.codeMirrorEditor = Functions.getSqlEditor($('#createViewModal').find('textarea'));
$('input:visible[type=text]', $('#createViewModal')).first().trigger('focus');
$('#createViewModal').off('shown.bs.modal');
});

View File

@ -8,7 +8,6 @@
*/
/* global isStorageSupported */ // js/config.js
/* global codeMirrorEditor:writable */ // js/functions.js
/* global firstDayOfCalendar, themeImagePath */ // templates/javascript/variables.twig
/* global variableNames */ // templates/server/status/monitor/index.twig
@ -139,10 +138,10 @@ window.AJAX.registerOnload('server/status/monitor.js', function () {
$('div.tabLinks').show();
$('#loadingMonitorIcon').remove();
// Codemirror is loaded on demand so we might need to initialize it
if (! codeMirrorEditor) {
if (! window.codeMirrorEditor) {
var $elm = $('#sqlquery');
if ($elm.length > 0 && typeof CodeMirror !== 'undefined') {
codeMirrorEditor = CodeMirror.fromTextArea(
window.codeMirrorEditor = CodeMirror.fromTextArea(
$elm[0],
{
lineNumbers: true,
@ -2012,14 +2011,14 @@ window.AJAX.registerOnload('server/status/monitor.js', function () {
var rowData = $(this).parent().data('query');
var query = rowData.argument || rowData.sql_text;
if (codeMirrorEditor) {
if (window.codeMirrorEditor) {
// TODO: somehow Functions.sqlPrettyPrint messes up the query, needs be fixed
// query = Functions.sqlPrettyPrint(query);
codeMirrorEditor.setValue(query);
window.codeMirrorEditor.setValue(query);
// Codemirror is bugged, it doesn't refresh properly sometimes.
// Following lines seem to fix that
setTimeout(function () {
codeMirrorEditor.refresh();
window.codeMirrorEditor.refresh();
}, 50);
} else {
$('#sqlquery').val(query);
@ -2045,8 +2044,8 @@ window.AJAX.registerOnload('server/status/monitor.js', function () {
profilingChart.destroy();
}
$('#queryAnalyzerDialog').find('div.placeHolder').html('');
if (codeMirrorEditor) {
codeMirrorEditor.setValue('');
if (window.codeMirrorEditor) {
window.codeMirrorEditor.setValue('');
} else {
$('#sqlquery').val('');
}
@ -2065,7 +2064,7 @@ window.AJAX.registerOnload('server/status/monitor.js', function () {
$.post('index.php?route=/server/status/monitor/query', {
'ajax_request': true,
'query': codeMirrorEditor ? codeMirrorEditor.getValue() : $('#sqlquery').val(),
'query': window.codeMirrorEditor ? window.codeMirrorEditor.getValue() : $('#sqlquery').val(),
'database': db,
'server': window.CommonParams.get('server')
}, function (responseData) {

View File

@ -8,7 +8,6 @@
*/
/* global isStorageSupported */ // js/config.js
/* global codeMirrorEditor */ // js/functions.js
/* global makeGrid */ // js/makegrid.js
/* global themeImagePath */ // templates/javascript/variables.twig
@ -95,8 +94,8 @@ Sql.setShowThisQuery = function () {
&& window.localStorage.showThisQuery === '1') {
$('input[name="show_query"]').prop('checked', true);
if (db === storedDb && table === storedTable) {
if (codeMirrorEditor) {
codeMirrorEditor.setValue(storedQuery);
if (window.codeMirrorEditor) {
window.codeMirrorEditor.setValue(storedQuery);
} else if (document.sqlform) {
document.sqlform.sql_query.value = storedQuery;
}
@ -202,8 +201,8 @@ const handleSimulateQueryButton = function () {
const deleteRegExp = new RegExp('^\\s*DELETE\\s+FROM\\s', 'i');
let query = '';
if (codeMirrorEditor) {
query = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
query = window.codeMirrorEditor.getValue();
} else {
query = $('#sqlquery').val();
}
@ -248,9 +247,9 @@ const selectContent = function (element) {
* @return {void}
*/
const setQuery = function (query) {
if (codeMirrorEditor) {
codeMirrorEditor.setValue(query);
codeMirrorEditor.focus();
if (window.codeMirrorEditor) {
window.codeMirrorEditor.setValue(query);
window.codeMirrorEditor.focus();
} else if (document.sqlform) {
document.sqlform.sql_query.value = query;
document.sqlform.sql_query.focus();
@ -269,13 +268,13 @@ const insertQuery = function (queryType) {
setQuery('');
return;
} else if (queryType === 'format') {
if (codeMirrorEditor) {
if (window.codeMirrorEditor) {
$('#querymessage').html(Messages.strFormatting +
'&nbsp;<img class="ajaxIcon" src="' +
themeImagePath + 'ajax_clock_small.gif" alt="">');
var params = {
'ajax_request': true,
'sql': codeMirrorEditor.getValue(),
'sql': window.codeMirrorEditor.getValue(),
'server': window.CommonParams.get('server')
};
$.ajax({
@ -284,7 +283,7 @@ const insertQuery = function (queryType) {
data: params,
success: function (data) {
if (data.success) {
codeMirrorEditor.setValue(data.sql);
window.codeMirrorEditor.setValue(data.sql);
}
$('#querymessage').html('');
},
@ -373,9 +372,9 @@ const insertValueQuery = function () {
}
/* CodeMirror support */
if (codeMirrorEditor) {
codeMirrorEditor.replaceSelection(columnsList);
codeMirrorEditor.focus();
if (window.codeMirrorEditor) {
window.codeMirrorEditor.replaceSelection(columnsList);
window.codeMirrorEditor.focus();
// IE support
} else if (document.selection) {
myQuery.focus();
@ -418,8 +417,8 @@ window.AJAX.registerTeardown('sql.js', function () {
$(document).off('click', 'th.column_heading.marker');
$(document).off('scroll', window);
$(document).off('keyup', '.filter_rows');
if (codeMirrorEditor) {
codeMirrorEditor.off('change');
if (window.codeMirrorEditor) {
window.codeMirrorEditor.off('change');
} else {
$('#sqlquery').off('input propertychange');
}
@ -452,13 +451,13 @@ window.AJAX.registerTeardown('sql.js', function () {
* @memberOf jQuery
*/
window.AJAX.registerOnload('sql.js', function () {
if (codeMirrorEditor || document.sqlform) {
if (window.codeMirrorEditor || document.sqlform) {
Sql.setShowThisQuery();
}
$(function () {
if (codeMirrorEditor) {
codeMirrorEditor.on('change', function () {
Sql.autoSave(codeMirrorEditor.getValue());
if (window.codeMirrorEditor) {
window.codeMirrorEditor.on('change', function () {
Sql.autoSave(window.codeMirrorEditor.getValue());
});
} else {
$('#sqlquery').on('input propertychange', function () {
@ -683,8 +682,8 @@ window.AJAX.registerOnload('sql.js', function () {
var db = $('input[name="db"]').val();
var table = $('input[name="table"]').val();
var query;
if (codeMirrorEditor) {
query = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
query = window.codeMirrorEditor.getValue();
} else {
query = $('#sqlquery').val();
}
@ -756,8 +755,8 @@ window.AJAX.registerOnload('sql.js', function () {
event.preventDefault();
var $form = $(this);
if (codeMirrorEditor) {
$form[0].elements.sql_query.value = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
$form[0].elements.sql_query.value = window.codeMirrorEditor.getValue();
}
if (! Functions.checkSqlQuery($form[0])) {
return false;
@ -946,8 +945,8 @@ window.AJAX.registerOnload('sql.js', function () {
var delimiter = $('#id_sql_delimiter').val();
var dbName = $form.find('input[name="db"]').val();
if (codeMirrorEditor) {
query = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
query = window.codeMirrorEditor.getValue();
} else {
query = $('#sqlquery').val();
}
@ -1243,7 +1242,7 @@ window.AJAX.registerOnload('sql.js', function () {
/**
* Check if there is any saved query
*/
if (codeMirrorEditor || document.sqlform) {
if (window.codeMirrorEditor || document.sqlform) {
Sql.checkSavedQuery();
}
});

View File

@ -1,6 +1,5 @@
/* global ColumnType, DataTable, JQPlotChartFactory */ // js/chart.js
/* global codeMirrorEditor */ // js/functions.js
var chartData = {};
var tempChartTitle;
@ -362,8 +361,8 @@ window.AJAX.registerOnload('table/chart.js', function () {
// handler for ajax form submission
$('#tblchartform').on('submit', function () {
var $form = $(this);
if (codeMirrorEditor) {
$form[0].elements.sql_query.value = codeMirrorEditor.getValue();
if (window.codeMirrorEditor) {
$form[0].elements.sql_query.value = window.codeMirrorEditor.getValue();
}
if (!Functions.checkSqlQuery($form[0])) {
return false;