optional parameter for egw_framework::window_close() to specify an alert message, which get shown/alerted, before closing the window

This commit is contained in:
Ralf Becker 2013-08-26 10:24:11 +00:00
parent 8d9118a4cb
commit aa8a848871
6 changed files with 19 additions and 14 deletions

View File

@ -643,6 +643,10 @@ function etemplate2_handle_load(_type, _response)
// handle egw_framework::window_close(), this will terminate execution // handle egw_framework::window_close(), this will terminate execution
if (data['window-close']) if (data['window-close'])
{ {
if (typeof data['window-close'] == 'string' && data['window-close'] !== 'true')
{
alert(data['window-close']);
}
window.close(); window.close();
} }

View File

@ -1047,7 +1047,7 @@ class filemanager_ui
} }
} }
egw_framework::refresh_opener($msg, 'filemanager', $refresh_path ? $refresh_path : $path, 'edit', null, '&path=[^&]*'); egw_framework::refresh_opener($msg, 'filemanager', $refresh_path ? $refresh_path : $path, 'edit', null, '&path=[^&]*');
if ($button == 'save') egw_framework::window_close(true); // true = call common::egw_exit(); if ($button == 'save') egw_framework::window_close();
} }
if ($content['is_link'] && !egw_vfs::stat($path)) if ($content['is_link'] && !egw_vfs::stat($path))
{ {

View File

@ -2475,10 +2475,7 @@ class infolog_ui
strtotime($mailcontent['headers']['DATE']) strtotime($mailcontent['headers']['DATE'])
)); ));
} }
common::egw_header(); egw_framework::window_close(lang('Error: no mail (Mailbox / UID) given!'));
echo "<script> window.close(); alert('Error: no mail (Mailbox / UID) given!');</script>";
common::egw_exit();
exit;
} }
@ -2491,11 +2488,11 @@ class infolog_ui
*/ */
function custom_print($content,$added) function custom_print($content,$added)
{ {
$vars = array( $vars = array(
'menuaction' => 'infolog.infolog_ui.edit', 'menuaction' => 'infolog.infolog_ui.edit',
'info_id' => $content['info_id'], 'info_id' => $content['info_id'],
'print' => true, 'print' => true,
); );
return "window.open('".egw::link('/index.php',$vars)."','_blank','width=700,height=700,scrollbars=yes,status=no');"; return "window.open('".egw::link('/index.php',$vars)."','_blank','width=700,height=700,scrollbars=yes,status=no');";
} }

View File

@ -191,11 +191,13 @@ abstract class egw_framework
/** /**
* Close (popup) window, use to replace egw_framework::onload('window.close()') in a content security save way * Close (popup) window, use to replace egw_framework::onload('window.close()') in a content security save way
*
* @param string $alert_msg='' optional message to display as alert, before closing the window
*/ */
public static function window_close() public static function window_close($alert_msg='')
{ {
//error_log(__METHOD__."()"); //error_log(__METHOD__."()");
self::$extra['window-close'] = true; self::$extra['window-close'] = $alert_msg ? $alert_msg : true;
if ($_GET['menuaction'] === 'etemplate_new::ajax_process_content') if ($_GET['menuaction'] === 'etemplate_new::ajax_process_content')
{ {

View File

@ -99,12 +99,16 @@
// close window / call window.close(), if data-window-close is specified // close window / call window.close(), if data-window-close is specified
var window_close = egw_script.getAttribute('data-window-close'); var window_close = egw_script.getAttribute('data-window-close');
if (window_close && JSON.parse(window_close)) if (window_close)
{ {
if (typeof window_close == 'string' && window_close !== 'true')
{
alert(window_close);
}
window.close(); window.close();
} }
// close window / call window.focus(), if data-window-focus is specified // focus window / call window.focus(), if data-window-focus is specified
var window_focus = egw_script.getAttribute('data-window-focus'); var window_focus = egw_script.getAttribute('data-window-focus');
if (window_focus && JSON.parse(window_focus)) if (window_focus && JSON.parse(window_focus))
{ {

View File

@ -63,9 +63,7 @@ class timesheet_ui extends timesheet_bo
{ {
if (!$this->read((int)$_GET['ts_id'])) if (!$this->read((int)$_GET['ts_id']))
{ {
common::egw_header(); egw_framework::window_close(lang('Permission denied!!!'));
echo "<script>alert('".lang('Permission denied!!!')."'); window.close();</script>\n";
common::egw_exit();
} }
if (!$view && !$this->check_acl(EGW_ACL_EDIT)) if (!$view && !$this->check_acl(EGW_ACL_EDIT))
{ {