More fixes for 48244 which makes the 3pane menus look better. Also fixed 44223 which brings Open Link in New Window to the top of the message pane context menu

r=bienvenu.
This commit is contained in:
putterman%netscape.com 2000-08-21 20:00:48 +00:00
parent 84f90e2764
commit 18196c4b73
10 changed files with 517 additions and 546 deletions

View File

@ -81,204 +81,10 @@ Rights Reserved.
<popupset>
<popup id="threadPaneContext" oncreate="return fillThreadPaneContextMenu();" >
<menuitem id="threadPaneContext-openNewWindow"
value="&contextOpenNewWindow.label;"
accesskey="&contextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForMessage();"/>
<menuitem id="threadPaneContext-editAsNew"
value="&contextEditAsNew.label;"
accesskey="&contextEditAsNew.accesskey;"
oncommand="MsgEditMessageAsNew();"/>
<menuseparator id="threadPaneContext-sep-open"/>
<menuitem id="threadPaneContext-replySender"
value="&contextReplySender.label;"
accesskey="&contextReplySender.accesskey;"
oncommand="MsgReplyMessage(event);"/>
<menuitem id="threadPaneContext-replyAll"
value="&contextReplyAll.label;"
accesskey="&contextReplyAll.accesskey;"
oncommand="MsgReplyToAllMessage(event);"/>
<menuitem id="threadPaneContext-forward"
value="&contextForward.label;"
accesskey="&contextForward.accesskey;"
oncommand="MsgForwardMessage(event);"/>
<menuseparator id="threadPaneContext-sep-reply"/>
<menu id="threadPaneContext-moveMenu"
value="&contextMoveMsgMenu.label;"
accesskey="&contextMoveMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType" />
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name" oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menu id="threadPaneContext-copyMenu"
value="&contextCopyMsgMenu.label;"
accesskey="&contextCopyMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menuitem id="threadPaneContext-saveAs"
value="&contextSaveAs.label;"
accesskey="&contextSaveAs.accesskey;"
oncommand="MsgSaveAsFile();"/>
<menuitem id="threadPaneContext-print"
value="&contextPrint.label;"
accesskey="&contextPrint.accesskey;"
oncommand="PrintEnginePrint();"/>
<menuitem id="threadPaneContext-delete"
value="&contextDelete.label;"
accesskey="&contextDelete.accesskey;"
oncommand="MsgDeleteMessage(false, false);"/>
<menuseparator id="threadPaneContext-sep-edit"/>
<menuitem id="threadPaneContext-addSenderToAddressBook"
value="&contextAddSenderToAddressBook.label;"
accesskey="&contextAddSenderToAddressBook.accesskey;"
oncommand="MsgAddSenderToAddressBook();"/>
<menuitem id="threadPaneContext-addAllToAddressBook"
value="&contextAddAllToAddressBook.label;"
accesskey="&contextAddAllToAddressBook.accesskey;"
oncommand="MsgAddAllToAddressBook();"/>
</popup>
<popup id="folderPaneContext" oncreate="return fillFolderPaneContextMenu();" >
<menuitem id="folderPaneContext-getMessages"
value="&folderContextGetMessages.label;"
accesskey="&folderContextGetMessages.accesskey;"
oncommand="MsgGetMessage();"/>
<menuitem id="folderPaneContext-openNewWindow"
value="&folderContextOpenNewWindow.label;"
accesskey="&folderContextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForFolder(null);"/>
<menuitem id="folderPaneContext-rename"
value="&folderContextRename.label;"
accesskey="&folderContextRename.accesskey;"
oncommand="MsgRenameFolder();"/>
<menuitem id="folderPaneContext-remove"
value="&folderContextRemove.label;"
accesskey="&folderContextRemove.accesskey;"
oncommand="MsgDeleteFolder();"/>
<menuitem id="folderPaneContext-emptyTrash"
value="&folderContextEmptyTrash.label;"
accesskey="&folderContextEmptyTrash.accesskey;"
oncommand="MsgEmptyTrash();"/>
<menuitem id="folderPaneContext-sendUnsentMessages"
value="&folderContextSendUnsentMessages.label;"
accesskey="&folderContextSendUnsentMessages.accesskey;"
oncommand="MsgSendUnsentMsg();"/>
<menuitem id="folderPaneContext-unsubscribe"
value="&folderContextUnsubscribe.label;"
accesskey="&folderContextUnsubscribe.accesskey;"
oncommand="MsgUnsubscribe();"/>
<menuitem id="folderPaneContext-markFolderRead"
value="&folderContextMarkNewsgroupRead.label;"
accesskey="&folderContextMarkNewsgroupRead.accesskey;"
oncommand="MsgMarkFolderRead();"/>
<menuseparator id="folderPaneContext-sep-edit"/>
<menuitem id="folderPaneContext-new"
value="&folderContextNew.label;"
accesskey="&folderContextNew.accesskey;"
oncommand="MsgNewFolder();"/>
<menuitem id="folderPaneContext-subscribe"
value="&folderContextSubscribe.label;"
accesskey="&folderContextSubscribe.accesskey;"
oncommand="MsgSubscribe();"/>
<menuseparator id="folderPaneContext-sep-new"/>
<menuitem id="folderPaneContext-searchMessages"
value="&folderContextSearchMessages.label;"
accesskey="&folderContextSearchMessages.accesskey;"
oncommand="MsgSearchMessages();"/>
</popup>
<popup id="threadPaneContext"/>
<popup id="folderPaneContext"/>
<popup id="emailAddressPopup" popupanchor="bottomleft">
<menuitem value="&AddToAddressBook.label;"
oncommand="AddNodeToAddressBook(document.popupNode)"/>
@ -292,11 +98,13 @@ Rights Reserved.
</popup>
<popup id="messagePaneContext"/>
<popup id="folderTooltip"/>
</popupset>
<popupset id="aTooltipSet"/>
<popupset id="aTooltipSet">
<popup id="folderTooltip"/>
</popupset>
<menubar id="mailMenubar"/>

View File

@ -188,18 +188,14 @@ function SendUnsentMessages(folder)
// turn this into a new post or a reply to group.
if (server.type == "nntp")
{
if (type == msgComposeType.Reply)
type = msgComposeType.ReplyToGroup;
else
if (type == msgComposeType.New)
{
type = msgComposeType.NewsPost;
if (type == msgComposeType.New)
{
type = msgComposeType.NewsPost;
if (folder.isServer)
newsgroup = "";
else
newsgroup = server.hostName + "/" + folder.name;
}
newsgroup = "";
else
newsgroup = server.hostName + "/" + folder.name;
}
}
identity = getIdentityForServer(server);
// dump("identity = " + identity + "\n");

