mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-14 20:14:11 +01:00
Add browser popup blocker checker for open_link method.
-Fix not poping up the emailadminWizard popup when an IMAP error occurrs, because of the browser blocks the popup.
This commit is contained in:
parent
2fcb09d458
commit
baa5e4cdbc
@ -169,7 +169,7 @@ class mail_ui
|
||||
{
|
||||
$response = egw_json_response::get();
|
||||
$windowName = "editMailAccount".self::$icServerID;
|
||||
$response->call("egw.open_link", egw::link('/index.php', $linkData), $windowName, "600x480");
|
||||
$response->call("egw.open_link", egw::link('/index.php', $linkData), $windowName, "600x480",null,true);
|
||||
egw_framework::message($message, 'error');
|
||||
if ($_GET['menuaction'] == 'mail.mail_ui.index')
|
||||
{
|
||||
|
@ -238,8 +238,10 @@ egw.extend('open', egw.MODULE_WND_LOCAL, function(_egw, _wnd) {
|
||||
* @param string _target optional target / window name
|
||||
* @param string _popup widthxheight, if a popup should be used
|
||||
* @param string _target_app app-name for opener
|
||||
* @param boolean _check_popup_blocker TRUE check if browser pop-up blocker is on/off, FALSE no check
|
||||
* - This option only makes sense to be enabled when the open_link requested without user interaction
|
||||
*/
|
||||
open_link: function(_link, _target, _popup, _target_app)
|
||||
open_link: function(_link, _target, _popup, _target_app, _check_popup_blocker)
|
||||
{
|
||||
// Log for debugging purposes - don't use navigation here to avoid
|
||||
// flooding log with details already captured by egw.open()
|
||||
@ -247,7 +249,11 @@ egw.extend('open', egw.MODULE_WND_LOCAL, function(_egw, _wnd) {
|
||||
"egw.open_link(_link=%s, _target=%s, _popup=%s, _target_app=%s)",
|
||||
_link,_target,_popup,_target_app
|
||||
);
|
||||
|
||||
//Check browser pop-up blocker
|
||||
if (_check_popup_blocker)
|
||||
{
|
||||
if (this._check_popupBlocker(_link, _target, _popup, _target_app)) return;
|
||||
}
|
||||
var url = _link;
|
||||
if (url.indexOf('javascript:') == 0)
|
||||
{
|
||||
@ -312,6 +318,37 @@ egw.extend('open', egw.MODULE_WND_LOCAL, function(_egw, _wnd) {
|
||||
{
|
||||
_wnd.location.href = _url;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if browser pop-up blocker is on/off
|
||||
*
|
||||
* @param string _link menuaction, EGroupware relative url or a full url (incl. "mailto:" or "javascript:")
|
||||
* @param string _target optional target / window name
|
||||
* @param string _popup widthxheight, if a popup should be used
|
||||
* @param string _target_app app-name for opener
|
||||
*
|
||||
* @return boolean returns false if pop-up blocker is off
|
||||
* - returns true if pop-up blocker is on,
|
||||
* - and re-call the open_link with provided parameters, after user interaction.
|
||||
*/
|
||||
_check_popupBlocker: function(_link, _target, _popup, _target_app)
|
||||
{
|
||||
var popup = window.open("","",'top='+(screen.height/2)+',left='+(screen.width/2)+',width=1,height=1,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no,dependent=yes');
|
||||
|
||||
if (!popup||popup == 'undefined'||popup == null)
|
||||
{
|
||||
et2_dialog.show_dialog(function(){
|
||||
window.egw.open_link(_link, _target, _popup, _target_app);
|
||||
},egw.lang("The browser popup blocker is on. Please click on OK button to see the pop-up.\n\nIf you would like to not see this message for the next time, allow your browser pop-up blocker to open popups from %1",window.location.hostname) ,
|
||||
"Popup Blocker Warning",{},et2_dialog.BUTTONS_OK,et2_dialog.WARNING_MESSAGE);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
popup.close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
@ -790,6 +790,7 @@ text color: common de Textfarbe:
|
||||
thailand common de THAILAND
|
||||
the api is current common de Die API ist aktuell
|
||||
the api requires an upgrade common de Die API benötigt eine Aktualisierung
|
||||
the browser popup blocker is on. please click on ok button to see the pop-up.\n\nif you would like to not see this message for the next time, allow your browser pop-up blocker to open popups from %1 common de Ihr Browser hat das Öffnen eines Popup-Dialogs blockiert. Bitte klicken Sie OK, um das Popup angezeigt zu bekommen.\n\nWenn Sie die Meldung nicht nochmals erhalten wollen, erlauben Sie bitte in den Einstellungen vom Browser für %1 das Öffnen von Popups.
|
||||
the following applications require upgrades common de Die folgenden Anwendungen benötigen eine Aktualisierung
|
||||
the mail server returned common de Der E-Mail-Server liefert zurück
|
||||
there already is a system-user with this name. user's should not have the same name as a systemuser common de Es gibt schon einen System Benutzer mit dem selben Namen. Die Benutzer sollten nicht die gleichen Namen haben, wie die Systembenutzer.
|
||||
|
Loading…
Reference in New Issue
Block a user