From 76806b1a831c84fc02a8fa9be47a10a57c0605ef Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 28 Jul 2010 21:17:57 +0000 Subject: [PATCH] See ChangeLog. Monotone-Parent: c1fbc1eec0e204f82627f44220958a6f0f63ffe9 Monotone-Revision: ea268f9db61939a18337c4648193cc321736356b Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2010-07-28T21:17:57 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 ++++ UI/WebServerResources/MailerUI.js | 29 +++++++++++++++++--------- UI/WebServerResources/UIxMailEditor.js | 1 + UI/WebServerResources/generic.js | 4 ++-- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42add674f..236fd4b74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-07-28 Francis Lachapelle + * UI/WebServerResources/MailerUI.js (deleteCachedMailboxByType, + deletedCachedMailbox): new methods to update the datasources + (mailboxes) cache. + * UI/WebServerResources/UIxComponentEditor.js (getCalendarOwner): new function that returns the event organizer or the calendar owner in case of an event with no organizer yet. diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index b887f4934..a32c13810 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -548,11 +548,7 @@ function onMailboxMenuMove(event) { } // Remove cache of target data source - var keys = Mailer.dataSources.keys(); - for (var i = 0; i < keys.length; i++) { - if (keys[i] == targetMailbox || keys[i].startsWith(targetMailbox + "?")) - Mailer.dataSources.unset(keys[i]); - } + deleteCachedMailbox(targetMailbox); var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/moveMessages"; var parameters = "uid=" + uids.join(",") + "&folder=" + targetMailbox; @@ -583,11 +579,7 @@ function onMailboxMenuCopy(event) { } // Remove cache of target data source - var keys = Mailer.dataSources.keys(); - for (var i = 0; i < keys.length; i++) { - if (keys[i] == targetMailbox || keys[i].startsWith(targetMailbox + "?")) - Mailer.dataSources.unset(keys[i]); - } + deleteCachedMailbox(targetMailbox); var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/copyMessages"; var parameters = "uid=" + uids.join(",") + "&folder=" + targetMailbox; @@ -894,6 +886,23 @@ function onFolderMenuHide(event) { topNode.selectedEntry.selectElement(); } +function deleteCachedMailboxByType(type) { + var nodes = $("mailboxTree").select("DIV[datatype=" + type + "]"); + if (nodes.length == 1) + deleteCachedMailbox(nodes[0].readAttribute("dataname")); + + if (Mailer.currentMailboxType == type) + refreshCurrentFolder(); +} + +function deleteCachedMailbox(mailboxPath) { + var keys = Mailer.dataSources.keys(); + for (var i = 0; i < keys.length; i++) { + if (keys[i] == mailboxPath || keys[i].startsWith(mailboxPath + "?")) + Mailer.dataSources.unset(keys[i]); + } +} + function deleteCachedMessage(messageId) { var done = false; var counter = 0; diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index 790758f75..4451d833a 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -228,6 +228,7 @@ function clickedEditorSave(sender) { if (window.opener && window.opener.open && !window.opener.closed) window.opener.refreshFolderByType('draft'); + return false; } diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index d8056e0e0..91be90dbc 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -236,8 +236,8 @@ function deleteDraft(url) { function refreshFolderByType(type) { /* this is called by UIxMailEditor with window.opener */ - if (typeof Mailer != 'undefined' && Mailer.currentMailboxType == type) - refreshCurrentFolder(); + if (typeof Mailer != 'undefined') + deleteCachedMailboxByType(type); } function createHTTPClient() {