Bewertet mit 4 von 5 Sternen

This is a very handy add-on. Can you please update it so it works on Thunderbird 60+?

Diese Bewertung wurde für eine vorherige Version des Add-ons (5.0.0) abgegeben. 

Update for TB60 has landed !

Please report problems or new feature requests.

Bewertet mit 1 von 5 Sternen

"Message Archive Options 5.0.0 could not be installed because it is not compatible with Thunderbird 3.1.13."

Where to find the right version of this?
It cannot be found at all from inside Thunderbird.

Diese Bewertung wurde für eine vorherige Version des Add-ons (5.0.0) abgegeben. 

That's because 5.0.0 isn't compatible with TB3.1.13. Install an old version for your old version of Thunderbird!

Bewertet mit 3 von 5 Sternen

howdy y'all,

this is built into tb5, which supports per-account settings.

take care,lee

Diese Bewertung wurde für eine vorherige Version des Add-ons (5.0.0) abgegeben. 

Bewertet mit 5 von 5 Sternen

Can I create difference configurations for different accounts?

For example:
acc.1 - Year - Month
acc.2 - Month - Day

and run it by special key or by RMB-submenu?

Diese Bewertung wurde für eine vorherige Version des Add-ons (5.0.0) abgegeben.  Dieser Benutzer hat eine ältere Bewertung zu diesem Add-on.

Bewertet mit 2 von 5 Sternen

Might be just the addon I need to disable the anoying 'a' shortcut with which I keep loosing my emails.

The only problem is that it is not compatible with my TB.

Any plans to make this compatible with TB 3.1?

Thanks!

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 5 von 5 Sternen

This is an excellent add-on and is very useful. Is Evil-Jeff continuing its development? I would gladly donate to see piviul's patch added in and the whole works made work with V3.1...

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

There is still a bug ... when I am in the root folder of my first create account and I try to press A then there is an error message saying that "The operation failed because an other operation is unsing the folder. Please wait ..." but if I am in a subfolder, it worked fine!

There are also some errors when the addon creates the subdirs that it will uses the ISO Date format as dir name, instead of the original foldername.

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

Your new code of the overlay.js works fine BUT you have to restart TB if you want that the option in dialog "2 Additonal Leves" with %F will work!

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

Thanks, it works. But not the way it should be.
When you have subfolders on INBOX your code uses the word INBOX as a subfolder name in the archive. So it only works when the folder is directly below the account name, like Trash, Sent, Inbox...

I know that you can't or won't iterate thru the subdirs but lets just use the folder name where the mail is in it which you want to archive.

The option %F doesn't work, only %f.
With %F I am getting the whole date string as directory name...

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 5 von 5 Sternen

Hi, the last 15th february I've send the patched overlay.js to eviljeff hoping in a fast update of the add-on. Because there are other interested in the patch I write the new overlay.js here:
--- begin overlay.js

