mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 12:39:25 +01:00
* Mail: work around Firefox not offering an option to not ask again installing EGroupware as mail-handler
This commit is contained in:
parent
560ed79a5e
commit
e2580aedea
@ -33,11 +33,51 @@ egw.extend('config', egw.MODULE_GLOBAL, function()
|
|||||||
function install_mailto_handler()
|
function install_mailto_handler()
|
||||||
{
|
{
|
||||||
if (document.location.href.match(/(\?|&)cd=yes(&|$)/) &&
|
if (document.location.href.match(/(\?|&)cd=yes(&|$)/) &&
|
||||||
|
!window.sessionStorage.getItem('asked-mailto-handler') &&
|
||||||
typeof navigator.registerProtocolHandler === 'function') // eg. Safari 15.5 does NOT implement it
|
typeof navigator.registerProtocolHandler === 'function') // eg. Safari 15.5 does NOT implement it
|
||||||
{
|
{
|
||||||
|
const _ask_mailto_handler = () => {
|
||||||
let url = egw_webserverUrl;
|
let url = egw_webserverUrl;
|
||||||
if (url[0] === '/') url = document.location.protocol+'://'+document.location.hostname+(url !== '/' ? url : '');
|
if (url[0] === '/') url = document.location.protocol+'://'+document.location.hostname+(url !== '/' ? url : '');
|
||||||
navigator.registerProtocolHandler('mailto', url+'/index.php?menuaction=mail.mail_compose.compose&preset[mailto]=%s', 'Mail');
|
navigator.registerProtocolHandler('mailto', url+'/index.php?menuaction=mail.mail_compose.compose&preset[mailto]=%s', 'Mail');
|
||||||
|
// remember not to ask again for this "session"
|
||||||
|
window.sessionStorage.setItem('asked-mailto-handler', 'yes');
|
||||||
|
};
|
||||||
|
// FF does not support user to opt out of the mailto-handler / have a "Don't ask me again" option,
|
||||||
|
// so we add that ourselves here for Firefox only:
|
||||||
|
if (navigator.userAgent.match(/firefox/i) && !navigator.userAgent.match(/chrome/i))
|
||||||
|
{
|
||||||
|
if (window.localStorage.getItem('asked-mailto-handler'))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const dialog = window.Et2Dialog;
|
||||||
|
if (typeof dialog === 'undefined')
|
||||||
|
{
|
||||||
|
window.setTimeout(install_mailto_handler.bind(this), 1000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dialog.show_dialog((_button) =>
|
||||||
|
{
|
||||||
|
switch(_button)
|
||||||
|
{
|
||||||
|
case dialog.YES_BUTTON:
|
||||||
|
_ask_mailto_handler();
|
||||||
|
// fall through
|
||||||
|
case dialog.NO_BUTTON:
|
||||||
|
window.localStorage.setItem('asked-mailto-handler', _button == dialog.YES_BUTTON ? 'answer-was-yes' : 'answer-was-no');
|
||||||
|
break;
|
||||||
|
case dialog.CANCEL_BUTTON:
|
||||||
|
// ask again next session ...
|
||||||
|
window.sessionStorage.setItem('asked-mailto-handler', 'yes');
|
||||||
|
}
|
||||||
|
}, egw.lang('Answering no will not ask you again for this browser.'), egw.lang('Install EGroupware as mail-handler?'),
|
||||||
|
undefined, dialog.BUTTONS_YES_NO_CANCEL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_ask_mailto_handler();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,6 +137,7 @@ and common de UND
|
|||||||
andorra common de ANDORRA
|
andorra common de ANDORRA
|
||||||
angola common de ANGOLA
|
angola common de ANGOLA
|
||||||
anguilla common de ANGUILLA
|
anguilla common de ANGUILLA
|
||||||
|
answering no will not ask you again for this browser. common de Wenn Sie mit Nein antworten, werden Sie für diesen Browser nicht mehr gefragt.
|
||||||
antarctica common de ANTARKTIS
|
antarctica common de ANTARKTIS
|
||||||
antigua and barbuda common de ANTIGUA UND BARBUDA
|
antigua and barbuda common de ANTIGUA UND BARBUDA
|
||||||
api common de EGroupware API
|
api common de EGroupware API
|
||||||
@ -738,6 +739,7 @@ insert row after common de Zeile danach einfügen
|
|||||||
insert row before common de Zeile davor einfügen
|
insert row before common de Zeile davor einfügen
|
||||||
insert timestamp into description field common de Zeitstempel in das Beschreibungs-Feld einfügen
|
insert timestamp into description field common de Zeitstempel in das Beschreibungs-Feld einfügen
|
||||||
install common de Installieren
|
install common de Installieren
|
||||||
|
install egroupware as mail-handler? common de EGroupware als Mail-Handler installieren?
|
||||||
integer common de Ganzzahl
|
integer common de Ganzzahl
|
||||||
international common de International
|
international common de International
|
||||||
introduction common de Einführung
|
introduction common de Einführung
|
||||||
|
@ -137,6 +137,7 @@ and common en AND
|
|||||||
andorra common en ANDORRA
|
andorra common en ANDORRA
|
||||||
angola common en ANGOLA
|
angola common en ANGOLA
|
||||||
anguilla common en ANGUILLA
|
anguilla common en ANGUILLA
|
||||||
|
answering no will not ask you again for this browser. common en Answering no will not ask you again for this browser.
|
||||||
antarctica common en ANTARCTICA
|
antarctica common en ANTARCTICA
|
||||||
antigua and barbuda common en ANTIGUA AND BARBUDA
|
antigua and barbuda common en ANTIGUA AND BARBUDA
|
||||||
api common en EGroupware API
|
api common en EGroupware API
|
||||||
@ -738,6 +739,7 @@ insert row after common en Insert row after
|
|||||||
insert row before common en Insert row before
|
insert row before common en Insert row before
|
||||||
insert timestamp into description field common en Insert timestamp into description field
|
insert timestamp into description field common en Insert timestamp into description field
|
||||||
install common en Install
|
install common en Install
|
||||||
|
install egroupware as mail-handler? common en Install EGroupware as mail-handler?
|
||||||
integer common en Integer
|
integer common en Integer
|
||||||
international common en International
|
international common en International
|
||||||
introduction common en Introduction
|
introduction common en Introduction
|
||||||
|
Loading…
Reference in New Issue
Block a user