Fixes for 48246, 48985, and 20129. Fixed up enabling and disabling of 3pane menu items.

Added accelerators.  Added busy cursor around sorting, threading and folder loading. r=bienvenu
This commit is contained in:
putterman%netscape.com 2000-08-26 20:54:51 +00:00
Родитель fcfdcb37ec
Коммит d63000ffb0
21 изменённых файлов: 626 добавлений и 233 удалений

Просмотреть файл

@ -64,7 +64,6 @@ Rights Reserved.
<!-- File Menu -->
<broadcaster id="cmd_newNavigator"/>
<broadcaster id="cmd_newEditor"/>
<broadcaster id="cmd_newMessage"/>
<broadcaster id="cmd_PrintCard" oncommand="AbPrintCard()"/>
<broadcaster id="cmd_close" oncommand="AbClose()"/>
<broadcaster id="cmd_quit"/>
@ -88,7 +87,6 @@ Rights Reserved.
<keyset id="keyset">
<!-- File Menu -->
<key id="key_newNavigator"/>
<key id="key_newMessage"/>
<key id="key_PrintCard" xulkey="true" key="&printCardViewCmd.key;" observes="cmd_PrintCard" />
<key id="key_close"/>
<key id="key_quit"/>
@ -117,8 +115,6 @@ Rights Reserved.
<menuitem value="&newDirectoryCmd.label;" accesskey="&newDirectoryCmd.accesskey;" disabled="true" oncommand="AbNewDirectoryt()"/>
<menuseparator/>
<menuitem id="menu_newNavigator"/>
<menuitem id="menu_newMessage"/>
<menuitem id="cmd_newCard"/>
<menuitem id="menu_newEditor"/>
</menupopup>
</menu>

Просмотреть файл

