From 86157e730f47e3eb21fb36718608f00bf6da2f8e Mon Sep 17 00:00:00 2001 From: "sspitzer%netscape.com" Date: Thu, 4 Jan 2001 00:57:58 +0000 Subject: [PATCH] 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 --- .../base/resources/content/commandglue.js | 4 +- .../content/mail3PaneWindowCommands.js | 39 ++++++++- .../resources/content/mailWindowOverlay.js | 74 +++++++++++++----- .../resources/content/mailWindowOverlay.xul | 14 +++- .../base/resources/content/messageWindow.js | 7 +- .../resources/content/msgMail3PaneWindow.js | 3 + .../base/resources/locale/en-US/messenger.dtd | 6 +- themes/classic/jar.mn | 4 + themes/classic/messenger/mac/messenger.css | 21 +++++ ...mark-hover-active.gif => mark-clicked.gif} | Bin themes/classic/messenger/win/messenger.css | 21 +++++ themes/modern/jar.mn | 4 + themes/modern/messenger/mark-clicked.gif | Bin 0 -> 1638 bytes themes/modern/messenger/mark-disabled.gif | Bin 0 -> 1360 bytes themes/modern/messenger/mark-hover.gif | Bin 0 -> 1383 bytes themes/modern/messenger/mark.gif | Bin 0 -> 1349 bytes themes/modern/messenger/messenger.css | 24 +++++- 17 files changed, 190 insertions(+), 31 deletions(-) rename themes/classic/messenger/{mark-hover-active.gif => mark-clicked.gif} (100%) create mode 100644 themes/modern/messenger/mark-clicked.gif create mode 100644 themes/modern/messenger/mark-disabled.gif create mode 100644 themes/modern/messenger/mark-hover.gif create mode 100644 themes/modern/messenger/mark.gif diff --git a/mailnews/base/resources/content/commandglue.js b/mailnews/base/resources/content/commandglue.js index d73a7eee0b54..116c3ceb3352 100644 --- a/mailnews/base/resources/content/commandglue.js +++ b/mailnews/base/resources/content/commandglue.js @@ -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:/")); } } diff --git a/mailnews/base/resources/content/mail3PaneWindowCommands.js b/mailnews/base/resources/content/mail3PaneWindowCommands.js index 39a857dfd5f2..d81ad0874e27 100644 --- a/mailnews/base/resources/content/mail3PaneWindowCommands.js +++ b/mailnews/base/resources/content/mail3PaneWindowCommands.js @@ -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(); diff --git a/mailnews/base/resources/content/mailWindowOverlay.js b/mailnews/base/resources/content/mailWindowOverlay.js index f9e6a90740a9..de8922d9092d 100644 --- a/mailnews/base/resources/content/mailWindowOverlay.js +++ b/mailnews/base/resources/content/mailWindowOverlay.js @@ -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() {} diff --git a/mailnews/base/resources/content/mailWindowOverlay.xul b/mailnews/base/resources/content/mailWindowOverlay.xul index 02b2771b4d07..5ea771fa2299 100644 --- a/mailnews/base/resources/content/mailWindowOverlay.xul +++ b/mailnews/base/resources/content/mailWindowOverlay.xul @@ -64,7 +64,9 @@ Rights Reserved. @@ -983,7 +985,7 @@ Rights Reserved. - + @@ -1076,6 +1078,16 @@ Rights Reserved.