Closed Bug 75927 Opened 19 years ago Closed 12 years ago

"Compact" or "Purge" button


(Thunderbird :: Mail Window Front End, enhancement)

Not set


(Not tracked)

Thunderbird 3


(Reporter: benc, Assigned: mkmelin)


(Blocks 2 open bugs)



(3 files, 8 obsolete files)

Outlook Express has this, a button that has the same effect as "File | Compact
this folder".

Inclusion of this feature would bring the "Mark as deleted" mode to a fully
featured level for users that work off graphical elements (as opposed to menus
or line commands).
we'll look into this is a future release. Thanks for the suggestion. Although we
are really trying to remove toolbar buttons not add them to the 3-pane UI. It's
already pretty crowded.
Target Milestone: --- → Future
QA Contact: esther → nbaca
Severity: normal → enhancement
Adding my vote. This button would be a very welcome addition.

Also, 'Compact' is misleading. I would prefer 'Expunge' (best - it's the real
name for the action), or 'Purge' (2nd best - at least its descriptive).
There should be a global option to compress all (accessed) Folders on exit.

There should be an interactive option to compress all Folders.

We have now users with mailboxes of 90% deleted mails in it, so
they have 100 real mails, 900 deleted mails on our UW-IMAP server.

There seems to be no easy way to compress all folders of a power user
with > 100 mailboxes. No one will compress all folders by hand one by one!
The purge or expunge functionality is absolutely essential when it comes to
imap, imo. All other major imap clients supports it and this is the one thing
that keeps me from migrating to mozilla mail.
This should be visible only in "red X" mode, in my mind, because it is really
essential in those situations. People use that mode because they want to manual
control the expunge state of a mailbox.
A much-needed feature, although I think it should be available in all [IMAP] modes.
If we're worried about the number of buttons on the toolbar, perhaps a way to
customize which ones are displayed is needed.  Probably another RFE somewhere,
but I haven't searched for it.
Also, it should be a button w/ a little arrow at the bottom right corner, like
"Get messages" which has options like

Compact this folder
Compact all folders in this account
Compact all folders in all accounts

or something like that
How come this hasn't been added yet? A feature like this shouldn't take 2 years
to consider and add. Such a small and simple enhancement. A nice little extra
toolbar button: Purge, Pack, Expunge, Compact, Delete With Extreme Prejudice.  

Maybe this bug should be re-assigned to somebody that actually does something. 
Maybe it helps to email who fixed another bug that has been 
around for years in hours. Just add purge, that would already be a start.
Blocks: eudora
Related to this IMO, shouldn't the "Remove Immediately" simply purge the message
after it marks it deleted?  That would make sense.  Right now, "Remove
Immediately" really means mark it deleted and hide deleted messages.
please have a look at bug #156168.
It was a bug that "remove immediately" never expunged the messages.
This is fixed in TRUNK.
It took me several days of swearing at thunderbird to figure out why it would
not delete my email; I thought it was an issue with the MH back end. 

If you do keep this as a menu item, label it something a bit more obvious than
compact folder -- which sounds alot like folder -pack, in MH speak. Perhaps you
can add an option to move messages immediately (with appropriate warning about
lack of undoability, if that is the case).

The current system is highly opaque to the user.

I vote for a top-level "sychronize-now" button. 

And call it ANYTHING but "compact." Frobberize would be a more descriptive term:
I thought that menu item would turn the folder into a gzip archive.  

As for the severity levels: I'd call the current terminology a minor bug, while
the toolbar button an enhancement.
Could someone re-assign this bug?  Scott MacGregor is listed as "gone".  This 
feature would be very helpful.  Every imap client I've used (outlook, pine, 
etc) provides a quick way to expunge/compact.  Without adding a button for it 
to the toolbar in the default install, you could at least provide the 
possibility for users to add one via drag/drop when customizing the toolbar 
themselves.  A shortcut key would be helpful as well.  Currently, the only way 
to expunge/compact is to right-click the mailbox/select the option from a menu 
or quit/restart Thunderbird altogether.