var messagearchiveoptions = {

preferenceService: Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("[email protected]."),



get monthValue() {return this.preferenceService.getComplexValue("monthstring",Components.interfaces.nsISupportsString).toString();},

get yearValue() {return this.preferenceService.getComplexValue("yearstring", Components.interfaces.nsISupportsString).toString();},

get keyModifiers() {

var modifiers=new Array();

if (this.preferenceService.getBoolPref("key.shift")) modifiers.push("shift");

if (this.preferenceService.getBoolPref("key.alt")) modifiers.push("alt");

if (this.preferenceService.getBoolPref("key.control")) modifiers.push("accel");

return modifiers;

},

onLoad: function() {

BatchMessageMover.prototype.archiveSelectedMessages = function() {

gFolderDisplay.hintMassMoveStarting();

var selectedMessages = gFolderDisplay.selectedMessages;

if (!selectedMessages.length) {

return;

}

var messages = Components.classes['@mozilla.org/array;1'].createInstance(Components.interfaces.nsIMutableArray);

for (let i = 0; i < selectedMessages.length; ++i) {

let msgHdr = selectedMessages[i];

let server = msgHdr.folder.server;

let rootFolder = server.rootFolder;

let msgDate = new Date(msgHdr.date / 1000);

let fullPath = String(msgHdr.folder.URI).replace(server.serverURI, "").substring(1);

let rootPath = fullPath.substring(0, fullPath.indexOf('/', 1));

if (rootPath.length == 0) rootPath=fullPath;

let yearValue = messagearchiveoptions.yearValue.replace('%F', fullPath);

yearValue = yearValue.replace('%f', rootPath);

let msgYear = msgDate.toLocaleFormat(yearValue);

let monthValue = messagearchiveoptions.monthValue.replace('%F', fullPath);

monthValue = monthValue.replace('%f', rootPath);

let monthFolderName = msgDate.toLocaleFormat(monthValue);

let archiveFolderUri;

if (server.type == "rss") {

archiveFolderUri = server.serverURI + "/Archives";

} else {

let identity = getIdentityForServer(server);

if (!identity) {

identity = getIdentityForHeader(msgHdr);

}

archiveFolderUri = identity.archiveFolder;

}

let archiveFolder = GetMsgFolderFromUri(archiveFolderUri, false);

let granularity = archiveFolder.server.archiveGranularity;

let copyBatchKey = msgHdr.folder.URI + "\0";

if (granularity >= Components.interfaces.nsIMsgIncomingServer.perYearArchiveFolders) {

copyBatchKey += msgYear;

}

if (granularity >= Components.interfaces.nsIMsgIncomingServer.perMonthArchiveFolders) {

copyBatchKey += monthFolderName;

}

if (!(copyBatchKey in this._batches)) {

this._batches[copyBatchKey] = [msgHdr.folder, archiveFolderUri, granularity, msgYear, monthFolderName];

}

this._batches[copyBatchKey].push(msgHdr);

}

this.processNextBatch();

}

document.getElementById("key_archive").setAttribute("modifiers",this.keyModifiers.join(", "));

},

observe:function(subject ,topic , data) {

if (topic!="nsPref:changed") return;

document.getElementById("key_archive").setAttribute("modifiers",this.keyModifiers.join(", "));

}

};



window.addEventListener("load", function(e) { messagearchiveoptions.onLoad(e); }, false);

messagearchiveoptions.preferenceService.QueryInterface(Components.interfaces.nsIPrefBranch2).addObserver("key", messagearchiveoptions, false);

--- end
I've removed the license block so please don't delete it from the original overlay.js!

Have a grat day

Piviul

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

Your diff file won't work ... or I haven't found the correct syntax for "diffing" it:

patch < overlay.js.diff
Hmm... Looks like a normal diff to me...
File to patch: overlay.js
Patching file overlay.js using Plan A...
Hunk #1 failed at 38.
Hunk #2 failed at 50.
2 out of 2 hunks failed--saving rejects to overlay.js.rej
done

So please do just an update on the addon instead of posting the diffs here.

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

hello,
I tried to update the file overlay.js but does not work.
Could you send me the updated file?
Thanks

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

hello,
I tried to update the file overlay.js but does not work.
Could you send me the updated file?
Thanks

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

