From bdbf82b11f068dca15e74269212532bf50cccdd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sat, 25 Jun 2022 13:05:31 -0300 Subject: [PATCH 1/4] Extract ajax.js side effects into main.js file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- js/src/ajax.js | 15 --------------- js/src/main.js | 10 ++++++++++ libraries/classes/Header.php | 1 + webpack.config.js | 1 + 4 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 js/src/main.js 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/main.js b/js/src/main.js new file mode 100644 index 0000000000..9a00241c04 --- /dev/null +++ b/js/src/main.js @@ -0,0 +1,10 @@ +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()); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index 48edfe469e..d38422df0b 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -132,6 +132,7 @@ class Header $this->scripts->addFile('vendor/jquery/jquery-migrate.js'); $this->scripts->addFile('vendor/sprintf.js'); $this->scripts->addFile('ajax.js'); + $this->scripts->addFile('main.js'); $this->scripts->addFile('keyhandler.js'); $this->scripts->addFile('vendor/jquery/jquery-ui.min.js'); $this->scripts->addFile('name-conflict-fixes.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', From 4a30c8ccbd96e5f7bfaebf1318ee4e3d3ccf6e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sat, 25 Jun 2022 13:06:33 -0300 Subject: [PATCH 2/4] Extract keyhandler.js side effects into main.js file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- js/src/keyhandler.js | 3 --- js/src/main.js | 3 +++ libraries/classes/Header.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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 index 9a00241c04..83ae7f3028 100644 --- a/js/src/main.js +++ b/js/src/main.js @@ -8,3 +8,6 @@ $(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()); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index d38422df0b..c16238d30b 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -132,8 +132,8 @@ class Header $this->scripts->addFile('vendor/jquery/jquery-migrate.js'); $this->scripts->addFile('vendor/sprintf.js'); $this->scripts->addFile('ajax.js'); - $this->scripts->addFile('main.js'); $this->scripts->addFile('keyhandler.js'); + $this->scripts->addFile('main.js'); $this->scripts->addFile('vendor/jquery/jquery-ui.min.js'); $this->scripts->addFile('name-conflict-fixes.js'); $this->scripts->addFile('vendor/bootstrap/bootstrap.bundle.min.js'); From 3560dcfdd443adce0c12409c25077b31065f004e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Mon, 27 Jun 2022 21:40:18 -0300 Subject: [PATCH 3/4] Extract cross_framing_protection.js side effect into main.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- js/src/cross_framing_protection.js | 4 +--- js/src/main.js | 2 ++ libraries/classes/Header.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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/main.js b/js/src/main.js index 83ae7f3028..2843654e11 100644 --- a/js/src/main.js +++ b/js/src/main.js @@ -11,3 +11,5 @@ $(document).on('ajaxError', window.AJAX.getFatalErrorHandler()); window.AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off()); window.AJAX.registerOnload('keyhandler.js', window.KeyHandlerEvents.on()); + +window.crossFramingProtection(); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index c16238d30b..6235586e2a 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -133,7 +133,6 @@ class Header $this->scripts->addFile('vendor/sprintf.js'); $this->scripts->addFile('ajax.js'); $this->scripts->addFile('keyhandler.js'); - $this->scripts->addFile('main.js'); $this->scripts->addFile('vendor/jquery/jquery-ui.min.js'); $this->scripts->addFile('name-conflict-fixes.js'); $this->scripts->addFile('vendor/bootstrap/bootstrap.bundle.min.js'); @@ -142,6 +141,7 @@ class Header $this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js'); $this->scripts->addFile('menu_resizer.js'); $this->scripts->addFile('cross_framing_protection.js'); + $this->scripts->addFile('main.js'); $this->scripts->addFile('messages.php', ['l' => $GLOBALS['lang']]); $this->scripts->addFile('config.js'); $this->scripts->addFile('doclinks.js'); From 3feb1f73f1ae224fcbb163f5ccfb41a36f33fba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Tue, 28 Jun 2022 01:46:24 -0300 Subject: [PATCH 4/4] Extract side effects from config.js file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- js/src/config.js | 3 --- js/src/main.js | 3 +++ libraries/classes/Header.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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/main.js b/js/src/main.js index 2843654e11..11b424b8f3 100644 --- a/js/src/main.js +++ b/js/src/main.js @@ -13,3 +13,6 @@ 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 6235586e2a..d95804732b 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -141,9 +141,9 @@ class Header $this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js'); $this->scripts->addFile('menu_resizer.js'); $this->scripts->addFile('cross_framing_protection.js'); - $this->scripts->addFile('main.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');