зеркало из https://github.com/mozilla/gecko-dev.git
Fix bug 44915, r=putterman a=brendan, adds Attachments to Messenger's File menu.
This commit is contained in:
Родитель
317a99cdd1
Коммит
b28aee4dad
|
@ -16,255 +16,287 @@
|
|||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributors: timeless
|
||||
*/
|
||||
|
||||
function file_init()
|
||||
{
|
||||
file_attachments();
|
||||
/* file_attachments() can return false to indicate a load failure,
|
||||
but if you return false to oncreate then
|
||||
the popup menu will not display which is not a good thing.
|
||||
*/
|
||||
}
|
||||
|
||||
function file_attachments()
|
||||
{
|
||||
var apChild=document.getElementById('attachmentPopup').cloneNode(true);
|
||||
if (!apChild)
|
||||
return false;
|
||||
apChild.removeAttribute('popupanchor');
|
||||
apChild.removeAttribute('popupalign');
|
||||
var amParent=document.getElementById('fileAttachmentMenu');
|
||||
if (!amParent)
|
||||
return false;
|
||||
if (apChild.childNodes.length){
|
||||
if ( amParent.childNodes.length )
|
||||
amParent.removeChild(amParent.childNodes[0]);
|
||||
amParent.appendChild(apChild);
|
||||
amParent.removeAttribute('hidden');
|
||||
}
|
||||
else
|
||||
amParent.setAttribute('hidden',true);
|
||||
return true;
|
||||
}
|
||||
|
||||
function view_init()
|
||||
{
|
||||
var message_menuitem=document.getElementById('menu_showMessage');
|
||||
var message_menuitem=document.getElementById('menu_showMessage');
|
||||
|
||||
if (message_menuitem)
|
||||
{
|
||||
var message_menuitem_hidden = message_menuitem.getAttribute("hidden");
|
||||
if(message_menuitem_hidden != "true"){
|
||||
message_menuitem.setAttribute('checked',!IsThreadAndMessagePaneSplitterCollapsed());
|
||||
}
|
||||
}
|
||||
var threadColumn = document.getElementById('ThreadColumnHeader');
|
||||
var thread_menuitem=document.getElementById('menu_showThreads');
|
||||
if (threadColumn && thread_menuitem){
|
||||
thread_menuitem.setAttribute('checked',threadColumn.getAttribute('currentView')=='threaded');
|
||||
}
|
||||
if (message_menuitem)
|
||||
{
|
||||
var message_menuitem_hidden = message_menuitem.getAttribute("hidden");
|
||||
if(message_menuitem_hidden != "true"){
|
||||
message_menuitem.setAttribute('checked',!IsThreadAndMessagePaneSplitterCollapsed());
|
||||
}
|
||||
}
|
||||
var threadColumn = document.getElementById('ThreadColumnHeader');
|
||||
var thread_menuitem=document.getElementById('menu_showThreads');
|
||||
if (threadColumn && thread_menuitem){
|
||||
thread_menuitem.setAttribute('checked',threadColumn.getAttribute('currentView')=='threaded');
|
||||
}
|
||||
}
|
||||
|
||||
function InitViewMessagesMenu()
|
||||
{
|
||||
var allMenuItem = document.getElementById("viewAllMessagesMenuItem");
|
||||
var hidden = allMenuItem.getAttribute("hidden") == "true";
|
||||
if(allMenuItem && !hidden)
|
||||
allMenuItem.setAttribute("checked", messageView.viewType == viewShowAll);
|
||||
var allMenuItem = document.getElementById("viewAllMessagesMenuItem");
|
||||
var hidden = allMenuItem.getAttribute("hidden") == "true";
|
||||
if(allMenuItem && !hidden)
|
||||
allMenuItem.setAttribute("checked", messageView.viewType == viewShowAll);
|
||||
|
||||
var unreadMenuItem = document.getElementById("viewUnreadMessagesMenuItem");
|
||||
hidden = unreadMenuItem.getAttribute("hidden") == "true";
|
||||
if(unreadMenuItem && !hidden)
|
||||
unreadMenuItem.setAttribute("checked", messageView.viewType == viewShowUnread);
|
||||
var unreadMenuItem = document.getElementById("viewUnreadMessagesMenuItem");
|
||||
hidden = unreadMenuItem.getAttribute("hidden") == "true";
|
||||
if(unreadMenuItem && !hidden)
|
||||
unreadMenuItem.setAttribute("checked", messageView.viewType == viewShowUnread);
|
||||
|
||||
}
|
||||
|
||||
function InitMessageMenu()
|
||||
{
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
var isNews = false;
|
||||
if(aMessage)
|
||||
{
|
||||
isNews = GetMessageType(aMessage) == "news";
|
||||
}
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
var isNews = false;
|
||||
if(aMessage)
|
||||
{
|
||||
isNews = GetMessageType(aMessage) == "news";
|
||||
}
|
||||
|
||||
//We show reply to Newsgroups only for news messages.
|
||||
var replyNewsgroupMenuItem = document.getElementById("replyNewsgroupMainMenu");
|
||||
if(replyNewsgroupMenuItem)
|
||||
replyNewsgroupMenuItem.setAttribute("hidden", isNews ? "" : "true");
|
||||
//We show reply to Newsgroups only for news messages.
|
||||
var replyNewsgroupMenuItem = document.getElementById("replyNewsgroupMainMenu");
|
||||
if(replyNewsgroupMenuItem)
|
||||
replyNewsgroupMenuItem.setAttribute("hidden", isNews ? "" : "true");
|
||||
|
||||
//For mail messages we say reply. For news we say ReplyToSender.
|
||||
var replyMenuItem = document.getElementById("replyMainMenu");
|
||||
if(replyMenuItem)
|
||||
{
|
||||
replyMenuItem.setAttribute("hidden", !isNews ? "" : "true");
|
||||
}
|
||||
//For mail messages we say reply. For news we say ReplyToSender.
|
||||
var replyMenuItem = document.getElementById("replyMainMenu");
|
||||
if(replyMenuItem)
|
||||
{
|
||||
replyMenuItem.setAttribute("hidden", !isNews ? "" : "true");
|
||||
}
|
||||
|
||||
var replySenderMenuItem = document.getElementById("replySenderMainMenu");
|
||||
if(replySenderMenuItem)
|
||||
{
|
||||
replySenderMenuItem.setAttribute("hidden", isNews ? "" : "true");
|
||||
}
|
||||
var replySenderMenuItem = document.getElementById("replySenderMainMenu");
|
||||
if(replySenderMenuItem)
|
||||
{
|
||||
replySenderMenuItem.setAttribute("hidden", isNews ? "" : "true");
|
||||
}
|
||||
|
||||
//disable the move and copy menus only if there are no messages selected.
|
||||
var moveMenu = document.getElementById("moveMenu");
|
||||
if(moveMenu)
|
||||
moveMenu.setAttribute("disabled", !aMessage);
|
||||
//disable the move and copy menus only if there are no messages selected.
|
||||
var moveMenu = document.getElementById("moveMenu");
|
||||
if(moveMenu)
|
||||
moveMenu.setAttribute("disabled", !aMessage);
|
||||
|
||||
var copyMenu = document.getElementById("copyMenu");
|
||||
if(copyMenu)
|
||||
copyMenu.setAttribute("disabled", !aMessage);
|
||||
var copyMenu = document.getElementById("copyMenu");
|
||||
if(copyMenu)
|
||||
copyMenu.setAttribute("disabled", !aMessage);
|
||||
|
||||
}
|
||||
|
||||
function GetMessageType(message)
|
||||
{
|
||||
|
||||
var compositeDS = GetCompositeDataSource("MessageProperty");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#MessageType');
|
||||
var result = compositeDS.GetTarget(message, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
return result.Value;
|
||||
var compositeDS = GetCompositeDataSource("MessageProperty");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#MessageType');
|
||||
var result = compositeDS.GetTarget(message, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
return result.Value;
|
||||
|
||||
}
|
||||
|
||||
function InitMessageMarkMenu()
|
||||
{
|
||||
InitMarkReadMenuItem();
|
||||
InitMarkFlaggedMenuItem();
|
||||
InitMarkReadMenuItem();
|
||||
InitMarkFlaggedMenuItem();
|
||||
|
||||
}
|
||||
|
||||
function InitMarkReadMenuItem()
|
||||
{
|
||||
|
||||
areMessagesRead = SelectedMessagesAreRead();
|
||||
areMessagesRead = SelectedMessagesAreRead();
|
||||
|
||||
var markReadMenuItem = document.getElementById("markReadMenuItem");
|
||||
if(markReadMenuItem)
|
||||
markReadMenuItem.setAttribute("checked", areMessagesRead);
|
||||
var markReadMenuItem = document.getElementById("markReadMenuItem");
|
||||
if(markReadMenuItem)
|
||||
markReadMenuItem.setAttribute("checked", areMessagesRead);
|
||||
}
|
||||
|
||||
function SelectedMessagesAreRead()
|
||||
{
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
|
||||
var compositeDS = GetCompositeDataSource("MarkMessageRead");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#IsUnread');
|
||||
var compositeDS = GetCompositeDataSource("MarkMessageRead");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#IsUnread');
|
||||
|
||||
var areMessagesRead =false;
|
||||
var areMessagesRead =false;
|
||||
|
||||
if(!aMessage)
|
||||
areMessagesRead = false;
|
||||
else
|
||||
{
|
||||
var result = compositeDS.GetTarget(aMessage, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
areMessagesRead = result.Value != "true"
|
||||
}
|
||||
if(!aMessage)
|
||||
areMessagesRead = false;
|
||||
else
|
||||
{
|
||||
var result = compositeDS.GetTarget(aMessage, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
areMessagesRead = result.Value != "true"
|
||||
}
|
||||
|
||||
return areMessagesRead;
|
||||
return areMessagesRead;
|
||||
}
|
||||
|
||||
function InitMarkFlaggedMenuItem()
|
||||
{
|
||||
areMessagesFlagged = SelectedMessagesAreFlagged();
|
||||
areMessagesFlagged = SelectedMessagesAreFlagged();
|
||||
|
||||
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
|
||||
if(markFlaggedMenuItem)
|
||||
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
|
||||
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
|
||||
if(markFlaggedMenuItem)
|
||||
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
|
||||
}
|
||||
|
||||
function SelectedMessagesAreFlagged()
|
||||
{
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
var aMessage = GetSelectedMessage(0);
|
||||
|
||||
var compositeDS = GetCompositeDataSource("MarkMessageFlagged");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#Flagged');
|
||||
var compositeDS = GetCompositeDataSource("MarkMessageFlagged");
|
||||
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#Flagged');
|
||||
|
||||
var areMessagesFlagged = false;
|
||||
var areMessagesFlagged = false;
|
||||
|
||||
if(!aMessage)
|
||||
areMessagesFlagged = false;
|
||||
else
|
||||
{
|
||||
var result = compositeDS.GetTarget(aMessage, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
areMessagesFlagged = (result.Value == "flagged");
|
||||
}
|
||||
return areMessagesFlagged;
|
||||
if(!aMessage)
|
||||
areMessagesFlagged = false;
|
||||
else
|
||||
{
|
||||
var result = compositeDS.GetTarget(aMessage, property, true);
|
||||
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
|
||||
areMessagesFlagged = (result.Value == "flagged");
|
||||
}
|
||||
return areMessagesFlagged;
|
||||
}
|
||||
|
||||
function GetFirstSelectedMsgFolder()
|
||||
{
|
||||
var result = null;
|
||||
var selectedFolders = GetSelectedMsgFolders();
|
||||
if (selectedFolders.length > 0) {
|
||||
result = selectedFolders[0];
|
||||
}
|
||||
var result = null;
|
||||
var selectedFolders = GetSelectedMsgFolders();
|
||||
if (selectedFolders.length > 0) {
|
||||
result = selectedFolders[0];
|
||||
}
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
function MsgGetMessage()
|
||||
{
|
||||
var folders = GetSelectedMsgFolders();
|
||||
var compositeDataSource = GetCompositeDataSource("GetNewMessages");
|
||||
GetNewMessages(folders, compositeDataSource);
|
||||
var folders = GetSelectedMsgFolders();
|
||||
var compositeDataSource = GetCompositeDataSource("GetNewMessages");
|
||||
GetNewMessages(folders, compositeDataSource);
|
||||
}
|
||||
|
||||
function MsgGetNextNMessages()
|
||||
{
|
||||
var folder = GetFirstSelectedMsgFolder();
|
||||
if(folder)
|
||||
{
|
||||
GetNextNMessages(folder)
|
||||
}
|
||||
var folder = GetFirstSelectedMsgFolder();
|
||||
if(folder)
|
||||
{
|
||||
GetNextNMessages(folder)
|
||||
}
|
||||
}
|
||||
|
||||
function MsgDeleteMessage(reallyDelete, fromToolbar)
|
||||
{
|
||||
|
||||
if(reallyDelete)
|
||||
dump("reallyDelete\n");
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
// if from the toolbar, return right away if this is a news message
|
||||
// only allow cancel from the menu: "Edit | Cancel / Delete Message"
|
||||
if (fromToolbar)
|
||||
{
|
||||
var folderResource = srcFolder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
var uri = folderResource.Value;
|
||||
//dump("uri[0:6]=" + uri.substring(0,6) + "\n");
|
||||
if (uri.substring(0,6) == "news:/")
|
||||
{
|
||||
//dump("delete ignored!\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
dump("tree is valid\n");
|
||||
//get the selected elements
|
||||
if(reallyDelete)
|
||||
dump("reallyDelete\n");
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
// if from the toolbar, return right away if this is a news message
|
||||
// only allow cancel from the menu: "Edit | Cancel / Delete Message"
|
||||
if (fromToolbar)
|
||||
{
|
||||
var folderResource = srcFolder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
var uri = folderResource.Value;
|
||||
//dump("uri[0:6]=" + uri.substring(0,6) + "\n");
|
||||
if (uri.substring(0,6) == "news:/")
|
||||
{
|
||||
//dump("delete ignored!\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
dump("tree is valid\n");
|
||||
//get the selected elements
|
||||
|
||||
var compositeDataSource = GetCompositeDataSource("DeleteMessages");
|
||||
var messages = GetSelectedMessages();
|
||||
var compositeDataSource = GetCompositeDataSource("DeleteMessages");
|
||||
var messages = GetSelectedMessages();
|
||||
|
||||
SetNextMessageAfterDelete(null, true);
|
||||
DeleteMessages(compositeDataSource, srcFolder, messages, reallyDelete);
|
||||
SetNextMessageAfterDelete(null, true);
|
||||
DeleteMessages(compositeDataSource, srcFolder, messages, reallyDelete);
|
||||
}
|
||||
|
||||
function MsgCopyMessage(destFolder)
|
||||
{
|
||||
// Get the id for the folder we're copying into
|
||||
// Get the id for the folder we're copying into
|
||||
destUri = destFolder.getAttribute('id');
|
||||
destResource = RDF.GetResource(destUri);
|
||||
destMsgFolder = destResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
destResource = RDF.GetResource(destUri);
|
||||
destMsgFolder = destResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
if(srcFolder)
|
||||
{
|
||||
var compositeDataSource = GetCompositeDataSource("Copy");
|
||||
var messages = GetSelectedMessages();
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
if(srcFolder)
|
||||
{
|
||||
var compositeDataSource = GetCompositeDataSource("Copy");
|
||||
var messages = GetSelectedMessages();
|
||||
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, false);
|
||||
}
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, false);
|
||||
}
|
||||
}
|
||||
|
||||
function MsgMoveMessage(destFolder)
|
||||
{
|
||||
// Get the id for the folder we're copying into
|
||||
// Get the id for the folder we're copying into
|
||||
destUri = destFolder.getAttribute('id');
|
||||
destResource = RDF.GetResource(destUri);
|
||||
destMsgFolder = destResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
if(srcFolder)
|
||||
{
|
||||
var compositeDataSource = GetCompositeDataSource("Move");
|
||||
var messages = GetSelectedMessages();
|
||||
destResource = RDF.GetResource(destUri);
|
||||
destMsgFolder = destResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
var srcFolder = GetLoadedMsgFolder();
|
||||
if(srcFolder)
|
||||
{
|
||||
var compositeDataSource = GetCompositeDataSource("Move");
|
||||
var messages = GetSelectedMessages();
|
||||
|
||||
var srcResource = srcFolder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
var srcUri = srcResource.Value;
|
||||
if (srcUri.substring(0,6) == "news:/")
|
||||
{
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetNextMessageAfterDelete(null, true);
|
||||
var srcResource = srcFolder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
var srcUri = srcResource.Value;
|
||||
if (srcUri.substring(0,6) == "news:/")
|
||||
{
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetNextMessageAfterDelete(null, true);
|
||||
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, true);
|
||||
}
|
||||
}
|
||||
CopyMessages(compositeDataSource, srcFolder, destMsgFolder, messages, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function MsgNewMessage(event)
|
||||
|
@ -285,9 +317,9 @@ function MsgReplyMessage(event)
|
|||
var server = loadedFolder.server;
|
||||
|
||||
if(server && server.type == "nntp")
|
||||
MsgReplyGroup(event);
|
||||
MsgReplyGroup(event);
|
||||
else
|
||||
MsgReplySender(event);
|
||||
MsgReplySender(event);
|
||||
|
||||
}
|
||||
|
||||
|
@ -332,13 +364,13 @@ function MsgForwardMessage(event)
|
|||
dump("\nMsgForwardMessage from XUL\n");
|
||||
var forwardType = 0;
|
||||
try {
|
||||
forwardType = pref.GetIntPref("mail.forward_message_mode");
|
||||
forwardType = pref.GetIntPref("mail.forward_message_mode");
|
||||
} catch (e) {dump ("failed to retrieve pref mail.forward_message_mode");}
|
||||
|
||||
if (forwardType == 0)
|
||||
MsgForwardAsAttachment(event);
|
||||
MsgForwardAsAttachment(event);
|
||||
else
|
||||
MsgForwardAsInline(event);
|
||||
MsgForwardAsInline(event);
|
||||
}
|
||||
|
||||
function MsgForwardAsAttachment(event)
|
||||
|
@ -370,8 +402,8 @@ function MsgForwardAsInline(event)
|
|||
|
||||
function MsgEditMessageAsNew()
|
||||
{
|
||||
var loadedFolder = GetLoadedMsgFolder();
|
||||
var messageArray = GetSelectedMessages();
|
||||
var loadedFolder = GetLoadedMsgFolder();
|
||||
var messageArray = GetSelectedMessages();
|
||||
ComposeMessage(msgComposeType.Template, msgComposeFormat.Default, loadedFolder, messageArray);
|
||||
}
|
||||
|
||||
|
@ -382,8 +414,8 @@ function MsgHome(url)
|
|||
|
||||
function MsgNewFolder()
|
||||
{
|
||||
var windowTitle = Bundle.GetStringFromName("newFolderDialogTitle");
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
var windowTitle = Bundle.GetStringFromName("newFolderDialogTitle");
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
var dualUseFolders = true;
|
||||
var server = null;
|
||||
if (preselectedFolder)
|
||||
|
@ -401,149 +433,149 @@ function MsgNewFolder()
|
|||
dump ("Exception: dualUseFolders = true\n");
|
||||
}
|
||||
}
|
||||
CreateNewSubfolder("chrome://messenger/content/newFolderNameDialog.xul",windowTitle, preselectedFolder, dualUseFolders);
|
||||
CreateNewSubfolder("chrome://messenger/content/newFolderNameDialog.xul",windowTitle, preselectedFolder, dualUseFolders);
|
||||
}
|
||||
|
||||
|
||||
function MsgSubscribe()
|
||||
{
|
||||
var windowTitle = Bundle.GetStringFromName("subscribeDialogTitle");
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
Subscribe(windowTitle, preselectedFolder);
|
||||
var windowTitle = Bundle.GetStringFromName("subscribeDialogTitle");
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
Subscribe(windowTitle, preselectedFolder);
|
||||
}
|
||||
|
||||
function MsgSaveAsFile()
|
||||
{
|
||||
dump("\MsgSaveAsFile from XUL\n");
|
||||
var messages = GetSelectedMessages();
|
||||
if (messages && messages.length == 1)
|
||||
{
|
||||
SaveAsFile(messages[0]);
|
||||
}
|
||||
dump("\MsgSaveAsFile from XUL\n");
|
||||
var messages = GetSelectedMessages();
|
||||
if (messages && messages.length == 1)
|
||||
{
|
||||
SaveAsFile(messages[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function MsgSaveAsTemplate()
|
||||
{
|
||||
dump("\MsgSaveAsTemplate from XUL\n");
|
||||
var folder = GetLoadedMsgFolder();
|
||||
var messages = GetSelectedMessages();
|
||||
if (messages && messages.length == 1)
|
||||
{
|
||||
SaveAsTemplate(messages[0], folder);
|
||||
}
|
||||
dump("\MsgSaveAsTemplate from XUL\n");
|
||||
var folder = GetLoadedMsgFolder();
|
||||
var messages = GetSelectedMessages();
|
||||
if (messages && messages.length == 1)
|
||||
{
|
||||
SaveAsTemplate(messages[0], folder);
|
||||
}
|
||||
}
|
||||
|
||||
function MsgOpenNewWindowForFolder(folderUri)
|
||||
{
|
||||
if(!folderUri)
|
||||
{
|
||||
var folder = GetLoadedMsgFolder();
|
||||
var folderResource = folder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
folderUri = folderResource.Value;
|
||||
}
|
||||
if(!folderUri)
|
||||
{
|
||||
var folder = GetLoadedMsgFolder();
|
||||
var folderResource = folder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
folderUri = folderResource.Value;
|
||||
}
|
||||
|
||||
if(folderUri)
|
||||
{
|
||||
var layoutType = pref.GetIntPref("mail.pane_config");
|
||||
|
||||
if(layoutType == 0)
|
||||
window.openDialog( "chrome://messenger/content/messenger.xul", "_blank", "chrome,all,dialog=no", folderUri );
|
||||
else
|
||||
window.openDialog("chrome://messenger/content/mail3PaneWindowVertLayout.xul", "_blank", "chrome,all,dialog=no", folderUri );
|
||||
}
|
||||
if(folderUri)
|
||||
{
|
||||
var layoutType = pref.GetIntPref("mail.pane_config");
|
||||
|
||||
if(layoutType == 0)
|
||||
window.openDialog( "chrome://messenger/content/messenger.xul", "_blank", "chrome,all,dialog=no", folderUri );
|
||||
else
|
||||
window.openDialog("chrome://messenger/content/mail3PaneWindowVertLayout.xul", "_blank", "chrome,all,dialog=no", folderUri );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function MsgOpenNewWindowForMessage(messageUri, folderUri)
|
||||
{
|
||||
var message;
|
||||
var message;
|
||||
|
||||
if(!messageUri)
|
||||
{
|
||||
message = GetLoadedMessage();
|
||||
var messageResource = message.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
messageUri = messageResource.Value;
|
||||
}
|
||||
if(!messageUri)
|
||||
{
|
||||
message = GetLoadedMessage();
|
||||
var messageResource = message.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
messageUri = messageResource.Value;
|
||||
}
|
||||
|
||||
if(!folderUri)
|
||||
{
|
||||
if(!folderUri)
|
||||
{
|
||||
message = RDF.GetResource(messageUri);
|
||||
message = message.QueryInterface(Components.interfaces.nsIMessage);
|
||||
var folder = message.msgFolder;
|
||||
var folderResource = folder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
folderUri = folderResource.Value;
|
||||
}
|
||||
var folderResource = folder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
folderUri = folderResource.Value;
|
||||
}
|
||||
|
||||
if(messageUri && folderUri)
|
||||
{
|
||||
window.openDialog( "chrome://messenger/content/messageWindow.xul", "_blank", "chrome,all,dialog=no", messageUri, folderUri );
|
||||
}
|
||||
if(messageUri && folderUri)
|
||||
{
|
||||
window.openDialog( "chrome://messenger/content/messageWindow.xul", "_blank", "chrome,all,dialog=no", messageUri, folderUri );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function CloseMailWindow()
|
||||
{
|
||||
dump("\nClose from XUL\nDo something...\n");
|
||||
window.close();
|
||||
dump("\nClose from XUL\nDo something...\n");
|
||||
window.close();
|
||||
}
|
||||
|
||||
function MsgMarkMsgAsRead(markRead)
|
||||
{
|
||||
if(markRead == null)
|
||||
{
|
||||
markRead= !SelectedMessagesAreRead();
|
||||
}
|
||||
var selectedMessages = GetSelectedMessages();
|
||||
var compositeDataSource = GetCompositeDataSource("MarkMessageRead");
|
||||
if(markRead == null)
|
||||
{
|
||||
markRead= !SelectedMessagesAreRead();
|
||||
}
|
||||
var selectedMessages = GetSelectedMessages();
|
||||
var compositeDataSource = GetCompositeDataSource("MarkMessageRead");
|
||||
|
||||
MarkMessagesRead(compositeDataSource, selectedMessages, markRead);
|
||||
MarkMessagesRead(compositeDataSource, selectedMessages, markRead);
|
||||
}
|
||||
|
||||
function MsgMarkAsFlagged(markFlagged)
|
||||
{
|
||||
if(markFlagged == null)
|
||||
{
|
||||
markFlagged= !SelectedMessagesAreFlagged();
|
||||
}
|
||||
if(markFlagged == null)
|
||||
{
|
||||
markFlagged= !SelectedMessagesAreFlagged();
|
||||
}
|
||||
|
||||
var selectedMessages = GetSelectedMessages();
|
||||
var compositeDataSource = GetCompositeDataSource("MarkMessageFlagged");
|
||||
var selectedMessages = GetSelectedMessages();
|
||||
var compositeDataSource = GetCompositeDataSource("MarkMessageFlagged");
|
||||
|
||||
MarkMessagesFlagged(compositeDataSource, selectedMessages, markFlagged);
|
||||
MarkMessagesFlagged(compositeDataSource, selectedMessages, markFlagged);
|
||||
}
|
||||
|
||||
|
||||
function MsgMarkAllRead()
|
||||
{
|
||||
var compositeDataSource = GetCompositeDataSource("MarkAllMessagesRead");
|
||||
var folder = GetLoadedMsgFolder();
|
||||
var compositeDataSource = GetCompositeDataSource("MarkAllMessagesRead");
|
||||
var folder = GetLoadedMsgFolder();
|
||||
|
||||
if(folder)
|
||||
MarkAllMessagesRead(compositeDataSource, folder);
|
||||
if(folder)
|
||||
MarkAllMessagesRead(compositeDataSource, folder);
|
||||
}
|
||||
|
||||
function MsgMarkThreadAsRead()
|
||||
{
|
||||
|
||||
var messageList = GetSelectedMessages();
|
||||
if(messageList.length == 1)
|
||||
{
|
||||
var message = messageList[0];
|
||||
var compositeDataSource = GetCompositeDataSource("MarkThreadAsRead");
|
||||
|
||||
var messageList = GetSelectedMessages();
|
||||
if(messageList.length == 1)
|
||||
{
|
||||
var message = messageList[0];
|
||||
var compositeDataSource = GetCompositeDataSource("MarkThreadAsRead");
|
||||
|
||||
MarkThreadAsRead(compositeDataSource, message);
|
||||
}
|
||||
MarkThreadAsRead(compositeDataSource, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function MsgViewPageSource()
|
||||
{
|
||||
dump("MsgViewPageSource(); \n ");
|
||||
|
||||
var messages = GetSelectedMessages();
|
||||
ViewPageSource(messages);
|
||||
dump("MsgViewPageSource(); \n ");
|
||||
|
||||
var messages = GetSelectedMessages();
|
||||
ViewPageSource(messages);
|
||||
}
|
||||
|
||||
function MsgFind() {
|
||||
|
@ -554,7 +586,7 @@ function MsgFindAgain() {
|
|||
}
|
||||
|
||||
function MsgSearchMessages() {
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
var preselectedFolder = GetFirstSelectedMsgFolder();
|
||||
window.openDialog("chrome://messenger/content/SearchDialog.xul", "SearchMail", "chrome,resizable", { folder: preselectedFolder });
|
||||
}
|
||||
|
||||
|
@ -564,115 +596,115 @@ function MsgFilters() {
|
|||
|
||||
function MsgViewAllHeaders()
|
||||
{
|
||||
pref.SetIntPref("mail.show_headers",2);
|
||||
MsgReload();
|
||||
return true;
|
||||
pref.SetIntPref("mail.show_headers",2);
|
||||
MsgReload();
|
||||
return true;
|
||||
}
|
||||
function MsgViewNormalHeaders()
|
||||
{
|
||||
pref.SetIntPref("mail.show_headers",1);
|
||||
MsgReload();
|
||||
return true;
|
||||
pref.SetIntPref("mail.show_headers",1);
|
||||
MsgReload();
|
||||
return true;
|
||||
}
|
||||
function MsgViewBriefHeaders()
|
||||
{
|
||||
pref.SetIntPref("mail.show_headers",0);
|
||||
MsgReload();
|
||||
return true;
|
||||
pref.SetIntPref("mail.show_headers",0);
|
||||
MsgReload();
|
||||
return true;
|
||||
}
|
||||
|
||||
function MsgReload()
|
||||
{
|
||||
ReloadMessage();
|
||||
ReloadMessage();
|
||||
}
|
||||
|
||||
function MsgStop()
|
||||
{
|
||||
StopUrls();
|
||||
StopUrls();
|
||||
}
|
||||
|
||||
function MsgSendUnsentMsg()
|
||||
{
|
||||
var folder = GetFirstSelectedMsgFolder();
|
||||
if(folder)
|
||||
{
|
||||
SendUnsentMessages(folder);
|
||||
}
|
||||
var folder = GetFirstSelectedMsgFolder();
|
||||
if(folder)
|
||||
{
|
||||
SendUnsentMessages(folder);
|
||||
}
|
||||
}
|
||||
|
||||
function PrintEnginePrint()
|
||||
{
|
||||
|
||||
var messageList = GetSelectedMessages();
|
||||
numMessages = messageList.length;
|
||||
var messageList = GetSelectedMessages();
|
||||
numMessages = messageList.length;
|
||||
|
||||
|
||||
if (numMessages == 0)
|
||||
{
|
||||
dump("PrintEnginePrint(): No messages selected.\n");
|
||||
return false;
|
||||
}
|
||||
if (numMessages == 0)
|
||||
{
|
||||
dump("PrintEnginePrint(): No messages selected.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
var selectionArray = new Array(numMessages);
|
||||
var selectionArray = new Array(numMessages);
|
||||
|
||||
for(var i = 0; i < numMessages; i++)
|
||||
{
|
||||
var messageResource = messageList[i].QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
selectionArray[i] = messageResource.Value;
|
||||
}
|
||||
for(var i = 0; i < numMessages; i++)
|
||||
{
|
||||
var messageResource = messageList[i].QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
selectionArray[i] = messageResource.Value;
|
||||
}
|
||||
|
||||
printEngineWindow = window.openDialog("chrome://messenger/content/msgPrintEngine.xul",
|
||||
"",
|
||||
"chrome,dialog=no,all",
|
||||
numMessages, selectionArray, statusFeedback);
|
||||
return true;
|
||||
printEngineWindow = window.openDialog("chrome://messenger/content/msgPrintEngine.xul",
|
||||
"",
|
||||
"chrome,dialog=no,all",
|
||||
numMessages, selectionArray, statusFeedback);
|
||||
return true;
|
||||
}
|
||||
|
||||
function IsMailFolderSelected()
|
||||
{
|
||||
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 serverType = server.type;
|
||||
|
||||
if((serverType == "nntp"))
|
||||
return false;
|
||||
else return true;
|
||||
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 serverType = server.type;
|
||||
|
||||
if((serverType == "nntp"))
|
||||
return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
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
|
||||
return true;
|
||||
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
|
||||
return true;
|
||||
}
|
||||
|
||||
function IsGetNextNMessagesEnabled()
|
||||
{
|
||||
var selectedFolders = GetSelectedMsgFolders();
|
||||
var selectedFolders = GetSelectedMsgFolders();
|
||||
var numFolders = selectedFolders.length;
|
||||
if(numFolders !=1)
|
||||
return false;
|
||||
|
@ -684,29 +716,29 @@ function IsGetNextNMessagesEnabled()
|
|||
var server = folder.server;
|
||||
var serverType = server.type;
|
||||
|
||||
var menuItem = document.getElementById("menu_getnextnmsg");
|
||||
var menuItem = document.getElementById("menu_getnextnmsg");
|
||||
if((serverType == "nntp")) {
|
||||
var newsServer = server.QueryInterface(Components.interfaces.nsINntpIncomingServer);
|
||||
var menuValue = Bundle.formatStringFromName("getNextNMessages",
|
||||
var newsServer = server.QueryInterface(Components.interfaces.nsINntpIncomingServer);
|
||||
var menuValue = Bundle.formatStringFromName("getNextNMessages",
|
||||
[ newsServer.maxArticles], 1);
|
||||
menuItem.setAttribute("value",menuValue);
|
||||
menuItem.setAttribute("hidden","false");
|
||||
menuItem.setAttribute("value",menuValue);
|
||||
menuItem.setAttribute("hidden","false");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
menuItem.setAttribute("hidden","true");
|
||||
return false;
|
||||
}
|
||||
menuItem.setAttribute("hidden","true");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function IsEmptyTrashEnabled()
|
||||
{
|
||||
return IsMailFolderSelected();
|
||||
return IsMailFolderSelected();
|
||||
}
|
||||
|
||||
function IsCompactFolderEnabled()
|
||||
{
|
||||
return IsMailFolderSelected();
|
||||
return IsMailFolderSelected();
|
||||
}
|
||||
|
||||
function MsgMarkByDate() {}
|
||||
|
|
|
@ -535,7 +535,7 @@ Rights Reserved.
|
|||
|
||||
<menubar id="mailMenubar">
|
||||
<menu id="menu_File">
|
||||
<menupopup id="menu_FilePopup">
|
||||
<menupopup id="menu_FilePopup" oncreate="file_init();">
|
||||
<menuitem value="&newMsgCmd.label;"
|
||||
accesskey="&newMsgCmd.accesskey;"
|
||||
key="key_newMessage"
|
||||
|
@ -557,6 +557,7 @@ Rights Reserved.
|
|||
observes="cmd_openMessage"
|
||||
accesskey="&openMessageWindowCmd.accesskey;"
|
||||
key="key_openMessage"/>
|
||||
<menu id="fileAttachmentMenu" value="&openAttachmentCmd.label;"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_close"/>
|
||||
<menu value="&saveAsMenu.label;" accesskey="&saveAsMenu.accesskey;">
|
||||
|
|
|
@ -31,7 +31,10 @@ Rights Reserved.
|
|||
<!ENTITY newFolderCmd.accesskey "f">
|
||||
<!ENTITY newAccountCmd.label "Account...">
|
||||
<!ENTITY newAccountCmd.accesskey "a">
|
||||
<!ENTITY openAttachmentCmd.label ".Open Attachment">
|
||||
<!ENTITY openMessageCmd.label "Open Message">
|
||||
<!ENTITY openMessageCmd.accesskey "o">
|
||||
<!ENTITY openMessageCmd.key "o">
|
||||
<!ENTITY openAttachmentCmd.label "Attachments">
|
||||
<!ENTITY openAttachmentCmd.accesskey "a">
|
||||
<!ENTITY saveAsMenu.label "Save As">
|
||||
<!ENTITY saveAsMenu.accesskey "s">
|
||||
|
|
Загрузка…
Ссылка в новой задаче