From 9956e9ff31d990df1f5b2038556f31e76c720c62 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Thu, 11 Jul 2024 21:09:08 +0100 Subject: [PATCH] MDL-73662 mod_quiz: fix initialization arguments to close button. Co-authored-by: Sergio Rabellino --- mod/quiz/classes/output/renderer.php | 2 +- mod/quiz/module.js | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mod/quiz/classes/output/renderer.php b/mod/quiz/classes/output/renderer.php index 347a19f8530..f90a1672e07 100644 --- a/mod/quiz/classes/output/renderer.php +++ b/mod/quiz/classes/output/renderer.php @@ -705,7 +705,7 @@ class renderer extends plugin_renderer_base { $delay = 0; } $this->page->requires->js_init_call('M.mod_quiz.secure_window.close', - [$url, $delay], false, quiz_get_js_module()); + [$url->out(false), $delay], false, quiz_get_js_module()); $output .= $this->box_end(); $output .= $this->footer(); diff --git a/mod/quiz/module.js b/mod/quiz/module.js index 1921b6e43e1..c116172f5b7 100644 --- a/mod/quiz/module.js +++ b/mod/quiz/module.js @@ -398,13 +398,26 @@ M.mod_quiz.secure_window = { e.halt(); }, + /** + * Initialize the event listener for the secure window close button + * + * @param {Object} Y YUI instance. When called from renderer, this parameter precedes the others + * @param {String} url + */ init_close_button: function(Y, url) { Y.on('click', function(e) { - M.mod_quiz.secure_window.close(url, 0) + M.mod_quiz.secure_window.close(Y, url, 0); }, '#secureclosebutton'); }, - close: function(url, delay) { + /** + * Close the secure window, or redirect to URL if the opener is no longer present + * + * @param {Object} Y YUI instance. When called from renderer, this parameter precedes the others + * @param {String} url + * @param {Number} delay + */ + close: function(Y, url, delay) { setTimeout(function() { if (window.opener) { window.opener.document.location.reload();