Добро пожаловать в дополнения Thunderbird.
Добавляйте дополнительные функции и стили, чтобы настроить Thunderbird по своему вкусу.
Закрытьpiviul
Обо мне
Имя | piviul |
---|---|
Пользователь с | Фев. 12, 2010 |
Число разработанных дополнений | 0 дополнений |
Средний рейтинг дополнений разработчика | Пока не оценено |
Мои отзывы
Message Archive Options
Рейтинг 5 из 5 звёзд
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
Message Archive Options
Рейтинг 4 из 5 звёзд
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
Для создания своих подборок вам необходимо иметь учётную запись на сайте дополнений Mozilla.