MDL-26337 Improve close_window. Fix bug when $reloadopener is false, and better usability when it is true.

This commit is contained in:
Tim Hunt
2011-02-09 19:02:31 +00:00
parent f7d843d167
commit 8711360225
2 changed files with 4 additions and 16 deletions
-11
View File
@@ -1061,17 +1061,6 @@ function close_window(e) {
window.close();
}
/**
* Close the current browser window, forcing the window/tab that opened this
* popup to reload itself. */
function close_window_reloading_opener() {
if (window.opener) {
window.opener.location.reload(1);
close_window({});
// Intentionally, only try to close the window if there is some evidence we are in a popup.
}
}
/**
* Used in a couple of modules to hide navigation areas when using AJAX
*/
+4 -5
View File
@@ -823,13 +823,12 @@ function close_window($delay = 0, $reloadopener = false) {
}
if ($reloadopener) {
$function = 'close_window_reloading_opener';
} else {
$function = 'close_window';
// Trigger the reload immediately, even if the reload is after a delay.
$PAGE->requires->js_function_call('window.opener.location.reload', array(true));
}
echo '<p class="centerpara">' . get_string('windowclosing') . '</p>';
$OUTPUT->notification(get_string('windowclosing'), 'notifysuccess');
$PAGE->requires->js_function_call($function, null, false, $delay);
$PAGE->requires->js_function_call('close_window', array(new stdClass()), false, $delay);
echo $OUTPUT->footer();
exit;