Dactyloidae/mailnews/base/content/msgFolderPickerOverlay.js

99 lines
2.4 KiB
JavaScript

/* -*- 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));
}