Fix for bug 47855. Implement Save as File and fix command Save to remember which default action to performe (save as file, save as draft or save as template). R=ducarroz

This commit is contained in:
ducarroz%netscape.com 2000-08-12 00:29:43 +00:00
parent 023233561d
commit 139e85399a
2 changed files with 28 additions and 2 deletions

View File

@ -43,6 +43,7 @@ var documentLoaded = false;
var windowLocked = false; var windowLocked = false;
var contentChanged = false; var contentChanged = false;
var currentIdentity = null; var currentIdentity = null;
var defaultSaveOperation = "draft";
var Bundle = srGetStrBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties"); var Bundle = srGetStrBundle("chrome://messenger/locale/messengercompose/composeMsgs.properties");
@ -97,6 +98,7 @@ var defaultController =
case "cmd_attachPage": case "cmd_attachPage":
case "cmd_close": case "cmd_close":
case "cmd_saveDefault": case "cmd_saveDefault":
case "cmd_saveAsFile":
case "cmd_saveAsDraft": case "cmd_saveAsDraft":
case "cmd_saveAsTemplate": case "cmd_saveAsTemplate":
case "cmd_sendNow": case "cmd_sendNow":
@ -200,6 +202,7 @@ var defaultController =
case "cmd_attachPage": case "cmd_attachPage":
case "cmd_close": case "cmd_close":
case "cmd_saveDefault": case "cmd_saveDefault":
case "cmd_saveAsFile":
case "cmd_saveAsDraft": case "cmd_saveAsDraft":
case "cmd_saveAsTemplate": case "cmd_saveAsTemplate":
case "cmd_sendNow": case "cmd_sendNow":
@ -312,7 +315,8 @@ var defaultController =
case "cmd_attachFile" : if (defaultController.isCommandEnabled(command)) AttachFile(); break; case "cmd_attachFile" : if (defaultController.isCommandEnabled(command)) AttachFile(); break;
case "cmd_attachPage" : AttachPage(); break; case "cmd_attachPage" : AttachPage(); break;
case "cmd_close" : DoCommandClose(); break; case "cmd_close" : DoCommandClose(); break;
case "cmd_saveDefault" : SaveAsDraft(); break; /* TEMPORARY: We should save either as file, as draft or template, depending of last save type */ case "cmd_saveDefault" : Save(); break;
case "cmd_saveAsFile" : SaveAsFile(true); break;
case "cmd_saveAsDraft" : SaveAsDraft(); break; case "cmd_saveAsDraft" : SaveAsDraft(); break;
case "cmd_saveAsTemplate" : SaveAsTemplate(); break; case "cmd_saveAsTemplate" : SaveAsTemplate(); break;
case "cmd_sendNow" : if (defaultController.isCommandEnabled(command)) SendMessage(); break; case "cmd_sendNow" : if (defaultController.isCommandEnabled(command)) SendMessage(); break;
@ -356,6 +360,7 @@ function CommandUpdate_MsgCompose()
goUpdateCommand("cmd_attachPage"); goUpdateCommand("cmd_attachPage");
goUpdateCommand("cmd_close"); goUpdateCommand("cmd_close");
goUpdateCommand("cmd_saveDefault"); goUpdateCommand("cmd_saveDefault");
goUpdateCommand("cmd_saveAsFile");
goUpdateCommand("cmd_saveAsDraft"); goUpdateCommand("cmd_saveAsDraft");
goUpdateCommand("cmd_saveAsTemplate"); goUpdateCommand("cmd_saveAsTemplate");
goUpdateCommand("cmd_sendNow"); goUpdateCommand("cmd_sendNow");
@ -993,6 +998,24 @@ function SendMessageLater()
GenericSendMessage(msgCompDeliverMode.Later); GenericSendMessage(msgCompDeliverMode.Later);
} }
function Save()
{
dump("Save from XUL\n");
switch (defaultSaveOperation)
{
case "file" : SaveAsFile(false); break;
case "template" : SaveAsTemplate(false); break;
default : SaveAsDraft(false); break;
}
}
function SaveAsFile(saveAs)
{
dump("SaveAsFile from XUL\n");
editorShell.saveDocument(saveAs, false);
defaultSaveOperation = "file";
}
function SaveAsDraft() function SaveAsDraft()
{ {
dump("SaveAsDraft from XUL\n"); dump("SaveAsDraft from XUL\n");
@ -1001,6 +1024,7 @@ function SaveAsDraft()
// RICHIE: We should really have a way of using constants and not // RICHIE: We should really have a way of using constants and not
// hardcoded numbers for the first argument // hardcoded numbers for the first argument
GenericSendMessage(msgCompDeliverMode.SaveAsDraft); GenericSendMessage(msgCompDeliverMode.SaveAsDraft);
defaultSaveOperation = "draft";
} }
function SaveAsTemplate() function SaveAsTemplate()
@ -1011,6 +1035,7 @@ function SaveAsTemplate()
// RICHIE: We should really have a way of using constants and not // RICHIE: We should really have a way of using constants and not
// hardcoded numbers for the first argument // hardcoded numbers for the first argument
GenericSendMessage(msgCompDeliverMode.SaveAsTemplate); GenericSendMessage(msgCompDeliverMode.SaveAsTemplate);
defaultSaveOperation = "template";
} }

