implement downloading of messages for offline use, add folder props ui r=sspitzer, sr=mscott 15865

This commit is contained in:
bienvenu%netscape.com 2000-12-12 03:18:06 +00:00
parent 08cd5decc2
commit 98b859d8ef
10 changed files with 111 additions and 2 deletions

View File

@ -40,6 +40,8 @@ shareglue.js
subscribe.js
subscribe.xul
sidebar-messenger.rdf
folderProps.js
imapFolderProps.xul
newFolderNameDialog.xul
newFolderNameDialog.js
renameFolderNameDialog.xul

View File

@ -58,6 +58,8 @@ CHROME_CONTENT = \
subscribe.js \
subscribe.xul \
sidebar-messenger.rdf \
imapFolderProps.xul \
folderProps.js \
newFolderNameDialog.xul \
newFolderNameDialog.js \
msgViewNavigation.js \

View File

@ -216,6 +216,8 @@ var DefaultController =
case "cmd_emptyTrash":
case "cmd_compactFolder":
case "cmd_sortByThread":
case "cmd_downloadFlagged":
case "cmd_downloadSelected":
return true;
default:
return false;
@ -265,12 +267,14 @@ var DefaultController =
case "cmd_previousMsg":
case "cmd_previousUnreadMsg":
return MailAreaHasFocus() && IsViewNavigationItemEnabled();
case "cmd_downloadSelected":
case "cmd_markAsRead":
if(!MailAreaHasFocus())
return false;
else
return(GetNumSelectedMessages() > 0);
case "cmd_markAllRead":
case "cmd_downloadFlagged":
return(MailAreaHasFocus() && IsFolderSelected());
case "cmd_find":
case "cmd_findAgain":
@ -436,6 +440,12 @@ var DefaultController =
case "cmd_markAsFlagged":
MsgMarkAsFlagged(null);
return;
case "cmd_downloadFlagged":
MsgDownloadFlagged();
return;
case "cmd_downloadSelected":
MsgDownloadSelected();
return;
case "cmd_emptyTrash":
MsgEmptyTrash();
return;
@ -563,6 +573,8 @@ function ThreadTreeUpdate_Mail(command)
goUpdateCommand('cmd_markAsRead');
goUpdateCommand('cmd_markThreadAsRead');
goUpdateCommand('cmd_markAsFlagged');
goUpdateCommand('cmd_downloadSelected');
goUpdateCommand('cmd_downloadFlagged');
goUpdateCommand('cmd_file');
}

View File