@ -177,6 +177,7 @@ function ChangeFolderByURI(uri, isThreaded, sortID, sortDirection)
{
try
{
SetBusyCursor(window, true);
gCurrentFolderToReroot = uri;
gCurrentLoadingFolderIsThreaded = isThreaded;
gCurrentLoadingFolderSortID = sortID;
@ -191,6 +192,7 @@ function ChangeFolderByURI(uri, isThreaded, sortID, sortDirection)
}
else
{
SetBusyCursor(window, true);
gCurrentFolderToReroot = "";
gCurrentLoadingFolderIsThreaded = false;
gCurrentLoadingFolderSortID = "";
@ -240,9 +242,9 @@ function RerootFolder(uri, newFolder, isThreaded, sortID, sortDirection)
var column = FindThreadPaneColumnBySortResource(sortID);
if(column)
SortThreadPane(column, sortID, "http://home.netscape.com/NC-rdf#Date", false, sortDirection);
SortThreadPane(column, sortID, "http://home.netscape.com/NC-rdf#Date", false, sortDirection, false);
else
SortThreadPane("DateColumn", "http://home.netscape.com/NC-rdf#Date", "", false, null);
SortThreadPane("DateColumn", "http://home.netscape.com/NC-rdf#Date", "", false, null, false);
SetSentFolderColumns(IsSpecialFolder(newFolder, "Sent"));
@ -256,6 +258,7 @@ function RerootFolder(uri, newFolder, isThreaded, sortID, sortDirection)
msgNavigationService.EnsureDocumentIsLoaded(document);
UpdateStatusMessageCounts(newFolder);
}
function SetSentFolderColumns(isSentFolder)
@ -352,9 +355,13 @@ function RestoreThreadPaneSelection(selectionArray)
messageElement = document.getElementById(selectionArray[i]);
}
tree.addItemToSelection(messageElement);
if(messageElement && (i==0))
tree.ensureElementIsVisible(messageElement);
if(messageElement)
{
dump("We have a messageElement\n");
tree.addItemToSelection(messageElement);
if(i==0)
tree.ensureElementIsVisible(messageElement);
}
}
}
@ -394,9 +401,9 @@ function FindThreadPaneColumnBySortResource(sortID)
//If toggleCurrentDirection is true, then get current direction and flip to opposite.
//If it's not true then use the direction passed in.
function SortThreadPane(column, sortKey, secondarySortKey, toggleCurrentDirection, direction)
function SortThreadPane(column, sortKey, secondarySortKey, toggleCurrentDirection, direction, changeCursor)
{
dump("In SortThreadPane\n");
//dump("In SortThreadPane\n");
var node = document.getElementById(column);
if(!node)
return false;
@ -430,7 +437,11 @@ function SortThreadPane(column, sortKey, secondarySortKey, toggleCurrentDirectio
var selection = SaveThreadPaneSelection();
var beforeSortTime = new Date();
if(changeCursor)
SetBusyCursor(window, true);
var result = SortColumn(node, sortKey, secondarySortKey, direction);
if(changeCursor)
SetBusyCursor(window, false);
var afterSortTime = new Date();
var timeToSort = (afterSortTime.getTime() - beforeSortTime.getTime())/1000;

Просмотреть файл

@ -34,7 +34,7 @@
<tree datasources="rdf:null"
id="folderTree" class="mail-folders"
onselect="top.FolderPaneSelectionChange(); document.commandDispatcher.updateCommands('tree-select');"
onselect="top.FolderPaneSelectionChange(); document.commandDispatcher.updateCommands('folderTree-select');"
onblur="goOnEvent(this,'blur')" dd-nodropbetweenrows="true"
ondragover="return DragOverTree(event);"
ondraggesture="return BeginDragFolderTree(event);"

Просмотреть файл

@ -59,13 +59,18 @@ var FolderPaneController =
folderTree.selectedItems.length > 0)
{
var specialFolder = null;
var isServer = null;
var serverType = null;
try {
specialFolder = folderTree.selectedItems[0].getAttribute('SpecialFolder');
var selectedFolder = folderTree.selectedItems[0];
specialFolder = selectedFolder.getAttribute('SpecialFolder');
isServer = selectedFolder.getAttribute('IsServer');
serverType = selectedFolder.getAttribute('ServerType');
}
catch (ex) {
//dump("specialFolder failure: " + ex + "\n");
}
if (specialFolder == "Inbox" || specialFolder == "Trash")
if (specialFolder == "Inbox" || specialFolder == "Trash" || isServer == "true")
return false;
else
return true;
@ -175,10 +180,15 @@ var DefaultController =
{
case "cmd_reply":
case "button_reply":
case "cmd_replySender":
case "cmd_replyGroup":
case "cmd_replyall":
case "button_replyall":
case "cmd_forward":
case "button_forward":
case "cmd_forwardInline":
case "cmd_forwardAttachment":
case "cmd_editAsNew":
case "cmd_delete":
case "button_delete":
case "cmd_shiftDelete":
@ -189,16 +199,6 @@ var DefaultController =
case "cmd_previousMsg":
case "cmd_previousUnreadMsg":
case "cmd_previousFlaggedMsg":
case "cmd_sortBySubject":
case "cmd_sortByDate":
case "cmd_sortByFlag":
case "cmd_sortByPriority":
case "cmd_sortBySender":
case "cmd_sortBySize":
case "cmd_sortByStatus":
case "cmd_sortByRead":
case "cmd_sortByOrderReceived":
case "cmd_sortByThread":
case "cmd_viewAllMsgs":
case "cmd_viewUnreadMsgs":
case "cmd_undo":
@ -212,6 +212,17 @@ var DefaultController =
case "cmd_saveAsTemplate":
case "cmd_viewPageSource":
case "cmd_reload":
case "cmd_getNewMessages":
case "cmd_find":
case "cmd_findAgain":
case "cmd_markAsRead":
case "cmd_markAllRead":
case "cmd_markThreadAsRead":
case "cmd_markAsFlagged":
case "cmd_file":
case "cmd_emptyTrash":
case "cmd_compactFolder":
case "cmd_sortByThread":
return true;
default:
return false;
@ -224,10 +235,15 @@ var DefaultController =
{
case "cmd_reply":
case "button_reply":
case "cmd_replySender":
case "cmd_replyGroup":
case "cmd_replyall":
case "button_replyall":
case "cmd_forward":
case "button_forward":
case "cmd_forwardInline":
case "cmd_forwardAttachment":
case "cmd_editAsNew":
case "cmd_delete":
case "button_delete":
case "cmd_shiftDelete":
@ -237,10 +253,11 @@ var DefaultController =
case "cmd_saveAsTemplate":
case "cmd_viewPageSource":
case "cmd_reload":
var threadTree = GetThreadTree();
var numSelected = 0;
if ( threadTree && threadTree.selectedItems )
numSelected = threadTree.selectedItems.length;
case "cmd_markThreadAsRead":
case "cmd_markAsFlagged":
case "cmd_file":
var numSelected = GetNumSelectedMessages();
if ( command == "cmd_delete")
{
if ( numSelected < 2 )
@ -254,20 +271,17 @@ var DefaultController =
case "cmd_nextUnreadThread":
case "cmd_previousMsg":
case "cmd_previousUnreadMsg":
//Input and TextAreas should get access to the keys that cause these commands.
//Currently if we don't do this then we will steal the key away and you can't type them
//in these controls. This is a bug that should be fixed and when it is we can get rid of
//this.
var focusedElement = top.document.commandDispatcher.focusedElement;
if(focusedElement)
{
var name = focusedElement.localName;
return ((name != "INPUT") && (name != "TEXTAREA"));
}
return MailAreaHasFocus() && IsViewNavigationItemEnabled();
case "cmd_markAsRead":
if(!MailAreaHasFocus())
return false;
else
{
return true;
}
return(GetNumSelectedMessages() > 0);
case "cmd_markAllRead":
return(MailAreaHasFocus() && IsFolderSelected());
case "cmd_find":
case "cmd_findAgain":
return IsFindEnabled();
break;
case "cmd_expandAllThreads":
case "cmd_collapseAllThreads":
@ -275,15 +289,7 @@ var DefaultController =
break;
case "cmd_nextFlaggedMsg":
case "cmd_previousFlaggedMsg":
case "cmd_sortBySubject":
case "cmd_sortByDate":
case "cmd_sortByFlag":
case "cmd_sortByPriority":
case "cmd_sortBySender":
case "cmd_sortBySize":
case "cmd_sortByStatus":
case "cmd_sortByRead":
case "cmd_sortByOrderReceived":
return IsViewNavigationItemEnabled();
case "cmd_viewAllMsgs":
return true;
case "cmd_sortByThread":
@ -297,6 +303,12 @@ var DefaultController =
return SetupUndoRedoCommand(command);
case "cmd_renameFolder":
return IsRenameFolderEnabled();
case "cmd_getNewMessages":
return IsGetNewMessagesEnabled();
case "cmd_emptyTrash":
return IsEmptyTrashEnabled();
case "cmd_compactFolder":
return IsCompactFolderEnabled();
default:
return false;
}
@ -308,15 +320,33 @@ var DefaultController =
switch ( command )
{
case "cmd_getNewMessages":
MsgGetMessage();
break;
case "cmd_reply":
MsgReplyMessage(null);
break;
case "cmd_replySender":
MsgReplySender(null);
break;
case "cmd_replyGroup":
MsgReplyGroup(null);
break;
case "cmd_replyall":
MsgReplyToAllMessage(null);
break;
case "cmd_forward":
MsgForwardMessage(null);
break;
case "cmd_forwardInline":
MsgForwardAsInline(null);
break;
case "cmd_forwardAttachment":
MsgForwardAsAttachment(null);
break;
case "cmd_editAsNew":
MsgEditMessageAsNew();
break;
case "cmd_delete":
MsgDeleteMessage(false, false);
break;
@ -347,33 +377,6 @@ var DefaultController =
case "cmd_previousFlaggedMsg":
MsgPreviousFlaggedMessage();
break;
case "cmd_sortBySubject":
MsgSortBySubject();
break;
case "cmd_sortByDate":
MsgSortByDate();
break;
case "cmd_sortByFlag":
MsgSortByFlagged();
break;
case "cmd_sortByPriority":
MsgSortByPriority();
break;
case "cmd_sortBySender":
MsgSortBySender();
break;
case "cmd_sortBySize":
MsgSortBySize();
break;
case "cmd_sortByStatus":
MsgSortByStatus();
break;
case "cmd_sortByRead":
MsgSortByRead();
break;
case "cmd_sortByOrderReceived":
MsgSortByOrderReceived();
break;
case "cmd_sortByThread":
MsgSortByThread();
break;
@ -416,6 +419,30 @@ var DefaultController =
case "cmd_reload":
MsgReload();
return;
case "cmd_find":
MsgFind();
return;
case "cmd_findAgain":
MsgFindAgain();
return;
case "cmd_markAsRead":
MsgMarkMsgAsRead(null);
return;
case "cmd_markThreadAsRead":
MsgMarkThreadAsRead();
return;
case "cmd_markAllRead":
MsgMarkAllRead();
return;
case "cmd_markAsFlagged":
MsgMarkAsFlagged(null);
return;
case "cmd_emptyTrash":
MsgEmptyTrash();
return;
case "cmd_compactFolder":
MsgCompactFolder();
return;
}
},
@ -431,6 +458,29 @@ var DefaultController =
}
};
function MailAreaHasFocus()
{
//Input and TextAreas should get access to the keys that cause these commands.
//Currently if we don't do this then we will steal the key away and you can't type them
//in these controls. This is a bug that should be fixed and when it is we can get rid of
//this.
var focusedElement = top.document.commandDispatcher.focusedElement;
if(focusedElement)
{
var name = focusedElement.localName;
return ((name != "INPUT") && (name != "TEXTAREA"));
}
return true;
}
function GetNumSelectedMessages()
{
var threadTree = GetThreadTree();
var numSelected = 0;
if ( threadTree && threadTree.selectedItems )
numSelected = threadTree.selectedItems.length;
return numSelected;
}
function CommandUpdate_Mail()
{
@ -449,11 +499,6 @@ function CommandUpdate_Mail()
}*/
goUpdateCommand('cmd_delete');
goUpdateCommand('button_delete');
goUpdateCommand('button_reply');
goUpdateCommand('button_replyall');
goUpdateCommand('button_forward');
goUpdateCommand('cmd_shiftDelete');
goUpdateCommand('cmd_nextMsg');
goUpdateCommand('cmd_nextUnreadMsg');
goUpdateCommand('cmd_nextUnreadThread');
@ -461,27 +506,45 @@ function CommandUpdate_Mail()
goUpdateCommand('cmd_previousMsg');
goUpdateCommand('cmd_previousUnreadMsg');
goUpdateCommand('cmd_previousFlaggedMsg');
goUpdateCommand('cmd_sortBySubject');
goUpdateCommand('cmd_sortByDate');
goUpdateCommand('cmd_sortByFlag');
goUpdateCommand('cmd_sortByPriority');
goUpdateCommand('cmd_sortBySender');
goUpdateCommand('cmd_sortBySize');
goUpdateCommand('cmd_sortByStatus');
goUpdateCommand('cmd_sortByRead');
goUpdateCommand('cmd_sortByOrderReceived');
goUpdateCommand('cmd_sortByThread');
goUpdateCommand('cmd_viewAllMsgs');
goUpdateCommand('cmd_viewUnreadMsgs');
goUpdateCommand('cmd_expandAllThreads');
goUpdateCommand('cmd_collapseAllThreads');
goUpdateCommand('cmd_renameFolder');
goUpdateCommand('cmd_getNewMessages');
goUpdateCommand('cmd_find');
goUpdateCommand('cmd_findAgain');
goUpdateCommand('cmd_markAllRead');
goUpdateCommand('cmd_emptyTrash');
goUpdateCommand('cmd_compactFolder');
}
function ThreadTreeUpdate_Mail(command)
{
goUpdateCommand('button_delete');
goUpdateCommand('button_reply');
goUpdateCommand('button_replyall');
goUpdateCommand('button_forward');
goUpdateCommand('cmd_shiftDelete');
goUpdateCommand('cmd_reply');
goUpdateCommand('cmd_replySender');
goUpdateCommand('cmd_replyGroup');
goUpdateCommand('cmd_replyall');
goUpdateCommand('cmd_forward');
goUpdateCommand('cmd_forwardInline');
goUpdateCommand('cmd_forwardAttachment');
goUpdateCommand('cmd_editAsNew');
goUpdateCommand('cmd_openMessage');
goUpdateCommand('cmd_print');
goUpdateCommand('cmd_saveAsFile');
goUpdateCommand('cmd_saveAsTemplate');
goUpdateCommand('cmd_viewPageSource');
goUpdateCommand('cmd_reload');
goUpdateCommand('cmd_markAsRead');
goUpdateCommand('cmd_markThreadAsRead');
goUpdateCommand('cmd_markAsFlagged');
goUpdateCommand('cmd_file');
}
function SetupUndoRedoCommand(command)
@ -599,6 +662,32 @@ function IsRenameFolderEnabled()
return false;
}
function IsViewNavigationItemEnabled()
{
return IsFolderSelected();
}
function IsFolderSelected()
{
var tree = GetFolderTree();
var folderList = tree.selectedItems;
if(folderList.length == 1)
{
var folderNode = folderList[0];
return(folderNode.getAttribute("IsServer") != "true");
}
else
return false;
}
function IsFindEnabled()
{
return (!IsThreadAndMessagePaneSplitterCollapsed() && (gCurrentDisplayedMessage != null));
}
function MsgDeleteFolder()
{
//get the selected elements

Просмотреть файл

@ -68,7 +68,10 @@ Rights Reserved.
commandupdater="true"
events="focus,tree-select"
oncommandupdate="CommandUpdate_Mail()"/>
<commandset id="ThreadTreeUpdate_Mail"
commandupdater="true"
events="threadTree-select"
oncommandupdate="ThreadTreeUpdate_Mail()"/>
<commandset id="globalEditMenuItems"/>
<commandset id="selectEditMenuItems"/>
<commandset id="undoEditMenuItems"/>

Просмотреть файл

@ -8,7 +8,7 @@
<!-- addressbook specific UI items -->
<menupopup id="menu_NewPopup">
<menuitem id="menu_newMessage" observes="cmd_newMessage" position="6"/>
<menuitem id="menu_newMessage" key="key_newMessage" observes="cmd_newMessage" position="6"/>
<menuitem id="menu_newCard" observes="cmd_newCard" position="7"/>
</menupopup>

Просмотреть файл

@ -31,7 +31,7 @@
<!-- editor specific UI items -->
<menupopup id="menu_NewPopup">
<menuitem id="menu_newMessage" observes="cmd_newMessage" position="2"/>
<menuitem id="menu_newMessage" key="key_newMessage" observes="cmd_newMessage" position="2"/>
<menuitem id="menu_newCard" observes="cmd_newCard" position="3"/>
</menupopup>
@ -39,5 +39,6 @@
<menuitem id="menu_sendPage" observes="cmd_sendPage" position="11"/>
</menupopup>
</overlay>

Просмотреть файл

@ -8,7 +8,7 @@
<!-- messengercompose specific UI items -->
<menupopup id="menu_NewPopup">
<menuitem id="menu_newMessage" observes="cmd_newMessage" position="2"/>
<menuitem id="menu_newMessage" key="key_newMessage" observes="cmd_newMessage" position="2"/>
<menuitem id="menu_newCard" observes="cmd_newCard" position="3"/>
</menupopup>

Просмотреть файл

@ -3,12 +3,12 @@
<!-- retrieve generic commands -->
<?xul-overlay href="chrome://messenger/content/mailOverlay.xul"?>
<overlay id="mailABOverlay"
<overlay id="mailMessengerOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- addressbook specific UI items -->
<menupopup id="menu_NewPopup">
<menuitem id="menu_newMessage" observes="cmd_newMessage" position="5"/>
<menuitem id="menu_newMessage" key="key_newMessage" observes="cmd_newMessage" position="5"/>
<menuitem id="menu_newCard" observes="cmd_newCard" position="6"/>
</menupopup>

Просмотреть файл

@ -41,7 +41,7 @@
<!-- navigator specific UI items -->
<menupopup id="menu_NewPopup">
<menuitem id="menu_newCard" insertafter="menu_newNavigator" observes="cmd_newCard" position="3"/>
<menuitem id="menu_newMessage" insertafter="menu_newNavigator" observes="cmd_newMessage" position="2"/>
<menuitem id="menu_newMessage" insertafter="menu_newNavigator" key="key_newMessage" observes="cmd_newMessage" position="2"/>
</menupopup>
<menupopup id="menu_FilePopup">

Просмотреть файл

@ -44,5 +44,9 @@
<keyset id="keyset">
<key id="key_newMessage" xulkey="true" shift="false" key="&newMessageCmd.key;" observes="cmd_newMessage"/>
</keyset>
<keyset id="defaultKeySet">
<key id="key_newMessage" xulkey="true" shift="false" key="&newMessageCmd.key;" observes="cmd_newMessage"/>
</keyset>
</overlay>

Просмотреть файл

@ -315,3 +315,23 @@ function StopUrls()
{
msgWindow.StopUrls();
}
function loadStartPage() {
try {
startpageenabled= pref.GetBoolPref("mailnews.start_page.enabled");
if (startpageenabled) {
startpage = pref.CopyCharPref("mailnews.start_page.url");
if (startpage != "") {
window.frames["messagepane"].location = startpage;
dump("start message pane with: " + startpage + "\n");
ClearMessageSelection();
}
}
}
catch (ex) {
dump("Error loading start page.\n");
return;
}
}

Просмотреть файл

@ -52,12 +52,11 @@ function InitViewMessagesMenu()
function InitMessageMenu()
{
var messages = GetSelectedMessages();
var numMessages = messages.length;
var aMessage = GetSelectedMessage(0);
var isNews = false;
if(numMessages > 0)
if(aMessage)
{
isNews = GetMessageType(messages[0]) == "news";
isNews = GetMessageType(aMessage) == "news";
}
//We show reply to Newsgroups only for news messages.
@ -78,6 +77,15 @@ function InitMessageMenu()
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);
var copyMenu = document.getElementById("copyMenu");
if(copyMenu)
copyMenu.setAttribute("disabled", !aMessage);
}
function GetMessageType(message)
@ -100,60 +108,62 @@ function InitMessageMarkMenu()
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;
}
}
}
areMessagesRead = SelectedMessagesAreRead();
var markReadMenuItem = document.getElementById("markReadMenuItem");
if(markReadMenuItem)
markReadMenuItem.setAttribute("checked", areMessagesRead);
}
function SelectedMessagesAreRead()
{
var aMessage = GetSelectedMessage(0);
var compositeDS = GetCompositeDataSource("MarkMessageRead");
var property = RDF.GetResource('http://home.netscape.com/NC-rdf#IsUnread');
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"
}
return areMessagesRead;
}
function InitMarkFlaggedMenuItem()
{
var messages = GetSelectedMessages();
var numMessages = messages.length;
areMessagesFlagged = SelectedMessagesAreFlagged();
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
if(markFlaggedMenuItem)
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
}
function SelectedMessagesAreFlagged()
{
var aMessage = GetSelectedMessage(0);
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++)
if(!aMessage)
areMessagesFlagged = false;
else
{
var result = compositeDS.GetTarget(messages[i], property, true);
var result = compositeDS.GetTarget(aMessage, property, true);
result = result.QueryInterface(Components.interfaces.nsIRDFLiteral);
if(result.Value == "flagged")
{
areMessagesFlagged = true;
break;
}
areMessagesFlagged = (result.Value == "flagged");
}
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
if(markFlaggedMenuItem)
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
return areMessagesFlagged;
}
function GetFirstSelectedMsgFolder()
@ -454,6 +464,10 @@ function CloseMailWindow()
function MsgMarkMsgAsRead(markRead)
{
if(markRead == null)
{
markRead= !SelectedMessagesAreRead();
}
var selectedMessages = GetSelectedMessages();
var compositeDataSource = GetCompositeDataSource("MarkMessageRead");
@ -462,6 +476,11 @@ function MsgMarkMsgAsRead(markRead)
function MsgMarkAsFlagged(markFlagged)
{
if(markFlagged == null)
{
markFlagged= !SelectedMessagesAreFlagged();
}
var selectedMessages = GetSelectedMessages();
var compositeDataSource = GetCompositeDataSource("MarkMessageFlagged");
@ -582,6 +601,57 @@ function PrintEnginePrint()
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;
}
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;
}
function IsEmptyTrashEnabled()
{
return IsMailFolderSelected();
}
function IsCompactFolderEnabled()
{
return IsMailFolderSelected();
}
function MsgMarkByDate() {}
function MsgOpenAttachment() {}

