mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 05:45:37 +00:00
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:
parent
522ea537b5
commit
8239f76daa
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user