fix for #75481. get "sort by recipient" to work. fix the ui issues

that I forget about when you change the "Sender" to "Recipient".
r/sr=bienvenu
This commit is contained in:
sspitzer%netscape.com 2001-04-11 23:03:04 +00:00
Родитель 522ea537b5
Коммит 8239f76daa
7 изменённых файлов: 54 добавлений и 30 удалений

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

@ -291,11 +291,11 @@ function RerootFolder(uri, newFolder, viewType, viewFlags, sortType, sortOrder)
// null this out, so we don't try sort.
gDBView = null;
// if this is the drafts folder, the sent folder or the send later folder,
// set the columns like it was the sent folder
// if this is the drafts, sent, or send later folder,
// we show "Recipient" instead of "Author"
SetSentFolderColumns(IsSpecialFolder(newFolder, MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE));
// now create the db view, which will sort it.
// now create the db view, which will sort it.
CreateDBView(newFolder, viewType, viewFlags, sortType, sortOrder);
// that should have initialized gDBView, now re-root the thread pane
var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView);
@ -345,21 +345,20 @@ function SwitchView(command)
{
var outliner = GetThreadOutliner();
outliner.boxObject.QueryInterface(Components.interfaces.nsIOutlinerBoxObject).view = outlinerView;
dump('set outliner view\n');
}
}
function SetSentFolderColumns(isSentFolder)
{
var senderColumn = document.getElementById("senderCol");
var senderOrRecipientColumn = document.getElementById("senderOrRecipientCol");
if(isSentFolder)
{
senderColumn.setAttribute("label", gMessengerBundle.getString("recipientColumnHeader"));
senderOrRecipientColumn.setAttribute("label", gMessengerBundle.getString("recipientColumnHeader"));
}
else
{
senderColumn.setAttribute("label", gMessengerBundle.getString("senderColumnHeader"));
senderOrRecipientColumn.setAttribute("label", gMessengerBundle.getString("senderColumnHeader"));
}
}
@ -403,8 +402,13 @@ function ConvertColumnIDToSortType(columnID)
case "dateCol":
sortKey = nsMsgViewSortType.byDate;
break;
case "senderCol":
sortKey = nsMsgViewSortType.byAuthor;
case "senderOrRecipientCol":
if (IsSpecialFolderSelected(MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE)) {
sortKey = nsMsgViewSortType.byRecipient;
}
else {
sortKey = nsMsgViewSortType.byAuthor;
}
break;
case "subjectCol":
sortKey = nsMsgViewSortType.bySubject;
@ -448,7 +452,8 @@ function ConvertSortTypeToColumnID(sortKey)
columnID = "dateCol";
break;
case nsMsgViewSortType.byAuthor:
columnID = "senderCol";
case nsMsgViewSortType.byRecipient:
columnID = "senderOrRecipientCol";
break;
case nsMsgViewSortType.bySubject:
columnID = "subjectCol";
@ -543,10 +548,15 @@ function CreateBareDBView(msgFolder, viewType, viewFlags, sortType, sortOrder)
if (!gThreadPaneCommandUpdater)
gThreadPaneCommandUpdater = new nsMsgDBViewCommandUpdater();
gCurSortType = sortType;
if ((sortType == nsMsgViewSortType.byAuthor) && IsSpecialFolder(msgFolder, MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE)) {
gCurSortType = nsMsgViewSortType.byRecipient;
}
else {
gCurSortType = sortType;
}
gDBView.init(messenger, msgWindow, gThreadPaneCommandUpdater);
gDBView.open(msgFolder, sortType, sortOrder, viewFlags, count);
gDBView.open(msgFolder, gCurSortType, sortOrder, viewFlags, count);
}
function CreateDBView(msgFolder, viewType, viewFlags, sortType, sortOrder)
@ -753,7 +763,7 @@ function OpenToFolder(item, folderURI)
function IsSpecialFolder(msgFolder, flags)
{
if ((msgFolder.flags & flags) == 0) {
if (!msgFolder || ((msgFolder.flags & flags) == 0)) {
return false;
}
else {

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

@ -125,13 +125,26 @@ function InitViewSortByMenu()
setSortByMenuItemCheckState("sortByFlagMenuitem", (sortType == nsMsgViewSortType.byFlagged));
setSortByMenuItemCheckState("sortByOrderReceivedMenuitem", (sortType == nsMsgViewSortType.byId));
setSortByMenuItemCheckState("sortByPriorityMenuitem", (sortType == nsMsgViewSortType.byPriority));
setSortByMenuItemCheckState("sortBySenderMenuitem", (sortType == nsMsgViewSortType.byAuthor));
setSortByMenuItemCheckState("sortBySizeMenuitem", (sortType == nsMsgViewSortType.bySize));
setSortByMenuItemCheckState("sortByStatusMenuitem", (sortType == nsMsgViewSortType.byStatus));
setSortByMenuItemCheckState("sortBySubjectMenuitem", (sortType == nsMsgViewSortType.bySubject));
setSortByMenuItemCheckState("sortByThreadMenuitem", (sortType == nsMsgViewSortType.byThread));
setSortByMenuItemCheckState("sortByUnreadMenuitem", (sortType == nsMsgViewSortType.byUnread));
// the Sender / Recipient menu is dynamic
setSortByMenuItemCheckState("sortBySenderOrRecipientMenuitem", (sortType == nsMsgViewSortType.byAuthor) || (sortType == nsMsgViewSortType.byRecipient));
var senderOrRecipientMenuitem = document.getElementById("sortBySenderOrRecipientMenuitem");
if (senderOrRecipientMenuitem) {
var currentFolder = gDBView.msgFolder;
if (IsSpecialFolder(currentFolder, MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE)) {
senderOrRecipientMenuitem.setAttribute('label',gMessengerBundle.getString('recipientColumnHeader'));
senderOrRecipientMenuitem.setAttribute('accesskey',gMessengerBundle.getString('recipientAccessKey'));
}
else {
senderOrRecipientMenuitem.setAttribute('label',gMessengerBundle.getString('senderColumnHeader'));
senderOrRecipientMenuitem.setAttribute('accesskey',gMessengerBundle.getString('senderAccessKey'));
}
}
var sortOrder = gDBView.sortOrder;
setSortByMenuItemCheckState("sortAscending", (sortOrder == nsMsgViewSortOrder.ascending));

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

@ -859,7 +859,8 @@ Rights Reserved.
<menuitem id="sortByFlagMenuitem" type="checkbox" label="&sortByFlagCmd.label;" accesskey="&sortByFlagCmd.accesskey;" oncommand="MsgSortByFlagged()"/>
<menuitem id="sortByOrderReceivedMenuitem" type="checkbox" label="&sortByOrderReceivedCmd.label;" accesskey="&sortByOrderReceivedCmd.accesskey;" oncommand="MsgSortByOrderReceived()"/>
<menuitem id="sortByPriorityMenuitem" type="checkbox" label="&sortByPriorityCmd.label;" accesskey="&sortByPriorityCmd.accesskey;" oncommand="MsgSortByPriority()"/>
<menuitem id="sortBySenderMenuitem" type="checkbox" label="&sortBySenderCmd.label;" accesskey="&sortBySenderCmd.accesskey;" oncommand="MsgSortBySender()"/>
<!-- for Sender / Recipient, accesskey and label are set dynamically -->
<menuitem id="sortBySenderOrRecipientMenuitem" type="checkbox" oncommand="MsgSortBySenderOrRecipient()"/>
<menuitem id="sortBySizeMenuitem" type="checkbox" label="&sortBySizeCmd.label;" accesskey="&sortBySizeCmd.accesskey;" oncommand="MsgSortBySize()"/>
<menuitem id="sortByStatusMenuitem" type="checkbox" label="&sortByStatusCmd.label;" accesskey="&sortByStatusCmd.accesskey;" oncommand="MsgSortByStatus()"/>
<menuitem id="sortBySubjectMenuitem" type="checkbox" label="&sortBySubjectCmd.label;" accesskey="&sortBySubjectCmd.accesskey;" oncommand="MsgSortBySubject()"/>

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

@ -147,14 +147,14 @@ function MsgSortByDate()
MsgSortThreadPane(nsMsgViewSortType.byDate);
}
function MsgSortBySender()
function MsgSortBySenderOrRecipient()
{
MsgSortThreadPane(nsMsgViewSortType.byAuthor);
}
function MsgSortByRecipient()
{
MsgSortThreadPane(nsMsgViewSortType.byRecipient);
if (IsSpecialFolderSelected(MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE)) {
MsgSortThreadPane(nsMsgViewSortType.byRecipient);
}
else {
MsgSortThreadPane(nsMsgViewSortType.byAuthor);
}
}
function MsgSortByStatus()
@ -272,10 +272,8 @@ function UpdateSortIndicators(sortType, sortOrder)
function IsSpecialFolderSelected(flags)
{
var selectedFolder = GetThreadPaneFolder();
if (!selectedFolder) return false;
if ((selectedFolder.flags & flags) == 0) {
var selectedFolder = GetThreadPaneFolder();
if (!selectedFolder || ((selectedFolder.flags & flags) == 0)) {
return false;
}
else {

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

@ -38,7 +38,7 @@ Rights Reserved.
<outlinercol id="threadCol" display="&threadColumn.label;" class="outlinercol-header outlinercol-image outlinercol-inset-header threadColumnHeader" currentView="unthreaded" cycler="true" />
<outlinercol id="subjectCol" class="outlinercol-header outlinercell-inset-header sortDirectionIndicator" persist="hidden width" flex="7" label="&subjectColumn.label;" primary="true"/>
<splitter class="tree-splitter"/>
<outlinercol id="senderCol" class="outlinercol-header outlinercol-inset-header sortDirectionIndicator" persist="hidden width" flex="4" label="&senderColumn.label;"/>
<outlinercol id="senderOrRecipientCol" class="outlinercol-header outlinercol-inset-header sortDirectionIndicator" persist="hidden width" flex="4" label="&senderColumn.label;"/>
<splitter class="tree-splitter"/>
<outlinercol id="unreadButtonColHeader" fixed="true" persist="hidden" class="outlinercol-header outlinercol-image outlinercol-inset-header readColumnHeader" display="&readColumn.label;" cycler="true"/>
<splitter class="tree-splitter"/>

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

@ -133,14 +133,13 @@ Rights Reserved.
<!ENTITY sortByFlagCmd.accesskey "f">
<!ENTITY sortByPriorityCmd.label "Priority">
<!ENTITY sortByPriorityCmd.accesskey "p">
<!ENTITY sortBySenderCmd.label "Sender">
<!ENTITY sortBySenderCmd.accesskey "r">
<!ENTITY sortBySizeCmd.label "Size">
<!ENTITY sortBySizeCmd.accesskey "z">
<!ENTITY sortByStatusCmd.label "Status">
<!ENTITY sortByStatusCmd.accesskey "u">
<!ENTITY sortBySubjectCmd.label "Subject">
<!ENTITY sortBySubjectCmd.accesskey "s">
<!-- Sender / Recipient lives in messenger.properties, since that item is dynamic -->
<!ENTITY sortByUnreadCmd.label "Unread">
<!ENTITY sortByUnreadCmd.accesskey "n">
<!ENTITY sortByThreadCmd.label "Thread">

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

@ -80,8 +80,11 @@ serverType-none=Local Mail Store
# LOCALIZATION NOTES(serverType-movemail): DONT_TRANSLATE
serverType-movemail=Unix Movemail
# used in the column and in the "View | Sort By " menu
recipientColumnHeader=Recipient
recipientAccessKey=r
senderColumnHeader=Sender
senderAccessKey=r
sizeColumnHeader=Size
linesColumnHeader=Lines