Просмотреть файл

@ -73,23 +73,18 @@ Rights Reserved.
<broadcaster id="cmd_previousUnreadMsg" oncommand="goDoCommand('cmd_previousUnreadMsg')" disabled="true"/>
<broadcaster id="cmd_previousFlaggedMsg" oncommand="goDoCommand('cmd_previousFlaggedMsg')" disabled="true"/>
<broadcaster id="cmd_sortBySubject" oncommand="goDoCommand('cmd_sortBySubject')" disabled="true"/>
<broadcaster id="cmd_sortByDate" oncommand="goDoCommand('cmd_sortByDate')" disabled="true"/>
<broadcaster id="cmd_sortByFlag" oncommand="goDoCommand('cmd_sortByFlag')" disabled="true"/>
<broadcaster id="cmd_sortByPriority" oncommand="goDoCommand('cmd_sortByPriority')" disabled="true"/>
<broadcaster id="cmd_sortBySender" oncommand="goDoCommand('cmd_sortBySender')" disabled="true"/>
<broadcaster id="cmd_sortBySize" oncommand="goDoCommand('cmd_sortBySize')" disabled="true"/>
<broadcaster id="cmd_sortByRead" oncommand="goDoCommand('cmd_sortByRead')" disabled="true"/>
<broadcaster id="cmd_sortByStatus" oncommand="goDoCommand('cmd_sortByStatus')" disabled="true"/>
<broadcaster id="cmd_sortByUnread" oncommand="goDoCommand('cmd_sortByUnread')" disabled="true"/>
<broadcaster id="cmd_sortByOrderReceived" oncommand="goDoCommand('cmd_sortByOrderReceived')" disabled="true"/>
<broadcaster id="cmd_viewAllMsgs" oncommand="goDoCommand('cmd_viewAllMsgs')" disabled="true"/>
<broadcaster id="cmd_viewUnreadMsgs" oncommand="goDoCommand('cmd_viewUnreadMsgs')" disabled="true"/>
<broadcaster id="cmd_sortByThread" oncommand="goDoCommand('cmd_sortByThread')" disabled="true"/>
<broadcaster id="cmd_reply" oncommand="goDoCommand('cmd_reply')"/>
<broadcaster id="cmd_replySender" oncommand="goDoCommand('cmd_replySender')"/>
<broadcaster id="cmd_replyGroup" oncommand="goDoCommand('cmd_replyGroup')"/>
<broadcaster id="cmd_replyall" oncommand="goDoCommand('cmd_replyall')"/>
<broadcaster id="cmd_forward" oncommand="goDoCommand('cmd_forward')"/>
<broadcaster id="cmd_forwardInline" oncommand="goDoCommand('cmd_forwardInline')"/>
<broadcaster id="cmd_forwardAttachment" oncommand="goDoCommand('cmd_forwardAttachment')"/>
<broadcaster id="cmd_editAsNew" oncommand="goDoCommand('cmd_editAsNew')"/>
<broadcaster id="button_reply"/>
<broadcaster id="button_replyall"/>
<broadcaster id="button_forward"/>
@ -104,6 +99,16 @@ Rights Reserved.
<broadcaster id="cmd_saveAsTemplate" oncommand="goDoCommand('cmd_saveAsTemplate')" disabled="true"/>
<broadcaster id="cmd_viewPageSource" oncommand="goDoCommand('cmd_viewPageSource')" disabled="true"/>
<broadcaster id="cmd_reload" oncommand="goDoCommand('cmd_reload')" disabled="true"/>
<broadcaster id="cmd_getNewMessages" oncommand="goDoCommand('cmd_getNewMessages')" disabled="true"/>
<broadcaster id="cmd_find" oncommand="goDoCommand('cmd_find')" disabled="true"/>
<broadcaster id="cmd_findAgain" oncommand="goDoCommand('cmd_findAgain')" disabled="true"/>
<broadcaster id="cmd_markAsRead" oncommand="goDoCommand('cmd_markAsRead')" disabled="true"/>
<broadcaster id="cmd_markAllRead" oncommand="goDoCommand('cmd_markAllRead')" disabled="true"/>
<broadcaster id="cmd_markThreadAsRead" oncommand="goDoCommand('cmd_markThreadAsRead')" disabled="true"/>
<broadcaster id="cmd_markAsFlagged" oncommand="goDoCommand('cmd_markAsFlagged')" disabled="true"/>
<broadcaster id="cmd_file" disabled="true"/>
<broadcaster id="cmd_emptyTrash" oncommand="goDoCommand('cmd_emptyTrash')" disabled="true"/>
<broadcaster id="cmd_compactFolder" oncommand="goDoCommand('cmd_compactFolder')" disabled="true"/>
</broadcasterset>
@ -123,10 +128,12 @@ Rights Reserved.
<key id="key_selectAll"/>
<key id="key_preferences"/>
<key id="key_nextMsg" key="&nextMsgCmd.key;" control="false" shift="true" observes="cmd_nextMsg"/>
<key id="key_nextUnreadMsg" key="&nextUnreadMsgCmd.key;" control="false" shift="false" observes="cmd_nextUnreadMsg"/>
<key id="key_toggleRead" key="&markAsReadCmd.key;" alt="false" control="false" shift="false" observes="cmd_markAsRead"/>
<key id="key_markAllRead" key="&markAllReadCmd.key;" alt="false" control="false" shift="false" observes="cmd_markAllRead"/>
<key id="key_nextMsg" key="&nextMsgCmd.key;" alt="false" control="false" shift="false" observes="cmd_nextMsg"/>
<key id="key_nextUnreadMsg" key="&nextUnreadMsgCmd.key;" alt="false" control="false" shift="false" observes="cmd_nextUnreadMsg"/>
<key id="key_nextUnreadThread" key="&nextUnreadThreadCmd.key;" control="false" shift="false" alt="false" observes="cmd_nextUnreadThread"/>
<key id="key_previousMsg" key="&previousMsgCmd.key;" control="false" shift="true" observes="cmd_previousMsg"/>
<key id="key_previousMsg" key="&previousMsgCmd.key;" alt="false" control="false" shift="false" observes="cmd_previousMsg"/>
<key id="key_previousUnreadMsg" key="&previousUnreadMsgCmd.key;" control="false" shift="false" observes="cmd_previousUnreadMsg"/>
<key id="key_reply" key="&replyMsgCmd.key;" xulkey="true" shift="false" observes="cmd_reply"/>
<key id="key_replyall" key="&replyToAllMsgCmd.key;" xulkey="true" shift="true" observes="cmd_replyall"/>
@ -135,6 +142,9 @@ Rights Reserved.
<key id="key_print" key="&printCmd.key;" xulkey="true" shift="false" observes="cmd_print"/>
<key id="key_saveAsFile" key="&saveAsFileCmd.key;" xulkey="true" shift="false" observes="cmd_saveAsFile"/>
<key id="key_viewPageSource" key="&pageSourceCmd.key;" xulkey="true" shift="false" observes="cmd_viewPageSource"/>
<key id="key_getNewMessages" key="&getNewMsgCmd.key;" xulkey="true" shift="false" observes="cmd_getNewMessages"/>
<key id="key_find" key="&findCmd.key;" xulkey="true" shift="false" observes="cmd_find"/>
<key id="key_findAgain" key="&findAgainCmd.key;" xulkey="true" shift="false" observes="cmd_findAgain"/>
</keyset>
@ -560,7 +570,8 @@ Rights Reserved.
<menuseparator/>
<menuitem value="&getNewMsgCmd.label;"
accesskey="&getNewMsgCmd.accesskey;"
oncommand="MsgGetMessage();"/>
key="key_getNewMessages"
observes="cmd_getNewMessages"/>
<menuitem value="&sendUnsentCmd.label;"
accesskey="&sendUnsentCmd.accesskey;"
oncommand="MsgSendUnsentMsg();"/>
@ -571,11 +582,11 @@ Rights Reserved.
<menuitem id="menu_renameFolder" value="&renameFolder.label;"
accesskey="&renameFolder.accesskey;"
observes="cmd_renameFolder"/>
<menuitem value="&emptyTrashCmd.label;"
<menuitem id="menu_emptyTrash" value="&emptyTrashCmd.label;"
accesskey="&emptyTrashCmd.accesskey;"
oncommand="MsgEmptyTrash();"/>
<menuitem value="&compactFolder.label;" accesskey="&compactFolder.accesskey;" oncommand="MsgCompactFolder();"/>
<menuseparator/>
observes="cmd_emptyTrash"/>
<menuitem id="menu_compactFolder" value="&compactFolder.label;" accesskey="&compactFolder.accesskey;" observes="cmd_compactFolder"/>
<menuseparator id="trashMenuSeparator"/>
<menuitem value="&importCmd.label;" accesskey="&importCmd.accesskey;" oncommand="toImport();"/>
<menuseparator/>
<menuitem id="printMenuItem" key="key_print" value="&printCmd.label;" accesskey="&printCmd.accesskey;" observes="cmd_print"/>
@ -624,17 +635,17 @@ Rights Reserved.
accesskey="&showMessageCmd.accesskey;"
oncommand="MsgToggleMessagePane();"/>
<menuseparator/>
<menu id="viewSortMenu" value="&sortMenu.label;">
<menu id="viewSortMenu" value="&sortMenu.label;">
<menupopup>
<menuitem id="sortByDateMenuitem" type="checkbox" value="&sortByDateCmd.label;" accesskey="&sortByDateCmd.accesskey;" observes="cmd_sortByDate"/>
<menuitem id="sortByFlagMenuitem" type="checkbox" value="&sortByFlagCmd.label;" accesskey="&sortByFlagCmd.accesskey;" observes="cmd_sortByFlag"/>
<menuitem id="sortByOrderReceivedMenuitem" type="checkbox" value="&sortByOrderReceivedCmd.label;" accesskey="&sortByOrderReceivedCmd.accesskey;" observes="cmd_sortByOrderReceived"/>
<menuitem id="sortByPriorityMenuitem" type="checkbox" value="&sortByPriorityCmd.label;" accesskey="&sortByPriorityCmd.accesskey;" observes="cmd_sortByPriority"/>
<menuitem id="sortBySenderMenuitem" type="checkbox" value="&sortBySenderCmd.label;" accesskey="&sortBySenderCmd.accesskey;" observes="cmd_sortBySender"/>
<menuitem id="sortBySizeMenuitem" type="checkbox" value="&sortBySizeCmd.label;" accesskey="&sortBySizeCmd.accesskey;" observes="cmd_sortBySize"/>
<menuitem id="sortByStatusMenuitem" type="checkbox" value="&sortByStatusCmd.label;" accesskey="&sortByStatusCmd.accesskey;" observes="cmd_sortByStatus"/>
<menuitem id="sortBySubjectMenuitem" type="checkbox" value="&sortBySubjectCmd.label;" accesskey="&sortBySubjectCmd.accesskey;" observes="cmd_sortBySubject"/>
<menuitem id="sortByUnreadMenuitem" type="checkbox" value="&sortByUnreadCmd.label;" accesskey="&sortByUnreadCmd.accesskey;" observes="cmd_sortByRead"/>
<menuitem id="sortByDateMenuitem" type="checkbox" value="&sortByDateCmd.label;" accesskey="&sortByDateCmd.accesskey;" oncommand="MsgSortByDate()"/>
<menuitem id="sortByFlagMenuitem" type="checkbox" value="&sortByFlagCmd.label;" accesskey="&sortByFlagCmd.accesskey;" oncommand="MsgSortByFlagged()"/>
<menuitem id="sortByOrderReceivedMenuitem" type="checkbox" value="&sortByOrderReceivedCmd.label;" accesskey="&sortByOrderReceivedCmd.accesskey;" oncommand="MsgSortByOrderReceived()"/>
<menuitem id="sortByPriorityMenuitem" type="checkbox" value="&sortByPriorityCmd.label;" accesskey="&sortByPriorityCmd.accesskey;" oncommand="MsgSortByPriority()"/>
<menuitem id="sortBySenderMenuitem" type="checkbox" value="&sortBySenderCmd.label;" accesskey="&sortBySenderCmd.accesskey;" oncommand="MsgSortBySender()"/>
<menuitem id="sortBySizeMenuitem" type="checkbox" value="&sortBySizeCmd.label;" accesskey="&sortBySizeCmd.accesskey;" oncommand="MsgSortBySize()"/>
<menuitem id="sortByStatusMenuitem" type="checkbox" value="&sortByStatusCmd.label;" accesskey="&sortByStatusCmd.accesskey;" oncommand="MsgSortByStatus()"/>
<menuitem id="sortBySubjectMenuitem" type="checkbox" value="&sortBySubjectCmd.label;" accesskey="&sortBySubjectCmd.accesskey;" oncommand="MsgSortBySubject()"/>
<menuitem id="sortByUnreadMenuitem" type="checkbox" value="&sortByUnreadCmd.label;" accesskey="&sortByUnreadCmd.accesskey;" oncommand="MsgSortByRead()"/>
</menupopup>
</menu>
<menu value="&msgsMenu.label;" id="viewMessagesMenu" accesskey="&msgsMenu.accesskey;" oncreate="InitViewMessagesMenu();">
@ -682,8 +693,8 @@ Rights Reserved.
</menu>
<menu value="&searchMenu.label;" accesskey="&searchMenu.accesskey;">
<menupopup>
<menuitem value="&findCmd.label;" accesskey="&findCmd.accesskey;" oncommand="MsgFind();"/>
<menuitem value="&findAgainCmd.label;" accesskey="&findAgainCmd.accesskey;" oncommand="MsgFindAgain();"/>
<menuitem value="&findCmd.label;" key="key_find" accesskey="&findCmd.accesskey;" observes="cmd_find"/>
<menuitem value="&findAgainCmd.label;" key="key_findAgain" accesskey="&findAgainCmd.accesskey;" observes="cmd_findAgain"/>
<menuseparator/>
<menuitem value="&searchInternetCmd.label;" accesskey="&searchInternetCmd.accesskey;" oncommand="openTopWin('http://search.netscape.com/')"/>
<menuitem value="&searchMailCmd.label;" accesskey="&searchMailCmd.accesskey;" oncommand="MsgSearchMessages();"/>
@ -721,29 +732,29 @@ Rights Reserved.
<menuitem id="replyMainMenu" value="&replyMsgCmd.label;"
accesskey="&replyMsgCmd.accesskey;"
key="key_reply"
oncommand="MsgReplyMessage(event);"/>
observes="cmd_reply"/>
<menuitem id="replySenderMainMenu" value="&replySenderCmd.label;"
accesskey="&replySenderCmd.accesskey;"
oncommand="MsgReplySender(event);"/>
observes="cmd_replySender"/>
<menuitem id="replyNewsgroupMainMenu" value="&replyNewsgroupCmd.label;"
accesskey="&replyNewsgroupCmd.accesskey;"
key="key_reply"
oncommand="MsgReplyGroup(event);"/>
observes="cmd_replyGroup"/>
<menuitem value="&replyToAllMsgCmd.label;"
accesskey="&replyToAllMsgCmd.accesskey;"
key="key_replyall"
oncommand="MsgReplyToAllMessage(event);"/>
observes="cmd_replyall"/>
<menuitem value="&forwardMsgCmd.label;"
accesskey="&forwardMsgCmd.accesskey;"
key="key_forward"
oncommand="MsgForwardMessage(event);"/>
observes="cmd_forward"/>
<menu value="&forwardAsMenu.label;" accesskey="&forwardAsMenu.accesskey;">
<menupopup>
<menuitem value="&forwardAsInline.label;" accesskey="&forwardAsInline.accesskey;" oncommand="MsgForwardAsInline(event);"/>
<menuitem value="&forwardAsAttachmentCmd.label;" accesskey="&forwardAsAttachmentCmd.accesskey;" oncommand="MsgForwardAsAttachment(event);"/>
<menuitem value="&forwardAsInline.label;" accesskey="&forwardAsInline.accesskey;" observes="cmd_forwardInline"/>
<menuitem value="&forwardAsAttachmentCmd.label;" accesskey="&forwardAsAttachmentCmd.accesskey;" observes="cmd_forwardAttachment"/>
</menupopup>
</menu>
<menuitem value="&editMsgAsNewCmd.label;" accesskey="&editMsgAsNewCmd.accesskey;" oncommand="MsgEditMessageAsNew();"/>
<menuitem value="&editMsgAsNewCmd.label;" accesskey="&editMsgAsNewCmd.accesskey;" observes="cmd_editAsNew"/>
<menuseparator/>
<menu value="&moveMsgMenu.label;" accesskey="&moveMsgMenu.accesskey;" id="moveMenu" datasources="rdf:null"
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
@ -847,11 +858,11 @@ Rights Reserved.
<menuseparator/>
<menu value="&markMenu.label;" accesskey="&markMenu.accesskey;" oncreate="InitMessageMarkMenu()">
<menupopup>
<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();"/>
<menuitem type="checkbox" key="key_toggleRead" id="markReadMenuItem" value="&markAsReadCmd.label;" accesskey="&markAsReadCmd.accesskey;" observes="cmd_markAsRead"/>
<menuitem value="&markThreadAsReadCmd.label;" accesskey="&markThreadAsReadCmd.accesskey;" observes="cmd_markThreadAsRead"/>
<menuitem value="&markAllReadCmd.label;" key="key_markAllRead" accesskey="&markAllReadCmd.accesskey;" observes="cmd_markAllRead"/>
<menuseparator/>
<menuitem type="checkbox" id="markFlaggedMenuItem" value="&markFlaggedCmd.label;" accesskey="&markFlaggedCmd.accesskey;" oncommand="MsgMarkAsFlagged(event.target.getAttribute('checked') == 'true');"/>
<menuitem type="checkbox" id="markFlaggedMenuItem" value="&markFlaggedCmd.label;" accesskey="&markFlaggedCmd.accesskey;" observes="cmd_markAsFlagged"/>
</menupopup>
</menu>
</menupopup>
@ -865,15 +876,15 @@ Rights Reserved.
<toolbox id="mailToolbarToolbox">
<toolbar class="toolbar-primary chromeclass-toolbar" id="msgToolbar" persist="collapsed">
<box id="toolbar_button_box">
<button class="button-toolbar-2 top" id="button-getmsg" value="&getMsgButton.label;" tooltip="aTooltip" tooltiptext="&getMsgButton.tooltip;" onclick="MsgGetMessage()"/>
<button class="button-toolbar-2 top" id="button-getmsg" value="&getMsgButton.label;" tooltip="aTooltip" tooltiptext="&getMsgButton.tooltip;" observes="cmd_getNewMessages"/>
<button class="button-toolbar-2 top" id="button-newmsg" value="&newMsgButton.label;" tooltip="aTooltip" tooltiptext="&newMsgButton.tooltip;" onclick="MsgNewMessage(event)"/>
<separator/>
<button class="button-toolbar-2 top" id="button-reply" value="&replyButton.label;" tooltip="aTooltip" tooltiptext="&replyButton.tooltip;" observes="button_reply" onclick="MsgReplyMessage(event)"/>
<button class="button-toolbar-2 top" id="button-replyall" value="&replyAllButton.label;" tooltip="aTooltip" tooltiptext="&replyAllButton.tooltip;" observes="button_replyall" onclick="MsgReplyToAllMessage(event)"/>
<button class="button-toolbar-2 top" id="button-forward" value="&forwardButton.label;" tooltip="aTooltip" tooltiptext="&forwardButton.tooltip;" observes="button_forward" onclick="MsgForwardMessage(event)"/>
<separator/>
<menu id="FileButtonMenu" datasources="rdf:null" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<button class="button-toolbar-2 top" id="button-file" value="&fileButton.label;" tooltip="aTooltip" tooltiptext="&fileButton.tooltip;"/>
<menu id="FileButtonMenu" observes="cmd_file" datasources="rdf:null" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild">
<button class="button-toolbar-2 top" observes="cmd_file" id="button-file" value="&fileButton.label;" tooltip="aTooltip" tooltiptext="&fileButton.tooltip;"/>
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
@ -921,7 +932,7 @@ Rights Reserved.
</template>
<menupopup/>
</menu>
<button class="button-toolbar-2 top" id="button-next" value="&nextButton.label;" tooltip="aTooltip" tooltiptext="&nextButton.tooltip;" onclick="MsgNextUnreadMessage()"/>
<button class="button-toolbar-2 top" id="button-next" value="&nextButton.label;" tooltip="aTooltip" tooltiptext="&nextButton.tooltip;" observes="cmd_nextUnreadMsg"/>
<button class="button-toolbar-2 top" id="button-delete" value="&deleteButton.label;" tooltip="aTooltip" tooltiptext="&deleteButton.tooltip;" observes="button_delete" onclick="goDoCommand('button_delete')"/>
<menubutton class="menubutton-dual toolbar top" id="button-print" value="&printButton.label;"
crop="right" observes="cmd_print" tooltip="aTooltip" buttontooltiptext="&printButton.tooltip;">

