From: tjhunt Date: Wed, 10 Dec 2008 08:57:50 +0000 (+0000) Subject: javascript cleanup: MDL-16583 clean up the close_window function in weblib.php. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=b166403f1820f4a285e63e7ca06a5a5f0240167e;p=moodle.git javascript cleanup: MDL-16583 clean up the close_window function in weblib.php. --- diff --git a/lang/en_utf8/moodle.php b/lang/en_utf8/moodle.php index 17f79aa23f..35604f57d3 100644 --- a/lang/en_utf8/moodle.php +++ b/lang/en_utf8/moodle.php @@ -1686,6 +1686,7 @@ within the course so that we can learn more about you: $a->profileurl'; $string['whattocallzip'] = 'What do you want to call the zip file?'; $string['whattodo'] = 'What to do'; +$string['windowclosing'] = 'This window should close automatically. If not, please close it now.'; $string['withchosenfiles'] = 'With chosen files'; $string['withoutuserdata'] = 'without user data'; $string['withselectedusers'] = 'With selected users...'; diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 2e83272751..db921e740e 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -731,4 +731,20 @@ collapsible_region.prototype.handle_animation_complete = function() { if (this.collapsed) { this.div.className += ' collapsed'; } +} + +/** Close the current browser window. */ +function close_window() { + 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. + } } \ No newline at end of file diff --git a/lib/weblib.php b/lib/weblib.php index 09786b657b..16a8d152b7 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -675,26 +675,31 @@ function close_window_button($name='closewindow', $return=false, $reloadopener = } /* - * Try and close the current window immediately using Javascript - * @param int $delay the delay in seconds before closing the window + * Try and close the current window using JavaScript, either immediately, or after a delay. + * @param integer $delay a delay in seconds before closing the window. Default 0. + * @param boolean $reloadopener if true, we will see if this window was a pop-up, and try + * to reload the parent window before this one closes. */ -function close_window($delay=0) { -?> - - -' . get_string('windowclosing') . '

'; + print_delayed_js_call($delay, $function); + + print_footer('empty'); + exit; +} /** * Given an array of values, output the HTML for a select element with those options.