Show "mark" toolbar button and hide the "delete" toolbar button when reading news. When reading mail, hide "mark" and show "delete". (#63635)

When reading news, turn "Edit | Delete Message" into "Edit | Cancel Message" (#8293)

When reading news, turn "Edit | Delete Folder" into "Edit | Unsubscribe" (#64205)

this checkin exposes a few UI bugs.  logging then now.

sr=bienvenu
This commit is contained in:
sspitzer%netscape.com 2001-01-04 00:57:58 +00:00
Родитель a198b1c7fa
Коммит 86157e730f
17 изменённых файлов: 190 добавлений и 31 удалений

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

@ -223,11 +223,11 @@ function ChangeFolderByURI(uri, isThreaded, sortID, sortDirection, viewType)
function isNewsURI(uri)
{
if (uri[0] != 'n') {
if (!uri || uri[0] != 'n') {
return false;
}
else {
return (uri.substring(0,6) == "news:/");
return ((uri.substring(0,6) == "news:/") || (uri.substring(0,14) == "news_message:/"));
}
}

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

@ -64,6 +64,11 @@ var FolderPaneController =
specialFolder = selectedFolder.getAttribute('SpecialFolder');
isServer = selectedFolder.getAttribute('IsServer');
serverType = selectedFolder.getAttribute('ServerType');
if (serverType == "nntp") {
if ( command == "cmd_delete" )
goSetMenuValue(command, 'valueNewsgroup');
}
}
catch (ex) {
//dump("specialFolder failure: " + ex + "\n");
@ -255,10 +260,25 @@ var DefaultController =
if ( command == "cmd_delete")
{
if ( numSelected < 2 )
goSetMenuValue(command, 'valueMessage');
else
goSetMenuValue(command, 'valueMessages');
var uri = GetUriForFirstSelectedMessage();
if ( numSelected < 2 ) {
if (isNewsURI(uri)) {
goSetMenuValue(command, 'valueNewsMessage');
}
else {
goSetMenuValue(command, 'valueMessage');
}
}
else {
if (isNewsURI(uri)) {
goSetMenuValue(command, 'valueNewsMessage');
return false;
}
else {
goSetMenuValue(command, 'valueMessages');
}
}
}
return ( numSelected > 0 );
case "cmd_nextMsg":
@ -479,6 +499,17 @@ function MailAreaHasFocus()
return true;
}
function GetUriForFirstSelectedMessage()
{
try {
var threadTree = GetThreadTree();
return threadTree.selectedItems[0].getAttribute('id');
}
catch (ex) {
return null;
}
}
function GetNumSelectedMessages()
{
var threadTree = GetThreadTree();

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

@ -117,7 +117,6 @@ function InitMessageMenu()
var copyMenu = document.getElementById("copyMenu");
if(copyMenu)
copyMenu.setAttribute("disabled", !aMessage);
}
function GetMessageType(message)
@ -131,23 +130,31 @@ function GetMessageType(message)
}
function InitMessageMarkMenu()
function InitMessageMark()
{
InitMarkReadMenuItem();
InitMarkFlaggedMenuItem();
InitMarkReadItem("markReadMenuItem");
InitMarkReadItem("markReadToolbarItem");
InitMarkFlaggedItem("markFlaggedMenuItem");
InitMarkFlaggedItem("markFlaggedToolbarItem");
}
function InitMarkReadMenuItem()
function InitMarkReadItem(id)
{
areMessagesRead = SelectedMessagesAreRead();
var markReadMenuItem = document.getElementById("markReadMenuItem");
if(markReadMenuItem)
markReadMenuItem.setAttribute("checked", areMessagesRead);
var areMessagesRead = SelectedMessagesAreRead();
var item = document.getElementById(id);
if(item)
item.setAttribute("checked", areMessagesRead);
}
function InitMarkFlaggedItem(id)
{
var areMessagesFlagged = SelectedMessagesAreFlagged();
var item = document.getElementById(id);
if(item)
item.setAttribute("checked", areMessagesFlagged);
}
function SelectedMessagesAreRead()
{
var aMessage = GetSelectedMessage(0);
@ -169,15 +176,6 @@ function SelectedMessagesAreRead()
return areMessagesRead;
}
function InitMarkFlaggedMenuItem()
{
areMessagesFlagged = SelectedMessagesAreFlagged();
var markFlaggedMenuItem = document.getElementById("markFlaggedMenuItem");
if(markFlaggedMenuItem)
markFlaggedMenuItem.setAttribute("checked", areMessagesFlagged);
}
function SelectedMessagesAreFlagged()
{
var aMessage = GetSelectedMessage(0);
@ -804,6 +802,40 @@ function IsCompactFolderEnabled()
return IsMailFolderSelected();
}
var gDeleteButton = null;
var gMarkButton = null;
function SetUpToolbarButtons(uri)
{
// dump("SetUpToolbarButtons("+uri+")\n");
// eventually, we might want to set up the toolbar differently for imap,
// pop, and news. for now, just tweak it based on if it is news or not.
var forNews = isNewsURI(uri);
if(!gMarkButton) gMarkButton = document.getElementById("button-mark");
if(!gDeleteButton) gDeleteButton = document.getElementById("button-delete");
var buttonToHide = null;
var buttonToShow = null;
if (forNews) {
buttonToHide = gDeleteButton;
buttonToShow = gMarkButton;
}
else {
buttonToHide = gMarkButton;
buttonToShow = gDeleteButton;
}
if (buttonToHide) {
buttonToHide.setAttribute('hidden',true);
}
if (buttonToShow) {
buttonToShow.removeAttribute('hidden');
}
}
function MsgMarkByDate() {}
function MsgOpenAttachment() {}
function MsgUpdateMsgCount() {}

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

@ -64,7 +64,9 @@ Rights Reserved.
<broadcaster id="cmd_paste"/>
<broadcaster id="cmd_delete"
valueFolder="&deleteFolderCmd.label;"
valueNewsgroup="&unsubscribeNewsgroupCmd.label;"
valueMessage="&deleteMsgCmd.label;"
valueNewsMessage="&cancelNewsMsgCmd.label;"
valueMessages="&deleteMsgsCmd.label;"/>
<broadcaster id="button_delete"/>
<broadcaster id="cmd_selectAll"/>
@ -983,7 +985,7 @@ Rights Reserved.
</template>
</menu>
<menuseparator/>
<menu value="&markMenu.label;" accesskey="&markMenu.accesskey;" oncreate="InitMessageMarkMenu()">
<menu value="&markMenu.label;" accesskey="&markMenu.accesskey;" oncreate="InitMessageMark()">
<menupopup>
<menuitem type="checkbox" key="key_toggleRead" id="markReadMenuItem" value="&markAsReadCmd.label;" accesskey="&markAsReadCmd.accesskey;" observes="cmd_markAsRead"/>
<menuitem value="&markThreadAsReadCmd.label;" accesskey="&markThreadAsReadCmd.accesskey;" observes="cmd_markThreadAsRead"/>
@ -1076,6 +1078,16 @@ Rights Reserved.
</menu>
<button class="button-toolbar-2 top" id="button-next" value="&nextButton.label;" tooltip="aTooltip" tooltiptext="&nextButton.tooltip;" observes="cmd_nextUnreadMsg"/>
<button class="button-toolbar-2 top" id="button-delete" value="&deleteButton.label;" tooltip="aTooltip" tooltiptext="&deleteButton.tooltip;" observes="button_delete" oncommand="goDoCommand('button_delete')"/>
<menubutton class="menubutton-dual toolbar top" id="button-mark" value="&markButton.label;" hidden="true"
crop="right" observes="cmd_markAsRead" tooltip="aTooltip" buttontooltiptext="&markButton.tooltip;">
<menupopup oncreate="InitMessageMark()">
<menuitem type="checkbox" key="key_toggleRead" id="markReadToolbarItem" value="&markAsReadCmd.label;" accesskey="&markAsReadCmd.accesskey;" observes="cmd_markAsRead" default="true" />
<menuitem value="&markThreadAsReadCmd.label;" accesskey="&markThreadAsReadCmd.accesskey;" observes="cmd_markThreadAsRead"/>
<menuitem value="&markAllReadCmd.label;" key="key_markAllRead" accesskey="&markAllReadCmd.accesskey;" observes="cmd_markAllRead"/>
<menuseparator/>
<menuitem type="checkbox" id="markFlaggedToolbarItem" value="&markFlaggedCmd.label;" accesskey="&markFlaggedCmd.accesskey;" observes="cmd_markAsFlagged"/>
</menupopup>
</menubutton>
<menubutton class="menubutton-dual toolbar top" id="button-print" value="&printButton.label;"
crop="right" observes="cmd_print" tooltip="aTooltip" buttontooltiptext="&printButton.tooltip;">
<menupopup id="printMenu">

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

@ -416,7 +416,12 @@ var MessageWindowController =
case "cmd_file":
if ( command == "cmd_delete")
{
goSetMenuValue(command, 'valueMessage');
if (isNewsURI(gCurrentMessageUri)) {
goSetMenuValue(command, 'valueNewsMessage');
}
else {
goSetMenuValue(command, 'valueMessage');
}
}
return ( gCurrentMessageUri != null);
case "cmd_getNewMessages":

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

@ -104,6 +104,9 @@ var folderListener = {
{
var uri = resource.Value;
dump("In OnFolderLoaded for " + uri +"\n");
SetUpToolbarButtons(uri);
if(uri == gCurrentFolderToReroot)
{
gCurrentFolderToReroot="";

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

@ -78,8 +78,10 @@ Rights Reserved.
<!-- Edit Menu -->
<!ENTITY deleteMsgCmd.label "Delete Message">
<!ENTITY cancelNewsMsgCmd.label "Cancel Message">
<!ENTITY deleteMsgsCmd.label "Delete Selected Messages">
<!ENTITY deleteFolderCmd.label "Delete Folder">
<!ENTITY unsubscribeNewsgroupCmd.label "Unsubscribe">
<!ENTITY selectMenu.label "Select">
<!ENTITY selectMenu.accesskey "l">
<!ENTITY selectThreadCmd.label ".Thread">
@ -333,7 +335,7 @@ Rights Reserved.
<!ENTITY markAsUnreadCmd.accesskey "u">
<!ENTITY markThreadAsReadCmd.label "Thread As Read">
<!ENTITY markThreadAsReadCmd.accesskey "t">
<!ENTITY markByDateCmd.label ".by Date...">
<!ENTITY markByDateCmd.label "by Date...">
<!ENTITY markByDateCmd.accesskey "d">
<!ENTITY markAllReadCmd.label "All Read">
<!ENTITY markAllReadCmd.accesskey "a">
@ -356,6 +358,7 @@ Rights Reserved.
<!ENTITY fileButton.label "File">
<!ENTITY nextButton.label "Next">
<!ENTITY deleteButton.label "Delete">
<!ENTITY markButton.label "As Read">
<!ENTITY printButton.label "Print">
<!ENTITY stopButton.label "Stop">
@ -368,6 +371,7 @@ Rights Reserved.
<!ENTITY fileButton.tooltip "File selected message">
<!ENTITY nextButton.tooltip "Move to the next unread message">
<!ENTITY deleteButton.tooltip "Delete selected message or folder">
<!ENTITY markButton.tooltip "Mark messages">
<!ENTITY printButton.tooltip "Print this message">
<!ENTITY stopButton.tooltip "Stop the current transfer">

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

@ -362,6 +362,10 @@ classic.jar:
skin/classic/messenger/local-mailhost.gif (messenger/local-mailhost.gif)
skin/classic/messenger/mailfolder.gif (messenger/mailfolder.gif)
skin/classic/messenger/mailheader.css (messenger/mailheader.css)
skin/classic/messenger/mark-clicked.gif (messenger/mark-clicked.gif)
skin/classic/messenger/mark-disabled.gif (messenger/mark-disabled.gif)
skin/classic/messenger/mark-hover.gif (messenger/mark-hover.gif)
skin/classic/messenger/mark.gif (messenger/mark.gif)
skin/classic/messenger/message-mail-attach.gif (messenger/message-mail-attach.gif)
skin/classic/messenger/message-mail-imapdelete.gif (messenger/message-mail-imapdelete.gif)
skin/classic/messenger/message-mail-new.gif (messenger/message-mail-new.gif)

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

@ -76,6 +76,27 @@
list-style-image : url("chrome://messenger/skin/newmsg-hover-active.gif");
}
#button-mark {
list-style-image : url("chrome://messenger/skin/mark.gif");
}
#button-mark[disabled="true"],
#button-mark[disabled="true"]:hover,
#button-mark[disabled="true"]:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-disabled.gif");
}
#button-mark:hover
{
list-style-image : url("chrome://messenger/skin/mark-hover.gif");
}
#button-mark:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-clicked.gif");
}
#button-reply
{
list-style-image : url("chrome://messenger/skin/reply.gif");

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

До

Ширина:  |  Высота:  |  Размер: 979 B

После

Ширина:  |  Высота:  |  Размер: 979 B

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

@ -54,6 +54,27 @@
list-style-image : url("chrome://messenger/skin/getmsg-hover-active.gif");
}
#button-mark {
list-style-image : url("chrome://messenger/skin/mark.gif");
}
#button-mark[disabled="true"],
#button-mark[disabled="true"]:hover,
#button-mark[disabled="true"]:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-disabled.gif");
}
#button-mark:hover
{
list-style-image : url("chrome://messenger/skin/mark-hover.gif");
}
#button-mark:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-clicked.gif");
}
#button-newmsg
{
list-style-image : url("chrome://messenger/skin/newmsg.gif");

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

@ -425,6 +425,10 @@ modern.jar:
skin/modern/messenger/local-mailhost.gif (messenger/local-mailhost.gif)
skin/modern/messenger/mailfolder.gif (messenger/mailfolder.gif)
skin/modern/messenger/mailheader.css (messenger/mailheader.css)
skin/modern/messenger/mark-clicked.gif (messenger/mark-clicked.gif)
skin/modern/messenger/mark-disabled.gif (messenger/mark-disabled.gif)
skin/modern/messenger/mark-hover.gif (messenger/mark-hover.gif)
skin/modern/messenger/mark.gif (messenger/mark.gif)
skin/modern/messenger/message-mail-attach.gif (messenger/message-mail-attach.gif)
skin/modern/messenger/message-mail-imapdelete.gif (messenger/message-mail-imapdelete.gif)
skin/modern/messenger/message-mail-new.gif (messenger/message-mail-new.gif)

Двоичные данные
themes/modern/messenger/mark-clicked.gif Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Двоичные данные
themes/modern/messenger/mark-disabled.gif Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Двоичные данные
themes/modern/messenger/mark-hover.gif Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Двоичные данные
themes/modern/messenger/mark.gif Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

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

@ -75,7 +75,7 @@ iframe {
* toolbar button images
*/
#button-getmsg, #button-newmsg, #button-reply, #button-replyall, #button-forward, #button-file, #button-next,
#button-getmsg, #button-newmsg, #button-reply, #button-replyall, #button-forward, #button-file, #button-next, #button-mark
#button-delete, #button-print, #button-stop {
min-width : 52px;
}
@ -102,6 +102,28 @@ iframe {
list-style-image : url("chrome://messenger/skin/getmsg-clicked.gif");
}
#button-mark {
margin-left : 0px;
list-style-image : url("chrome://messenger/skin/mark.gif");
}
#button-mark[disabled="true"],
#button-mark[disabled="true"]:hover,
#button-mark[disabled="true"]:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-disabled.gif");
}
#button-mark:hover
{
list-style-image : url("chrome://messenger/skin/mark-hover.gif");
}
#button-mark:hover:active
{
list-style-image : url("chrome://messenger/skin/mark-clicked.gif");
}
#button-newmsg {
list-style-image:url("chrome://messenger/skin/newmsg.gif");
}