Просмотреть файл

@ -181,6 +181,17 @@ function HideMenus()
if(goNextSeparator)
goNextSeparator.setAttribute("hidden", "true");
var emptryTrashMenu = document.getElementById('menu_emptyTrash');
if(emptryTrashMenu)
emptryTrashMenu.setAttribute("hidden", "true");
var compactFolderMenu = document.getElementById('menu_compactFolder');
if(compactFolderMenu)
compactFolderMenu.setAttribute("hidden", "true");
var trashSeparator = document.getElementById('trashMenuSeparator');
if(trashSeparator)
trashSeparator.setAttribute("hidden", "true");
}
@ -224,6 +235,19 @@ function GetSelectedMsgFolders()
return folderArray;
}
function GetSelectedMessage(index)
{
return GetLoadedMessage();
}
function GetNumSelectedMessages()
{
if(gCurrentMessageUri)
return 1;
else
return 0;
}
function GetSelectedMessages()
{
var messageArray = new Array(1);
@ -237,27 +261,41 @@ function GetSelectedMessages()
function GetLoadedMsgFolder()
{
var folderResource = RDF.GetResource(gCurrentFolderUri);
if(folderResource)
if(gCurrentFolderUri)
{
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
return msgFolder;
var folderResource = RDF.GetResource(gCurrentFolderUri);
if(folderResource)
{
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
return msgFolder;
}
}
return null;
}
function GetLoadedMessage()
{
var messageResource = RDF.GetResource(gCurrentMessageUri);
if(messageResource)
if(gCurrentMessageUri)
{
var message = messageResource.QueryInterface(Components.interfaces.nsIMessage);
return message;
var messageResource = RDF.GetResource(gCurrentMessageUri);
if(messageResource)
{
var message = messageResource.QueryInterface(Components.interfaces.nsIMessage);
return message;
}
}
return null;
}
//Clear everything related to the current message. called after load start page.
function ClearMessageSelection()
{
gCurrentMessageUri = null;
gCurrentFolderUri = null;
CommandUpdate_Mail();
}
function GetCompositeDataSource(command)
{
return gCompositeDataSource;
@ -295,6 +333,17 @@ var MessageWindowController =
switch ( command )
{
case "cmd_reply":
case "button_reply":
case "cmd_replySender":
case "cmd_replyGroup":
case "cmd_replyall":
case "button_replyall":
case "cmd_forward":
case "button_forward":
case "cmd_forwardInline":
case "cmd_forwardAttachment":
case "cmd_editAsNew":
case "cmd_delete":
case "button_delete":
case "cmd_shiftDelete":
@ -303,6 +352,14 @@ var MessageWindowController =
case "cmd_saveAsTemplate":
case "cmd_viewPageSource":
case "cmd_reload":
case "cmd_getNewMessages":
case "cmd_find":
case "cmd_findAgain":
case "cmd_markAsRead":
case "cmd_markAllRead":
case "cmd_markThreadAsRead":
case "cmd_markAsFlagged":
case "cmd_file":
return true;
default:
return false;
@ -313,6 +370,17 @@ var MessageWindowController =
{
switch ( command )
{
case "cmd_reply":
case "button_reply":
case "cmd_replySender":
case "cmd_replyGroup":
case "cmd_replyall":
case "button_replyall":
case "cmd_forward":
case "button_forward":
case "cmd_forwardInline":
case "cmd_forwardAttachment":
case "cmd_editAsNew":
case "cmd_delete":
case "button_delete":
case "cmd_shiftDelete":
@ -321,11 +389,20 @@ var MessageWindowController =
case "cmd_saveAsTemplate":
case "cmd_viewPageSource":
case "cmd_reload":
case "cmd_find":
case "cmd_findAgain":
case "cmd_markAsRead":
case "cmd_markAllRead":
case "cmd_markThreadAsRead":
case "cmd_markAsFlagged":
case "cmd_file":
if ( command == "cmd_delete")
{
goSetMenuValue(command, 'valueMessage');
}
return ( gCurrentMessageUri != null);
case "cmd_getNewMessages":
return IsGetNewMessagesEnabled();
default:
return false;
}
@ -337,6 +414,33 @@ var MessageWindowController =
switch ( command )
{
case "cmd_getNewMessages":
MsgGetMessage();
break;
case "cmd_reply":
MsgReplyMessage(null);
break;
case "cmd_replySender":
MsgReplySender(null);
break;
case "cmd_replyGroup":
MsgReplyGroup(null);
break;
case "cmd_replyall":
MsgReplyToAllMessage(null);
break;
case "cmd_forward":
MsgForwardMessage(null);
break;
case "cmd_forwardInline":
MsgForwardAsInline(null);
break;
case "cmd_forwardAttachment":
MsgForwardAsAttachment(null);
break;
case "cmd_editAsNew":
MsgEditMessageAsNew();
break;
case "cmd_delete":
MsgDeleteMessage(false, false);
break;
@ -361,6 +465,24 @@ var MessageWindowController =
case "cmd_reload":
MsgReload();
break;
case "cmd_find":
MsgFind();
break;
case "cmd_findAgain":
MsgFindAgain();
break;
case "cmd_markAsRead":
MsgMarkMsgAsRead(null);
return;
case "cmd_markThreadAsRead":
MsgMarkThreadAsRead();
return;
case "cmd_markAllRead":
MsgMarkAllRead();
return;
case "cmd_markAsFlagged":
MsgMarkAsFlagged(null);
return;
}
},
@ -372,6 +494,17 @@ var MessageWindowController =
function CommandUpdate_Mail()
{
goUpdateCommand('cmd_reply');
goUpdateCommand('cmd_replySender');
goUpdateCommand('cmd_replyGroup');
goUpdateCommand('cmd_replyall');
goUpdateCommand('cmd_forward');
goUpdateCommand('cmd_forwardInline');
goUpdateCommand('cmd_forwardAttachment');
goUpdateCommand('button_reply');
goUpdateCommand('button_replyall');
goUpdateCommand('button_forward');
goUpdateCommand('cmd_editAsNew');
goUpdateCommand('cmd_delete');
goUpdateCommand('button_delete');
goUpdateCommand('cmd_shiftDelete');
@ -380,6 +513,15 @@ function CommandUpdate_Mail()
goUpdateCommand('cmd_saveAsTemplate');
goUpdateCommand('cmd_viewPageSource');
goUpdateCommand('cmd_reload');
goUpdateCommand('cmd_getNewMessages');
goUpdateCommand('cmd_find');
goUpdateCommand('cmd_findAgain');
goUpdateCommand('cmd_markAsRead');
goUpdateCommand('cmd_markThreadAsRead');
goUpdateCommand('cmd_markAllRead');
goUpdateCommand('cmd_markAsFlagged');
goUpdateCommand('cmd_file');
}
function SetupCommandUpdateHandlers()
@ -391,3 +533,4 @@ function CommandUpdate_UndoRedo()
{
}

Просмотреть файл

@ -72,9 +72,12 @@ Rights Reserved.
<commands id="commands">
<commandset id="CommandUpdate_Mail"
commandupdater="true"
events="focus,tree-select"
events="focus,folderTree-select,threadTree-select"
oncommandupdate="CommandUpdate_Mail()"/>
<commandset id="ThreadTreeUpdate_Mail"
commandupdater="true"
events="threadTree-select"
oncommandupdate="ThreadTreeUpdate_Mail()"/>
<commandset id="globalEditMenuItems"/>
<commandset id="selectEditMenuItems"/>
<commandset id="undoEditMenuItems"/>

Просмотреть файл

@ -112,6 +112,7 @@ var folderListener = {
gCurrentLoadingFolderIsThreaded = false;
gCurrentLoadingFolderSortID = "";
gCurrentLoadingFolderSortDirection = null;
}
}
if(uri == gCurrentLoadingFolderURI)
@ -133,6 +134,7 @@ var folderListener = {
dump("Time to load " + uri + " is " + timeToLoad + " seconds\n");
dump("of which scrolling to new is" + timeToScroll + "seconds\n");
}
SetBusyCursor(window, false);
}
}
@ -290,24 +292,6 @@ function Create3PaneGlobals()
}
function loadStartPage() {
try {
startpageenabled= pref.GetBoolPref("mailnews.start_page.enabled");
if (startpageenabled) {
startpage = pref.CopyCharPref("mailnews.start_page.url");
if (startpage != "") {
window.frames["messagepane"].location = startpage;
dump("start message pane with: " + startpage + "\n");
}
}
}
catch (ex) {
dump("Error loading start page.\n");
return;
}
}
function PerformExpandForAllOpenServers(tree)
{
//dump("PerformExpandForAllOpenServers()\n");
@ -536,6 +520,8 @@ function FindMessenger()
function RefreshThreadTreeView()
{
SetBusyCursor(window, true);
var selection = SaveThreadPaneSelection();
var currentFolder = GetThreadTreeFolder();
@ -544,6 +530,8 @@ function RefreshThreadTreeView()
currentFolder.setAttribute('ref', currentFolderID);
RestoreThreadPaneSelection(selection);
SetBusyCursor(window, false);
}
function ClearThreadTreeSelection()
@ -742,6 +730,30 @@ function GetSelectedMsgFolders()
return folderArray;
}
function GetSelectedMessage(index)
{
var threadTree = GetThreadTree();
var selectedMessages = threadTree.selectedItems;
var numMessages = selectedMessages.length;
if(index <0 || index > (numMessages - 1))
return null;
var messageNode = selectedMessages[index];
var messageUri = messageNode.getAttribute("id");
var messageResource = RDF.GetResource(messageUri);
var message = messageResource.QueryInterface(Components.interfaces.nsIMessage);
return message;
}
function GetNumSelectedMessages()
{
var threadTree = GetThreadTree();
var selectedMessages = threadTree.selectedItems;
var numMessages = selectedMessages.length;
return numMessages;
}
function GetSelectedMessages()
{
var threadTree = GetThreadTree();
@ -801,6 +813,12 @@ function GetLoadedMessage()
}
//Clear everything related to the current message. called after load start page.
function ClearMessageSelection()
{
ClearThreadTreeSelection();
}
function GetCompositeDataSource(command)
{
if(command == "GetNewMessages" || command == "DeleteMessages" || command == "Copy" ||
@ -862,4 +880,16 @@ function ReloadMessage()
}
function SetBusyCursor(window, enable)
{
if(enable)
window.setCursor("wait");
else
window.setCursor("auto");
numFrames = window.frames.length;
for(var i = 0; i < numFrames; i++)
{
SetBusyCursor(window.frames[i], enable);
}
}

Просмотреть файл

@ -85,62 +85,62 @@ function ThreadPaneDoubleClick(treeitem)
function MsgSortByDate()
{
SortThreadPane('DateColumn', 'http://home.netscape.com/NC-rdf#Date', null, true, null);
SortThreadPane('DateColumn', 'http://home.netscape.com/NC-rdf#Date', null, true, null, true);
}
function MsgSortBySender()
{
SortThreadPane('AuthorColumn', 'http://home.netscape.com/NC-rdf#Sender', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('AuthorColumn', 'http://home.netscape.com/NC-rdf#Sender', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByRecipient()
{
SortThreadPane('AuthorColumn', 'http://home.netscape.com/NC-rdf#Recipient', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('AuthorColumn', 'http://home.netscape.com/NC-rdf#Recipient', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByStatus()
{
SortThreadPane('StatusColumn', 'http://home.netscape.com/NC-rdf#Status', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('StatusColumn', 'http://home.netscape.com/NC-rdf#Status', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortBySubject()
{
SortThreadPane('SubjectColumn', 'http://home.netscape.com/NC-rdf#Subject', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('SubjectColumn', 'http://home.netscape.com/NC-rdf#Subject', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByFlagged()
{
SortThreadPane('FlaggedButtonColumn', 'http://home.netscape.com/NC-rdf#Flagged', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('FlaggedButtonColumn', 'http://home.netscape.com/NC-rdf#Flagged', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByPriority()
{
SortThreadPane('PriorityColumn', 'http://home.netscape.com/NC-rdf#Priority', 'http://home.netscape.com/NC-rdf#Date',true, null);
SortThreadPane('PriorityColumn', 'http://home.netscape.com/NC-rdf#Priority', 'http://home.netscape.com/NC-rdf#Date',true, null, true);
}
function MsgSortBySize()
{
SortThreadPane('SizeColumn', 'http://home.netscape.com/NC-rdf#Size', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('SizeColumn', 'http://home.netscape.com/NC-rdf#Size', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByUnread()
{
SortThreadPane('UnreadColumn', 'http://home.netscape.com/NC-rdf#TotalUnreadMessages','http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('UnreadColumn', 'http://home.netscape.com/NC-rdf#TotalUnreadMessages','http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByOrderReceived()
{
SortThreadPane('OrderReceivedColumn', 'http://home.netscape.com/NC-rdf#OrderReceived','http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('OrderReceivedColumn', 'http://home.netscape.com/NC-rdf#OrderReceived','http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByRead()
{
SortThreadPane('UnreadButtonColumn', 'http://home.netscape.com/NC-rdf#IsUnread','http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('UnreadButtonColumn', 'http://home.netscape.com/NC-rdf#IsUnread','http://home.netscape.com/NC-rdf#Date', true, null,true);
}
function MsgSortByTotal()
{
SortThreadPane('TotalColumn', 'http://home.netscape.com/NC-rdf#TotalMessages', 'http://home.netscape.com/NC-rdf#Date', true, null);
SortThreadPane('TotalColumn', 'http://home.netscape.com/NC-rdf#TotalMessages', 'http://home.netscape.com/NC-rdf#Date', true, null, true);
}
function MsgSortByThread()
@ -209,7 +209,14 @@ function ThreadPaneSelectionChange()
if(!collapsed)
{
LoadSelectionIntoMessagePane();
}
var tree = GetThreadTree();
var selectedMessages = tree.selectedItems;
var numSelected = selectedMessages.length;
if(numSelected == 0 | numSelected == 1)
document.commandDispatcher.updateCommands('threadTree-select');
}
function GetThreadTree()

Просмотреть файл

@ -34,7 +34,10 @@ Rights Reserved.
<tree datasources="rdf:null" id="threadTree"
onselect="top.ThreadPaneSelectionChange(); document.commandDispatcher.updateCommands('tree-select');"
onclick="ThreadPaneOnClick(event);"
ondraggesture="return BeginDragThreadTree(event);"
ondragdrop="return DropOnThreadTree(event);"
onselect="top.ThreadPaneSelectionChange();"
onblur="goOnEvent(this,'blur')"
containment="http://home.netscape.com/NC-rdf#MessageChild"
allownegativeassertions="false"
@ -43,10 +46,7 @@ Rights Reserved.
<template>
<rule>
<treechildren flex="1"
onclick="ThreadPaneOnClick(event);"
ondraggesture="return BeginDragThreadTree(event);"
ondragdrop="return DropOnThreadTree(event);" >
<treechildren flex="1">
<treeitem uri="..." id="threadTreeTemplateTreeItem">
<treerow class="tree-thread-row" IsUnread="rdf:http://home.netscape.com/NC-rdf#IsUnread" >

Просмотреть файл

@ -42,6 +42,7 @@ Rights Reserved.
<!ENTITY saveAsTemplateCmd.accesskey "t">
<!ENTITY getNewMsgCmd.label "Get New Messages">
<!ENTITY getNewMsgCmd.accesskey "g">
<!ENTITY getNewMsgCmd.key "t">
<!ENTITY sendUnsentCmd.label "Send Unsent Messages">
<!ENTITY sendUnsentCmd.accesskey "d">
<!ENTITY loadFirstDraft.label "Load First Draft Message">
@ -219,8 +220,10 @@ Rights Reserved.
<!ENTITY searchMenu.label "Search">
<!ENTITY findCmd.label "Find...">
<!ENTITY findCmd.accesskey "f">
<!ENTITY findCmd.key "f">
<!ENTITY findAgainCmd.label "Find Again">
<!ENTITY findAgainCmd.accesskey "g">
<!ENTITY findAgainCmd.key "g">
<!-- LOCALIZATION NOTE (searchCurrentCmd.label) : Do not translate "&lt;" and "&gt;" in below line. -->
<!ENTITY searchCurrentCmd.label ".Search in &lt;current&gt;">
<!ENTITY searchCurrentCmd.accesskey "">
@ -249,7 +252,7 @@ Rights Reserved.
<!ENTITY nextMenu.accesskey "n">
<!ENTITY nextMsgCmd.label "Message">
<!ENTITY nextMsgCmd.accesskey "m">
<!ENTITY nextMsgCmd.key "n">
<!ENTITY nextMsgCmd.key "f">
<!ENTITY nextUnreadMsgCmd.label "Unread Message">
<!ENTITY nextUnreadMsgCmd.accesskey "u">
<!ENTITY nextUnreadMsgCmd.key "n">
@ -263,7 +266,7 @@ Rights Reserved.
<!ENTITY prevMenu.accesskey "p">
<!ENTITY prevMsgCmd.label "Message">
<!ENTITY prevMsgCmd.accesskey "m">
<!ENTITY previousMsgCmd.key "p">
<!ENTITY previousMsgCmd.key "b">
<!ENTITY previousMsgCmd.accesskey "m">
<!ENTITY prevUnreadMsgCmd.label "Unread Message">
<!ENTITY prevUnreadMsgCmd.accesskey "u">
@ -316,6 +319,7 @@ Rights Reserved.
<!ENTITY markMenu.accesskey "k">
<!ENTITY markAsReadCmd.label "As Read">
<!ENTITY markAsReadCmd.accesskey "r">
<!ENTITY markAsReadCmd.key "m">
<!ENTITY markAsUnreadCmd.label "As Unread">
<!ENTITY markAsUnreadCmd.accesskey "u">
<!ENTITY markThreadAsReadCmd.label "Thread As Read">
@ -324,6 +328,7 @@ Rights Reserved.
<!ENTITY markByDateCmd.accesskey "d">
<!ENTITY markAllReadCmd.label "All Read">
<!ENTITY markAllReadCmd.accesskey "a">
<!ENTITY markAllReadCmd.key "a">
<!ENTITY markFlaggedCmd.label "Flag">
<!ENTITY markFlaggedCmd.accesskey "f">
<!ENTITY openMessageWindowCmd.label "Open Message">

Просмотреть файл

@ -196,7 +196,7 @@ Rights Reserved.
</popupset>
<popupset id="aTooltipSet"/>
<keyset id="msgComposeKeySet">
<keyset id="keyset">
<!-- File Menu -->
<key id="key_newNavigator"/>
<key id="key_close"/>