View File

@ -27,7 +27,7 @@
var isNewsgroup = false;
var selectedMessage = null;
if(numSelected == 1)
if(numSelected >= 0)
{
selectedMessage = selectedMessages[0];
isNewsgroup = GetMessageType(selectedMessage) == "news";
@ -43,6 +43,7 @@
SetupReplyToNewsgroupMenuItem("threadPaneContext-replyNewsgroup", numSelected, isNewsgroup, false);
SetupReplyAllMenuItem("threadPaneContext-replyAll", numSelected, false);
SetupForwardMenuItem("threadPaneContext-forward", numSelected, false);
SetupForwardAsAttachmentMenuItem("threadPaneContext-forwardAsAttachment", numSelected, false);
ShowMenuItem("threadPaneContext-sep-reply", true);
@ -50,7 +51,7 @@
SetupCopyMenuItem("threadPaneContext-copyMenu", numSelected, false);
SetupSaveAsMenuItem("threadPaneContext-saveAs", numSelected, false);
SetupPrintMenuItem("threadPaneContext-print", numSelected, false);
SetupDeleteMenuItem("threadPaneContext-delete", numSelected, false);
SetupDeleteMenuItem("threadPaneContext-delete", numSelected, isNewsgroup, false);
SetupAddSenderToABMenuItem("threadPaneContext-addSenderToAddressBook", numSelected, false);
SetupAddAllToABMenuItem("threadPaneContext-addAllToAddressBook", numSelected, false);
@ -112,10 +113,16 @@ function SetupReplyAllMenuItem(menuID, numSelected, forceHide)
function SetupForwardMenuItem(menuID, numSelected, forceHide)
{
ShowMenuItem(menuID, !forceHide);
ShowMenuItem(menuID, (numSelected <= 1) && !forceHide);
EnableMenuItem(menuID, (numSelected > 0));
}
function SetupForwardAsAttachmentMenuItem(menuID, numSelected, forceHide)
{
ShowMenuItem(menuID, (numSelected > 1) && !forceHide);
EnableMenuItem(menuID, (numSelected > 1));
}
function SetupMoveMenuItem(menuID, numSelected, isNewsgroup, forceHide)
{
ShowMenuItem(menuID, !isNewsgroup && !forceHide);
@ -140,10 +147,25 @@ function SetupPrintMenuItem(menuID, numSelected, forceHide)
EnableMenuItem(menuID, (numSelected > 0));
}
function SetupDeleteMenuItem(menuID, numSelected, forceHide)
function SetupDeleteMenuItem(menuID, numSelected, isNewsgroup, forceHide)
{
ShowMenuItem(menuID, !forceHide);
EnableMenuItem(menuID, (numSelected > 0));
var showMenuItem = !forceHide;
ShowMenuItem(menuID, showMenuItem);
if(showMenuItem)
{
EnableMenuItem(menuID, (numSelected > 0));
if(!isNewsgroup)
{
SetMenuItemValue(menuID, Bundle.GetStringFromName("delete"));
SetMenuItemAccessKey(menuID, Bundle.GetStringFromName("deleteAccessKey"));
}
else
{
SetMenuItemValue(menuID, Bundle.GetStringFromName("cancel"));
SetMenuItemAccessKey(menuID, Bundle.GetStringFromName("cancelAccessKey"));
}
}
}
function SetupAddSenderToABMenuItem(menuID, numSelected, forceHide)
@ -175,8 +197,10 @@ function fillFolderPaneContextMenu()
var isServer = targetFolder.getAttribute('IsServer') == 'true';
var serverType = targetFolder.getAttribute('ServerType');
var specialFolder = targetFolder.getAttribute('SpecialFolder');
var canSubscribeToFolder = (serverType == "nntp") || (serverType == "imap");
var canGetMessages = isServer && (serverType != "nntp") && (serverType !="none");
ShowMenuItem("folderPaneContext-getMessages", (numSelected <= 1) && (isServer && (serverType != 'nntp')));
ShowMenuItem("folderPaneContext-getMessages", (numSelected <= 1) && canGetMessages);
EnableMenuItem("folderPaneContext-getMessages", true);
ShowMenuItem("folderPaneContext-openNewWindow", (numSelected <= 1) && !isServer);
@ -191,23 +215,18 @@ function fillFolderPaneContextMenu()
ShowMenuItem("folderPaneContext-sendUnsentMessages", (numSelected <= 1) && (specialFolder == 'Unsent Messages'));
EnableMenuItem("folderPaneContext-sendUnsentMessages", true);
ShowMenuItem("folderPaneContext-unsubscribe", (numSelected <= 1) && ((serverType == 'nntp') && !isServer));
EnableMenuItem("folderPaneContext-unsubscribe", false);
ShowMenuItem("folderPaneContext-markFolderRead", (numSelected <= 1) && ((serverType == 'nntp') && !isServer));
EnableMenuItem("folderPaneContext-markFolderRead", false);
ShowMenuItem("folderPaneContext-sep-edit", (numSelected <= 1));
SetupNewMenuItem(targetFolder, numSelected, isServer, serverType, specialFolder);
ShowMenuItem("folderPaneContext-subscribe", (numSelected <= 1) && (serverType == 'nntp'));
ShowMenuItem("folderPaneContext-subscribe", (numSelected <= 1) && canSubscribeToFolder && serverType != 'nntp');
EnableMenuItem("folderPaneContext-subscribe", true);
ShowMenuItem("folderPaneContext-sep-new", ((numSelected<=1) && (specialFolder != "Unsent Messages")));
ShowMenuItem("folderPaneContext-newsSubscribe", (numSelected <= 1) && canSubscribeToFolder && isServer && serverType == 'nntp');
EnableMenuItem("folderPaneContext-subscribe", true);
ShowMenuItem("folderPaneContext-searchMessages", (numSelected<=1));
EnableMenuItem("folderPaneContext-searchMessages", false);
EnableMenuItem("folderPaneContext-searchMessages", true);
return(true);
}
@ -218,21 +237,10 @@ function SetupRenameMenuItem(targetFolder, numSelected, isServer, serverType, sp
var isMail = serverType != 'nntp';
var canRename = (targetFolder.getAttribute('CanRename') == "true");
ShowMenuItem("folderPaneContext-rename", (numSelected <= 1) && (isServer || canRename));
ShowMenuItem("folderPaneContext-rename", (numSelected <= 1) && !isServer && (specialFolder == "none") && canRename);
EnableMenuItem("folderPaneContext-rename", !isServer);
if(isServer)
{
if(isMail)
{
SetMenuItemValue("folderPaneContext-rename", Bundle.GetStringFromName("renameAccount"));
}
else
{
SetMenuItemValue("folderPaneContext-rename", Bundle.GetStringFromName("renameNewsAccount"));
}
}
else if(canRename)
if(canRename)
{
SetMenuItemValue("folderPaneContext-rename", Bundle.GetStringFromName("renameFolder"));
}
@ -241,27 +249,15 @@ function SetupRenameMenuItem(targetFolder, numSelected, isServer, serverType, sp
function SetupRemoveMenuItem(targetFolder, numSelected, isServer, serverType, specialFolder)
{
var isMail = serverType != 'nntp';
var isInbox = specialFolder == "Inbox";
var isTrash = specialFolder == "Trash";
var isUnsent = specialFolder == "Unsent Messages";
var showRemove = (numSelected <=1) && (isServer || (isMail && (!(isInbox || isTrash || isUnsent))));
var isSpecialFolder = specialFolder != "none";
//Can't currently delete Accounts or special folders.
var showRemove = (numSelected <=1) && (isMail && !isSpecialFolder) && !isServer;
ShowMenuItem("folderPaneContext-remove", showRemove);
EnableMenuItem("folderPaneContext-remove", false);
EnableMenuItem("folderPaneContext-remove", true);
if(isServer)
{
if(isMail)
{
SetMenuItemValue("folderPaneContext-remove", Bundle.GetStringFromName("removeAccount"));
}
else
{
SetMenuItemValue("folderPaneContext-remove", Bundle.GetStringFromName("removeNewsAccount"));
}
}
else if(isMail && !(isInbox || isTrash || isUnsent))
if(isMail && !isSpecialFolder)
{
SetMenuItemValue("folderPaneContext-remove", Bundle.GetStringFromName("removeFolder"));
}
@ -270,12 +266,14 @@ function SetupRemoveMenuItem(targetFolder, numSelected, isServer, serverType, sp
function SetupNewMenuItem(targetFolder, numSelected, isServer, serverType, specialFolder)
{
var canCreateNew = targetFolder.getAttribute('CanCreateSubfolders') == 'true';
var showNew = (numSelected <=1) && (serverType != 'nntp') && canCreateNew;
var isInbox = specialFolder == "Inbox";
var showNew = ((numSelected <=1) && (serverType != 'nntp') && canCreateNew) || isInbox;
ShowMenuItem("folderPaneContext-new", showNew);
EnableMenuItem("folderPaneContext-new", true);
if(showNew)
{
if(isServer)
if(isServer || isInbox)
SetMenuItemValue("folderPaneContext-new", Bundle.GetStringFromName("newFolder"));
else
SetMenuItemValue("folderPaneContext-new", Bundle.GetStringFromName("newSubfolder"));
@ -286,18 +284,24 @@ function SetupNewMenuItem(targetFolder, numSelected, isServer, serverType, speci
function ShowMenuItem(id, showItem)
{
var item = document.getElementById(id);
var showing = (item.getAttribute('hidden') !='true');
if(item && (showItem != showing))
item.setAttribute('hidden', showItem ? '' : 'true');
if(item)
{
var showing = (item.getAttribute('hidden') !='true');
if(showItem != showing)
item.setAttribute('hidden', showItem ? '' : 'true');
}
}
function EnableMenuItem(id, enableItem)
{
var item = document.getElementById(id);
var enabled = (item.getAttribute('disabled') !='true');
if(item && (enableItem != enabled))
if(item)
{
item.setAttribute('disabled', enableItem ? '' : 'true');
var enabled = (item.getAttribute('disabled') !='true');
if(enableItem != enabled)
{
item.setAttribute('disabled', enableItem ? '' : 'true');
}
}
}
@ -309,6 +313,13 @@ function SetMenuItemValue(id, value)
}
function SetMenuItemAccessKey(id, accessKey)
{
var item = document.getElementById(id);
if(item)
item.setAttribute('accesskey', accessKey);
}
function fillMessagePaneContextMenu(contextMenuNode)
{
@ -322,36 +333,46 @@ function fillMessagePaneContextMenu(contextMenuNode)
if(numSelected == 1)
isNewsgroup = GetMessageType(message) == "news";
var hideMailItems = AreBrowserItemsShowing();
SetupNewMessageWindowMenuItem("messagePaneContext-openNewWindow", numSelected, (numSelected == 0));
SetupEditAsNewMenuItem("messagePaneContext-editAsNew", numSelected, (numSelected == 0));
SetupReplyToSenderMenuItem("messagePaneContext-replySender", numSelected, (numSelected == 0));
SetupReplyToNewsgroupMenuItem("messagePaneContext-replyNewsgroup", numSelected, isNewsgroup, (numSelected == 0));
SetupReplyAllMenuItem("messagePaneContext-replyAll" , numSelected, (numSelected == 0));
SetupForwardMenuItem("messagePaneContext-forward", numSelected, (numSelected == 0));
SetupMoveMenuItem("messagePaneContext-moveMenu", numSelected, isNewsgroup, (numSelected == 0));"context-copy"
SetupCopyMenuItem("messagePaneContext-copyMenu", numSelected, (numSelected == 0));
SetupSaveAsMenuItem("messagePaneContext-saveAs", numSelected, (numSelected == 0));
SetupPrintMenuItem("messagePaneContext-print", numSelected, (numSelected == 0));
SetupDeleteMenuItem("messagePaneContext-delete", numSelected, (numSelected == 0));
SetupAddSenderToABMenuItem("messagePaneContext-addSenderToAddressBook", numSelected, (numSelected == 0));
SetupAddAllToABMenuItem("messagePaneContext-addAllToAddressBook", numSelected, (numSelected == 0));
SetupEditAsNewMenuItem("messagePaneContext-editAsNew", numSelected, (numSelected == 0 || hideMailItems));
SetupReplyToSenderMenuItem("messagePaneContext-replySender", numSelected, (numSelected == 0 || hideMailItems));
SetupReplyToNewsgroupMenuItem("messagePaneContext-replyNewsgroup", numSelected, isNewsgroup, (numSelected == 0 || hideMailItems));
SetupReplyAllMenuItem("messagePaneContext-replyAll" , numSelected, (numSelected == 0 || hideMailItems));
SetupForwardMenuItem("messagePaneContext-forward", numSelected, (numSelected == 0 || hideMailItems));
SetupForwardAsAttachmentMenuItem("threadPaneContext-forwardAsAttachment", numSelected, hideMailItems);
SetupMoveMenuItem("messagePaneContext-moveMenu", numSelected, isNewsgroup, (numSelected == 0 || hideMailItems));
SetupCopyMenuItem("messagePaneContext-copyMenu", numSelected, (numSelected == 0 || hideMailItems));
SetupSaveAsMenuItem("messagePaneContext-saveAs", numSelected, (numSelected == 0 || hideMailItems));
SetupPrintMenuItem("messagePaneContext-print", numSelected, (numSelected == 0 || hideMailItems));
SetupDeleteMenuItem("messagePaneContext-delete", numSelected, isNewsgroup, (numSelected == 0 || hideMailItems));
SetupAddSenderToABMenuItem("messagePaneContext-addSenderToAddressBook", numSelected, (numSelected == 0 || hideMailItems));
SetupAddAllToABMenuItem("messagePaneContext-addAllToAddressBook", numSelected, (numSelected == 0 || hideMailItems));
//Figure out separators
ShowMenuItem("messagePaneContext-sep-open", ShowMessagePaneOpenSeparator());
ShowMenuItem("messagePaneContext-sep-reply", ShowMessagePaneReplySeparator());
ShowMenuItem("messagePaneContext-sep-edit", ShowMessagePaneEditSeparator());
ShowMenuItem("messagePaneContext-sep-addressBook", ShowMessagePaneABSeparator());
ShowMenuItem("messagePaneContext-sep-link", ShowMessagePaneLinkSeparator());
ShowMenuItem("messagePaneContext-sep-image", ShowMessagePaneImageSeparator());
ShowMenuItem("messagePaneContext-sep-copy", ShowMessagePaneCopySeparator());
}
function AreBrowserItemsShowing()
{
return(IsMenuItemShowingWithStyle("context-openlink") ||
IsMenuItemShowingWithStyle("context-editlink") ||
IsMenuItemShowingWithStyle("context-viewimage") ||
IsMenuItemShowingWithStyle("context-copylink") ||
IsMenuItemShowingWithStyle("context-copyimage") ||
IsMenuItemShowingWithStyle("context-savelink") ||
IsMenuItemShowingWithStyle("context-saveimage") ||
IsMenuItemShowingWithStyle("context-bookmarklink"));
}
function ShowMessagePaneOpenSeparator()
{
return(IsMenuItemShowing("messagePaneContext-openNewWindow") ||
IsMenuItemShowingWithStyle("context-selectall") ||
return(IsMenuItemShowingWithStyle("context-selectall") ||
IsMenuItemShowingWithStyle("context-copy"));
}
@ -373,12 +394,6 @@ function ShowMessagePaneEditSeparator()
IsMenuItemShowing("messagePaneContext-delete"));
}
function ShowMessagePaneABSeparator()
{
return (IsMenuItemShowing("messagePaneContext-addSenderToAddressBook") ||
IsMenuItemShowing("messagePaneContext-addAllToAddressBook"));
}
function ShowMessagePaneLinkSeparator()
{
return (IsMenuItemShowingWithStyle("context-openlink") ||
@ -419,3 +434,5 @@ function IsMenuItemShowingWithStyle(menuID)
}

View File

@ -36,6 +36,126 @@ function view_init()
}
}
function InitViewMessagesMenu()
{
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");
var hidden = unreadMenuItem.getAttribute("hidden") == "true";
if(unreadMenuItem && !hidden)
unreadMenuItem.setAttribute("checked", messageView.viewType == viewShowUnread);
}
function InitMessageMenu()
{
var messages = GetSelectedMessages();
var numMessages = messages.length;
var isNews = false;
if(numMessages > 0)
{
isNews = GetMessageType(messages[0]) == "news";
}
//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");
}
var replySenderMenuItem = document.getElementById("replySenderMainMenu");
if(replySenderMenuItem)
{
replySenderMenuItem.setAttribute("hidden", isNews ? "" : "true");
}
}
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;
}
function InitMessageMarkMenu()
{
InitMarkReadMenuItem();
InitMarkFlaggedMenuItem();
}
function InitMarkReadMenuItem()
{
var messages = GetSelectedMessages();
var numMessages = messages.length;
var compositeDS = GetCompositeDataSource("MarkMessageRead");
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#IsUnread');
var areMessagesRead;
if(numMessages == 0)
areMessagesRead = false;
else
{
areMessagesRead = true;
for(var i = 0; i < numMessages; i++)
{
var result = compositeDS.GetTarget(messages[i], property, true);
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
if(result.Value == "true")
{
areMessagesRead = false;
break;
}
}
}
var markReadMenuItem = document.getElementById("markReadMenuItem");
if(markReadMenuItem)
markReadMenuItem.setAttribute("checked", areMessagesRead);
}
function InitMarkFlaggedMenuItem()
{
var messages = GetSelectedMessages();
var numMessages = messages.length;
var compositeDS = GetCompositeDataSource("MarkMessageFlagged");
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#Flagged');
var areMessagesFlagged = false;
for(var i = 0; i < numMessages; i++)
{
var result = compositeDS.GetTarget(messages[i], property, true);
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
if(result.Value == "flagged")
{
areMessagesFlagged = true;
break;
}
}
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
if(markFlaggedMenuItem)
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
}
function GetFirstSelectedMsgFolder()
{
var result = null;
@ -140,15 +260,39 @@ function MsgNewMessage(event)
}
function MsgReplyMessage(event)
{
var loadedFolder = GetLoadedMsgFolder();
var server = loadedFolder.server;
if(server && server.type == "nntp")
MsgReplyGroup(event);
else
MsgReplySender(event);
}
function MsgReplySender(event)
{
var loadedFolder = GetLoadedMsgFolder();
var messageArray = GetSelectedMessages();
dump("\nMsgReplyMessage from XUL\n");
if (event && event.shiftKey)
ComposeMessage(msgComposeType.Reply, msgComposeFormat.OppositeOfDefault, loadedFolder, messageArray);
else
ComposeMessage(msgComposeType.Reply, msgComposeFormat.Default, loadedFolder, messageArray);
}
function MsgReplyGroup(event)
{
var loadedFolder = GetLoadedMsgFolder();
var messageArray = GetSelectedMessages();
if (event && event.shiftKey)
ComposeMessage(msgComposeType.ReplyToGroup, msgComposeFormat.OppositeOfDefault, loadedFolder, messageArray);
else
ComposeMessage(msgComposeType.ReplyToGroup, msgComposeFormat.Default, loadedFolder, messageArray);
}
function MsgReplyToAllMessage(event)

View File

@ -126,13 +126,212 @@ Rights Reserved.
<key id="key_forward" key="&forwardMsgCmd.key;" xulkey="true" shift="false" observes="cmd_forward"/>
</keyset>
<popup id="messagePaneContext"
oncreate="return fillMessagePaneContextMenu(this);"
ondestroy="contextMenu.onDestroy(); contextMenu = null;">
<menuitem id="messagePaneContext-openNewWindow"
<popup id="threadPaneContext" oncreate="return fillThreadPaneContextMenu();" >
<menuitem id="threadPaneContext-openNewWindow"
value="&contextOpenNewWindow.label;"
accesskey="&contextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForMessage();"/>
<menuseparator id="threadPaneContext-sep-open"/>
<menuitem id="threadPaneContext-replySender"
value="&contextReplySender.label;"
accesskey="&contextReplySender.accesskey;"
oncommand="MsgReplySender(event);"/>
<menuitem id="threadPaneContext-replyNewsgroup"
value="&contextReplyNewsgroup.label;"
accesskey="&contextReplyNewsgroup.accesskey;"
oncommand="MsgReplyGroup(event);"/>
<menuitem id="threadPaneContext-replyAll"
value="&contextReplyAll.label;"
accesskey="&contextReplyAll.accesskey;"
oncommand="MsgReplyToAllMessage(event);"/>
<menuitem id="threadPaneContext-forward"
value="&contextForward.label;"
accesskey="&contextForward.accesskey;"
oncommand="MsgForwardMessage(event);"/>
<menuitem id="threadPaneContext-forwardAsAttachment"
value="&contextForwardAsAttachment.label;"
accesskey="&contextForwardAsAttachment.accesskey;"
oncommand="MsgForwardAsAttachment(event);"/>
<menuitem id="threadPaneContext-editAsNew"
value="&contextEditAsNew.label;"
accesskey="&contextEditAsNew.accesskey;"
oncommand="MsgEditMessageAsNew();"/>
<menuseparator id="threadPaneContext-sep-reply"/>
<menu id="threadPaneContext-moveMenu"
value="&contextMoveMsgMenu.label;"
accesskey="&contextMoveMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType" />
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name" oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menu id="threadPaneContext-copyMenu"
value="&contextCopyMsgMenu.label;"
accesskey="&contextCopyMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menuitem id="threadPaneContext-saveAs"
value="&contextSaveAs.label;"
accesskey="&contextSaveAs.accesskey;"
oncommand="MsgSaveAsFile();"/>
<menuitem id="threadPaneContext-print"
value="&contextPrint.label;"
accesskey="&contextPrint.accesskey;"
oncommand="PrintEnginePrint();"/>
<menuitem id="threadPaneContext-delete"
value="&contextDelete.label;"
accesskey="&contextDelete.accesskey;"
oncommand="MsgDeleteMessage(false, false);"/>
</popup>
<popup id="folderPaneContext" oncreate="return fillFolderPaneContextMenu();" >
<menuitem id="folderPaneContext-newsSubscribe"
value="&folderContextSubscribe.label;"
accesskey="&folderContextSubscribe.accesskey;"
oncommand="MsgSubscribe();"/>
<menuitem id="folderPaneContext-getMessages"
value="&folderContextGetMessages.label;"
accesskey="&folderContextGetMessages.accesskey;"
oncommand="MsgGetMessage();"/>
<menuitem id="folderPaneContext-openNewWindow"
value="&folderContextOpenNewWindow.label;"
accesskey="&folderContextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForFolder(null);"/>
<menuitem id="folderPaneContext-new"
value="&folderContextNew.label;"
accesskey="&folderContextNew.accesskey;"
oncommand="MsgNewFolder();"/>
<menuitem id="folderPaneContext-subscribe"
value="&folderContextSubscribe.label;"
accesskey="&folderContextSubscribe.accesskey;"
oncommand="MsgSubscribe();"/>
<menuitem id="folderPaneContext-rename"
value="&folderContextRename.label;"
accesskey="&folderContextRename.accesskey;"
oncommand="MsgRenameFolder();"/>
<menuitem id="folderPaneContext-remove"
value="&folderContextRemove.label;"
accesskey="&folderContextRemove.accesskey;"
oncommand="MsgDeleteFolder();"/>
<menuitem id="folderPaneContext-emptyTrash"
value="&folderContextEmptyTrash.label;"
accesskey="&folderContextEmptyTrash.accesskey;"
oncommand="MsgEmptyTrash();"/>
<menuitem id="folderPaneContext-sendUnsentMessages"
value="&folderContextSendUnsentMessages.label;"
accesskey="&folderContextSendUnsentMessages.accesskey;"
oncommand="MsgSendUnsentMsg();"/>
<menuseparator id="folderPaneContext-sep-edit"/>
<menuitem id="folderPaneContext-searchMessages"
value="&folderContextSearchMessages.label;"
accesskey="&folderContextSearchMessages.accesskey;"
oncommand="MsgSearchMessages();"/>
</popup>
<popup id="messagePaneContext"
oncreate="return fillMessagePaneContextMenu(this);"
ondestroy="contextMenu.onDestroy(); contextMenu = null;">
<menuitem id="context-openlink"
value="&openLinkCmd.label;"
accesskey="&openLinkCmd.accesskey;"
oncommand="contextMenu.openLink();"/>
<menuitem id="context-editlink"
value="&editLinkCmd.label;"
accesskey="&editLinkCmd.accesskey;"
oncommand="contextMenu.editLink();"/>
<menuseparator id="messagePaneContext-sep-link"/>
<menuitem id="context-selectall"
value="&selectAllCmd.label;"
accesskey="&selectAllCmd.accesskey;"
@ -277,28 +476,8 @@ Rights Reserved.
accesskey="&contextPrint.accesskey;"
oncommand="PrintEnginePrint();"/>
<menuitem id="messagePaneContext-delete"
value="&contextDelete.label;"
accesskey="&contextDelete.accesskey;"
oncommand="MsgDeleteMessage(false, false);"/>
<menuseparator id="messagePaneContext-sep-edit"/>
<menuitem id="messagePaneContext-addSenderToAddressBook"
value="&contextAddSenderToAddressBook.label;"
accesskey="&contextAddSenderToAddressBook.accesskey;"
oncommand="MsgAddSenderToAddressBook();"/>
<menuitem id="messagePaneContext-addAllToAddressBook"
value="&contextAddAllToAddressBook.label;"
accesskey="&contextAddAllToAddressBook.accesskey;"
oncommand="MsgAddAllToAddressBook();"/>
<menuseparator id="messagePaneContext-sep-addressBook"/>
<menuitem id="context-openlink"
value="&openLinkCmd.label;"
accesskey="&openLinkCmd.accesskey;"
oncommand="contextMenu.openLink();"/>
<menuitem id="context-editlink"
value="&editLinkCmd.label;"
accesskey="&editLinkCmd.accesskey;"
oncommand="contextMenu.editLink();"/>
<menuseparator id="messagePaneContext-sep-link"/>
<menuitem id="context-viewimage"
value="&viewImageCmd.label;"
accesskey="&viewImageCmd.accesskey;"
@ -321,6 +500,12 @@ Rights Reserved.
value="&saveImageCmd.label;"
accesskey="&saveImageCmd.accesskey;"
oncommand="contextMenu.saveImage();"/>
<menuitem id="context-bookmarklink"
value="&bookmarkLinkCmd.label;"
accesskey="&bookmarkLinkCmd.accesskey;"
oncommand="BrowserAddBookmark( contextMenu.linkURL(),
contextMenu.linkText() )"/>
</popup>
<menubar id="mailMenubar">
@ -435,10 +620,10 @@ Rights Reserved.
<menuitem id="sortByUnreadMenuitem" type="checkbox" value="&sortByUnreadCmd.label;" accesskey="&sortByUnreadCmd.accesskey;" observes="cmd_sortByRead"/>
</menupopup>
</menu>
<menu value="&msgsMenu.label;" accesskey="&msgsMenu.accesskey;">
<menu value="&msgsMenu.label;" id="viewMessagesMenu" accesskey="&msgsMenu.accesskey;" oncreate="InitViewMessagesMenu();">
<menupopup>
<menuitem value="&allMsgsCmd.label;" accesskey="&allMsgsCmd.accesskey;" disabled="true" observes="cmd_viewAllMsgs"/>
<menuitem value="&unreadMsgsCmd.label;" accesskey="&unreadMsgsCmd.accesskey;" disabled="true" observes="cmd_viewUnreadMsgs"/>
<menuitem id="viewAllMessagesMenuItem" type="checkbox" value="&allMsgsCmd.label;" accesskey="&allMsgsCmd.accesskey;" disabled="true" observes="cmd_viewAllMsgs"/>
<menuitem id="viewUnreadMessagesMenuItem" type="checkbox" value="&unreadMsgsCmd.label;" accesskey="&unreadMsgsCmd.accesskey;" disabled="true" observes="cmd_viewUnreadMsgs"/>
</menupopup>
</menu>
<menu id="viewheadersmenu" value="&headersMenu.label;" accesskey="&headersMenu.accesskey;">
@ -498,7 +683,7 @@ Rights Reserved.
<menuitem value="&nextUnreadMsgCmd.label;" key="key_nextUnreadMsg" accesskey="&nextUnreadMsgCmd.accesskey;" observes="cmd_nextUnreadMsg"/>
<menuitem value="&nextFlaggedMsgCmd.label;" accesskey="&nextFlaggedMsgCmd.accesskey;" observes="cmd_nextFlaggedMsg"/>
<menuseparator/>
<menuitem value="&nextUnreadThread.label;" accesskey="&nextUnreadThreadCmd.accesskey;" observes="cmd_nextUnreadThread"/>
<menuitem value="&nextUnreadThread.label;" key="key_nextUnreadThread" accesskey="&nextUnreadThreadCmd.accesskey;" observes="cmd_nextUnreadThread"/>
</menupopup>
</menu>
<menu value="&prevMenu.label;" accesskey="&prevMenu.accesskey;">
@ -512,16 +697,23 @@ Rights Reserved.
<menuitem value="&startPageCmd.label;" accesskey="&startPageCmd.accesskey;" oncommand="HideMessageHeaderPane();loadStartPage();"/>
</menupopup>
</menu>
<menu value="&msgMenu.label;" accesskey="&msgMenu.accesskey;">
<menu value="&msgMenu.label;" accesskey="&msgMenu.accesskey;" oncreate="InitMessageMenu()">
<menupopup>
<menuitem value="&newMsgCmd.label;"
accesskey="&newMsgCmd.accesskey;"
key="key_newMessage"
oncommand="MsgNewMessage(event);"/>
<menuitem value="&replyMsgCmd.label;"
<menuitem id="replyMainMenu" value="&replyMsgCmd.label;"
accesskey="&replyMsgCmd.accesskey;"
key="key_reply"
oncommand="MsgReplyMessage(event);"/>
<menuitem id="replySenderMainMenu" value="&replySenderCmd.label;"
accesskey="&replySenderCmd.accesskey;"
oncommand="MsgReplySender(event);"/>
<menuitem id="replyNewsgroupMainMenu" value="&replyNewsgroupCmd.label;"
accesskey="&replyNewsgroupCmd.accesskey;"
key="key_reply"
oncommand="MsgReplyGroup(event);"/>
<menuitem value="&replyToAllMsgCmd.label;"
accesskey="&replyToAllMsgCmd.accesskey;"
key="key_replyall"
@ -638,15 +830,13 @@ Rights Reserved.
</template>
</menu>
<menuseparator/>
<menu value="&markMenu.label;" accesskey="&markMenu.accesskey;">
<menu value="&markMenu.label;" accesskey="&markMenu.accesskey;" oncreate="InitMessageMarkMenu()">
<menupopup>
<menuitem value="&markAsReadCmd.label;" accesskey="&markAsReadCmd.accesskey;" oncommand="MsgMarkMsgAsRead(true);"/>
<menuitem value="&markAsUnreadCmd.label;" accesskey="&markAsUnreadCmd.accesskey;" oncommand="MsgMarkMsgAsRead(false);"/>
<menuitem type="checkbox" id="markReadMenuItem" value="&markAsReadCmd.label;" accesskey="&markAsReadCmd.accesskey;" oncommand="MsgMarkMsgAsRead(event.target.getAttribute('checked') == 'true');"/>
<menuitem value="&markThreadAsReadCmd.label;" accesskey="&markThreadAsReadCmd.accesskey;" oncommand="MsgMarkThreadAsRead();"/>
<menuitem value="&markAllReadCmd.label;" accesskey="&markAllReadCmd.accesskey;" oncommand="MsgMarkAllRead();"/>
<menuseparator/>
<menuitem value="&markFlaggedCmd.label;" accesskey="&markFlaggedCmd.accesskey;" oncommand="MsgMarkAsFlagged(true);"/>
<menuitem value="&markUnflaggedCmd.label;" accesskey="&markUnflaggedCmd.accesskey;" oncommand="MsgMarkAsFlagged(false);"/>
<menuitem type="checkbox" id="markFlaggedMenuItem" value="&markFlaggedCmd.label;" accesskey="&markFlaggedCmd.accesskey;" oncommand="MsgMarkAsFlagged(event.target.getAttribute('checked') == 'true');"/>
</menupopup>
</menu>
</menupopup>

View File

@ -152,6 +152,9 @@ function HideMenus()
if(renameFolderMenu)
renameFolderMenu.setAttribute("hidden", "true");
var viewMessagesMenu = document.getElementById('viewMessagesMenu');
if(viewMessagesMenu)
viewMessagesMenu.setAttribute("hidden", "true");
}
function OnUnloadMessageWindow()

