diff --git a/js/src/ajax.js b/js/src/ajax.js index f07e03072f..7df310511c 100644 --- a/js/src/ajax.js +++ b/js/src/ajax.js @@ -936,18 +936,3 @@ window.AJAX = { }; } }; - -window.AJAX.registerOnload('functions.js', function () { - window.AJAX.removeSubmitEvents(); -}); - -$(window.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('ajaxError', window.AJAX.getFatalErrorHandler()); diff --git a/js/src/config.js b/js/src/config.js index 14b181206b..756e859a81 100644 --- a/js/src/config.js +++ b/js/src/config.js @@ -824,6 +824,3 @@ window.Config = { }; } }; - -window.AJAX.registerTeardown('config.js', window.Config.off()); -window.AJAX.registerOnload('config.js', window.Config.on()); diff --git a/js/src/cross_framing_protection.js b/js/src/cross_framing_protection.js index e25e60ab51..c43e7958e6 100644 --- a/js/src/cross_framing_protection.js +++ b/js/src/cross_framing_protection.js @@ -2,7 +2,7 @@ * Conditionally included if framing is not allowed. * @return {void} */ -const crossFramingProtection = () => { +window.crossFramingProtection = () => { if (window.allowThirdPartyFraming) { return; } @@ -20,5 +20,3 @@ const crossFramingProtection = () => { styleElement.parentNode.removeChild(styleElement); }; - -crossFramingProtection(); diff --git a/js/src/keyhandler.js b/js/src/keyhandler.js index 561c9b169c..9ef70b065e 100644 --- a/js/src/keyhandler.js +++ b/js/src/keyhandler.js @@ -151,6 +151,3 @@ const KeyHandlerEvents = { }; window.KeyHandlerEvents = KeyHandlerEvents; - -window.AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off()); -window.AJAX.registerOnload('keyhandler.js', window.KeyHandlerEvents.on()); diff --git a/js/src/main.js b/js/src/main.js new file mode 100644 index 0000000000..11b424b8f3 --- /dev/null +++ b/js/src/main.js @@ -0,0 +1,18 @@ +window.AJAX.registerOnload('functions.js', () => window.AJAX.removeSubmitEvents()); +$(window.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('ajaxError', window.AJAX.getFatalErrorHandler()); + +window.AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off()); +window.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()); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index 48edfe469e..d95804732b 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -143,6 +143,7 @@ class Header $this->scripts->addFile('cross_framing_protection.js'); $this->scripts->addFile('messages.php', ['l' => $GLOBALS['lang']]); $this->scripts->addFile('config.js'); + $this->scripts->addFile('main.js'); $this->scripts->addFile('doclinks.js'); $this->scripts->addFile('functions.js'); $this->scripts->addFile('navigation.js'); diff --git a/webpack.config.js b/webpack.config.js index 387013af6f..83bfe6936d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -49,6 +49,7 @@ module.exports = [ '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': './js/src/makegrid.js', 'menu_resizer': './js/src/menu_resizer.js', 'multi_column_sort': './js/src/multi_column_sort.js',