javascript cleanup: MDL-16583 clean up the close_window function in weblib.php.

This commit is contained in:
tjhunt 2008-12-10 08:57:50 +00:00
parent ff9b4ea40a
commit b166403f18
3 changed files with 40 additions and 18 deletions

View File

@ -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...';

View File

@ -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.
}
}

View File

@ -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) {
?>
<script type="text/javascript">
//<![CDATA[
function close_this_window() {
self.close();
}
setTimeout("close_this_window()", <?php echo $delay * 1000 ?>);
//]]>
</script>
<noscript><center>
<?php print_string('pleaseclose') ?>
</center></noscript>
<?php
die;
}
function close_window($delay = 0, $reloadopener = false) {
global $THEME;
if (!defined('HEADER_PRINTED')) {
print_header(get_string('closewindow'));
} else {
print_container_end_all(false, $THEME->open_header_containers);
}
if ($reloadopener) {
$function = 'close_window_reloading_opener';
} else {
$function = 'close_window';
}
echo '<p class="centerpara">' . get_string('windowclosing') . '</p>';
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.