View File

@ -86,208 +86,10 @@ Rights Reserved.
<popupset>
<popup id="threadPaneContext" oncreate="return fillThreadPaneContextMenu();" >
<menuitem id="threadPaneContext-openNewWindow"
value="&contextOpenNewWindow.label;"
accesskey="&contextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForMessage();"/>
<menuseparator id="threadPaneContext-sep-open"/>
<menuitem id="threadPaneContext-replySender"
value="&contextReplySender.label;"
accesskey="&contextReplySender.accesskey;"
oncommand="MsgReplyMessage(event);"/>
<menuitem id="threadPaneContext-replyAll"
value="&contextReplyAll.label;"
accesskey="&contextReplyAll.accesskey;"
oncommand="MsgReplyToAllMessage(event);"/>
<menuitem id="threadPaneContext-replyNewsgroup"
value="&contextReplyNewsgroup.label;"
accesskey="&contextReplyNewsgroup.accesskey;"
oncommand="MsgReplyMessage(event);"/>
<menuitem id="threadPaneContext-forward"
value="&contextForward.label;"
accesskey="&contextForward.accesskey;"
oncommand="MsgForwardMessage(event);"/>
<menuitem id="threadPaneContext-editAsNew"
value="&contextEditAsNew.label;"
accesskey="&contextEditAsNew.accesskey;"
oncommand="MsgEditMessageAsNew();"/>
<menuseparator id="threadPaneContext-sep-reply"/>
<menu id="threadPaneContext-moveMenu"
value="&contextMoveMsgMenu.label;"
accesskey="&contextMoveMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType" />
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name" oncommand="MsgMoveMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menu id="threadPaneContext-copyMenu"
value="&contextCopyMsgMenu.label;"
accesskey="&contextCopyMsgMenu.accesskey;"
datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<menupopup/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&fileHereMenu.label;"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
<menuseparator/>
</menupopup>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file and copies menus -->
</rule>
<rule nc:CanFileMessages="false" iscontainer="true" isempty="false">
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup/>
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="MsgCopyMessage(event.target)"
SpecialFolder="rdf:http://home.netscape.com/NC-rdf#SpecialFolder"
BiffState="rdf:http://home.netscape.com/NC-rdf#BiffState"
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType"/>
</menupopup>
</rule>
</template>
</menu>
<menuitem id="threadPaneContext-saveAs"
value="&contextSaveAs.label;"
accesskey="&contextSaveAs.accesskey;"
oncommand="MsgSaveAsFile();"/>
<menuitem id="threadPaneContext-print"
value="&contextPrint.label;"
accesskey="&contextPrint.accesskey;"
oncommand="PrintEnginePrint();"/>
<menuitem id="threadPaneContext-delete"
value="&contextDelete.label;"
accesskey="&contextDelete.accesskey;"
oncommand="MsgDeleteMessage(false, false);"/>
<menuseparator id="threadPaneContext-sep-edit"/>
<menuitem id="threadPaneContext-addSenderToAddressBook"
value="&contextAddSenderToAddressBook.label;"
accesskey="&contextAddSenderToAddressBook.accesskey;"
oncommand="MsgAddSenderToAddressBook();"/>
<menuitem id="threadPaneContext-addAllToAddressBook"
value="&contextAddAllToAddressBook.label;"
accesskey="&contextAddAllToAddressBook.accesskey;"
oncommand="MsgAddAllToAddressBook();"/>
</popup>
<popup id="folderPaneContext" oncreate="return fillFolderPaneContextMenu();" >
<menuitem id="folderPaneContext-getMessages"
value="&folderContextGetMessages.label;"
accesskey="&folderContextGetMessages.accesskey;"
oncommand="MsgGetMessage();"/>
<menuitem id="folderPaneContext-openNewWindow"
value="&folderContextOpenNewWindow.label;"
accesskey="&folderContextOpenNewWindow.accesskey;"
oncommand="MsgOpenNewWindowForFolder(null);"/>
<menuitem id="folderPaneContext-rename"
value="&folderContextRename.label;"
accesskey="&folderContextRename.accesskey;"
oncommand="MsgRenameFolder();"/>
<menuitem id="folderPaneContext-remove"
value="&folderContextRemove.label;"
accesskey="&folderContextRemove.accesskey;"
oncommand="MsgDeleteFolder();"/>
<menuitem id="folderPaneContext-emptyTrash"
value="&folderContextEmptyTrash.label;"
accesskey="&folderContextEmptyTrash.accesskey;"
oncommand="MsgEmptyTrash();"/>
<menuitem id="folderPaneContext-sendUnsentMessages"
value="&folderContextSendUnsentMessages.label;"
accesskey="&folderContextSendUnsentMessages.accesskey;"
oncommand="MsgSendUnsentMsg();"/>
<menuitem id="folderPaneContext-unsubscribe"
value="&folderContextUnsubscribe.label;"
accesskey="&folderContextUnsubscribe.accesskey;"
oncommand="MsgUnsubscribe();"/>
<menuitem id="folderPaneContext-markFolderRead"
value="&folderContextMarkNewsgroupRead.label;"
accesskey="&folderContextMarkNewsgroupRead.accesskey;"
oncommand="MsgMarkFolderRead();"/>
<menuseparator id="folderPaneContext-sep-edit"/>
<menuitem id="folderPaneContext-new"
value="&folderContextNew.label;"
accesskey="&folderContextNew.accesskey;"
oncommand="MsgNewFolder();"/>
<menuitem id="folderPaneContext-subscribe"
value="&folderContextSubscribe.label;"
accesskey="&folderContextSubscribe.accesskey;"
oncommand="MsgSubscribe();"/>
<menuseparator id="folderPaneContext-sep-new"/>
<menuitem id="folderPaneContext-searchMessages"
value="&folderContextSearchMessages.label;"
accesskey="&folderContextSearchMessages.accesskey;"
oncommand="MsgSearchMessages();"/>
</popup>
<popup id="threadPaneContext"/>
<popup id="folderPaneContext"/>
<popup id="emailAddressPopup" popupanchor="bottomleft">
<menuitem value="&AddToAddressBook.label;"
accesskey="&AddToAddressBook.accesskey;"