We have done some little changes to overlay.js to have folder structure (root only or full structure) support permitting new %f (root structure) or %F (full structure) in the year and month options as asked from andras.tim, BlackForst and Illtud Daniel. This is de diff:
38,48c38,48
< preferenceService: Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("[email protected]."),
<
< get monthValue() {return this.preferenceService.getComplexValue("monthstring",Components.interfaces.nsISupportsString).toString();},
< get yearValue() {return this.preferenceService.getComplexValue("yearstring", Components.interfaces.nsISupportsString).toString();},
< get keyModifiers() {
< var modifiers=new Array();
< if (this.preferenceService.getBoolPref("key.shift")) modifiers.push("shift");
< if (this.preferenceService.getBoolPref("key.alt")) modifiers.push("alt");
< if (this.preferenceService.getBoolPref("key.control")) modifiers.push("accel");
< return modifiers;
< },
---
> preferenceService: Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("[email protected]."),
>
> get monthValue() {return this.preferenceService.getComplexValue("monthstring",Components.interfaces.nsISupportsString).toString();},
> get yearValue() {return this.preferenceService.getComplexValue("yearstring", Components.interfaces.nsISupportsString).toString();},
> get keyModifiers() {
> var modifiers=new Array();
> if (this.preferenceService.getBoolPref("key.shift")) modifiers.push("shift");
> if (this.preferenceService.getBoolPref("key.alt")) modifiers.push("alt");
> if (this.preferenceService.getBoolPref("key.control")) modifiers.push("accel");
> return modifiers;
> },
50,55c50,98
< var origfunc=BatchMessageMover.prototype.archiveSelectedMessages.toSource();
< origfunc=origfunc.replace('msgDate.toLocaleFormat("%Y-%m")','msgDate.toLocaleFormat(messagearchiveoptions.monthValue)');
< origfunc=origfunc.replace('msgDate.getFullYear().toString()','msgDate.toLocaleFormat(messagearchiveoptions.yearValue)');
< eval("BatchMessageMover.prototype.archiveSelectedMessages = "+origfunc);
< //BatchMessageMover.prototype.archiveSelectedMessages = this.archiveSelectedMessages;
<
---
> BatchMessageMover.prototype.archiveSelectedMessages = function() {
> gFolderDisplay.hintMassMoveStarting();
> var selectedMessages = gFolderDisplay.selectedMessages;
> if (!selectedMessages.length) {
> return;
> }
> var messages = Components.classes['@mozilla.org/array;1'].createInstance(Components.interfaces.nsIMutableArray);
> for (let i = 0; i < selectedMessages.length; ++i) {
> let msgHdr = selectedMessages[i];
> let server = msgHdr.folder.server;
> let rootFolder = server.rootFolder;
> let msgDate = new Date(msgHdr.date / 1000);
> //let msgYear = msgDate.toLocaleFormat(messagearchiveoptions.yearValue);
> //let monthFolderName = msgDate.toLocaleFormat(messagearchiveoptions.monthValue);
> let fullPath = String(msgHdr.folder.URI).replace(server.serverURI, "").substring(1);
> let rootPath = fullPath.substring(0, fullPath.indexOf('/', 1));
> if (rootPath.length == 0) rootPath=fullPath;
> let yearValue = messagearchiveoptions.yearValue.replace('%F', fullPath);
> yearValue = yearValue.replace('%f', rootPath);
> let msgYear = msgDate.toLocaleFormat(yearValue);
> let monthValue = messagearchiveoptions.monthValue.replace('%F', fullPath);
> monthValue = monthValue.replace('%f', rootPath);
> let monthFolderName = msgDate.toLocaleFormat(monthValue);
> let archiveFolderUri;
> if (server.type == "rss") {
> archiveFolderUri = server.serverURI + "/Archives";
> } else {
> let identity = getIdentityForServer(server);
> if (!identity) {
> identity = getIdentityForHeader(msgHdr);
> }
> archiveFolderUri = identity.archiveFolder;
> }
> let archiveFolder = GetMsgFolderFromUri(archiveFolderUri, false);
> let granularity = archiveFolder.server.archiveGranularity;
> let copyBatchKey = msgHdr.folder.URI + "\0";
> if (granularity >= Components.interfaces.nsIMsgIncomingServer.perYearArchiveFolders) {
> copyBatchKey += msgYear;
> }
> if (granularity >= Components.interfaces.nsIMsgIncomingServer.perMonthArchiveFolders) {
> copyBatchKey += monthFolderName;
> }
> if (!(copyBatchKey in this._batches)) {
> this._batches[copyBatchKey] = [msgHdr.folder, archiveFolderUri, granularity, msgYear, monthFolderName];
> }
> this._batches[copyBatchKey].push(msgHdr);
> }
> this.processNextBatch();
> }

Piviul

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 1 von 5 Sternen

Good, good, but unfortunately does not keep the folder structure. : (

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 5 von 5 Sternen

Works perfectly... I had discovered I was accidentally archiving important messages; this solves the problem. Thanks!

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 3 von 5 Sternen

+ 1 for enhancement given by BlackForst and Illtud Daniel

this will be really useful

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 3 von 5 Sternen

"Handy UI for the prefs, but I find the archive function useless without the possibility of keeping the existing folder structure in the archive - ie archiving a mail in 'Projects/New North Building' should move the mail to 'archive/2009/Projects/New North Building'. Any chance that your extension could be enhanced to deliver that?"

Yeah this would make sense! other wise the Archives function isn't so useful...

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 4 von 5 Sternen

Handy UI for the prefs, but I find the archive function useless without the possibility of keeping the existing folder structure in the archive - ie archiving a mail in 'Projects/New North Building' should move the mail to 'archive/2009/Projects/New North Building'. Any chance that your extension could be enhanced to deliver that?

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben. 

Bewertet mit 5 von 5 Sternen

This is great work, though these options should really should be built into the thunderbird preferences, rather than hidden in the advanced config.

Diese Bewertung wurde für eine vorherige Version des Add-ons (0.3.1) abgegeben.