(cc'ing others in hope of getting this re-assigned.  a quick google search 
brought up quite a few threads of people requesting this feature as well.)
Assignee: mscott → bienvenu
QA Contact: nbaca → grylchan
I'd also like to throw in a voice that having this feature would be very helpful.
Flags: blocking-aviary1.0?
not a blocker. Will gladly take a fix if one presents itself but I doubt we'll
get artwork in time anyway for it. 
Flags: blocking-aviary1.0? → blocking-aviary1.0-
FWIW, <>.  I don't know if
that'll qualify as a "Fix" or a "Workaround", but it works well for me until the
Mozilla gods deign to solve this one in-house.
Bug 245607 is for Thunderbird.

Product: MailNews → Core
What is the status on this?  This feature would be GREAT.  I hope the bug did
not die...
Why is this "Core" and not "Suite"? (TB bug is bug 245607)

This button shouldn't appear in the default UI (since many don't use "IMAP  +
Mark as deleted"), but it should at least *be* an item in the "Customize
toolbar" window.
Feel free to incorporate any of the code from the compactfolder extension into 
the core application.
I'd be happy with a keystroke combo ala pine.

Note as well that even if "delete immediately" is your preference, it doesn't
really remove it immediately.  It merely flags the message and Tbird won't
display it.  Checking from pine shows the message still there with a delete flag.

This is really bad for programs like spamassassin which "learn" directly from
the mailbox rather than via an imap client.
Please excuse the crosspost, but if anyone is interested in discussing the validity of this bug, please read and respond to the topic "IMAP Users Feeling Neglected" in the MozillaZine Thunderbird Features forum:
I was getting ready to download the Thunderbird 2.0 beta and hoping that this would be one of the easy-to-implement fixes that made a big improvement in my user experience, but it appears it won't be there.  What are the objections to incorporating something like the extension into the main code?  It can come in as a disabled button, that IMAP users in the know would be able to drag onto the toolbar only if they want to use.
Is there any way to raise the priority on a bug - the missing 'Compact this Folder' button stopped me from trying the TB2 beta, and I won't upgrade until compactfolder is upgraded. Is there any reason why the TBIRD gods won't incorporate the compactfolder code? It's been around for 6 versions now. Original request was April 2001 - we are now in April 2007, and no luck in 6 years, argh.
Mark Edgington: your compactfolder extension is under the GPL. Are you saying you are willing to license the icons etc. under a MPL 1.1/GPL 2.0/LGPL 2.1 licence if someone wants to make use them in the thunderbird core? 
Forgot to CC... Mark Edgington: please see
That would be just fine.  I grant anyone permission to jump through whatever licensing hoops are needed to get it into the core.  I'm not that excited about the prospect of having to maintain the extension indefinitely, so having it in the core would relieve me of this *terrible* burden :).
Great! I don't suppose you would be interested in providing a patch yourself? ;)
Hi Mark / Magnus - any luck in getting Compact Folder into the trunk? I had a spin at updating it for 2.0, but couldn't get the extension to work :( I now have a really irritating constantly twirling TBird icon, because I am stuck on Tb1.5.
Ok, try the following patch...  It should work.  It may be important to the mozilla team to modify it to make it more uniform, or to put certain things in different places.  That's perfectly fine with me.  I doubt I will be doing more screwing around with the thunderbird source tree.

I will also attach the png files which need to be copied to the locations indicated in the patchfile.
Attached image selected, normal-size button icon (obsolete) —
Attached image selected, small-size button icon (obsolete) —
Attached image unselected, normal-size button icon (obsolete) —
Attached image unselected, small-size button icon (obsolete) —
Thanks a lot for these. Is there anywhere you can direct me to on the web that explains how to run a patch? I'm not a developer and so don't understand basic things like where the code that needs changing is on my computer (am running Windows) and how to run a patch. I have downloaded the GnuWin32 patch program but don't know what command to type or just anything really.
Component: Networking: IMAP → Mail Window Front End
Product: Core → Thunderbird
Assignee: bienvenu → nobody
QA Contact: grylchan → front-end
added myself to CC list
I'll echo Jonathan's comments - any guidance on the matter? 


