diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 64b6bbad8..e1fcba52a 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -241,8 +241,9 @@ function ml_lowlight(sender) { function onUnload(event) { var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/expunge"; - + new Ajax.Request(url, { + asynchronous: false, method: 'get', onFailure: function(transport) { log("Can't expunge current folder: " + transport.status); @@ -1439,13 +1440,20 @@ function openInbox(node) { function initMailer(event) { if (!$(document.body).hasClassName("popup")) { - // initDnd(); + //initDnd(); initMailboxTree(); initMessageCheckTimer(); + /* Perform an expunge when leaving the webmail */ Event.observe(document, "keydown", onDocumentKeydown); - Event.observe(window, "beforeunload", onUnload); - } + if (isSafari()) { + $('calendarBannerLink').observe("click", onUnload); + $('contactsBannerLink').observe("click", onUnload); + $('logoff').observe("click", onUnload); + } + else + Event.observe(window, "beforeunload", onUnload); + } Event.observe(window, "resize", onWindowResize); onWindowResize(null); diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index c4e3b4a6b..d23621d19 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -268,6 +268,7 @@ function openMailTo(senderMailTo) { function deleteDraft(url) { /* this is called by UIxMailEditor with window.opener */ new Ajax.Request(url, { + asynchronous: false, method: 'post', onFailure: function(transport) { log("draftDeleteCallback: problem during ajax request: " + transport.status);