mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-14 01:38:51 +00:00
Monotone-Parent: 5be6c87443be578d119d408f0aa2b86f5a6bbc31
Monotone-Revision: 7ad56d517ee86167bc71b34f0a08fd92931aa4cc Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-04-15T18:27:08 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -49,7 +49,10 @@
|
||||
|
||||
/* messages */
|
||||
- (NSException *) deleteUIDs: (NSArray *) uids inContext: (id) context;
|
||||
- (WOResponse *) archiveUIDs: (NSArray *) uids inContext: (id) context;
|
||||
- (WOResponse *) archiveUIDs: (NSArray *) uids
|
||||
inArchiveNamed: (NSString *) archiveName
|
||||
inContext: (id) context;
|
||||
- (WOResponse *) archiveAllMessagesInContext: (id) localContext;
|
||||
|
||||
- (NSArray *) fetchUIDsMatchingQualifier: (id)_q sortOrdering: (id) _so;
|
||||
- (NSArray *) fetchUIDs: (NSArray *) _uids parts: (NSArray *) _parts;
|
||||
|
||||
@@ -331,11 +331,12 @@ static NSString *defaultUserID = @"anyone";
|
||||
}
|
||||
|
||||
- (WOResponse *) archiveUIDs: (NSArray *) uids
|
||||
inArchiveNamed: (NSString *) archiveName
|
||||
inContext: (id) localContext
|
||||
{
|
||||
NSException *error;
|
||||
NSFileManager *fm;
|
||||
NSString *spoolPath, *fileName, *zipPath;
|
||||
NSString *spoolPath, *fileName, *zipPath, *qpFileName;
|
||||
NSDictionary *msgs;
|
||||
NSArray *messages;
|
||||
NSData *content, *zipContent;
|
||||
@@ -344,6 +345,9 @@ static NSString *defaultUserID = @"anyone";
|
||||
WOResponse *response;
|
||||
int i;
|
||||
|
||||
if (!archiveName)
|
||||
archiveName = @"SavedMessages.zip";
|
||||
|
||||
#warning this method should be rewritten according to our coding styles
|
||||
spoolPath = [self userSpoolFolderPath];
|
||||
if (![self ensureSpoolFolderPath]) {
|
||||
@@ -369,18 +373,16 @@ static NSString *defaultUserID = @"anyone";
|
||||
[zipTaskArguments addObject: @"SavedMessages.zip"];
|
||||
|
||||
msgs = (NSDictionary *)[self fetchUIDs: uids
|
||||
parts: [NSArray arrayWithObject: @"RFC822"]];
|
||||
parts: [NSArray arrayWithObject: @"RFC822"]];
|
||||
messages = [msgs objectForKey: @"fetch"];
|
||||
|
||||
for (i = 0; i < [messages count]; i++) {
|
||||
content = [[messages objectAtIndex: i] objectForKey: @"message"];
|
||||
|
||||
[content writeToFile:
|
||||
[NSString stringWithFormat:@"%@/%d.eml", spoolPath, [uids objectAtIndex: i]]
|
||||
atomically: YES];
|
||||
fileName = [NSString stringWithFormat:@"%@/%@.eml", spoolPath, [uids objectAtIndex: i]];;
|
||||
[content writeToFile: fileName atomically: YES];
|
||||
|
||||
[zipTaskArguments addObject:
|
||||
[NSString stringWithFormat:@"%d.eml", [uids objectAtIndex: i]]];
|
||||
[NSString stringWithFormat:@"%@.eml", [uids objectAtIndex: i]]];
|
||||
}
|
||||
|
||||
[zipTask setArguments: zipTaskArguments];
|
||||
@@ -400,15 +402,46 @@ static NSString *defaultUserID = @"anyone";
|
||||
|
||||
response = [[WOResponse alloc] init];
|
||||
[response autorelease];
|
||||
[response setHeader: @"application/zip" forKey:@"content-type"];
|
||||
[response setHeader: @"attachment;filename=SavedMessages.zip" forKey: @"Content-Disposition"];
|
||||
qpFileName = [archiveName asQPSubjectString: @"utf-8"];
|
||||
[response setHeader: [NSString stringWithFormat: @"application/zip;"
|
||||
@" name=\"%@\"",
|
||||
qpFileName]
|
||||
forKey:@"content-type"];
|
||||
[response setHeader: [NSString stringWithFormat: @"attachment; filename=\"%@\"",
|
||||
qpFileName]
|
||||
forKey: @"Content-Disposition"];
|
||||
[response setContent: zipContent];
|
||||
|
||||
|
||||
[zipContent release];
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
- (WOResponse *) archiveAllMessagesInContext: (id) localContext
|
||||
{
|
||||
WOResponse *response;
|
||||
NSArray *uids;
|
||||
NSString *archiveName;
|
||||
EOQualifier *notDeleted;
|
||||
|
||||
if ([[self imap4Connection] doesMailboxExistAtURL: [self imap4URL]])
|
||||
{
|
||||
notDeleted = [EOQualifier qualifierWithQualifierFormat:
|
||||
@"(not (flags = %@))", @"deleted"];
|
||||
uids = [self fetchUIDsMatchingQualifier: notDeleted
|
||||
sortOrdering: @"ARRIVAL"];
|
||||
archiveName = [NSString stringWithFormat: @"%@.zip", [self relativeImap4Name]];
|
||||
response = [self archiveUIDs: uids inArchiveNamed: archiveName
|
||||
inContext: localContext];
|
||||
}
|
||||
else
|
||||
response = (WOResponse *)
|
||||
[NSException exceptionWithHTTPStatus: 404
|
||||
reason: @"Folder does not exist."];
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
- (WOResponse *) copyUIDs: (NSArray *) uids
|
||||
toFolder: (NSString *) destinationFolder
|
||||
inContext: (id) localContext
|
||||
|
||||
@@ -401,7 +401,7 @@ static int cssEscapingCount;
|
||||
if ([qpString length] > [self length])
|
||||
{
|
||||
qpString = [qpString stringByReplacingString: @" " withString: @"_"];
|
||||
subjectString = [NSString stringWithFormat: @"=?%@?Q?%@?=",
|
||||
subjectString = [NSString stringWithFormat: @"=?%@?q?%@?=",
|
||||
encoding, qpString];
|
||||
}
|
||||
else
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Apagar esta pasta";
|
||||
"Erase mails from this folder" = "Apagar emails desta pasta";
|
||||
"Expunge this folder" = "Expurgar esta pasta";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Modificar os direitos desta pasta";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Atualizar";
|
||||
"Cancel" = "Cancelar";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Odebrat tuto složku";
|
||||
"Erase mails from this folder" = "Vymazat maily v této složce";
|
||||
"Expunge this folder" = "Vyškrtnout tuto složku";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Upravit acl této složky";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Aktualizace";
|
||||
"Cancel" = "Storno";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Deze map verwijderen";
|
||||
"Erase mails from this folder" = "E-mails in in deze map verwijderen";
|
||||
"Expunge this folder" = "Deze map leegmaken";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Machtigingen van deze map aanpassen";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Opslaan";
|
||||
"Cancel" = "Sluiten";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Remove this folder";
|
||||
"Erase mails from this folder" = "Erase mails from this folder";
|
||||
"Expunge this folder" = "Expunge this folder";
|
||||
"Archive This folder" = "Archive This folder";
|
||||
"Modify the acl of this folder" = "Modify the acl of this folder";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Update";
|
||||
"Cancel" = "Cancel";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Effacer ce dossier";
|
||||
"Erase mails from this folder" = "Effacer des messages de ce dossier";
|
||||
"Expunge this folder" = "Compacter ce dossier";
|
||||
"Archive This Folder" = "Archiver ce dossier";
|
||||
"Modify the acl of this folder" = "Administrer les droits sur ce dossier";
|
||||
|
||||
"Saved Messages.zip" = "Messages sauvegardés.zip";
|
||||
|
||||
"Update" = "Mettre à jour";
|
||||
"Cancel" = "Annuler";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Diesen Ordner löschen";
|
||||
"Erase mails from this folder" = "E-Mails in diesem Ordner löschen";
|
||||
"Expunge this folder" = "Diesen Ordner komprimieren";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Benutzerrechte dieses Ordners verändern";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Speichern";
|
||||
"Cancel" = "Abbrechen";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Mappa törlése";
|
||||
"Erase mails from this folder" = "Üzenetek törlése a mappából";
|
||||
"Expunge this folder" = "Mappa megjelölése töröltként";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Mappa jogosultságainak szerkesztése";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Mentés";
|
||||
"Cancel" = "Mégsem";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Rimuovi questa cartella";
|
||||
"Erase mails from this folder" = "Elimina emails da questa cartella";
|
||||
"Expunge this folder" = "Pulisci questa cartella";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Modifica i permessi per questa cartella";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Aggiorna";
|
||||
"Cancel" = "Annulla";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Удалять эту папку";
|
||||
"Erase mails from this folder" = "Удалять сообщения из этой папки";
|
||||
"Expunge this folder" = "Помечать письма как удаленные";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Управлять правами доступа к этой папке";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Обновить";
|
||||
"Cancel" = "Отмена";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Borrar esta carpeta";
|
||||
"Erase mails from this folder" = "Borrar los correos de esta carpeta";
|
||||
"Expunge this folder" = "Compactar esta carpeta.";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Modificar la lista de permisos de esta carpeta";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Actualizar";
|
||||
"Cancel" = "Cancelar";
|
||||
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Ta bort mappen";
|
||||
"Erase mails from this folder" = "Radera meddelanden från mappen";
|
||||
"Expunge this folder" = "Radera mappen";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Ändra åtkomsträttigheter på mappen";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Uppdatera";
|
||||
"Cancel" = "Avbryt";
|
||||
|
||||
|
||||
@@ -270,7 +270,9 @@
|
||||
if ([value length] > 0)
|
||||
{
|
||||
uids = [value componentsSeparatedByString: @","];
|
||||
response = [co archiveUIDs: uids inContext: context];
|
||||
response = [co archiveUIDs: uids
|
||||
inArchiveNamed: [self labelForKey: @"Saved Messages.zip"]
|
||||
inContext: context];
|
||||
if (!response)
|
||||
response = [self responseWith204];
|
||||
}
|
||||
@@ -283,6 +285,15 @@
|
||||
return response;
|
||||
}
|
||||
|
||||
- (WOResponse *) exportFolderAction
|
||||
{
|
||||
WOResponse *response;
|
||||
|
||||
response = [[self clientObject] archiveAllMessagesInContext: context];
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
- (WOResponse *) copyMessagesAction
|
||||
{
|
||||
SOGoMailFolder *co;
|
||||
|
||||
@@ -76,8 +76,11 @@
|
||||
"Remove this folder" = "Dileu'r ffolder hwn";
|
||||
"Erase mails from this folder" = "Dileu ebost o'r ffolder hwn";
|
||||
"Expunge this folder" = "Dileu'r ffolder hwn";
|
||||
"Archive This Folder" = "Archive This Folder";
|
||||
"Modify the acl of this folder" = "Newid acl y ffolder";
|
||||
|
||||
"Saved Messages.zip" = "Saved Messages.zip";
|
||||
|
||||
"Update" = "Diweddaru";
|
||||
"Cancel" = "Canslo";
|
||||
|
||||
|
||||
@@ -143,6 +143,11 @@
|
||||
actionClass = "UIxMailFolderActions";
|
||||
actionName = "saveMessages";
|
||||
};
|
||||
exportFolder = {
|
||||
protectedBy = "View";
|
||||
actionClass = "UIxMailFolderActions";
|
||||
actionName = "exportFolder";
|
||||
};
|
||||
copyMessages = {
|
||||
protectedBy = "View";
|
||||
actionClass = "UIxMailFolderActions";
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
<li><var:string label:value="Mark Folder Read..." /></li>
|
||||
<li><var:string label:value="New Folder..." /></li>
|
||||
<li><var:string label:value="Compact This Folder" /></li>
|
||||
<li><var:string label:value="Archive This Folder" /></li>
|
||||
<li><!-- separator --></li>
|
||||
<li><var:string label:value="Search Messages..." /></li>
|
||||
<li><var:string label:value="Sharing..." /></li>
|
||||
@@ -65,6 +66,7 @@
|
||||
<li><var:string label:value="Mark Folder Read..." /></li>
|
||||
<li><var:string label:value="New Subfolder..." /></li>
|
||||
<li><var:string label:value="Compact This Folder" /></li>
|
||||
<li><var:string label:value="Archive This Folder" /></li>
|
||||
<li><var:string label:value="Empty Trash" /></li>
|
||||
<li><!-- separator --></li>
|
||||
<li><var:string label:value="Search Messages..." /></li>
|
||||
@@ -82,6 +84,7 @@
|
||||
<li><var:string label:value="New Subfolder..." /></li>
|
||||
<li><var:string label:value="Rename Folder..." /></li>
|
||||
<li><var:string label:value="Compact This Folder" /></li>
|
||||
<li><var:string label:value="Archive This Folder" /></li>
|
||||
<li><var:string label:value="Delete Folder" /></li>
|
||||
<li><var:string label:value="Use This Folder For" /></li>
|
||||
<li><!-- separator --></li>
|
||||
|
||||
@@ -2255,7 +2255,7 @@ function saveAs(event) {
|
||||
paths.push(path);
|
||||
}
|
||||
var url = ApplicationBaseURL + encodeURI(Mailer.currentMailbox) + "/saveMessages";
|
||||
window.open(url+"?id="+uids+"&uid="+uids+"&mailbox="+Mailer.currentMailbox+"&path="+paths);
|
||||
window.location.href = (url+"?id="+uids+"&uid="+uids+"&mailbox="+Mailer.currentMailbox+"&path="+paths);
|
||||
}
|
||||
else
|
||||
window.alert(getLabel("Please select a message."));
|
||||
@@ -2263,22 +2263,32 @@ function saveAs(event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function onMenuArchiveFolder(event) {
|
||||
var folderID = document.menuTarget.getAttribute("dataname");
|
||||
var url = URLForFolderID(folderID) + "/exportFolder";
|
||||
window.location.href = url;
|
||||
|
||||
event.stop();
|
||||
}
|
||||
|
||||
function getMenus() {
|
||||
var menus = {}
|
||||
menus["accountIconMenu"] = new Array(null, null, onMenuCreateFolder, null,
|
||||
null, null);
|
||||
menus["inboxIconMenu"] = new Array(null, null, null, "-", null,
|
||||
onMenuCreateFolder, onMenuExpungeFolder,
|
||||
"-", null,
|
||||
onMenuArchiveFolder, "-", null,
|
||||
onMenuSharing);
|
||||
menus["trashIconMenu"] = new Array(null, null, null, "-", null,
|
||||
onMenuCreateFolder, onMenuExpungeFolder,
|
||||
onMenuEmptyTrash, "-", null,
|
||||
onMenuArchiveFolder, onMenuEmptyTrash,
|
||||
"-", null,
|
||||
onMenuSharing);
|
||||
menus["mailboxIconMenu"] = new Array(null, null, null, "-", null,
|
||||
onMenuCreateFolder,
|
||||
onMenuRenameFolder,
|
||||
onMenuExpungeFolder,
|
||||
onMenuArchiveFolder,
|
||||
onMenuDeleteFolder,
|
||||
"folderTypeMenu",
|
||||
"-", null,
|
||||
|
||||
Reference in New Issue
Block a user