From 993fc69f8110c5c96d6ae96335ccf5c8cf85ec6b Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 15 Oct 2008 15:07:17 +0000 Subject: [PATCH] Monotone-Parent: e3c366d0f994c28dc0f424d8712c67980170a6c1 Monotone-Revision: 77c8b4de9ced789f1bc229519470e879b316a239 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-10-15T15:07:17 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/MailerUI.js | 16 ++++++++++++---- UI/WebServerResources/generic.js | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) 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);