diff --git a/.eslintrc.json b/.eslintrc.json index 88b2bbe506..47915155a7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -13,9 +13,6 @@ "browser": true, "es6": true }, - "globals": { - "Functions": "readonly" - }, "rules": { "valid-jsdoc": ["error", { "prefer": { diff --git a/js/src/ajax.js b/js/src/ajax.js index 52125d3428..2ef1d04a94 100644 --- a/js/src/ajax.js +++ b/js/src/ajax.js @@ -1,8 +1,8 @@ import $ from 'jquery'; +import { Functions } from './functions.js'; +import { Navigation } from './navigation.js'; import { CommonParams } from './common.js'; -/* global Navigation */ - /** * This object handles ajax requests for pages. It also * handles the reloading of the main menu and scripts. @@ -436,8 +436,8 @@ const AJAX = { $('#modalOverlay').remove(); } $('fieldset.disabled_for_expiration').removeAttr('disabled').removeClass('disabled_for_expiration'); - AJAX.fireTeardown('functions.js'); - AJAX.fireOnload('functions.js'); + AJAX.fireTeardown('main.js'); + AJAX.fireOnload('main.js'); } if (typeof data.new_token !== 'undefined') { $('input[name=token]').val(data.new_token); diff --git a/js/src/common.js b/js/src/common.js index 783591061a..f1026c4b89 100644 --- a/js/src/common.js +++ b/js/src/common.js @@ -1,6 +1,7 @@ import $ from 'jquery'; - -/* global Navigation */ +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; +import { Navigation } from './navigation.js'; /** * Holds common parameters such as server, db, table, etc @@ -165,7 +166,7 @@ const CommonActions = { .trigger('click') .remove(); if (typeof callback !== 'undefined') { - window.AJAX.callback = callback; + AJAX.callback = callback; } } }; diff --git a/js/src/config.js b/js/src/config.js index cf9e6fc224..c48be3059b 100644 --- a/js/src/config.js +++ b/js/src/config.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** diff --git a/js/src/database/central_columns.js b/js/src/database/central_columns.js index 04ffe28c66..87e69c0514 100644 --- a/js/src/database/central_columns.js +++ b/js/src/database/central_columns.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** @@ -18,7 +20,7 @@ import { CommonParams } from '../common.js'; * */ -window.AJAX.registerTeardown('database/central_columns.js', function () { +AJAX.registerTeardown('database/central_columns.js', function () { $('.edit').off('click'); $('.edit_save_form').off('click'); $('.edit_cancel_form').off('click'); @@ -35,7 +37,7 @@ window.AJAX.registerTeardown('database/central_columns.js', function () { $('button[name=\'edit_central_columns\']').off('click'); }); -window.AJAX.registerOnload('database/central_columns.js', function () { +AJAX.registerOnload('database/central_columns.js', function () { $('#tableslistcontainer input,#tableslistcontainer select,#tableslistcontainer .default_value,#tableslistcontainer .open_enum_editor').hide(); $('#tableslistcontainer').find('.checkall').show(); $('#tableslistcontainer').find('.checkall_box').show(); @@ -69,8 +71,8 @@ window.AJAX.registerOnload('database/central_columns.js', function () { var argsep = CommonParams.get('arg_separator'); var editColumnData = editColumnList + '' + argsep + 'edit_central_columns_page=true' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'db=' + encodeURIComponent(CommonParams.get('db')) + argsep + 'server=' + CommonParams.get('server'); Functions.ajaxShowMessage(); - window.AJAX.source = $(this); - $.post('index.php?route=/database/central-columns', editColumnData, window.AJAX.responseHandler); + AJAX.source = $(this); + $.post('index.php?route=/database/central-columns', editColumnData, AJAX.responseHandler); }); $('#multi_edit_central_columns').on('submit', function (event) { event.preventDefault(); @@ -78,8 +80,8 @@ window.AJAX.registerOnload('database/central_columns.js', function () { var argsep = CommonParams.get('arg_separator'); var multiColumnEditData = $('#multi_edit_central_columns').serialize() + argsep + 'multi_edit_central_column_save=true' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'db=' + encodeURIComponent(CommonParams.get('db')) + argsep + 'server=' + CommonParams.get('server'); Functions.ajaxShowMessage(); - window.AJAX.source = $(this); - $.post('index.php?route=/database/central-columns', multiColumnEditData, window.AJAX.responseHandler); + AJAX.source = $(this); + $.post('index.php?route=/database/central-columns', multiColumnEditData, AJAX.responseHandler); }); $('#add_new').find('td').each(function () { if ($(this).attr('name') !== 'undefined') { diff --git a/js/src/database/events.js b/js/src/database/events.js index 71fb26a85c..002304f37d 100644 --- a/js/src/database/events.js +++ b/js/src/database/events.js @@ -1,8 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /* global Navigation */ -window.AJAX.registerTeardown('database/events.js', function () { +AJAX.registerTeardown('database/events.js', function () { $(document).off('click', 'a.ajax.add_anchor, a.ajax.edit_anchor'); $(document).off('click', 'a.ajax.export_anchor'); $(document).off('click', '#bulkActionExportButton'); @@ -533,7 +535,7 @@ const DatabaseEvents = { } }; -window.AJAX.registerOnload('database/events.js', function () { +AJAX.registerOnload('database/events.js', function () { /** * Attach Ajax event handlers for the Add/Edit functionality. */ diff --git a/js/src/database/multi_table_query.js b/js/src/database/multi_table_query.js index e01ec52f0e..5a101c50fe 100644 --- a/js/src/database/multi_table_query.js +++ b/js/src/database/multi_table_query.js @@ -1,15 +1,14 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * @fileoverview function used in QBE for DB * @name Database Operations * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js * @requires js/database/query_generator.js - * */ /** @@ -19,7 +18,7 @@ import { CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('database/multi_table_query.js', function () { +AJAX.registerTeardown('database/multi_table_query.js', function () { $('.tableNameSelect').each(function () { $(this).off('change'); }); @@ -27,7 +26,7 @@ window.AJAX.registerTeardown('database/multi_table_query.js', function () { $('#add_column_button').off('click'); }); -window.AJAX.registerOnload('database/multi_table_query.js', function () { +AJAX.registerOnload('database/multi_table_query.js', function () { var editor = Functions.getSqlEditor($('#MultiSqlquery'), {}, 'both'); $('.CodeMirror-line').css('text-align', 'left'); editor.setSize(-1, 50); diff --git a/js/src/database/operations.js b/js/src/database/operations.js index daa402b3d6..3e4d2844d3 100644 --- a/js/src/database/operations.js +++ b/js/src/database/operations.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /* global Navigation */ @@ -7,10 +9,7 @@ import { CommonActions, CommonParams } from '../common.js'; * @fileoverview function used in server privilege pages * @name Database Operations * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js - * */ /** @@ -26,14 +25,14 @@ import { CommonActions, CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('database/operations.js', function () { +AJAX.registerTeardown('database/operations.js', function () { $(document).off('submit', '#rename_db_form.ajax'); $(document).off('submit', '#copy_db_form.ajax'); $(document).off('submit', '#change_db_charset_form.ajax'); $(document).off('click', '#drop_db_anchor.ajax'); }); -window.AJAX.registerOnload('database/operations.js', function () { +AJAX.registerOnload('database/operations.js', function () { /** * Ajax event handlers for 'Rename Database' */ diff --git a/js/src/database/qbe.js b/js/src/database/qbe.js index 857fb6cbbb..35b825ed19 100644 --- a/js/src/database/qbe.js +++ b/js/src/database/qbe.js @@ -1,13 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * @fileoverview function used in QBE for DB * @name Database Operations * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js - * */ /** @@ -20,7 +19,7 @@ import $ from 'jquery'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('database/qbe.js', function () { +AJAX.registerTeardown('database/qbe.js', function () { $(document).off('change', 'select[name^=criteriaColumn]'); $(document).off('change', '#searchId'); $(document).off('click', '#saveSearch'); @@ -28,7 +27,7 @@ window.AJAX.registerTeardown('database/qbe.js', function () { $(document).off('click', '#deleteSearch'); }); -window.AJAX.registerOnload('database/qbe.js', function () { +AJAX.registerOnload('database/qbe.js', function () { Functions.getSqlEditor($('#textSqlquery'), {}, 'none'); $('#tblQbe').width($('#tblQbe').parent().width()); diff --git a/js/src/database/query_generator.js b/js/src/database/query_generator.js index 74a9ba3665..f8a9c8748e 100644 --- a/js/src/database/query_generator.js +++ b/js/src/database/query_generator.js @@ -1,13 +1,11 @@ import $ from 'jquery'; +import { Functions } from '../functions.js'; /** * @fileoverview function used in QBE for DB * @name Database Operations * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js - * */ function getFormatsText () { diff --git a/js/src/database/routines.js b/js/src/database/routines.js index 607dca79e1..938f4e99de 100644 --- a/js/src/database/routines.js +++ b/js/src/database/routines.js @@ -1,8 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /* global Navigation */ -window.AJAX.registerTeardown('database/routines.js', function () { +AJAX.registerTeardown('database/routines.js', function () { $(document).off('click', 'a.ajax.add_anchor'); $(document).off('click', 'a.ajax.edit_anchor'); $(document).off('click', 'a.ajax.exec_anchor'); @@ -870,7 +872,7 @@ const DatabaseRoutines = { } }; -window.AJAX.registerOnload('database/routines.js', function () { +AJAX.registerOnload('database/routines.js', function () { $(document).on('click', 'a.ajax.add_anchor', function (event) { event.preventDefault(); $.datepicker.initialized = false; diff --git a/js/src/database/search.js b/js/src/database/search.js index c59cf2784e..384fef2d3e 100644 --- a/js/src/database/search.js +++ b/js/src/database/search.js @@ -1,12 +1,11 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * JavaScript functions used on Database Search page * - * @requires jQuery - * @requires js/functions.js - * * @package PhpMyAdmin */ @@ -20,7 +19,7 @@ import { CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('database/search.js', function () { +AJAX.registerTeardown('database/search.js', function () { $('a.browse_results').off('click'); $('a.delete_results').off('click'); $('#buttonGo').off('click'); @@ -32,7 +31,7 @@ window.AJAX.registerTeardown('database/search.js', function () { $(document).off('submit', '#db_search_form.ajax'); }); -window.AJAX.registerOnload('database/search.js', function () { +AJAX.registerOnload('database/search.js', function () { /** Hide the table link in the initial search result */ var icon = Functions.getImage('s_tbl', '', { 'id': 'table-image' }).toString(); $('#table-info').prepend(icon).hide(); diff --git a/js/src/database/structure.js b/js/src/database/structure.js index ba8d08b59f..6678da12f5 100644 --- a/js/src/database/structure.js +++ b/js/src/database/structure.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /* global Navigation */ @@ -7,9 +9,7 @@ import { CommonParams } from '../common.js'; * @fileoverview functions used on the database structure page * @name Database Structure * - * @requires jQuery * @requires jQueryUI - * @required js/functions.js */ var DatabaseStructure = {}; @@ -28,7 +28,7 @@ window.DatabaseStructure = DatabaseStructure; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('database/structure.js', function () { +AJAX.registerTeardown('database/structure.js', function () { $(document).off('click', 'a.truncate_table_anchor.ajax'); $(document).off('click', 'a.drop_table_anchor.ajax'); $(document).off('click', '#real_end_input'); @@ -189,7 +189,7 @@ DatabaseStructure.fetchRealRowCount = function ($target) { }); }; -window.AJAX.registerOnload('database/structure.js', function () { +AJAX.registerOnload('database/structure.js', function () { /** * Event handler on select of "Make consistent with central list" */ @@ -208,12 +208,12 @@ window.AJAX.registerOnload('database/structure.js', function () { const data = $form.serialize() + argSep + 'ajax_request=true' + argSep + 'ajax_page_request=true'; Functions.ajaxShowMessage(); - window.AJAX.source = $form; + AJAX.source = $form; $.post( 'index.php?route=/database/structure/central-columns/make-consistent', data, - window.AJAX.responseHandler + AJAX.responseHandler ); $('#makeConsistentWithCentralListModal').modal('hide'); @@ -303,9 +303,9 @@ window.AJAX.registerOnload('database/structure.js', function () { var data = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; Functions.ajaxShowMessage(); - window.AJAX.source = $form; + AJAX.source = $form; - $.post(url, data, window.AJAX.responseHandler); + $.post(url, data, AJAX.responseHandler); }); /** diff --git a/js/src/database/tracking.js b/js/src/database/tracking.js index 1b90e8fcfe..7287baab68 100644 --- a/js/src/database/tracking.js +++ b/js/src/database/tracking.js @@ -1,10 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down the page */ -window.AJAX.registerTeardown('database/tracking.js', function () { +AJAX.registerTeardown('database/tracking.js', function () { $('body').off('click', '#trackedForm.ajax button[name="submit_mult"], #trackedForm.ajax input[name="submit_mult"]'); $('body').off('click', '#untrackedForm.ajax button[name="submit_mult"], #untrackedForm.ajax input[name="submit_mult"]'); $('body').off('click', 'a.delete_tracking_anchor.ajax'); @@ -13,7 +15,7 @@ window.AJAX.registerTeardown('database/tracking.js', function () { /** * Bind event handlers */ -window.AJAX.registerOnload('database/tracking.js', function () { +AJAX.registerOnload('database/tracking.js', function () { var $versions = $('#versions'); $versions.find('tr').first().find('th').append($('
')); $versions.tablesorter({ @@ -53,13 +55,13 @@ window.AJAX.registerOnload('database/tracking.js', function () { var question = window.Messages.strDeleteTrackingDataMultiple; $button.confirm(question, $form.attr('action'), function (url) { Functions.ajaxShowMessage(window.Messages.strDeletingTrackingData); - window.AJAX.source = $form; - $.post(url, submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post(url, submitData, AJAX.responseHandler); }); } else { Functions.ajaxShowMessage(); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); } }); @@ -73,8 +75,8 @@ window.AJAX.registerOnload('database/tracking.js', function () { var argsep = CommonParams.get('arg_separator'); var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'submit_mult=' + $button.val(); Functions.ajaxShowMessage(); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); }); /** @@ -86,11 +88,11 @@ window.AJAX.registerOnload('database/tracking.js', function () { var question = window.Messages.strDeleteTrackingData; $anchor.confirm(question, $anchor.attr('href'), function (url) { Functions.ajaxShowMessage(window.Messages.strDeletingTrackingData); - window.AJAX.source = $anchor; + AJAX.source = $anchor; var argSep = CommonParams.get('arg_separator'); var params = Functions.getJsConfirmCommonParam(this, $anchor.getPostData()); params += argSep + 'ajax_page_request=1'; - $.post(url, params, window.AJAX.responseHandler); + $.post(url, params, AJAX.responseHandler); }); }); }); diff --git a/js/src/database/triggers.js b/js/src/database/triggers.js index 1ce388b1f6..763edcb53f 100644 --- a/js/src/database/triggers.js +++ b/js/src/database/triggers.js @@ -1,8 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /* global Navigation */ -window.AJAX.registerTeardown('database/triggers.js', function () { +AJAX.registerTeardown('database/triggers.js', function () { $(document).off('click', 'a.ajax.add_anchor, a.ajax.edit_anchor'); $(document).off('click', 'a.ajax.export_anchor'); $(document).off('click', '#bulkActionExportButton'); @@ -508,7 +510,7 @@ const DatabaseTriggers = { } }; -window.AJAX.registerOnload('database/triggers.js', function () { +AJAX.registerOnload('database/triggers.js', function () { /** * Attach Ajax event handlers for the Add/Edit functionality. */ diff --git a/js/src/designer/database.js b/js/src/designer/database.js index 199c1fffbf..d424f7d742 100644 --- a/js/src/designer/database.js +++ b/js/src/designer/database.js @@ -1,3 +1,5 @@ +import { Functions } from '../functions.js'; + var designerTables = [ { name: 'pdf_pages', diff --git a/js/src/designer/history.js b/js/src/designer/history.js index 05b474d4ab..7622df748b 100644 --- a/js/src/designer/history.js +++ b/js/src/designer/history.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * @fileoverview function used in this file builds history tab and generates query. @@ -807,7 +809,7 @@ DesignerHistory.buildQuery = function () { }); }; -window.AJAX.registerTeardown('designer/history.js', function () { +AJAX.registerTeardown('designer/history.js', function () { vqbEditor = null; historyArray = []; selectField = []; @@ -817,7 +819,7 @@ window.AJAX.registerTeardown('designer/history.js', function () { $('#ok_edit_where').off('click'); }); -window.AJAX.registerOnload('designer/history.js', function () { +AJAX.registerOnload('designer/history.js', function () { $('#ok_edit_rename').on('click', function () { DesignerHistory.edit('Rename'); }); diff --git a/js/src/designer/init.js b/js/src/designer/init.js index c0fb710ecb..67ff146869 100644 --- a/js/src/designer/init.js +++ b/js/src/designer/init.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * Initializes the data required to run Designer, then fires it up. @@ -10,11 +11,11 @@ import $ from 'jquery'; /* global DesignerPage */ // js/designer/page.js /* global designerConfig */ // templates/database/designer/main.twig -window.AJAX.registerTeardown('designer/init.js', function () { +AJAX.registerTeardown('designer/init.js', function () { $('.trigger').off('click'); }); -window.AJAX.registerOnload('designer/init.js', function () { +AJAX.registerOnload('designer/init.js', function () { $('.trigger').on('click', function () { $('.panel').toggle('fast'); $(this).toggleClass('active'); diff --git a/js/src/designer/move.js b/js/src/designer/move.js index 7c877e2fcb..8b3602249d 100644 --- a/js/src/designer/move.js +++ b/js/src/designer/move.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /** @@ -17,12 +19,12 @@ var change = 0; // variable to track any change in designer layout. var showRelationLines = true; var alwaysShowText = false; -window.AJAX.registerTeardown('designer/move.js', function () { +AJAX.registerTeardown('designer/move.js', function () { $(document).off('fullscreenchange'); $('#selflink').show(); }); -window.AJAX.registerOnload('designer/move.js', function () { +AJAX.registerOnload('designer/move.js', function () { var $content = $('#page_content'); var $img = $('#toggleFullscreen').find('img'); var $span = $img.siblings('span'); @@ -2026,7 +2028,7 @@ DesignerMove.enableTableEvents = function (index, element) { DesignerMove.enablePageContentEvents(); }; -window.AJAX.registerTeardown('designer/move.js', function () { +AJAX.registerTeardown('designer/move.js', function () { $('#side_menu').off('mouseenter mouseleave'); $('#key_Show_left_menu').off('click'); $('#toggleFullscreen').off('click'); @@ -2076,7 +2078,7 @@ window.AJAX.registerTeardown('designer/move.js', function () { $('#page_content').off('mousemove'); }); -window.AJAX.registerOnload('designer/move.js', function () { +AJAX.registerOnload('designer/move.js', function () { $('#key_Show_left_menu').on('click', function () { DesignerMove.showLeftMenu(this); return false; diff --git a/js/src/designer/page.js b/js/src/designer/page.js index 5af3fb7bde..a957e50407 100644 --- a/js/src/designer/page.js +++ b/js/src/designer/page.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { Functions } from '../functions.js'; /* global DesignerOfflineDB */ // js/designer/database.js /* global DesignerMove */ // js/designer/move.js diff --git a/js/src/drag_drop_import.js b/js/src/drag_drop_import.js index aeb111d647..d86f0c745e 100644 --- a/js/src/drag_drop_import.js +++ b/js/src/drag_drop_import.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /* This script handles PMA Drag Drop Import, loaded only when configuration is enabled.*/ @@ -296,7 +298,7 @@ var DragDropImport = { $('.pma_sql_import_status').slideDown(); for (var i = 0; i < files.length; i++) { var ext = (DragDropImport.getExtension(files[i].name)); - var hash = window.AJAX.hash(++DragDropImport.uploadCount); + var hash = AJAX.hash(++DragDropImport.uploadCount); var $sqlImportStatusDiv = $('.pma_sql_import_status div'); $sqlImportStatusDiv.append('
  • ' + diff --git a/js/src/error_report.js b/js/src/error_report.js index ee0e1ae425..99426d1cee 100644 --- a/js/src/error_report.js +++ b/js/src/error_report.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -224,8 +226,8 @@ var ErrorReport = { 'url': window.location.href, 'exception_type': 'js' }; - if (window.AJAX.scriptHandler.scripts.length > 0) { - reportData.scripts = window.AJAX.scriptHandler.scripts.map( + if (AJAX.scriptHandler.scripts.length > 0) { + reportData.scripts = AJAX.scriptHandler.scripts.map( function (script) { return script; } @@ -259,13 +261,13 @@ var ErrorReport = { } }, /** - * Automatically wraps the callback in window.AJAX.registerOnload + * Automatically wraps the callback in AJAX.registerOnload * * @return {void} */ wrapAjaxOnloadCallback: function () { - var oldOnload = window.AJAX.registerOnload; - window.AJAX.registerOnload = function (file, func) { + var oldOnload = AJAX.registerOnload; + AJAX.registerOnload = function (file, func) { var wrappedFunction = ErrorReport.wrapFunction(func); oldOnload.call(this, file, wrappedFunction); }; @@ -288,7 +290,7 @@ var ErrorReport = { }; }, /** - * Wraps the callback in window.AJAX.registerOnload automatically + * Wraps the callback in AJAX.registerOnload automatically * * @return {void} */ @@ -298,7 +300,7 @@ var ErrorReport = { } }; -window.AJAX.registerOnload('error_report.js', function () { +AJAX.registerOnload('error_report.js', function () { window.TraceKit.report.subscribe(ErrorReport.errorHandler); ErrorReport.setUpErrorReporting(); }); diff --git a/js/src/export.js b/js/src/export.js index 9c3f1dfa1f..8a21f6e8f3 100644 --- a/js/src/export.js +++ b/js/src/export.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -206,7 +208,7 @@ Export.deleteTemplate = function (id) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('export.js', function () { +AJAX.registerTeardown('export.js', function () { $('#plugins').off('change'); $('input[type=\'radio\'][name=\'sql_structure_or_data\']').off('change'); $('input[type=\'radio\'][name$=\'_structure_or_data\']').off('change'); @@ -230,7 +232,7 @@ window.AJAX.registerTeardown('export.js', function () { $('input[name="deleteTemplate"]').off('click'); }); -window.AJAX.registerOnload('export.js', function () { +AJAX.registerOnload('export.js', function () { $('#showsqlquery').on('click', function () { // Creating a dialog box similar to preview sql container to show sql query var modal = $('#showSqlQueryModal'); @@ -435,7 +437,7 @@ Export.toggleSaveToFile = function () { } }; -window.AJAX.registerOnload('export.js', function () { +AJAX.registerOnload('export.js', function () { Export.toggleSaveToFile(); $('input[type=\'radio\'][name=\'output_format\']').on('change', Export.toggleSaveToFile); }); @@ -581,7 +583,7 @@ Export.handleAddProcCheckbox = function () { } }; -window.AJAX.registerOnload('export.js', function () { +AJAX.registerOnload('export.js', function () { /** * For SQL plugin, if "CREATE TABLE options" is checked/unchecked, check/uncheck each of its sub-options */ @@ -865,7 +867,7 @@ Export.addAlias = function (type, name, field, value) { $('#alias_data tbody').append(row); }; -window.AJAX.registerOnload('export.js', function () { +AJAX.registerOnload('export.js', function () { $('input[type=\'radio\'][name=\'quick_or_custom\']').on('change', toggleQuickOrCustom); $('#format_specific_opts').find('div.format_specific_options') .addClass('d-none') diff --git a/js/src/export_output.js b/js/src/export_output.js index d717c28e2c..5de057fd46 100644 --- a/js/src/export_output.js +++ b/js/src/export_output.js @@ -1,6 +1,7 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; -window.AJAX.registerOnload('export_output.js', function () { +AJAX.registerOnload('export_output.js', function () { $(document).on('keydown', function (e) { if ((e.which || e.keyCode) === 116) { e.preventDefault(); diff --git a/js/src/functions.js b/js/src/functions.js index 16118ea03c..3748707bae 100644 --- a/js/src/functions.js +++ b/js/src/functions.js @@ -1,8 +1,9 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Navigation } from './navigation.js'; import { CommonActions, CommonParams } from './common.js'; import { mysqlDocKeyword, mysqlDocBuiltin } from './modules/doc-links.js'; -/* global Navigation */ /* global ChartType, ColumnType, DataTable, JQPlotChartFactory */ // js/chart.js /* global DatabaseStructure */ // js/database/structure.js /* global Indexes */ // js/indexes.js @@ -336,7 +337,7 @@ Functions.getSqlEditor = function ($textarea, options, resize, lintOptions) { value: 3, content: codemirrorEditor.isClean(), }; - window.AJAX.lockPageHandler(e); + AJAX.lockPageHandler(e); }); return codemirrorEditor; @@ -2339,7 +2340,7 @@ Functions.onloadCreateTableEvents = function () { var tableStructureUrl = 'index.php?route=/table/structure' + argsep + 'server=' + data.params.server + argsep + 'db=' + data.params.db + argsep + 'token=' + data.params.token + argsep + 'goto=' + encodeURIComponent('index.php?route=/database/structure') + argsep + 'table=' + data.params.table + ''; - $.get(tableStructureUrl, params12, window.AJAX.responseHandler); + $.get(tableStructureUrl, params12, AJAX.responseHandler); } else { Functions.ajaxShowMessage( '', @@ -2592,7 +2593,7 @@ Functions.onloadChangePasswordEvents = function () { } if (data.scripts) { - window.AJAX.scriptHandler.load(data.scripts); + AJAX.scriptHandler.load(data.scripts); } // for this dialog, we remove the fieldset wrapping due to double headings @@ -3668,7 +3669,7 @@ Functions.onloadLockPage = function () { // val-hash is the hash of default value of the field // so that it can be compared with new value hash // to check whether field was modified or not. - $(this).data('val-hash', window.AJAX.hash($(this).val())); + $(this).data('val-hash', AJAX.hash($(this).val())); }); // initializes lock-page elements (input types checkbox and radio buttons) @@ -3676,7 +3677,7 @@ Functions.onloadLockPage = function () { $('#page_content form.lock-page input[type="checkbox"], ' + '#page_content form.lock-page input[type="radio"]').each(function (i) { $(this).data('lock-id', i); - $(this).data('val-hash', window.AJAX.hash($(this).is(':checked'))); + $(this).data('val-hash', AJAX.hash($(this).is(':checked'))); }); }; @@ -4447,3 +4448,5 @@ Functions.on = function () { Functions.onloadSortLinkMouseEvent(); }; }; + +export { Functions }; diff --git a/js/src/gis_data_editor.js b/js/src/gis_data_editor.js index c51c8ad202..2abc8d7a45 100644 --- a/js/src/gis_data_editor.js +++ b/js/src/gis_data_editor.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -209,7 +211,7 @@ function insertDataAndClose () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('gis_data_editor.js', function () { +AJAX.registerTeardown('gis_data_editor.js', function () { $(document).off('click', '#gis_editor input[name=\'gis_data[save]\']'); $(document).off('submit', '#gis_editor'); $(document).off('change', '#gis_editor input[type=\'text\']'); @@ -221,7 +223,7 @@ window.AJAX.registerTeardown('gis_data_editor.js', function () { $(document).off('click', '#gis_editor a.addJs.addGeom'); }); -window.AJAX.registerOnload('gis_data_editor.js', function () { +AJAX.registerOnload('gis_data_editor.js', function () { /** * Prepares and insert the GIS data to the input field on clicking 'copy'. */ diff --git a/js/src/home.js b/js/src/home.js index f7084dfc0e..0d30b17d76 100644 --- a/js/src/home.js +++ b/js/src/home.js @@ -1,14 +1,15 @@ +import { AJAX } from './ajax.js'; import { showGitVersion } from './modules/git-info.js'; import { ThemesManager } from './modules/themes-manager.js'; -window.AJAX.registerTeardown('home.js', () => { +AJAX.registerTeardown('home.js', () => { const themesModal = document.getElementById('themesModal'); if (themesModal) { themesModal.removeEventListener('show.bs.modal', ThemesManager.handleEvent); } }); -window.AJAX.registerOnload('home.js', () => { +AJAX.registerOnload('home.js', () => { const themesModal = document.getElementById('themesModal'); if (themesModal) { themesModal.addEventListener('show.bs.modal', ThemesManager.handleEvent); diff --git a/js/src/import.js b/js/src/import.js index bd1568cb9f..f4d58c7aa6 100644 --- a/js/src/import.js +++ b/js/src/import.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; /** * Functions used in the import tab @@ -49,7 +51,7 @@ function matchFile (fname) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('import.js', function () { +AJAX.registerTeardown('import.js', function () { $('#plugins').off('change'); $('#input_import_file').off('change'); $('#select_local_import_file').off('change'); @@ -58,7 +60,7 @@ window.AJAX.registerTeardown('import.js', function () { $('#text_csv_enclosed').add('#text_csv_escaped').off('keyup'); }); -window.AJAX.registerOnload('import.js', function () { +AJAX.registerOnload('import.js', function () { // import_file_form validation. $(document).on('submit', '#import_file_form', function () { var radioLocalImport = $('#localFileTab'); diff --git a/js/src/indexes.js b/js/src/indexes.js index 197d9dfda1..7fd22b9ec6 100644 --- a/js/src/indexes.js +++ b/js/src/indexes.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonActions, CommonParams } from './common.js'; /* global Navigation */ @@ -7,9 +9,7 @@ import { CommonActions, CommonParams } from './common.js'; * @fileoverview function used for index manipulation pages * @name Table Structure * - * @requires jQuery * @requires jQueryUI - * @required js/functions.js */ var Indexes = {}; @@ -595,8 +595,8 @@ Indexes.on = () => function () { var argsep = CommonParams.get('arg_separator'); var submitData = $form.serialize() + argsep + 'do_save_data=1' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; Functions.ajaxShowMessage(window.Messages.strProcessingRequest); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); }); $(document).on('click', '#preview_index_frm', function (event) { diff --git a/js/src/main.js b/js/src/main.js index 60b27be791..2ea8d249cf 100644 --- a/js/src/main.js +++ b/js/src/main.js @@ -1,31 +1,33 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; +import { Navigation } from './navigation.js'; /* global Indexes */ -/* global Navigation */ -window.AJAX.registerOnload('functions.js', () => window.AJAX.removeSubmitEvents()); -$(window.AJAX.loadEventHandler()); +AJAX.registerOnload('main.js', () => AJAX.removeSubmitEvents()); +$(AJAX.loadEventHandler()); /** * Attach a generic event handler to clicks on pages and submissions of forms. */ -$(document).on('click', 'a', window.AJAX.requestHandler); -$(document).on('submit', 'form', window.AJAX.requestHandler); +$(document).on('click', 'a', AJAX.requestHandler); +$(document).on('submit', 'form', AJAX.requestHandler); -$(document).on('ajaxError', window.AJAX.getFatalErrorHandler()); +$(document).on('ajaxError', AJAX.getFatalErrorHandler()); -window.AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off()); -window.AJAX.registerOnload('keyhandler.js', window.KeyHandlerEvents.on()); +AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off()); +AJAX.registerOnload('keyhandler.js', window.KeyHandlerEvents.on()); window.crossFramingProtection(); -window.AJAX.registerTeardown('config.js', window.Config.off()); -window.AJAX.registerOnload('config.js', window.Config.on()); +AJAX.registerTeardown('config.js', window.Config.off()); +AJAX.registerOnload('config.js', window.Config.on()); $.ajaxPrefilter(Functions.addNoCacheToAjaxRequests()); -window.AJAX.registerTeardown('functions.js', Functions.off()); -window.AJAX.registerOnload('functions.js', Functions.on()); +AJAX.registerTeardown('main.js', Functions.off()); +AJAX.registerOnload('main.js', Functions.on()); $(Functions.dismissNotifications()); $(Functions.initializeMenuResizer()); @@ -34,10 +36,10 @@ $(Functions.breadcrumbScrollToTop()); $(Navigation.onload()); -window.AJAX.registerTeardown('indexes.js', Indexes.off()); -window.AJAX.registerOnload('indexes.js', Indexes.on()); +AJAX.registerTeardown('indexes.js', Indexes.off()); +AJAX.registerOnload('indexes.js', Indexes.on()); $(() => Functions.checkNumberOfFields()); -window.AJAX.registerTeardown('page_settings.js', window.PageSettings.off()); -window.AJAX.registerOnload('page_settings.js', window.PageSettings.on()); +AJAX.registerTeardown('page_settings.js', window.PageSettings.off()); +AJAX.registerOnload('page_settings.js', window.PageSettings.on()); diff --git a/js/src/makegrid.js b/js/src/makegrid.js index 0a0ae5bd51..b868b41db9 100644 --- a/js/src/makegrid.js +++ b/js/src/makegrid.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /* global Sql */ @@ -2069,7 +2071,7 @@ window.makeGrid = function (t, enableResize, enableReorder, enableVisib, enableG // temporarily remove ajax class so the page loader will not handle it, // submit and then add it back $link.removeClass('ajax'); - window.AJAX.requestHandler.call($link[0]); + AJAX.requestHandler.call($link[0]); $link.addClass('ajax'); $cell.data('clicks', 0); }, 700); diff --git a/js/src/menu_resizer.js b/js/src/menu_resizer.js index 3b72096563..acfb3af9b3 100644 --- a/js/src/menu_resizer.js +++ b/js/src/menu_resizer.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { Functions } from './functions.js'; /** * Handles the resizing of a menu according to the available screen width diff --git a/js/src/modules/console.js b/js/src/modules/console.js index aee28c9a9e..27c5ea4a39 100644 --- a/js/src/modules/console.js +++ b/js/src/modules/console.js @@ -1,9 +1,11 @@ import $ from 'jquery'; import CodeMirror from 'codemirror'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; import { Config } from './console/config.js'; -/* global Functions, Navigation */ +/* global Navigation */ /** * Console object @@ -95,7 +97,7 @@ var Console = { '' ); Console.$requestForm.children('[name=token]').val(CommonParams.get('token')); - Console.$requestForm.on('submit', window.AJAX.requestHandler); + Console.$requestForm.on('submit', AJAX.requestHandler); // Event binds shouldn't run again if (Console.isInitialized === false) { diff --git a/js/src/modules/console/config.js b/js/src/modules/console/config.js index 0dc6ae4232..9e793b5498 100644 --- a/js/src/modules/console/config.js +++ b/js/src/modules/console/config.js @@ -1,4 +1,4 @@ -/* global Functions */ +import { Functions } from '../../functions.js'; /** * @link https://docs.phpmyadmin.net/en/latest/config.html#console-settings diff --git a/js/src/modules/git-info.js b/js/src/modules/git-info.js index b1048d4d00..34b0568911 100644 --- a/js/src/modules/git-info.js +++ b/js/src/modules/git-info.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; const GitInfo = { diff --git a/js/src/multi_column_sort.js b/js/src/multi_column_sort.js index 4a1e2034bd..e6fb58f374 100644 --- a/js/src/multi_column_sort.js +++ b/js/src/multi_column_sort.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -9,27 +11,27 @@ import { CommonParams } from './common.js'; * @requires jQuery */ -window.AJAX.registerOnload('keyhandler.js', function () { +AJAX.registerOnload('keyhandler.js', function () { $('th.draggable.column_heading.pointer.marker a').on('click', function (event) { var orderUrlRemove = $(this).parent().find('input[name="url-remove-order"]').val(); var orderUrlAdd = $(this).parent().find('input[name="url-add-order"]').val(); var argsep = CommonParams.get('arg_separator'); if (event.ctrlKey || event.altKey) { event.preventDefault(); - window.AJAX.source = $(this); + AJAX.source = $(this); Functions.ajaxShowMessage(); orderUrlRemove += argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; - $.post('index.php?route=/sql', orderUrlRemove, window.AJAX.responseHandler); + $.post('index.php?route=/sql', orderUrlRemove, AJAX.responseHandler); } else if (event.shiftKey) { event.preventDefault(); - window.AJAX.source = $(this); + AJAX.source = $(this); Functions.ajaxShowMessage(); orderUrlAdd += argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; - $.post('index.php?route=/sql', orderUrlAdd, window.AJAX.responseHandler); + $.post('index.php?route=/sql', orderUrlAdd, AJAX.responseHandler); } }); }); -window.AJAX.registerTeardown('keyhandler.js', function () { +AJAX.registerTeardown('keyhandler.js', function () { $(document).off('click', 'th.draggable.column_heading.pointer.marker a'); }); diff --git a/js/src/navigation.js b/js/src/navigation.js index fa9047c091..920ebb1d53 100644 --- a/js/src/navigation.js +++ b/js/src/navigation.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -1648,3 +1649,5 @@ Navigation.showFullName = function ($containerELem) { } }); }; + +export { Navigation }; diff --git a/js/src/normalization.js b/js/src/normalization.js index 780d570516..eee23ee6df 100644 --- a/js/src/normalization.js +++ b/js/src/normalization.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonParams } from './common.js'; /** @@ -481,7 +483,7 @@ function moveRepeatingGroup (repeatingCols) { } }); } -window.AJAX.registerTeardown('normalization.js', function () { +AJAX.registerTeardown('normalization.js', function () { $('#extra').off('click', '#selectNonAtomicCol'); $('#splitGo').off('click'); $('.tblFooters').off('click', '#saveSplit'); @@ -494,7 +496,7 @@ window.AJAX.registerTeardown('normalization.js', function () { $('#mainContent').off('click', '.pickPd'); }); -window.AJAX.registerOnload('normalization.js', function () { +AJAX.registerOnload('normalization.js', function () { var selectedCol; normalizeto = $('#mainContent').data('normalizeto'); $('#extra').on('click', '#selectNonAtomicCol', function () { diff --git a/js/src/page_settings.js b/js/src/page_settings.js index 67758a9883..54f964ec67 100644 --- a/js/src/page_settings.js +++ b/js/src/page_settings.js @@ -4,9 +4,7 @@ import $ from 'jquery'; * @fileoverview function used for page-related settings * @name Page-related settings * - * @requires jQuery * @requires jQueryUI - * @required js/functions.js */ function showSettings (selector) { diff --git a/js/src/replication.js b/js/src/replication.js index fad5c1adaf..51606d2193 100644 --- a/js/src/replication.js +++ b/js/src/replication.js @@ -1,12 +1,12 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; /** * @fileoverview Javascript functions used in server replication page * @name Server Replication * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js */ var randomServerId = Math.floor(Math.random() * 10000000); @@ -35,7 +35,7 @@ function updateConfig () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('replication.js', function () { +AJAX.registerTeardown('replication.js', function () { $('#db_type').off('change'); $('#db_select').off('change'); $('#primary_status_href').off('click'); @@ -49,7 +49,7 @@ window.AJAX.registerTeardown('replication.js', function () { $('#reset_replica').off('click'); }); -window.AJAX.registerOnload('replication.js', function () { +AJAX.registerOnload('replication.js', function () { $('#rep').text(confPrefix); $('#db_type').on('change', updateConfig); $('#db_select').on('change', updateConfig); @@ -86,12 +86,12 @@ window.AJAX.registerOnload('replication.js', function () { var question = window.Messages.strResetReplicaWarning; $anchor.confirm(question, $anchor.attr('href'), function (url) { Functions.ajaxShowMessage(); - window.AJAX.source = $anchor; + AJAX.source = $anchor; var params = Functions.getJsConfirmCommonParam({ 'ajax_page_request': true, 'ajax_request': true }, $anchor.getPostData()); - $.post(url, params, window.AJAX.responseHandler); + $.post(url, params, AJAX.responseHandler); }); }); $('#button_generate_password').on('click', function () { diff --git a/js/src/server/databases.js b/js/src/server/databases.js index 9d491ca43b..fc61c50489 100644 --- a/js/src/server/databases.js +++ b/js/src/server/databases.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /* global Navigation */ @@ -116,7 +118,7 @@ const CreateDatabase = { var dbStructUrl = data.url; dbStructUrl = dbStructUrl.replace(/amp;/ig, ''); var params = 'ajax_request=true' + CommonParams.get('arg_separator') + 'ajax_page_request=true'; - $.get(dbStructUrl, params, window.AJAX.responseHandler); + $.get(dbStructUrl, params, AJAX.responseHandler); } else { Functions.ajaxShowMessage(data.error, false); } @@ -133,12 +135,12 @@ function checkPrivilegesForDatabase () { }); } -window.AJAX.registerTeardown('server/databases.js', function () { +AJAX.registerTeardown('server/databases.js', function () { $(document).off('submit', '#dbStatsForm'); $(document).off('submit', '#create_database_form.ajax'); }); -window.AJAX.registerOnload('server/databases.js', function () { +AJAX.registerOnload('server/databases.js', function () { $(document).on('submit', '#dbStatsForm', DropDatabases.handleEvent); $(document).on('submit', '#create_database_form.ajax', CreateDatabase.handleEvent); checkPrivilegesForDatabase(); diff --git a/js/src/server/plugins.js b/js/src/server/plugins.js index 41a3e0bea2..e8dba16014 100644 --- a/js/src/server/plugins.js +++ b/js/src/server/plugins.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * Make columns sortable, but only for tables with more than 1 data row. @@ -15,6 +16,6 @@ function makeColumnsSortable () { .append('
    '); } -window.AJAX.registerOnload('server/plugins.js', function () { +AJAX.registerOnload('server/plugins.js', function () { makeColumnsSortable(); }); diff --git a/js/src/server/privileges.js b/js/src/server/privileges.js index 7cc8cfc08b..5e5828564a 100644 --- a/js/src/server/privileges.js +++ b/js/src/server/privileges.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /* global Navigation */ @@ -485,7 +487,7 @@ const selectPasswordRadioWhenChangingPassword = () => { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/privileges.js', function () { +AJAX.registerTeardown('server/privileges.js', function () { $('#fieldset_add_user_login').off('change', 'input[name=\'username\']'); $(document).off('click', '#deleteUserCard .btn.ajax'); $('#text_pma_change_pw').off('keyup'); @@ -507,7 +509,7 @@ window.AJAX.registerTeardown('server/privileges.js', function () { $(document).off('change', '#select_authentication_plugin'); }); -window.AJAX.registerOnload('server/privileges.js', function () { +AJAX.registerOnload('server/privileges.js', function () { $('#fieldset_add_user_login').on('change', 'input[name=\'username\']', AddUserLoginCheckUsername.handleEvent); $('#text_pma_pw').on('keyup', PasswordStrength.handleEvent); $('#text_pma_pw').on('input', SwitchToUseTextField.handleEvent); diff --git a/js/src/server/status/monitor.js b/js/src/server/status/monitor.js index f50534abd9..6153bf63e6 100644 --- a/js/src/server/status/monitor.js +++ b/js/src/server/status/monitor.js @@ -1,13 +1,13 @@ import $ from 'jquery'; +import { AJAX } from '../../ajax.js'; +import { Functions } from '../../functions.js'; import { CommonParams } from '../../common.js'; /** * @fileoverview Javascript functions used in server status monitor page * @name Server Status Monitor * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js */ /* global firstDayOfCalendar, themeImagePath */ // templates/javascript/variables.twig @@ -79,7 +79,7 @@ function destroyGrid () { monitorSettings = null; } -window.AJAX.registerOnload('server/status/monitor.js', function () { +AJAX.registerOnload('server/status/monitor.js', function () { var $jsDataForm = $('#js_data'); serverTimeDiff = new Date().getTime() - $jsDataForm.find('input[name=server_time]').val(); serverOs = $jsDataForm.find('input[name=server_os]').val(); @@ -90,7 +90,7 @@ window.AJAX.registerOnload('server/status/monitor.js', function () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/status/monitor.js', function () { +AJAX.registerTeardown('server/status/monitor.js', function () { $('#emptyDialog').remove(); $('a.popupLink').off('click'); $('body').off('click'); @@ -98,7 +98,7 @@ window.AJAX.registerTeardown('server/status/monitor.js', function () { /** * Popup behaviour */ -window.AJAX.registerOnload('server/status/monitor.js', function () { +AJAX.registerOnload('server/status/monitor.js', function () { $('
    ') .attr('id', 'emptyDialog') .appendTo('#page_content'); @@ -126,7 +126,7 @@ window.AJAX.registerOnload('server/status/monitor.js', function () { }); }); -window.AJAX.registerTeardown('server/status/monitor.js', function () { +AJAX.registerTeardown('server/status/monitor.js', function () { $('a[href="#rearrangeCharts"], a[href="#endChartEditMode"]').off('click'); $('div.popupContent select[name="chartColumns"]').off('change'); $('div.popupContent select[name="gridChartRefresh"]').off('change'); @@ -150,7 +150,7 @@ window.AJAX.registerTeardown('server/status/monitor.js', function () { destroyGrid(); }); -window.AJAX.registerOnload('server/status/monitor.js', function () { +AJAX.registerOnload('server/status/monitor.js', function () { // Show tab links $('div.tabLinks').show(); $('#loadingMonitorIcon').remove(); @@ -2321,6 +2321,6 @@ window.AJAX.registerOnload('server/status/monitor.js', function () { }); // Run the monitor once loaded -window.AJAX.registerOnload('server/status/monitor.js', function () { +AJAX.registerOnload('server/status/monitor.js', function () { $('a[href="#pauseCharts"]').trigger('click'); }); diff --git a/js/src/server/status/processes.js b/js/src/server/status/processes.js index 429f80a8b9..270bb4f5f1 100644 --- a/js/src/server/status/processes.js +++ b/js/src/server/status/processes.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../../ajax.js'; +import { Functions } from '../../functions.js'; import { CommonParams } from '../../common.js'; /** @@ -164,7 +166,7 @@ var processList = { } }; -window.AJAX.registerOnload('server/status/processes.js', function () { +AJAX.registerOnload('server/status/processes.js', function () { processList.init(); // Bind event handler for kill_process $('#tableprocesslist').on( @@ -192,7 +194,7 @@ window.AJAX.registerOnload('server/status/processes.js', function () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/status/processes.js', function () { +AJAX.registerTeardown('server/status/processes.js', function () { $('#tableprocesslist').off('click', 'a.kill_process'); $('a#toggleRefresh').off('click'); $('#id_refreshRate').off('change'); diff --git a/js/src/server/status/queries.js b/js/src/server/status/queries.js index 255e998aba..c7c4b1fd9a 100644 --- a/js/src/server/status/queries.js +++ b/js/src/server/status/queries.js @@ -1,12 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../../ajax.js'; +import { Functions } from '../../functions.js'; /** * @fileoverview Javascript functions used in server status query page * @name Server Status Query * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js */ /* global initTableSorter */ // js/server/status/sorter.js @@ -14,7 +14,7 @@ import $ from 'jquery'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/status/queries.js', function () { +AJAX.registerTeardown('server/status/queries.js', function () { if (document.getElementById('serverstatusquerieschart') !== null) { var queryPieChart = $('#serverstatusquerieschart').data('queryPieChart'); if (queryPieChart) { @@ -23,7 +23,7 @@ window.AJAX.registerTeardown('server/status/queries.js', function () { } }); -window.AJAX.registerOnload('server/status/queries.js', function () { +AJAX.registerOnload('server/status/queries.js', function () { // Build query statistics chart var cdata = []; try { diff --git a/js/src/server/status/variables.js b/js/src/server/status/variables.js index 95e36375a6..836dfd45d4 100644 --- a/js/src/server/status/variables.js +++ b/js/src/server/status/variables.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { AJAX } from '../../ajax.js'; /** * @@ -9,14 +10,14 @@ import $ from 'jquery'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/status/variables.js', function () { +AJAX.registerTeardown('server/status/variables.js', function () { $('#filterAlert').off('change'); $('#filterText').off('keyup'); $('#filterCategory').off('change'); $('#dontFormat').off('change'); }); -window.AJAX.registerOnload('server/status/variables.js', function () { +AJAX.registerOnload('server/status/variables.js', function () { // Filters for status variables var textFilter = null; var alertFilter = $('#filterAlert').prop('checked'); diff --git a/js/src/server/user_groups.js b/js/src/server/user_groups.js index 4b6b09b195..d26749e710 100644 --- a/js/src/server/user_groups.js +++ b/js/src/server/user_groups.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * @fileoverview Javascript functions used in server user groups page @@ -10,14 +12,14 @@ import $ from 'jquery'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/user_groups.js', function () { +AJAX.registerTeardown('server/user_groups.js', function () { $('#deleteUserGroupModal').off('show.bs.modal'); }); /** * Bind event handlers */ -window.AJAX.registerOnload('server/user_groups.js', function () { +AJAX.registerOnload('server/user_groups.js', function () { const deleteUserGroupModal = $('#deleteUserGroupModal'); deleteUserGroupModal.on('show.bs.modal', function (event) { const userGroupName = $(event.relatedTarget).data('user-group'); @@ -36,7 +38,7 @@ window.AJAX.registerOnload('server/user_groups.js', function () { 'userGroup': userGroupName, 'ajax_request': true, }, - window.AJAX.responseHandler + AJAX.responseHandler ); $('#deleteUserGroupModal').modal('hide'); diff --git a/js/src/server/variables.js b/js/src/server/variables.js index 3a74470d0a..9a2be86563 100644 --- a/js/src/server/variables.js +++ b/js/src/server/variables.js @@ -1,23 +1,23 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * @fileoverview Javascript functions used in server variables page * @name Server Replication * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js */ /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('server/variables.js', function () { +AJAX.registerTeardown('server/variables.js', function () { $(document).off('click', 'a.editLink'); $('#serverVariables').find('.var-name').find('a img').remove(); }); -window.AJAX.registerOnload('server/variables.js', function () { +AJAX.registerOnload('server/variables.js', function () { var $saveLink = $('a.saveLink'); var $cancelLink = $('a.cancelLink'); diff --git a/js/src/sql.js b/js/src/sql.js index 1f9f89f807..ffe6609183 100644 --- a/js/src/sql.js +++ b/js/src/sql.js @@ -1,12 +1,11 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; import { CommonActions, CommonParams } from './common.js'; /** * @fileoverview functions used wherever an sql query form is used * - * @requires jQuery - * @requires js/functions.js - * * @test-module Sql */ @@ -403,7 +402,7 @@ const insertValueQuery = function () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('sql.js', function () { +AJAX.registerTeardown('sql.js', function () { $(document).off('click', 'a.delete_row.ajax'); $(document).off('submit', '.bookmarkQueryForm'); $('input#bkm_label').off('input'); @@ -453,7 +452,7 @@ window.AJAX.registerTeardown('sql.js', function () { * @name document.ready * @memberOf jQuery */ -window.AJAX.registerOnload('sql.js', function () { +AJAX.registerOnload('sql.js', function () { if (window.codeMirrorEditor || document.sqlform) { Sql.setShowThisQuery(); } @@ -808,7 +807,7 @@ window.AJAX.registerOnload('sql.js', function () { }, null ); - window.AJAX.handleMenu.replace(data.menu); + AJAX.handleMenu.replace(data.menu); } if (data.params) { @@ -923,8 +922,8 @@ window.AJAX.registerOnload('sql.js', function () { var argsep = CommonParams.get('arg_separator'); var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; Functions.ajaxShowMessage(); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); }; if (! $(this).is(':checked')) { // already showing all rows @@ -1020,7 +1019,7 @@ window.AJAX.registerOnload('sql.js', function () { var argsep = CommonParams.get('arg_separator'); var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep; Functions.ajaxShowMessage(); - window.AJAX.source = $form; + AJAX.source = $form; var url; if (action === 'edit') { @@ -1037,7 +1036,7 @@ window.AJAX.registerOnload('sql.js', function () { return; } - $.post(url, submitData, window.AJAX.responseHandler); + $.post(url, submitData, AJAX.responseHandler); }); $(document).on('submit', '.maxRowsForm', function () { @@ -1218,7 +1217,7 @@ Sql.checkSavedQuery = function () { } }; -window.AJAX.registerOnload('sql.js', function () { +AJAX.registerOnload('sql.js', function () { $('body').on('click', 'a.browse_foreign', function (e) { e.preventDefault(); Sql.browseForeignDialog($(this)); @@ -1318,7 +1317,7 @@ Sql.initProfilingTables = function () { }); }; -window.AJAX.registerOnload('sql.js', function () { +AJAX.registerOnload('sql.js', function () { Sql.makeProfilingChart(); Sql.initProfilingTables(); }); diff --git a/js/src/table/change.js b/js/src/table/change.js index 8a4614e78e..4afbff027c 100644 --- a/js/src/table/change.js +++ b/js/src/table/change.js @@ -1,12 +1,11 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * @fileoverview function used in table data manipulation pages * - * @requires jQuery * @requires jQueryUI - * @requires js/functions.js - * */ /* global extendingValidatorMessages */ // templates/javascript/variables.twig @@ -448,7 +447,7 @@ window.verificationsAfterFieldChange = verificationsAfterFieldChange; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/change.js', function () { +AJAX.registerTeardown('table/change.js', function () { $(document).off('click', 'span.open_gis_editor'); $(document).off('click', 'input[name^=\'insert_ignore_\']'); $(document).off('click', 'input[name=\'gis_data[save]\']'); @@ -464,7 +463,7 @@ window.AJAX.registerTeardown('table/change.js', function () { * Submit Data to be inserted into the table. * Restart insertion with 'N' rows. */ -window.AJAX.registerOnload('table/change.js', function () { +AJAX.registerOnload('table/change.js', function () { if ($('#insertForm').length) { // validate the comment form when it is submitted $('#insertForm').validate(); @@ -864,7 +863,7 @@ function addNewContinueInsertionFields (event) { * Displays alert if data loss possible on decrease * of rows. */ - var checkLock = $.isEmptyObject(window.AJAX.lockedTargets); + var checkLock = $.isEmptyObject(AJAX.lockedTargets); if (checkLock || confirm(window.Messages.strConfirmRowChange) === true) { while (currRows > targetRows) { $('input[id^=insert_ignore]').last() diff --git a/js/src/table/chart.js b/js/src/table/chart.js index a4a14fab7c..00e03870b6 100644 --- a/js/src/table/chart.js +++ b/js/src/table/chart.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /* global ColumnType, DataTable, JQPlotChartFactory */ // js/chart.js @@ -236,7 +238,7 @@ function onDataSeriesChange () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/chart.js', function () { +AJAX.registerTeardown('table/chart.js', function () { $('input[name="chartType"]').off('click'); $('#barStackedCheckbox').off('click'); $('#seriesColumnCheckbox').off('click'); @@ -251,7 +253,7 @@ window.AJAX.registerTeardown('table/chart.js', function () { $('#tblchartform').off('submit'); }); -window.AJAX.registerOnload('table/chart.js', function () { +AJAX.registerOnload('table/chart.js', function () { // handle manual resize $('#resizer').on('resizestop', function () { // make room so that the handle will still appear diff --git a/js/src/table/find_replace.js b/js/src/table/find_replace.js index 878b5426d9..cfc0cb4c5c 100644 --- a/js/src/table/find_replace.js +++ b/js/src/table/find_replace.js @@ -1,9 +1,11 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/find_replace.js', function () { +AJAX.registerTeardown('table/find_replace.js', function () { $('#find_replace_form').off('submit'); $('#toggle_find').off('click'); }); @@ -11,7 +13,7 @@ window.AJAX.registerTeardown('table/find_replace.js', function () { /** * Bind events */ -window.AJAX.registerOnload('table/find_replace.js', function () { +AJAX.registerOnload('table/find_replace.js', function () { $('
    ') .insertAfter('#find_replace_form') .hide(); diff --git a/js/src/table/gis_visualization.js b/js/src/table/gis_visualization.js index 14016e4183..a44760b813 100644 --- a/js/src/table/gis_visualization.js +++ b/js/src/table/gis_visualization.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * @fileoverview functions used for visualizing GIS data @@ -189,7 +191,7 @@ function onGisMouseWheel (event) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/gis_visualization.js', function () { +AJAX.registerTeardown('table/gis_visualization.js', function () { $(document).off('click', '#choice'); $(document).off('dragstart', 'svg'); $(document).off('mouseup', 'svg'); @@ -211,7 +213,7 @@ window.AJAX.registerTeardown('table/gis_visualization.js', function () { } }); -window.AJAX.registerOnload('table/gis_visualization.js', function () { +AJAX.registerOnload('table/gis_visualization.js', function () { // If we are in GIS visualization, initialize it if ($('#gis_div').length > 0) { initGISVisualization(); diff --git a/js/src/table/operations.js b/js/src/table/operations.js index 4e41e1e538..ced20f4bbc 100644 --- a/js/src/table/operations.js +++ b/js/src/table/operations.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /* global Navigation */ @@ -6,7 +8,7 @@ import { CommonActions, CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/operations.js', function () { +AJAX.registerTeardown('table/operations.js', function () { $(document).off('submit', '#copyTable.ajax'); $(document).off('submit', '#moveTableForm'); $(document).off('submit', '#tableOptionsForm'); @@ -66,7 +68,7 @@ var confirmAndPost = function (linkObject, action) { * jQuery coding for 'Table operations'. Used on /table/operations * Attach Ajax Event handlers for Table operations */ -window.AJAX.registerOnload('table/operations.js', function () { +AJAX.registerOnload('table/operations.js', function () { /** * Ajax action for submitting the "Copy table" */ @@ -246,8 +248,8 @@ window.AJAX.registerOnload('table/operations.js', function () { var argsep = CommonParams.get('arg_separator'); var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; Functions.ajaxShowMessage(window.Messages.strProcessingRequest); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); } if ($('#partitionOperationRadioDrop').is(':checked')) { diff --git a/js/src/table/relation.js b/js/src/table/relation.js index 7ac6579043..57a8ef117d 100644 --- a/js/src/table/relation.js +++ b/js/src/table/relation.js @@ -1,4 +1,6 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /** @@ -129,7 +131,7 @@ TableRelation.getDropdownValues = function ($dropdown) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/relation.js', function () { +AJAX.registerTeardown('table/relation.js', function () { $('body').off('change', 'select[name^="destination_db"], ' + 'select[name^="destination_table"], ' + @@ -141,7 +143,7 @@ window.AJAX.registerTeardown('table/relation.js', function () { $('a.drop_foreign_key_anchor.ajax').off('click'); }); -window.AJAX.registerOnload('table/relation.js', function () { +AJAX.registerOnload('table/relation.js', function () { /** * Ajax event handler to fetch table/column dropdown values. */ diff --git a/js/src/table/select.js b/js/src/table/select.js index 2f6694332b..331c63d519 100644 --- a/js/src/table/select.js +++ b/js/src/table/select.js @@ -1,11 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * @fileoverview JavaScript functions used on /table/search - * - * @requires jQuery - * @requires js/functions.js */ /* global changeValueFieldType, verifyAfterSearchFieldChange */ // js/table/change.js @@ -48,7 +47,7 @@ TableSelect.checkIfDataTypeNumericOrDate = function (dataType) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/select.js', function () { +AJAX.registerTeardown('table/select.js', function () { $('#togglesearchformlink').off('click'); $(document).off('submit', '#tbl_search_form.ajax'); $('select.geom_func').off('change'); @@ -56,7 +55,7 @@ window.AJAX.registerTeardown('table/select.js', function () { $('body').off('change', 'select[name*="criteriaColumnOperators"]'); // Fix for bug #13778, changed 'click' to 'change' }); -window.AJAX.registerOnload('table/select.js', function () { +AJAX.registerOnload('table/select.js', function () { /** * Prepare a div containing a link, otherwise it's incorrectly displayed * after a couple of clicks diff --git a/js/src/table/structure.js b/js/src/table/structure.js index dd972ebf51..13a13375d2 100644 --- a/js/src/table/structure.js +++ b/js/src/table/structure.js @@ -1,13 +1,13 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonActions, CommonParams } from '../common.js'; /** * @fileoverview functions used on the table structure page * @name Table Structure * - * @requires jQuery * @requires jQueryUI - * @required js/functions.js */ /* global Navigation */ @@ -46,7 +46,7 @@ function checkFirst () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/structure.js', function () { +AJAX.registerTeardown('table/structure.js', function () { $(document).off('click', 'a.drop_column_anchor.ajax'); $(document).off('click', 'a.add_key.ajax'); $(document).off('click', '#move_columns_anchor'); @@ -56,7 +56,7 @@ window.AJAX.registerTeardown('table/structure.js', function () { $(document).off('click', '#remove_partitioning.ajax'); }); -window.AJAX.registerOnload('table/structure.js', function () { +AJAX.registerOnload('table/structure.js', function () { // Re-initialize variables. window.primaryIndexes = []; window.indexes = []; @@ -272,11 +272,11 @@ window.AJAX.registerOnload('table/structure.js', function () { $thisAnchor.confirm(question, $thisAnchor.attr('href'), function (url) { Functions.ajaxShowMessage(); - window.AJAX.source = $this; + AJAX.source = $this; var params = Functions.getJsConfirmCommonParam(this, $thisAnchor.getPostData()); params += CommonParams.get('arg_separator') + 'ajax_page_request=1'; - $.post(url, params, window.AJAX.responseHandler); + $.post(url, params, AJAX.responseHandler); }); }); // end Add key @@ -400,9 +400,9 @@ window.AJAX.registerOnload('table/structure.js', function () { var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true'; Functions.ajaxShowMessage(); - window.AJAX.source = $form; + AJAX.source = $form; - $.post(this.formAction, submitData, window.AJAX.responseHandler); + $.post(this.formAction, submitData, AJAX.responseHandler); }); /** @@ -415,8 +415,8 @@ window.AJAX.registerOnload('table/structure.js', function () { function submitPartitionAction (url) { var params = 'ajax_request=true&ajax_page_request=true&' + $link.getPostData(); Functions.ajaxShowMessage(); - window.AJAX.source = $link; - $.post(url, params, window.AJAX.responseHandler); + AJAX.source = $link; + $.post(url, params, AJAX.responseHandler); } if ($link.is('#partition_action_DROP')) { @@ -445,8 +445,8 @@ window.AJAX.registerOnload('table/structure.js', function () { 'ajax_page_request' : true }, $link.getPostData()); Functions.ajaxShowMessage(); - window.AJAX.source = $link; - $.post(url, params, window.AJAX.responseHandler); + AJAX.source = $link; + $.post(url, params, AJAX.responseHandler); }); }); diff --git a/js/src/table/tracking.js b/js/src/table/tracking.js index d19d1516bf..302b9cc728 100644 --- a/js/src/table/tracking.js +++ b/js/src/table/tracking.js @@ -1,10 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; /** * Unbind all event handlers before tearing down the page */ -window.AJAX.registerTeardown('table/tracking.js', function () { +AJAX.registerTeardown('table/tracking.js', function () { $('body').off('click', '#versionsForm.ajax button[name="submit_mult"], #versionsForm.ajax input[name="submit_mult"]'); $('body').off('click', 'a.delete_version_anchor.ajax'); $('body').off('click', 'a.delete_entry_anchor.ajax'); @@ -13,7 +15,7 @@ window.AJAX.registerTeardown('table/tracking.js', function () { /** * Bind event handlers */ -window.AJAX.registerOnload('table/tracking.js', function () { +AJAX.registerOnload('table/tracking.js', function () { $('#versions tr').first().find('th').append($('
    ')); $('#versions').tablesorter({ sortList: [[1, 0]], @@ -63,13 +65,13 @@ window.AJAX.registerOnload('table/tracking.js', function () { var question = window.Messages.strDeleteTrackingVersionMultiple; $button.confirm(question, $form.attr('action'), function (url) { Functions.ajaxShowMessage(); - window.AJAX.source = $form; - $.post(url, submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post(url, submitData, AJAX.responseHandler); }); } else { Functions.ajaxShowMessage(); - window.AJAX.source = $form; - $.post($form.attr('action'), submitData, window.AJAX.responseHandler); + AJAX.source = $form; + $.post($form.attr('action'), submitData, AJAX.responseHandler); } }); @@ -82,11 +84,11 @@ window.AJAX.registerOnload('table/tracking.js', function () { var question = window.Messages.strDeleteTrackingVersion; $anchor.confirm(question, $anchor.attr('href'), function (url) { Functions.ajaxShowMessage(); - window.AJAX.source = $anchor; + AJAX.source = $anchor; var argSep = CommonParams.get('arg_separator'); var params = Functions.getJsConfirmCommonParam(this, $anchor.getPostData()); params += argSep + 'ajax_page_request=1'; - $.post(url, params, window.AJAX.responseHandler); + $.post(url, params, AJAX.responseHandler); }); }); @@ -99,11 +101,11 @@ window.AJAX.registerOnload('table/tracking.js', function () { var question = window.Messages.strDeletingTrackingEntry; $anchor.confirm(question, $anchor.attr('href'), function (url) { Functions.ajaxShowMessage(); - window.AJAX.source = $anchor; + AJAX.source = $anchor; var argSep = CommonParams.get('arg_separator'); var params = Functions.getJsConfirmCommonParam(this, $anchor.getPostData()); params += argSep + 'ajax_page_request=1'; - $.post(url, params, window.AJAX.responseHandler); + $.post(url, params, AJAX.responseHandler); }); }); }); diff --git a/js/src/table/zoom_plot_jqplot.js b/js/src/table/zoom_plot_jqplot.js index 8bfeb72623..6ab392028c 100644 --- a/js/src/table/zoom_plot_jqplot.js +++ b/js/src/table/zoom_plot_jqplot.js @@ -1,12 +1,11 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; import { CommonParams } from '../common.js'; // TODO: change the axis /** * @fileoverview JavaScript functions used on /table/search - * - * @requires jQuery - * @requires js/functions.js **/ /* global Sql */ @@ -105,7 +104,7 @@ function getType (field) { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('table/zoom_plot_jqplot.js', function () { +AJAX.registerTeardown('table/zoom_plot_jqplot.js', function () { $('#tableid_0').off('change'); $('#tableid_1').off('change'); $('#tableid_2').off('change'); @@ -118,7 +117,7 @@ window.AJAX.registerTeardown('table/zoom_plot_jqplot.js', function () { $('div#querychart').off('jqplotDataClick'); }); -window.AJAX.registerOnload('table/zoom_plot_jqplot.js', function () { +AJAX.registerOnload('table/zoom_plot_jqplot.js', function () { var currentChart = null; var searchedDataKey = null; var xLabel = $('#tableid_0').val(); diff --git a/js/src/transformations/image_upload.js b/js/src/transformations/image_upload.js index 94455a995d..2b0034128b 100644 --- a/js/src/transformations/image_upload.js +++ b/js/src/transformations/image_upload.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * Image upload transformations plugin js @@ -6,7 +7,7 @@ import $ from 'jquery'; * @package PhpMyAdmin */ -window.AJAX.registerOnload('transformations/image_upload.js', function () { +AJAX.registerOnload('transformations/image_upload.js', function () { // Change thumbnail when image file is selected // through file upload dialog $('input.image-upload').on('change', function () { @@ -24,6 +25,6 @@ window.AJAX.registerOnload('transformations/image_upload.js', function () { /** * Unbind all event handlers before tearing down a page */ -window.AJAX.registerTeardown('transformations/image_upload.js', function () { +AJAX.registerTeardown('transformations/image_upload.js', function () { $('input.image-upload').off('change'); }); diff --git a/js/src/transformations/json.js b/js/src/transformations/json.js index ced6251f74..3e7f039890 100644 --- a/js/src/transformations/json.js +++ b/js/src/transformations/json.js @@ -1,9 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * JSON syntax highlighting transformation plugin */ -window.AJAX.registerOnload('transformations/json.js', function () { +AJAX.registerOnload('transformations/json.js', function () { var $elm = $('#page_content').find('code.json'); $elm.each(function () { var $json = $(this); diff --git a/js/src/transformations/json_editor.js b/js/src/transformations/json_editor.js index 36f2aa1570..6c30278931 100644 --- a/js/src/transformations/json_editor.js +++ b/js/src/transformations/json_editor.js @@ -1,11 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * JSON syntax highlighting transformation plugin * * @package PhpMyAdmin */ -window.AJAX.registerOnload('transformations/json_editor.js', function () { +AJAX.registerOnload('transformations/json_editor.js', function () { $('textarea.transform_json_editor').each(function () { window.CodeMirror.fromTextArea(this, { lineNumbers: true, diff --git a/js/src/transformations/sql_editor.js b/js/src/transformations/sql_editor.js index b639605474..e3ddf3511f 100644 --- a/js/src/transformations/sql_editor.js +++ b/js/src/transformations/sql_editor.js @@ -1,11 +1,13 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; +import { Functions } from '../functions.js'; /** * SQL syntax highlighting transformation plugin js * * @package PhpMyAdmin */ -window.AJAX.registerOnload('transformations/sql_editor.js', function () { +AJAX.registerOnload('transformations/sql_editor.js', function () { $('textarea.transform_sql_editor').each(function () { Functions.getSqlEditor($(this), {}, 'both'); }); diff --git a/js/src/transformations/xml.js b/js/src/transformations/xml.js index 68a0fedadb..8037793c15 100644 --- a/js/src/transformations/xml.js +++ b/js/src/transformations/xml.js @@ -1,9 +1,10 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * XML syntax highlighting transformation plugin */ -window.AJAX.registerOnload('transformations/xml.js', function () { +AJAX.registerOnload('transformations/xml.js', function () { var $elm = $('#page_content').find('code.xml'); $elm.each(function () { var $json = $(this); diff --git a/js/src/transformations/xml_editor.js b/js/src/transformations/xml_editor.js index 9b76aef423..437553415c 100644 --- a/js/src/transformations/xml_editor.js +++ b/js/src/transformations/xml_editor.js @@ -1,11 +1,12 @@ import $ from 'jquery'; +import { AJAX } from '../ajax.js'; /** * XML editor plugin * * @package PhpMyAdmin */ -window.AJAX.registerOnload('transformations/xml_editor.js', function () { +AJAX.registerOnload('transformations/xml_editor.js', function () { $('textarea.transform_xml_editor').each(function () { window.CodeMirror.fromTextArea(this, { lineNumbers: true, diff --git a/js/src/u2f.js b/js/src/u2f.js index f6f68dbbe0..865fbe352e 100644 --- a/js/src/u2f.js +++ b/js/src/u2f.js @@ -1,6 +1,8 @@ import $ from 'jquery'; +import { AJAX } from './ajax.js'; +import { Functions } from './functions.js'; -window.AJAX.registerOnload('u2f.js', function () { +AJAX.registerOnload('u2f.js', function () { var $inputReg = $('#u2f_registration_response'); if ($inputReg.length > 0) { var $formReg = $inputReg.parents('form'); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index 7eb4b897b4..8df31a7ee5 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -139,12 +139,11 @@ class Header $this->scripts->addFile('vendor/jquery/jquery.validate.min.js'); $this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js'); $this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]); - $this->scripts->addFile('ajax.js'); + $this->scripts->addFile('shared.js'); $this->scripts->addFile('keyhandler.js'); $this->scripts->addFile('menu_resizer.js'); $this->scripts->addFile('cross_framing_protection.js'); $this->scripts->addFile('config.js'); - $this->scripts->addFile('functions.js'); $this->scripts->addFile('navigation.js'); $this->scripts->addFile('indexes.js'); $this->scripts->addFile('common.js'); diff --git a/libraries/classes/Plugins/Transformations/Output/Text_Plain_Sql.php b/libraries/classes/Plugins/Transformations/Output/Text_Plain_Sql.php index a13da15f96..7066849727 100644 --- a/libraries/classes/Plugins/Transformations/Output/Text_Plain_Sql.php +++ b/libraries/classes/Plugins/Transformations/Output/Text_Plain_Sql.php @@ -27,7 +27,6 @@ class Text_Plain_Sql extends SQLTransformationsPlugin $scripts->addFile('vendor/codemirror/lib/codemirror.js'); $scripts->addFile('vendor/codemirror/mode/sql/sql.js'); $scripts->addFile('vendor/codemirror/addon/runmode/runmode.js'); - $scripts->addFile('functions.js'); } /** diff --git a/libraries/classes/Scripts.php b/libraries/classes/Scripts.php index 1153bbf4e1..bf200308df 100644 --- a/libraries/classes/Scripts.php +++ b/libraries/classes/Scripts.php @@ -90,7 +90,7 @@ class Scripts && ! str_contains($filename, 'runtime.js') && ! str_contains($filename, 'name-conflict-fixes.js') && ! str_contains($filename, 'index.php') - && ! str_contains($filename, 'ajax.js') + && ! str_contains($filename, 'shared.js') && ! str_contains($filename, 'datetimepicker.js') && ! str_contains($filename, 'validator-messages.js') && ! str_contains($filename, 'cross_framing_protection.js'); diff --git a/test/classes/HeaderTest.php b/test/classes/HeaderTest.php index 97525e1627..34fa117fe2 100644 --- a/test/classes/HeaderTest.php +++ b/test/classes/HeaderTest.php @@ -261,12 +261,11 @@ class HeaderTest extends AbstractTestCase ['name' => 'vendor/jquery/jquery.validate.min.js', 'fire' => 0], ['name' => 'vendor/jquery/jquery-ui-timepicker-addon.js', 'fire' => 0], ['name' => 'index.php', 'fire' => 0], - ['name' => 'ajax.js', 'fire' => 0], + ['name' => 'shared.js', 'fire' => 0], ['name' => 'keyhandler.js', 'fire' => 1], ['name' => 'menu_resizer.js', 'fire' => 1], ['name' => 'cross_framing_protection.js', 'fire' => 0], ['name' => 'config.js', 'fire' => 1], - ['name' => 'functions.js', 'fire' => 1], ['name' => 'navigation.js', 'fire' => 1], ['name' => 'indexes.js', 'fire' => 1], ['name' => 'common.js', 'fire' => 1], diff --git a/webpack.config.cjs b/webpack.config.cjs index 0d82aff076..1549aecfa8 100644 --- a/webpack.config.cjs +++ b/webpack.config.cjs @@ -11,76 +11,74 @@ module.exports = [ mode: 'none', devtool: 'source-map', entry: { - 'ajax': { import: './js/src/ajax.js', dependOn: 'common' }, 'chart': './js/src/chart.js', - 'codemirror/addon/lint/sql-lint': { import: './js/src/codemirror/addon/lint/sql-lint.js', dependOn: 'common' }, + 'codemirror/addon/lint/sql-lint': './js/src/codemirror/addon/lint/sql-lint.js', 'common': './js/src/common.js', - 'config': { import: './js/src/config.js', dependOn: 'common' }, - 'console': { import: './js/src/console.js', library: { name: 'Console', type: 'window', export: 'Console' }, dependOn: 'common' }, + 'config': './js/src/config.js', + 'console': { import: './js/src/console.js', library: { name: 'Console', type: 'window', export: 'Console' } }, 'cross_framing_protection': './js/src/cross_framing_protection.js', 'datetimepicker': './js/src/datetimepicker.js', - 'database/central_columns': { import: './js/src/database/central_columns.js', dependOn: 'common' }, + 'database/central_columns': './js/src/database/central_columns.js', 'database/events': './js/src/database/events.js', - 'database/multi_table_query': { import: './js/src/database/multi_table_query.js', dependOn: 'common' }, - 'database/operations': { import: './js/src/database/operations.js', dependOn: 'common' }, + 'database/multi_table_query': './js/src/database/multi_table_query.js', + 'database/operations': './js/src/database/operations.js', 'database/qbe': './js/src/database/qbe.js', 'database/query_generator': './js/src/database/query_generator.js', 'database/routines': './js/src/database/routines.js', - 'database/search': { import: './js/src/database/search.js', dependOn: 'common' }, - 'database/structure': { import: './js/src/database/structure.js', dependOn: 'common' }, - 'database/tracking': { import: './js/src/database/tracking.js', dependOn: 'common' }, + 'database/search': './js/src/database/search.js', + 'database/structure': './js/src/database/structure.js', + 'database/tracking': './js/src/database/tracking.js', 'database/triggers': './js/src/database/triggers.js', 'designer/database': './js/src/designer/database.js', 'designer/history': './js/src/designer/history.js', 'designer/init': './js/src/designer/init.js', - 'designer/move': { import: './js/src/designer/move.js', dependOn: 'common' }, + 'designer/move': './js/src/designer/move.js', 'designer/objects': './js/src/designer/objects.js', 'designer/page': './js/src/designer/page.js', - 'drag_drop_import': { import: './js/src/drag_drop_import.js', dependOn: 'common' }, - 'error_report': { import: './js/src/error_report.js', dependOn: 'common' }, - 'export': { import: './js/src/export.js', dependOn: 'common' }, + 'drag_drop_import': './js/src/drag_drop_import.js', + 'error_report': './js/src/error_report.js', + 'export': './js/src/export.js', 'export_output': './js/src/export_output.js', - 'functions': { import: './js/src/functions.js', dependOn: 'common' }, - 'gis_data_editor': { import: './js/src/gis_data_editor.js', dependOn: 'common' }, - 'home': { import: './js/src/home.js', dependOn: 'common' }, + 'gis_data_editor': './js/src/gis_data_editor.js', + 'home': './js/src/home.js', 'import': './js/src/import.js', - 'indexes': { import: './js/src/indexes.js', dependOn: 'common' }, + 'indexes': './js/src/indexes.js', 'jqplot/plugins/jqplot.byteFormatter': './js/src/jqplot/plugins/jqplot.byteFormatter.js', 'jquery.sortable-table': './js/src/jquery.sortable-table.js', 'keyhandler': './js/src/keyhandler.js', 'main': './js/src/main.js', - 'makegrid': { import: './js/src/makegrid.js', dependOn: 'common' }, + 'makegrid': './js/src/makegrid.js', 'menu_resizer': './js/src/menu_resizer.js', - 'multi_column_sort': { import: './js/src/multi_column_sort.js', dependOn: 'common' }, + 'multi_column_sort': './js/src/multi_column_sort.js', 'name-conflict-fixes': './js/src/name-conflict-fixes.js', - 'navigation': { import: './js/src/navigation.js', dependOn: 'common' }, - 'normalization': { import: './js/src/normalization.js', dependOn: 'common' }, + 'navigation': './js/src/navigation.js', + 'normalization': './js/src/normalization.js', 'page_settings': './js/src/page_settings.js', 'replication': './js/src/replication.js', - 'server/databases': { import: './js/src/server/databases.js', dependOn: 'common' }, + 'server/databases': './js/src/server/databases.js', 'server/plugins': './js/src/server/plugins.js', - 'server/privileges': { import: './js/src/server/privileges.js', dependOn: 'common' }, - 'server/status/monitor': { import: './js/src/server/status/monitor.js', dependOn: 'common' }, - 'server/status/processes': { import: './js/src/server/status/processes.js', dependOn: 'common' }, + 'server/privileges': './js/src/server/privileges.js', + 'server/status/monitor': './js/src/server/status/monitor.js', + 'server/status/processes': './js/src/server/status/processes.js', 'server/status/queries': './js/src/server/status/queries.js', 'server/status/sorter': './js/src/server/status/sorter.js', 'server/status/variables': './js/src/server/status/variables.js', 'server/user_groups': './js/src/server/user_groups.js', - 'server/variables': { import: './js/src/server/variables.js', dependOn: 'common' }, + 'server/variables': './js/src/server/variables.js', 'setup/ajax': './js/src/setup/ajax.js', 'setup/scripts': './js/src/setup/scripts.js', - 'shortcuts_handler': { import: './js/src/shortcuts_handler.js', dependOn: 'common' }, - 'sql': { import: './js/src/sql.js', dependOn: 'common' }, + 'shortcuts_handler': './js/src/shortcuts_handler.js', + 'sql': './js/src/sql.js', 'table/change': './js/src/table/change.js', 'table/chart': './js/src/table/chart.js', 'table/find_replace': './js/src/table/find_replace.js', 'table/gis_visualization': './js/src/table/gis_visualization.js', - 'table/operations': { import: './js/src/table/operations.js', dependOn: 'common' }, - 'table/relation': { import: './js/src/table/relation.js', dependOn: 'common' }, - 'table/select': { import: './js/src/table/select.js', dependOn: 'common' }, - 'table/structure': { import: './js/src/table/structure.js', dependOn: 'common' }, - 'table/tracking': { import: './js/src/table/tracking.js', dependOn: 'common' }, - 'table/zoom_plot_jqplot': { import: './js/src/table/zoom_plot_jqplot.js', dependOn: 'common' }, + 'table/operations': './js/src/table/operations.js', + 'table/relation': './js/src/table/relation.js', + 'table/select': './js/src/table/select.js', + 'table/structure': './js/src/table/structure.js', + 'table/tracking': './js/src/table/tracking.js', + 'table/zoom_plot_jqplot': './js/src/table/zoom_plot_jqplot.js', 'transformations/image_upload': './js/src/transformations/image_upload.js', 'transformations/json': './js/src/transformations/json.js', 'transformations/json_editor': './js/src/transformations/json_editor.js', @@ -96,6 +94,11 @@ module.exports = [ }, optimization: { runtimeChunk: 'single', + splitChunks: { + chunks: 'all', + name: 'shared', + minSize: 1, + }, }, externals: { jquery: 'jQuery',