use the new folder picker cascading menus in the "copies and folders" panel of the

account setup dialog.  remove cruft in am-copies.*.
fixes #19400.  r=alecf
This commit is contained in:
sspitzer%netscape.com 1999-12-04 01:43:12 +00:00
parent a4be93ec67
commit 4f57d4410e
9 changed files with 227 additions and 114 deletions

View File

@ -135,7 +135,7 @@ function saveContents(win, hash) {
var inputs = win.document.getElementsByTagName("FORM")[0].elements;
for (var i=0 ; i<inputs.length; i++) {
saveValue(hash, inputs[i])
}
}
}
@ -152,6 +152,7 @@ function restoreValue(hash, element) {
} else {
element.value=hash[element.name];
}
}
function saveValue(hash, element) {
@ -166,6 +167,7 @@ function saveValue(hash, element) {
else {
hash[element.name] = element.value;
}
}
function validateIdentity(win, hash) {

View File

@ -21,25 +21,20 @@
var RDF = Components.classes["component://netscape/rdf/rdf-service"].getService(Components.interfaces.nsIRDFService);
function onInit() {
initFolderDisplay("identity.fccFolder", "fccFolderVerbose");
initFolderDisplay("identity.draftFolder", "draftFolderVerbose");
initFolderDisplay("identity.stationeryFolder", "stationeryFolderVerbose");
initFolderDisplay("identity.junkMailFolder", "junkMailFolderVerbose");
initFolderDisplay("identity.fccFolder", "msgFccFolderPicker");
initFolderDisplay("identity.draftFolder", "msgDraftsFolderPicker");
initFolderDisplay("identity.stationeryFolder", "msgStationeryFolderPicker");
initFolderDisplay("identity.junkMailFolder", "msgJunkMailFolderPicker");
initBccSelf();
dump("document is " + document + "\n");
}
function initFolderDisplay(fieldname, divname) {
function initFolderDisplay(fieldname, pickerID) {
var formElement = document.getElementById(fieldname);
var folder = getFolder(formElement.value);
var verboseName = "";
if (folder)
verboseName = folder.prettyName;
setDivText(divname, verboseName);
var uri = formElement.value;
SetTitleButton(uri,pickerID);
}
function initBccSelf() {
@ -57,27 +52,24 @@ function setDivText(divid, str) {
}
}
function getFolder(uri) {
dump("uri = " + uri + "\n");
if (uri) {
var res = null;
try {
res = RDF.GetResource(uri);
}
catch (ex) {
dump("GetResource of this uri failed: " + uri + "\n");
return null;
}
if (res) {
try {
return res.QueryInterface(Components.interfaces.nsIMsgFolder);
}
catch (ex) {
dump(uri + " was not a nsIMsgFolder\n");
return null;
}
}
}
return null;
function onSave()
{
dump("in onSave()\n");
SaveUriFromPicker("identity.fccFolder", "msgFccFolderPicker");
SaveUriFromPicker("identity.draftFolder", "msgDraftsFolderPicker");
SaveUriFromPicker("identity.stationeryFolder", "msgStationeryFolderPicker");
SaveUriFromPicker("identity.junkMailFolder", "msgJunkMailFolderPicker");
}
function SaveUriFromPicker(fieldName, pickerID)
{
var picker = document.getElementById(pickerID);
var uri = picker.getAttribute("uri");
dump("uri = " + uri + "\n");
formElement = document.getElementById(fieldName);
dump("old value = " + formElement.value + "\n");
formElement.value = uri;
dump("new value = " + formElement.value + "\n");
}

View File

@ -1,12 +1,17 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://messenger/skin/" type="text/css"?>
<?xul-overlay href="chrome://messenger/content/msgFolderPickerOverlay.xul"?>
<!DOCTYPE window SYSTEM "chrome://messenger/locale/am-copies.dtd" >
<window xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="dialog"
align="vertical">
<html:script language="JavaScript" src="chrome://global/content/strres.js"/>
<html:script language="JavaScript" src="chrome://messenger/content/widgetglue.js"/>
<html:script src="chrome://messenger/content/am-copies.js"/>
<html:input type="hidden" name="identity.fccFolder" id="identity.fccFolder"/>
<html:input type="hidden" name="identity.draftFolder" id="identity.draftFolder"/>
<html:input type="hidden" name="identity.stationeryFolder" id="identity.stationeryFolder"/>
@ -20,23 +25,13 @@
<box align="horizontal">
<html:input name="identity.doFcc" type="checkbox"/>
<html:div>&fccMailFolder.label;</html:div>
<html:select flex="100%"
onchange="dump('value=' + event.target.value + '\n')"
datasources="rdf:mailnewsfolders rdf:msgaccountmanager"
name="identity.fccFolder"
ref="msgaccounts:/">
<template>
<rule iscontainer="true" isempty="false">
<html:optgroup uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name">
<html:option value="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</html:optgroup>
</rule>
<rule>
<html:option value="..." uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</rule>
</template>
</html:select>
<!-- <titledbutton value="&chooseFolderButton.label;"/> -->
<!-- name="identity.fccFolder" -->
<box align="horizontal">
<menu id="msgFccFolderPicker"/>
<spring flex="100%"/>
</box>
</box>
<box align="horizontal">
<html:input name="identity.bccSelf" type="checkbox"/>
@ -54,60 +49,27 @@
<box align="vertical" flex="100%">
<box align="horizontal">
<html:div flex="34%">&draftMailFolder.label;</html:div>
<html:select flex="66%"
onchange="dump('value=' + event.target.value + '\n')"
datasources="rdf:mailnewsfolders rdf:msgaccountmanager"
name="identity.draftFolder"
ref="msgaccounts:/">
<template>
<rule iscontainer="true" isempty="false">
<html:optgroup uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name">
<html:option value="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</html:optgroup>
</rule>
<rule>
<html:option value="..." uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</rule>
</template>
</html:select>
<!-- name="identity.draftFolder" -->
<box align="horizontal">
<menu id="msgDraftsFolderPicker"/>
<spring flex="100%"/>
</box>
</box>
<box align="horizontal">
<html:div flex="34%">&templateMailFolder.label;</html:div>
<html:select flex="66%"
onchange="dump('value=' + event.target.value + '\n')"
datasources="rdf:mailnewsfolders rdf:msgaccountmanager"
name="identity.stationeryFolder"
ref="msgaccounts:/">
<template>
<rule iscontainer="true" isempty="false">
<html:optgroup uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name">
<html:option value="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</html:optgroup>
</rule>
<rule>
<html:option value="..." uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</rule>
</template>
</html:select>
<!-- name="identity.stationeryFolder " -->
<box align="horizontal">
<menu id="msgStationeryFolderPicker"/>
<spring flex="100%"/>
</box>
</box>
<box align="horizontal">
<html:div>&junkMailFolder.label;</html:div>
<html:select flex="100%"
onchange="dump('value=' + event.target.value + '\n')"
datasources="rdf:mailnewsfolders rdf:msgaccountmanager"
name="identity.junkMailFolder"
ref="msgaccounts:/">
<template>
<rule iscontainer="true" isempty="false">
<html:optgroup uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name">
<html:option value="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</html:optgroup>
</rule>
<rule>
<html:option value="..." uri="..." label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</rule>
</template>
</html:select>
<html:div flex="34%">&junkMailFolder.label;</html:div>
<!-- name="identity.junkMailFolder" -->
<box align="horizontal">
<menu id="msgJunkMailFolderPicker"/>
<spring flex="100%"/>
</box>
</box>
</box>

View File

@ -456,7 +456,7 @@ Rights Reserved.
IsServer="rdf:http://home.netscape.com/NC-rdf#IsServer"
ServerType="rdf:http://home.netscape.com/NC-rdf#ServerType">
<menupopup>
<menuitem uri="..." value="&copyHereMenu.label;"
<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"

View File

@ -27,6 +27,8 @@ function SetTitleButton(uri,pickerID)
var picker = document.getElementById(pickerID);
var msgfolder = GetMsgFolderFromUri(uri);
if (!msgfolder) return;
var selectedValue = null;
if (msgfolder.isServer)

View File

@ -144,20 +144,20 @@
</template>
</menu>
<menu style="border: thin solid green;" value="&filemessagesclickhere.label;" uri="" id="msgFileMessagesFolderPicker" datasources="rdf:msgaccountmanager rdf:mailnewsfolders" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
<menu style="border: thin solid green;" value="&filemessagesclickhere.label;" uri="" id="msgFccFolderPicker" datasources="rdf:msgaccountmanager rdf:mailnewsfolders" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
ref="msgaccounts:/">
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgFileMessagesFolderPicker')"
oncommand="PickedMsgFolder(event.target,'msgFccFolderPicker')"
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="&filemessageschoosethis.label;"
oncommand="PickedMsgFolder(event.target,'msgFileMessagesFolderPicker')"
oncommand="PickedMsgFolder(event.target,'msgFccFolderPicker')"
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"
@ -174,7 +174,7 @@
<!-- note, there is no "file here" -->
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgFileMessagesFolderPicker')"
oncommand="PickedMsgFolder(event.target,'msgFccFolderPicker')"
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"
@ -185,7 +185,157 @@
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgFileMessagesFolderPicker')"
oncommand="PickedMsgFolder(event.target,'msgFccFolderPicker')"
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 style="border: thin solid green;" value="&filemessagesclickhere.label;" uri="" id="msgDraftsFolderPicker" datasources="rdf:msgaccountmanager rdf:mailnewsfolders" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
ref="msgaccounts:/">
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgDraftsFolderPicker')"
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="&filemessageschoosethis.label;"
oncommand="PickedMsgFolder(event.target,'msgDraftsFolderPicker')"
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:CanRename="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file picker -->
</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"
oncommand="PickedMsgFolder(event.target,'msgDraftsFolderPicker')"
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">
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgDraftsFolderPicker')"
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 style="border: thin solid green;" value="&filemessagesclickhere.label;" uri="" id="msgStationeryFolderPicker" datasources="rdf:msgaccountmanager rdf:mailnewsfolders" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
ref="msgaccounts:/">
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgStationeryFolderPicker')"
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="&filemessageschoosethis.label;"
oncommand="PickedMsgFolder(event.target,'msgStationeryFolderPicker')"
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:CanRename="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file picker -->
</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"
oncommand="PickedMsgFolder(event.target,'msgStationeryFolderPicker')"
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">
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgStationeryFolderPicker')"
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 style="border: thin solid green;" value="&filemessagesclickhere.label;" uri="" id="msgJunkMailFolderPicker" datasources="rdf:msgaccountmanager rdf:mailnewsfolders" rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
ref="msgaccounts:/">
<template>
<rule nc:CanFileMessages="true" iscontainer="true" isempty="false">
<menupopup>
<menu uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgJunkMailFolderPicker')"
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="&filemessageschoosethis.label;"
oncommand="PickedMsgFolder(event.target,'msgJunkMailFolderPicker')"
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:CanRename="false" nc:ServerType="nntp">
<!-- don't show nntp servers in the file picker -->
</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"
oncommand="PickedMsgFolder(event.target,'msgJunkMailFolderPicker')"
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">
</menu>
</menupopup>
</rule>
<rule nc:CanFileMessages="true">
<menupopup>
<menuitem uri="..." class="folderMenuItem" value="rdf:http://home.netscape.com/NC-rdf#Name"
oncommand="PickedMsgFolder(event.target,'msgJunkMailFolderPicker')"
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"

View File

@ -910,9 +910,16 @@ var gMeterObserver;
function GetMsgFolderFromUri(uri)
{
var resource = GetResourceFromUri(uri);
var msgfolder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
return msgfolder;
dump("GetMsgFolderFromUri of " + uri + "\n");
try {
var resource = GetResourceFromUri(uri);
var msgfolder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
return msgfolder;
}
catch (ex) {
dump("failed to get the folder resource\n");
}
return null;
}
function GetResourceFromUri(uri)

View File

@ -221,7 +221,6 @@ Rights Reserved.
<!ENTITY moveMsgMenu.label "Move Message">
<!ENTITY copyMsgMenu.label "Copy Message">
<!ENTITY fileHereMenu.label "File Here">
<!ENTITY copyHereMenu.label "Copy Here">
<!ENTITY addSenderToAddressBookCmd.label ".Add Sender to Address Book">
<!ENTITY addAllToAddressBookCmd.label ".Add All to Address Book">
<!ENTITY markMenu.label "Mark">

View File

@ -221,7 +221,6 @@ Rights Reserved.
<!ENTITY moveMsgMenu.label "Move Message">
<!ENTITY copyMsgMenu.label "Copy Message">
<!ENTITY fileHereMenu.label "File Here">
<!ENTITY copyHereMenu.label "Copy Here">
<!ENTITY addSenderToAddressBookCmd.label ".Add Sender to Address Book">
<!ENTITY addAllToAddressBookCmd.label ".Add All to Address Book">
<!ENTITY markMenu.label "Mark">