/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* 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/. */ var { MailUtils } = ChromeUtils.import("resource:///modules/MailUtils.jsm"); 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.getExistingFolder(uri); 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.getExistingFolder(uri); 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)); }