View File

@ -147,22 +147,12 @@ Rights Reserved.
<!ENTITY headersBriefCmd.accesskey "b">
<!ENTITY viewAttachmentsInlineCmd.label ".View Attachments Inline">
<!ENTITY viewAttachmentsInlineCmd.accesskey "a">
<!ENTITY wrapLongLinesCmd.label ".Wrap Long Lines">
<!ENTITY wrapLongLinesCmd.accesskey "p">
<!ENTITY increaseFontCmd.label ".Enlarge Text Size">
<!ENTITY increaseFontCmd.accesskey "n">
<!ENTITY decreaseFontCmd.label ".Reduce Text Size">
<!ENTITY decreaseFontCmd.accesskey "d">
<!ENTITY reloadCmd.label ".Reload">
<!ENTITY reloadCmd.label "Reload">
<!ENTITY reloadCmd.accesskey "r">
<!ENTITY showImagesCmd.label ".Show Images">
<!ENTITY showImagesCmd.accesskey "g">
<!ENTITY stopCmd.label ".Stop">
<!ENTITY stopCmd.label "Stop">
<!ENTITY stopCmd.accesskey "s">
<!ENTITY pageSourceCmd.label "Page Source">
<!ENTITY pageSourceCmd.accesskey "u">
<!ENTITY pageInfoCmd.label ".Page Info">
<!ENTITY pageInfoCmd.accesskey "i">
<!ENTITY translateMenu.label ".Translate">
<!ENTITY dcharMenu.label "Character Set ISO">
<!ENTITY dcharMenu1.label "Character Set Multibyte">
@ -290,6 +280,10 @@ Rights Reserved.
<!ENTITY replyMsgCmd.label "Reply">
<!ENTITY replyMsgCmd.accesskey "r">
<!ENTITY replyMsgCmd.key "r">
<!ENTITY replySenderCmd.label "Reply to Sender">
<!ENTITY replySenderCmd.accesskey "r">
<!ENTITY replyNewsgroupCmd.label "Reply to Newsgroup">
<!ENTITY replyNewsgroupCmd.accesskey "y">
<!ENTITY replyToAllMsgCmd.label "Reply to All">
<!ENTITY replyToAllMsgCmd.accesskey "p">
<!ENTITY replyToAllMsgCmd.key "r">
@ -368,18 +362,20 @@ Rights Reserved.
<!ENTITY totalCountText.label " Total: ">
<!-- Thread Pane Context Menu -->
<!ENTITY contextOpenNewWindow.label "Open in New Window">
<!ENTITY contextOpenNewWindow.label "Open Message in New Window">
<!ENTITY contextOpenNewWindow.accesskey "w">
<!ENTITY contextEditAsNew.label "Edit As New...">
<!ENTITY contextEditAsNew.accesskey "e">
<!ENTITY contextReplySender.label "Reply To Sender">
<!ENTITY contextReplySender.label "Reply to Sender">
<!ENTITY contextReplySender.accesskey "r">
<!ENTITY contextReplyNewsgroup.label "Reply To Newsgroup">
<!ENTITY contextReplyNewsgroup.label "Reply to Newsgroup">
<!ENTITY contextReplyNewsgroup.accesskey "g">
<!ENTITY contextReplyAll.label "Reply To All">
<!ENTITY contextReplyAll.label "Reply to All">
<!ENTITY contextReplyAll.accesskey "p">
<!ENTITY contextForward.label "Forward">
<!ENTITY contextForward.accesskey "f">
<!ENTITY contextForwardAsAttachment.label "Forward as Attachments">
<!ENTITY contextForwardAsAttachment.accesskey "o">
<!ENTITY contextMoveMsgMenu.label "Move To">
<!ENTITY contextMoveMsgMenu.accesskey "m">
<!ENTITY contextCopyMsgMenu.label "Copy To">
@ -398,13 +394,13 @@ Rights Reserved.
<!-- Folder Pane Context Menu -->
<!ENTITY folderContextGetMessages.label "Get Messages for Account">
<!ENTITY folderContextGetMessages.accesskey "g">
<!ENTITY folderContextOpenNewWindow.label "Open in New Window">
<!ENTITY folderContextOpenNewWindow.label "Open in New Mail Window">
<!ENTITY folderContextOpenNewWindow.accesskey "w">
<!ENTITY folderContextRename.label "Rename">
<!ENTITY folderContextRename.accesskey "r">
<!ENTITY folderContextRemove.label "Delete">
<!ENTITY folderContextRemove.accesskey "d">
<!ENTITY folderContextEmptyTrash.label "Empty This Trash Can Now">
<!ENTITY folderContextEmptyTrash.label "Empty Trash Can">
<!ENTITY folderContextEmptyTrash.accesskey "y">
<!ENTITY folderContextSendUnsentMessages.label "Send Unsent Messages...">
<!ENTITY folderContextSendUnsentMessages.accesskey "d">