View File

@ -98,6 +98,7 @@ Rights Reserved.
<broadcaster id="cmd_attachPage" oncommand="goDoCommand('cmd_attachPage')"/> <broadcaster id="cmd_attachPage" oncommand="goDoCommand('cmd_attachPage')"/>
<broadcaster id="cmd_close" oncommand="goDoCommand('cmd_close')"/> <broadcaster id="cmd_close" oncommand="goDoCommand('cmd_close')"/>
<broadcaster id="cmd_saveDefault" oncommand="goDoCommand('cmd_saveDefault')"/> <broadcaster id="cmd_saveDefault" oncommand="goDoCommand('cmd_saveDefault')"/>
<broadcaster id="cmd_saveAsFile" oncommand="goDoCommand('cmd_saveAsFile')"/>
<broadcaster id="cmd_saveAsDraft" oncommand="goDoCommand('cmd_saveAsDraft')"/> <broadcaster id="cmd_saveAsDraft" oncommand="goDoCommand('cmd_saveAsDraft')"/>
<broadcaster id="cmd_saveAsTemplate" oncommand="goDoCommand('cmd_saveAsTemplate')"/> <broadcaster id="cmd_saveAsTemplate" oncommand="goDoCommand('cmd_saveAsTemplate')"/>
<broadcaster id="cmd_sendNow" oncommand="goDoCommand('cmd_sendNow')"/> <broadcaster id="cmd_sendNow" oncommand="goDoCommand('cmd_sendNow')"/>
@ -261,7 +262,7 @@ Rights Reserved.
<menuitem value="&saveCmd.label;" key="key_save" observes="cmd_saveDefault"/> <menuitem value="&saveCmd.label;" key="key_save" observes="cmd_saveDefault"/>
<menu value="&saveAsCmd.label;" accessKey="&saveAsCmd.accesskey;"> <menu value="&saveAsCmd.label;" accessKey="&saveAsCmd.accesskey;">
<menupopup> <menupopup>
<menuitem value="&saveAsFileCmd.label;" disabled="true" accessKey="&saveAsFileCmd.accesskey;"/> <menuitem value="&saveAsFileCmd.label;" accessKey="&saveAsFileCmd.accesskey;" observes="cmd_saveAsFile"/>
<menuseparator/> <menuseparator/>
<menuitem value="&saveAsDraftCmd.label;" accessKey="&saveAsDraftCmd.accesskey;" observes="cmd_saveAsDraft"/> <menuitem value="&saveAsDraftCmd.label;" accessKey="&saveAsDraftCmd.accesskey;" observes="cmd_saveAsDraft"/>
<menuitem value="&saveAsTemplateCmd.label;" accessKey="&saveAsTemplateCmd.accesskey;" observes="cmd_saveAsTemplate"/> <menuitem value="&saveAsTemplateCmd.label;" accessKey="&saveAsTemplateCmd.accesskey;" observes="cmd_saveAsTemplate"/>