diff options
Diffstat (limited to 'mailnews/base/content/msgFolderPickerOverlay.js')
-rw-r--r-- | mailnews/base/content/msgFolderPickerOverlay.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/mailnews/base/content/msgFolderPickerOverlay.js b/mailnews/base/content/msgFolderPickerOverlay.js new file mode 100644 index 000000000..35b1e86cf --- /dev/null +++ b/mailnews/base/content/msgFolderPickerOverlay.js @@ -0,0 +1,99 @@ +/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +Components.utils.import("resource:///modules/MailUtils.js"); + +var gMessengerBundle; + +// call this from dialog onload() to set the menu item to the correct value +function MsgFolderPickerOnLoad(pickerID) +{ + var uri = null; + try { + uri = window.arguments[0].preselectedURI; + } + catch (ex) { + uri = null; + } + + if (uri) { + //dump("on loading, set titled button to " + uri + "\n"); + + // verify that the value we are attempting to + // pre-flight the menu with is valid for this + // picker type + var msgfolder = MailUtils.getFolderForURI(uri, true); + if (!msgfolder) return; + + var verifyFunction = null; + + switch (pickerID) { + case "msgNewFolderPicker": + verifyFunction = msgfolder.canCreateSubfolders; + break; + case "msgRenameFolderPicker": + verifyFunction = msgfolder.canRename; + break; + default: + verifyFunction = msgfolder.canFileMessages; + break; + } + + if (verifyFunction) { + SetFolderPicker(uri,pickerID); + } + } +} + +function PickedMsgFolder(selection,pickerID) +{ + var selectedUri = selection.getAttribute('id'); + SetFolderPicker(selectedUri,pickerID); +} + +function SetFolderPickerElement(uri, picker) +{ + var msgfolder = MailUtils.getFolderForURI(uri, true); + + if (!msgfolder) + return; + + var selectedValue = null; + var serverName; + + if (msgfolder.isServer) + selectedValue = msgfolder.name; + else { + if (msgfolder.server) + serverName = msgfolder.server.prettyName; + else { + dump("Can't find server for " + uri + "\n"); + serverName = "???"; + } + + switch (picker.id) { + case "runFiltersFolder": + selectedValue = msgfolder.name; + break; + case "msgTrashFolderPicker": + selectedValue = msgfolder.name; + break; + default: + if (!gMessengerBundle) + gMessengerBundle = document.getElementById("bundle_messenger"); + selectedValue = gMessengerBundle.getFormattedString("verboseFolderFormat", + [msgfolder.name, serverName]); + break; + } + } + + picker.setAttribute("label",selectedValue); + picker.setAttribute("uri",uri); +} + +function SetFolderPicker(uri,pickerID) +{ + SetFolderPickerElement(uri, document.getElementById(pickerID)); +} |