View File

@ -28,13 +28,19 @@ renameFolderDialogTitle=Rename Folder
renameAccount=Rename Account...
renameNewsAccount=Rename News Account...
renameFolder=Rename Folder...
removeAccount=Remove Account...
removeNewsAccount=Remove News Account...
removeFolder=Remove Folder...
removeAccount=Delete Account...
removeNewsAccount=Delete News Account...
removeFolder=Delete Folder...
newFolder=New Folder...
newSubfolder=New Subfolder...
titleNewsPreHost=on
titleMailPreHost=for
replyToSender=Reply to Sender
reply=Reply
delete=Delete
deleteAccessKey=d
cancel=Cancel
cancelAccessKey=c
# LOCALIZATION NOTES(HTMLFiles): Only translate "Files" in the line below
HTMLFiles=HTML Files (*.htm, *.html, *.shtml)
# LOCALIZATION NOTES(TextFiles): Do not translate "*.txt" in the line below

View File

@ -746,6 +746,15 @@ NS_IMETHODIMP
nsMsgFolder::GetCanCreateSubfolders(PRBool *aResult)
{
NS_ENSURE_ARG_POINTER(aResult);
//Checking folder flag to see if it is the "Unsent Messages" or "Inbox"
//and if so return FALSE
if ((mFlags & MSG_FOLDER_FLAG_QUEUE) || (mFlags & MSG_FOLDER_FLAG_INBOX))
{
*aResult = PR_FALSE;
return NS_OK;
}
// by default, you can create subfolders on server and folders
// if otherwise, override it.
*aResult = PR_TRUE;