From 8a4e5ecd4d547a2c2c4b822b1922116d8c2fb62b Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 1 Nov 2007 20:22:56 +0000 Subject: [PATCH] Monotone-Parent: b5527cca41377fdda40add2bd6ca8f78f300fdef Monotone-Revision: a50fc375753b7b96ff66be21facc9b3cf09aeaf7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-11-01T20:22:56 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 8 +++ SoObjects/Mailer/GNUmakefile | 6 +- SoObjects/Mailer/SOGoMailObject+Draft.m | 14 ++++- SoObjects/Mailer/SOGoMailReply.h | 50 +++++++++++++++ SoObjects/Mailer/SOGoMailReply.m | 84 +++++++++++++++++++++++++ 5 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 SoObjects/Mailer/SOGoMailReply.h create mode 100644 SoObjects/Mailer/SOGoMailReply.m diff --git a/ChangeLog b/ChangeLog index b3ed0463c..d3aeb5bc1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2007-11-01 Wolfgang Sourdeau + * SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject + -contentForReply]): make use of the SOGoMailReply WO page. + + * SoObjects/Mailer/SOGoMailReply.[hm]: new class module copied + from SOGoMailForward to handle mail replies instead. Only three + methods remaining: date, from and messageBody. The latter is + quoted properly. + * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject -fetchMailForForwarding:sourceMail]): fetch attachments for forwarded messages. diff --git a/SoObjects/Mailer/GNUmakefile b/SoObjects/Mailer/GNUmakefile index 82e9dfb1f..6be6f8a4f 100644 --- a/SoObjects/Mailer/GNUmakefile +++ b/SoObjects/Mailer/GNUmakefile @@ -31,6 +31,7 @@ Mailer_OBJC_FILES += \ SOGoVCardMailBodyPart.m \ \ SOGoMailForward.m \ + SOGoMailReply.m \ \ NSData+Mail.m \ NSString+Mail.m @@ -42,7 +43,10 @@ Mailer_RESOURCE_FILES += \ Mailer_RESOURCE_FILES += \ SOGoMailEnglishForward.wo \ SOGoMailFrenchForward.wo \ - SOGoMailGermanForward.wo + SOGoMailGermanForward.wo \ + SOGoMailEnglishReply.wo \ + SOGoMailFrenchReply.wo \ + SOGoMailGermanReply.wo ADDITIONAL_INCLUDE_DIRS += -I../../SOPE/sope-gdl1/ ADDITIONAL_LIB_DIRS += -L../../SOPE/sope-gdl1/GDLContentStore/obj/ diff --git a/SoObjects/Mailer/SOGoMailObject+Draft.m b/SoObjects/Mailer/SOGoMailObject+Draft.m index 66ffa4447..0ce4da0d9 100644 --- a/SoObjects/Mailer/SOGoMailObject+Draft.m +++ b/SoObjects/Mailer/SOGoMailObject+Draft.m @@ -33,6 +33,7 @@ #import "NSString+Mail.h" #import "SOGoMailForward.h" #import "SOGoMailObject+Draft.h" +#import "SOGoMailReply.h" #define maxFilenameLength 64 @@ -121,7 +122,18 @@ - (NSString *) contentForReply { - return [[self contentForEditing] stringByApplyingMailQuoting]; + SOGoUser *currentUser; + NSString *pageName; + SOGoMailReply *page; + + currentUser = [context activeUser]; + pageName = [NSString stringWithFormat: @"SOGoMail%@Reply", + [currentUser language]]; + page = [[WOApplication application] pageWithName: pageName + inContext: context]; + [page setRepliedMail: self]; + + return [[page generateResponse] contentAsString]; } - (NSString *) filenameForForward diff --git a/SoObjects/Mailer/SOGoMailReply.h b/SoObjects/Mailer/SOGoMailReply.h new file mode 100644 index 000000000..8f13fcabe --- /dev/null +++ b/SoObjects/Mailer/SOGoMailReply.h @@ -0,0 +1,50 @@ +/* SOGoMailReply.h - this file is part of SOGo + * + * Copyright (C) 2007 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef SOGOMAILREPLY_H +#define SOGOMAILREPLY_H + +#import + +@class SOGoMailObject; + +@interface SOGoMailReply : SoComponent +{ + SOGoMailObject *sourceMail; + NSString *field; + NSString *currentValue; +} + +- (void) setRepliedMail: (SOGoMailObject *) newSourceMail; + +@end + +@interface SOGoMailEnglishReply : SOGoMailReply +@end + +@interface SOGoMailFrenchReply : SOGoMailReply +@end + +@interface SOGoMailGermanReply : SOGoMailReply +@end + +#endif /* SOGOMAILREPLY_H */ diff --git a/SoObjects/Mailer/SOGoMailReply.m b/SoObjects/Mailer/SOGoMailReply.m new file mode 100644 index 000000000..d2e939d94 --- /dev/null +++ b/SoObjects/Mailer/SOGoMailReply.m @@ -0,0 +1,84 @@ +/* SOGoMailReply.m - this file is part of SOGo + * + * Copyright (C) 2007 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import + +#import +#import + +#import "SOGoMailObject+Draft.h" +#import "SOGoMailReply.h" + +@implementation SOGoMailReply + +- (id) init +{ + if ((self = [super init])) + { + sourceMail = nil; + currentValue = nil; + } + + return self; +} + +- (void) dealloc +{ + [sourceMail release]; + [currentValue release]; + [super dealloc]; +} + +- (void) setRepliedMail: (SOGoMailObject *) newSourceMail +{ + ASSIGN (sourceMail, newSourceMail); +} + +- (NSString *) date +{ + SOGoDateFormatter *formatter; + + formatter = [[context activeUser] dateFormatterInContext: context]; + + return [formatter formattedDateAndTime: [sourceMail date]]; +} + +- (NSString *) from +{ + return [[sourceMail mailHeaders] objectForKey: @"from"]; +} + +- (NSString *) messageBody +{ + return [[sourceMail contentForEditing] stringByApplyingMailQuoting]; +} + +@end + +@implementation SOGoMailEnglishReply +@end + +@implementation SOGoMailFrenchReply +@end + +@implementation SOGoMailGermanReply +@end