(In reply to comment #34)
> Thanks a lot for these. Is there anywhere you can direct me to on the web that
> explains how to run a patch? I'm not a developer and so don't understand basic
> things like where the code that needs changing is on my computer (am running
> Windows) and how to run a patch. I have downloaded the GnuWin32 patch program
> but don't know what command to type or just anything really.

Assignee: nobody → mkmelin+mozilla
Attached patch proposed fix (obsolete) — Splinter Review
This adds a "Compact" button that can be added to the toolbar. The qute icons and base for the patch are courtesy of Mark Edgington. I made some pinstripe icons-- an icon refresh for tb3 could make better ones... :)

With this patch, the compact button is disabled for
 - accounts
 - newsgroups
 - standalone msg window
Attachment #277225 - Attachment is obsolete: true
Attachment #277226 - Attachment is obsolete: true
Attachment #277227 - Attachment is obsolete: true
Attachment #277228 - Attachment is obsolete: true
Attachment #277229 - Attachment is obsolete: true
Attachment #291103 - Flags: superreview?(mscott)
Attachment #291103 - Flags: review?(philringnalda)
Attached file toolbar icons
Oh, and if someone can test the pinstripe changes that would be great. It's a bit of a hassle without a mac.
If I mention that the qute icon looks like "get rid of a bunch of envelopes" while the pinstripe one looks like "get rid of a bunch of folders" will I get stuck making a different one myself?
That's a distinct possibility;)

I'd certainly welcome improved icons, but maybe we can leave it to the theme artists...
The primary reason I'd like this is that when using the imap mark as deleted model I usually do compact many times a day.
Comment on attachment 291103 [details] [diff] [review]
proposed fix

Sorry, didn't mean to take quite forever to get to this :(

Minor comment/questions:

>Index: mail/base/content/mail3PaneWindowCommands.js
>+        return (command != "button_compact") ?
>+          canDeleteThisFolder && isCommandEnabled(command) :
>+          (isServer != "true" && IsCompactFolderEnabled());

I don't think those extra parentheses are needed, and while you're in the neighborhood, could you please switch to |isServer = GetFolderAttribute(folderTree, folderResource, "IsServer") == 'true';| to match the MailContextMenus.js and MailWindowOverlay.js uses, so that and the check above can use !isServer and isServer instead of != and ==?

>Index: mail/base/content/mailWindowOverlay.js
>+          (isCommandEnabled("cmd_compactFolder") // checks e.g. if IMAP is offline
>+           || isCommandEnabled("button_compact")));

When is one enabled but the other is not?

>Index: mail/base/content/messageWindow.js
>+      case "button_compact":
>+        return false; // can't compact folder from the standalone msg window

Rather than allowing people to add a button to the standalone window that will never work, shouldn't you add it to the hacked-out ones in instead?

The Pinstripe changes work fine, other than my whining about the wrongness of the icon (a wrongness that's considerably better than my attempt to turn the arrow on the Reply All icon into a circle-slash, an attempt that just proved I shouldn't be allowed to touch images).
Hmm, doesn't seem to be getting reenabled, when I go from a mail folder to an account or a newsgroup, then back to a mail folder.
Seem like the same thing happens for the Delete button ("Delete folder"). Not sure how to fix that though.
Hmm, first step is probably to figure out when it happens: before that comment, I was seeing it consistently, now I can't trigger it at all.
Comment on attachment 291103 [details] [diff] [review]
proposed fix

I think you're right about it just being a part of the existing thing with delete not getting reenabled, so, not this bug. r- for being able to add it to the standalone window where it will never work, and I remain curious about the rest of comment 43, but I think we should go ahead with it.

