From 5abd2def9c10f58a5d7b76d4e73170accbcb75e8 Mon Sep 17 00:00:00 2001 From: "sspitzer%netscape.com" Date: Sat, 9 Nov 2002 09:38:48 +0000 Subject: [PATCH] fix for: 2.4.5 Enable "receiving" (Get Msg?) when choosing File Cabinet see http://jazz.mcom.com/users/scottip/publish/ishmail/Japan_Requirements.html also fixed on the trunk. git-svn-id: svn://10.0.0.236/branches/ISHMAIL_1_0_BRANCH@133470 18797224-902f-48f8-a5cc-f745e15eee43 --- .../resources/content/mailWindowOverlay.js | 84 ++++++++++++------- 1 file changed, 55 insertions(+), 29 deletions(-) diff --git a/mozilla/mailnews/base/resources/content/mailWindowOverlay.js b/mozilla/mailnews/base/resources/content/mailWindowOverlay.js index d4c9eab179c..58bebccc486 100644 --- a/mozilla/mailnews/base/resources/content/mailWindowOverlay.js +++ b/mozilla/mailnews/base/resources/content/mailWindowOverlay.js @@ -854,11 +854,9 @@ function MsgNewFolder(callBackFunctionName) dump ("Exception: dualUseFolders = true\n"); } } - CreateNewSubfolder("chrome://messenger/content/newFolderDialog.xul", destinationFolder, dualUseFolders, callBackFunctionName); } - function getDestinationFolder(preselectedFolder, server) { var destinationFolder = null; @@ -877,10 +875,7 @@ function getDestinationFolder(preselectedFolder, server) if (!verifyCreateSubfolders) { try { - var account = accountManager.defaultAccount; - var defaultServer = account.incomingServer; - var defaultFolder = defaultServer.rootMsgFolder; - + var defaultFolder = GetDefaultAccountRootFolder(); var checkCreateSubfolders = null; if (defaultFolder) checkCreateSubfolders = defaultFolder.canCreateSubfolders; @@ -1232,24 +1227,12 @@ function IsMailFolderSelected() function IsGetNewMessagesEnabled() { - var selectedFolders = GetSelectedMsgFolders(); - var numFolders = selectedFolders.length; - if(numFolders !=1) - return false; - - var folder = selectedFolders[0]; - if (!folder) - return false; - - var server = folder.server; - var isServer = folder.isServer; - var serverType = server.type; - - if(isServer && (serverType == "nntp")) - return false; - else if(serverType == "none") - return false; - else + // users don't like it when the "Get Msgs" button is enabled + // so let's never do that + // we'll just handle it as best we can in GetFolderMessages() + // when they click "Get Msgs" and + // Local Folders or a news server is selected + // see bugs #89404 and #111102 return true; } @@ -1460,23 +1443,66 @@ function PromptSendMessagesOffline() return buttonPressed; } +function GetDefaultAccountRootFolder() +{ + try { + var account = accountManager.defaultAccount; + var defaultServer = account.incomingServer; + var defaultFolder = defaultServer.rootMsgFolder; + return defaultFolder; + } + catch (ex) { + } + return null; +} + function GetFolderMessages() { - var folders = GetSelectedMsgFolders(); + var selectedFolders = GetSelectedMsgFolders(); + var defaultAccountRootFolder = GetDefaultAccountRootFolder(); + + // if no default account, get msg isn't going do anything anyways + // so bail out + if (!defaultAccountRootFolder) + return; + + // if nothing selected, use the default + var folder = selectedFolders.length ? selectedFolders[0] : defaultAccountRootFolder; + + var serverType = folder.server.type; + + if (folder.isServer && (serverType == "nntp")) { + // if we're doing "get msgs" on a news server + // update unread counts on this server + folder.server.performExpand(msgWindow); + return; + } + else if (serverType == "none") { + // if "Local Folders" is selected + // and the user does "Get Msgs" + // get new mail for the default account + // + // XXX TODO + // should shift click get mail for all (authenticated) accounts? + // see bug #125885 + folder = defaultAccountRootFolder; + } + + var folders = new Array(1); + folders[0] = folder; + var compositeDataSource = GetCompositeDataSource("GetNewMessages"); GetNewMessages(folders, compositeDataSource); } function SendUnsentMessages() { - var am = Components.classes["@mozilla.org/messenger/account-manager;1"] - .getService(Components.interfaces.nsIMsgAccountManager); var msgSendlater = Components.classes["@mozilla.org/messengercompose/sendlater;1"] .getService(Components.interfaces.nsIMsgSendLater); var identitiesCount, allIdentities, currentIdentity, numMessages, msgFolder; - if(am) { - allIdentities = am.allIdentities; + if (accountManager) { + allIdentities = accountManager.allIdentities; identitiesCount = allIdentities.Count(); for (var i = 0; i < identitiesCount; i++) { currentIdentity = allIdentities.QueryElementAt(i, Components.interfaces.nsIMsgIdentity);