@ -447,6 +447,25 @@ function MarkAllMessagesRead(compositeDataSource, folder)
DoRDFCommand(compositeDataSource, "http://home.netscape.com/NC-rdf#MarkAllMessagesRead", folderResourceArray, null);
}
function DownloadFlaggedMessages(compositeDataSource, folder)
{
var folderResource = folder.QueryInterface(Components.interfaces.nsIRDFResource);
var folderResourceArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
folderResourceArray.AppendElement(folderResource);
DoRDFCommand(compositeDataSource, "http://home.netscape.com/NC-rdf#DownloadFlaggedMessages", folderResourceArray, null);
}
function DownloadSelectedMessages(compositeDataSource, messages, markFlagged)
{
var messageResourceArray = ConvertMessagesToResourceArray(messages, null);
var command = "http://home.netscape.com/NC-rdf#DownloadSelectedMessages";
DoRDFCommand(compositeDataSource, command, messageResourceArray, null);
}
function MarkThreadAsRead(compositeDataSource, message)
{

View File

@ -604,6 +604,23 @@ function MsgMarkAllRead()
MarkAllMessagesRead(compositeDataSource, folder);
}
function MsgDownloadFlagged()
{
var compositeDataSource = GetCompositeDataSource("DownloadFlagged");
var folder = GetLoadedMsgFolder();
if(folder)
DownloadFlaggedMessages(compositeDataSource, folder);
}
function MsgDownloadSelected()
{
var selectedMessages = GetSelectedMessages();
var compositeDataSource = GetCompositeDataSource("DownloadSelected");
DownloadSelectedMessages(compositeDataSource, selectedMessages);
}
function MsgMarkThreadAsRead()
{

View File

@ -109,6 +109,10 @@ Rights Reserved.
<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"/>
<broadcaster id="cmd_workOffline" oncommand="goDoCommand('cmd_workOffline')" disabled="true"/>
<broadcaster id="cmd_synchronizeOffline" oncommand="goDoCommand('cmd_synchronizeOffline')" disabled="true"/>
<broadcaster id="cmd_downloadFlagged" oncommand="goDoCommand('cmd_downloadFlagged')" disabled="true"/>
<broadcaster id="cmd_downloadSelected" oncommand="goDoCommand('cmd_downloadSelected')" disabled="true"/>
</broadcasterset>
@ -372,6 +376,10 @@ Rights Reserved.
value="&folderContextSearchMessages.label;"
accesskey="&folderContextSearchMessages.accesskey;"
oncommand="MsgSearchMessages();"/>
<menuitem id="folderPaneContext-properties"
value="&folderContextProperties.label;"
accesskey="&folderContextProperties.accesskey;"
oncommand="MsgFolderProperties();"/>
</popup>
<popup id="messagePaneContext"
@ -654,6 +662,23 @@ Rights Reserved.
<menuseparator id="trashMenuSeparator"/>
<menuitem value="&importCmd.label;" accesskey="&importCmd.accesskey;" oncommand="toImport();"/>
<menuseparator/>
<menu value="&offlineMenu.label;" accesskey="&offlineMenu.accesskey;">
<menupopup>
<menuitem value="&workOfflineCmd.label;"
accesskey="&workOfflineCmd.accesskey;"
observes="cmd_workOffline"/>
<menuitem value="&synchronizeOfflineCmd.label;"
accesskey="&synchronizeOfflineCmd.accesskey;"
observes="cmd_synchronizeOffline"/>
<menuitem value="&downloadFlaggedCmd.label;"
accesskey="&downloadFlaggedCmd.accesskey;"
observes="cmd_downloadFlagged"/>
<menuitem value="&downloadSelectedCmd.label;"
accesskey="&downloadSelectedCmd.accesskey;"
observes="cmd_downloadSelected"/>
</menupopup>
</menu>
<menuseparator/>
<menuitem id="printMenuItem" key="key_print" value="&printCmd.label;" accesskey="&printCmd.accesskey;" observes="cmd_print"/>
<menuseparator/>
</menupopup>

View File

@ -75,6 +75,8 @@ CHROME_CONTENT = \
.\mailMessengerComposeOverlay.xul \
.\mailOverlay.xul \
.\mailWidgets.xml \
.\imapFolderProps.xul \
.\folderProps.js \
$(NULL)
include <$(DEPTH)\config\rules.mak>

View File

@ -377,6 +377,7 @@ var MessageWindowController =
case "cmd_markThreadAsRead":
case "cmd_markAsFlagged":
case "cmd_file":
case "cmd_downloadFlagged":
return true;
default:
return false;
@ -505,6 +506,12 @@ var MessageWindowController =
case "cmd_markAsFlagged":
MsgMarkAsFlagged(null);
return;
case "cmd_downloadFlagged":
MsgDownloadFlagged();
return;
case "cmd_downloadSelected":
MsgDownloadSelected();
return;
}
},
@ -543,6 +550,8 @@ function CommandUpdate_Mail()
goUpdateCommand('cmd_markThreadAsRead');
goUpdateCommand('cmd_markAllRead');
goUpdateCommand('cmd_markAsFlagged');
goUpdateCommand('cmd_downloadFlagged');
goUpdateCommand('cmd_downloadSelected');
goUpdateCommand('cmd_file');
}

View File

@ -852,13 +852,14 @@ function ClearMessageSelection()
function GetCompositeDataSource(command)
{
if(command == "GetNewMessages" || command == "DeleteMessages" || command == "Copy" ||
command == "Move" || command == "NewFolder" || command == "MarkAllMessagesRead")
command == "Move" || command == "NewFolder" || command == "MarkAllMessagesRead" ||
command == "DownloadFlagged")
{
return GetFolderDatasource();
}
else if(command == "MarkMessageRead" ||
command == "MarkMessageFlagged" || command == "MarkThreadAsRead" ||
command == "MessageProperty")
command == "DownloadSelected" || command == "MessageProperty")
{
var threadTree = GetThreadTree();
return threadTree.database;

View File

@ -234,6 +234,26 @@ function MsgCompactFolder()
}
}
function MsgFolderProperties()
{
var preselectedURI = GetSelectedFolderURI();
var folderTree = GetFolderTree();
var name = GetFolderNameFromUri(preselectedURI, folderTree);
dump("preselectedURI = " + preselectedURI + "\n");
var windowTitle = Bundle.GetStringFromName("folderProperties");
var dialog = window.openDialog(
"chrome://messenger/content/imapFolderProps.xul",
"",
"chrome,titlebar,modal",
{preselectedURI:preselectedURI, title:windowTitle,
okCallback:FolderProperties, name:name});
}
function FolderProperties(name, uri)
{
}
function MsgToggleMessagePane()
{