(Also, don't forget to either leave this bug open for SeaMonkey, or to file a new one for them, since this one was stolen away from them.)
Attachment #291103 - Flags: review?(philringnalda) → review-
Isn't bug 245607 a dupe of this one? This one is older, has the code's permission (comment #19). Both bugs are Product: Thunderbird / Component: Mail Window Front End.
Duplicate of this bug: 245607
The problem from comment 44 can be seen for the Delete button (and Compact) by clicking the account node, then some regular folder. Make sure you haven't visited the folder during the session - if a message loads the bug does not show. Also make sure (for Delete) that it's a deletable folder, not e.g. the Inbox.

I've done a fair amount of debugging on that, but no clues:( The event doesn't reach the 3pane controllers. If nobody has ideas on what's up with that, I'd leave it for another bug.
Target Milestone: Future → Thunderbird 3
(In reply to comment #43)
> >Index: mail/base/content/mailWindowOverlay.js
> >+          (isCommandEnabled("cmd_compactFolder") // checks e.g. if IMAP is offline
> >+           || isCommandEnabled("button_compact")));
> When is one enabled but the other is not?

Probably never, removed.
Attached patch proposed fix, v2 (obsolete) — Splinter Review
Addressing review comments. The purge button is not available for the standalone msg window anymore.
Attachment #291103 - Attachment is obsolete: true
Attachment #291103 - Flags: superreview?(mscott)
Attachment #301314 - Flags: superreview?(mscott)
Attachment #301314 - Flags: review?(philringnalda)
Comment on attachment 301314 [details] [diff] [review]
proposed fix, v2

Works great, looks great, ship it!
Attachment #301314 - Flags: review?(philringnalda) → review+
Scott, is this something you will get to eventually, or should I try sr? from someone else?
Nominating wanted-thunderbird3.0a1 flag to keep it on the radar.
Flags: wanted-thunderbird3.0a1?
Attached patch proposed fix, v3 (obsolete) — Splinter Review
Moving forward Phil's r+
Unbitrotted the patch, and fixed disabling for news folders, which accidentally got dropped between v1 and v2 of the patch.
Attachment #301314 - Attachment is obsolete: true
Attachment #301314 - Flags: superreview?(mscott)
Attachment #312264 - Flags: superreview?(dmose)
Attachment #312264 - Flags: review+
Are you making sure that this patch doesn't cause grief for people who already have the "compactfolder" Add-on installed?
Didn't try but as the button id is different there shouldn't be any problem with that, apart for possible confusion.
Attached patch proposed fix, v4Splinter Review
One hunk didn't make it into the earlier patch...
Attachment #312264 - Attachment is obsolete: true
Attachment #312264 - Flags: superreview?(dmose)
Attachment #313184 - Flags: superreview?(dmose)
Attachment #313184 - Flags: review+
Flags: wanted-thunderbird3?
Moving from wanted‑thunderbird3.0a1? flag to wanted‑thunderbird3.0a2? flag since code for Thunderbird 3 Alpha 1 has been frozen.
Flags: wanted-thunderbird3.0a1? → wanted-thunderbird3.0a2?
Dan: ping on the sr
Comment on attachment 313184 [details] [diff] [review]
proposed fix, v4

Sorry for the delay; sr=dmose.  Out of curiousity, why is it necessary to have separate XUL commands for the button and the menu command?
Attachment #313184 - Flags: superreview?(dmose) → superreview+
related to 286888? or on the contrary ..
If you mean the cmd_compactFolder vs button_compact, cmd_compactFolder should really read cmd_compactFolders with an s on the end... It doesn't since back in the days there wasn't a way to compact all folders.

Checking in mail/base/content/mail3PaneWindowCommands.js;
/cvsroot/mozilla/mail/base/content/mail3PaneWindowCommands.js,v  <--  mail3PaneWindowCommands.js
new revision: 1.44; previous revision: 1.43
Checking in mail/base/content/mailWindowOverlay.js;
/cvsroot/mozilla/mail/base/content/mailWindowOverlay.js,v  <--  mailWindowOverlay.js
new revision: 1.199; previous revision: 1.198
Checking in mail/base/content/mailWindowOverlay.xul;
/cvsroot/mozilla/mail/base/content/mailWindowOverlay.xul,v  <--  mailWindowOverlay.xul
new revision: 1.241; previous revision: 1.240
Checking in mail/base/content/messageWindow.js;
/cvsroot/mozilla/mail/base/content/messageWindow.js,v  <--  messageWindow.js
new revision: 1.64; previous revision: 1.63
Checking in mail/locales/en-US/chrome/messenger/messenger.dtd;
/cvsroot/mozilla/mail/locales/en-US/chrome/messenger/messenger.dtd,v  <--  messenger.dtd
new revision: 1.75; previous revision: 1.74
Checking in mail/themes/pinstripe/mail/primaryToolbar.css;
/cvsroot/mozilla/mail/themes/pinstripe/mail/primaryToolbar.css,v  <--  primaryToolbar.css
new revision: 1.15; previous revision: 1.14
Checking in mail/themes/pinstripe/mail/icons/mail-toolbar-small.png;
/cvsroot/mozilla/mail/themes/pinstripe/mail/icons/mail-toolbar-small.png,v  <--  mail-toolbar-small.png
new revision: 1.3; previous revision: 1.2
Checking in mail/themes/pinstripe/mail/icons/mail-toolbar.png;
/cvsroot/mozilla/mail/themes/pinstripe/mail/icons/mail-toolbar.png,v  <--  mail-toolbar.png
new revision: 1.4; previous revision: 1.3
Checking in mail/themes/qute/mail/primaryToolbar.css;
/cvsroot/mozilla/mail/themes/qute/mail/primaryToolbar.css,v  <--  primaryToolbar.css
new revision: 1.14; previous revision: 1.13
Checking in mail/themes/qute/mail/icons/mail-toolbar-small.png;
/cvsroot/mozilla/mail/themes/qute/mail/icons/mail-toolbar-small.png,v  <--  mail-toolbar-small.png
new revision: 1.6; previous revision: 1.5
Checking in mail/themes/qute/mail/icons/mail-toolbar.png;
/cvsroot/mozilla/mail/themes/qute/mail/icons/mail-toolbar.png,v  <--  mail-toolbar.png
new revision: 1.8; previous revision: 1.7
Checking in mailnews/imap/src/nsImapMailFolder.cpp;
/cvsroot/mozilla/mailnews/imap/src/nsImapMailFolder.cpp,v  <--  nsImapMailFolder.cpp
new revision: 1.807; previous revision: 1.806

Closed: 12 years ago
Flags: wanted-thunderbird3?
Flags: wanted-thunderbird3.0a2?
Flags: wanted-thunderbird3.0a2+
Resolution: --- → FIXED
Filed bug 433563 for seamonkey (since this got stolen).
Great! Can we have a key binding as well? :-)

Blocks: 127888
No longer blocks: 433563
Summary: RFE: "Compact" or "Purge" button → "Compact" or "Purge" button
Duplicate of this bug: 238487
Another vote for key binding.  Since this bug is resolved, do we need another?
(In reply to comment #69)
> Another vote for key binding.  Since this bug is resolved, do we need another?

There probably is one - serach before filling a new one.
I did not find an existing bug, so I opened bug 533894 as an enhancement to add a keyboard accelerator to the compact button.
Note that this fix is *NOT* the same as the per-folder "Compact" option you can get to with a right-click (or Button3 click, for X).
It actually compacts *ALL* folders on the currently selected server.  And, for me, this means it tries to compact folders which don't actually exist (the server presumably claims they do, but they don't, and I don't ever try to use them).
Is there any way to restrict the Compact to the currently-selected folder?
This is exactly the same as per-folder compact. The button isn't even enabled on account nodes.
You need to log in before you can comment on or make changes to this bug.