+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * SOGoProductLoader.m, sogod.m: changed to use NGLogging (v0.9.16)
+
2004-10-19 Marcus Mueller <znek@mulle-kybernetik.com>
* SOGoUserHomePage.[wox|m]: changed hrefs to be computed dynamically
}
if (![registry loadAllProducts])
- [self logWithFormat:@"WARNING: could not load all products !"];
+ [self warnWithFormat:@"could not load all products !"];
}
@end /* SOGoProductLoader */
# $Id$
-SUBMINOR_VERSION:=15
+SUBMINOR_VERSION:=16
+
+# v0.9.16 requires NGExtensions v4.5.136
/* session management */
- (WOSession *)createSessionForRequest:(WORequest *)_request {
- [self logWithFormat:@"WARNING: session creation requested!"];
+ [self warnWithFormat:@"session creation requested!"];
if (doCrashOnSessionCreate)
abort();
return [super createSessionForRequest:_request];
refType = 4;
sourceTree = "<group>";
};
+ AD5DF18E072E5AC500173622 = {
+ fileEncoding = 5;
+ indentWidth = 2;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = UIxMailEditorAttach.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ AD5DF18F072E5AC500173622 = {
+ fileEncoding = 5;
+ isa = PBXFileReference;
+ lastKnownFileType = text.xml;
+ path = UIxMailEditorAttach.wox;
+ refType = 4;
+ sourceTree = "<group>";
+ };
AD5ED0AF06B1385700E3EC4B = {
fileEncoding = 4;
isa = PBXFileReference;
refType = 4;
sourceTree = "<group>";
};
+ ADC07230072E9BFB00C125E0 = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = text.xml;
+ path = UIxMailMoveToPopUp.wox;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ ADC07231072E9BFB00C125E0 = {
+ fileEncoding = 5;
+ indentWidth = 2;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = UIxMailMoveToPopUp.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
ADCDE53106ADA8AC00BFCE2B = {
fileEncoding = 5;
indentWidth = 8;
AD2C74BD071A9FF70087E027,
ADDF4DCA06DE0E9A00C4E7F8,
ADDF4DCB06DE0E9A00C4E7F8,
+ AD5DF18E072E5AC500173622,
+ AD5DF18F072E5AC500173622,
AD2C78F7071C23CE0087E027,
AD2C78F6071C23CE0087E027,
AD2C76D6071BF4EB0087E027,
ADDF4DCD06DE0E9A00C4E7F8,
ADBE446707297BA9000FEA6A,
ADBE446607297BA9000FEA6A,
+ ADC07231072E9BFB00C125E0,
+ ADC07230072E9BFB00C125E0,
ADDF4DCE06DE0E9A00C4E7F8,
ADDF4DCF06DE0E9A00C4E7F8,
);
if (aptClass == Nil)
aptClass = NSClassFromString(@"SOGoAppointmentObject");
if (aptClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoAppointmentObject class!"];
+ [self errorWithFormat:@"missing SOGoAppointmentObject class!"];
return nil;
}
NSString *sql;
if (_folder == nil) {
- [self logWithFormat:@"ERROR(%s): missing folder for fetch!",
- __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): missing folder for fetch!",
+ __PRETTY_FUNCTION__];
return nil;
}
records = [_folder fetchFields:fields matchingQualifier:qualifier];
if (records == nil) {
- [self logWithFormat:@"ERROR(%s): fetch failed!", __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
OCSFolder *folder;
if ((folder = [self ocsFolder]) == nil) {
- [self logWithFormat:@"ERROR(%s): missing folder for fetch!",
- __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): missing folder for fetch!",
+ __PRETTY_FUNCTION__];
return nil;
}
return [self fetchCoreInfosFromFolder:folder from:_startDate to:_endDate];
/* create subcontext, so that we don't destroy our environment */
if ((ctx = [_ctx createSubContext]) == nil) {
- [self logWithFormat:@"ERROR: could not create SOPE subcontext!"];
+ [self errorWithFormat:@"could not create SOPE subcontext!"];
return nil;
}
result = [[ctx application] traversePathArray:path inContext:ctx
error:&error acquire:NO];
if (error != nil) {
- [self logWithFormat:@"ERROR: folder lookup failed (uid=%@): %@",
- _uid, error];
+ [self errorWithFormat:@"folder lookup failed (uid=%@): %@",
+ _uid, error];
return nil;
}
event = [[SOGoAppointment alloc] initWithICalString:content];
if (![event isNotNull]) {
- [self logWithFormat:@"ERROR(%s): could not parse an iCal file!",
- __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): could not parse an iCal file!",
+ __PRETTY_FUNCTION__];
continue;
}
- (SOGoAppointmentFolder *)folderForUID:(NSString *)_uid {
if (self->uidToFolder == nil) {
// TODO: can we trigger a fetch?
- [self logWithFormat:
- @"ERROR: called -folderForUID method before fetchCoreInfos .."];
+ [self errorWithFormat:
+ @"called -folderForUID method before fetchCoreInfos .."];
return nil;
}
return nil;
if (![aptFolder respondsToSelector:@selector(fetchCoreInfosFrom:to:)]) {
- [self logWithFormat:@"ERROR: folder does not implemented required API: %@",
+ [self errorWithFormat:@"folder does not implemented required API: %@",
_folder];
return nil;
}
uid = [record objectForKey:@"uid"];
if (![uid isNotNull]) {
- [self logWithFormat:@"WARNING: record without uid: %@", result];
- [result addObject:record];
- continue;
+ [self warnWithFormat:@"record without uid: %@", result];
+ [result addObject:record];
+ continue;
}
if ((existingRecord = [uidToRecord objectForKey:uid]) == nil) {
NSArray *folders;
if ((folders = [[self container] valueForKey:@"memberFolders"]) == nil) {
- [self logWithFormat:@"ERROR: calendar container has no 'memberFolders'?!"];
+ [self errorWithFormat:@"calendar container has no 'memberFolders'?!"];
return nil;
}
SOGoAppointmentFolder *folder;
if ([_uid length] == 0) {
- [self logWithFormat:@"ERROR: got invalid UID."];
+ [self errorWithFormat:@"got invalid UID."];
return nil;
}
if ((folder = [self folderForUID:_uid]) == nil) {
- [self logWithFormat:@"ERROR: did not find a folder containing UID: '%@'",
+ [self errorWithFormat:@"did not find a folder containing UID: '%@'",
_uid];
return nil;
}
if (![folder respondsToSelector:_cmd]) {
- [self logWithFormat:@"ERROR: found folder cannot construct UID URLs: %@",
+ [self errorWithFormat:@"found folder cannot construct UID URLs: %@",
folder];
return nil;
}
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * Appointments/SOGoGroupAppointmentFolder.m,
+ Appointments/SOGoAppointmentFolder.m, SOGo/SOGoContentObject.m,
+ SOGo/SOGoUserFolder.m: changed to NGLogging.
+
2004-08-26 Marcus Mueller <znek@mulle-kybernetik.com>
* added "Mailer" product
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * SOGoContactFolder.m: changed to NGLogging (v0.9.5)
+
2004-09-25 Helge Hess <helge.hess@opengroupware.org>
* fixed compilation on MacOSX (v0.9.4)
if (ctClass == Nil)
ctClass = NSClassFromString(@"SOGoContactObject");
if (ctClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoContactObject class!"];
+ [self errorWithFormat:@"missing SOGoContactObject class!"];
return nil;
}
nil];
records = [[self ocsFolder] fetchFields:fields matchingQualifier:nil];
if (records == nil) {
- [self logWithFormat:@"ERROR(%s): fetch failed!", __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
records = [self fixupRecords:records];
# $Id$
-SUBMINOR_VERSION:=4
+SUBMINOR_VERSION:=5
+
+# v0.9.5 requires NGExtensions v4.5.136
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * SOGoMailAccount.m, SOGoMailBaseObject.m, SOGoMailObject.m,
+ SOGoMailManager.m, SOGoDraftsFolder.m, SOGoMailAccounts.m,
+ SOGoMailBodyPart.m, SOGoDraftObject.m: changed to use NGLogging
+ (v0.9.55)
+
2004-11-27 Helge Hess <helge.hess@skyrix.com>
* SOGoMailAccount.m: added 'Filters' key and lookup of Sieve filters
return NO;
if ((fm = [self spoolFileManager]) == nil) {
- [self logWithFormat:@"ERROR: missing spool file manager!"];
+ [self errorWithFormat:@"missing spool file manager!"];
return NO;
}
return [fm createDirectoriesAtPath:[self draftFolderPath] attributes:nil];
- (BOOL)storeInfo:(NSDictionary *)_info {
if (_info == nil) {
- [self logWithFormat:@"WARNING: got no info to write for draft!"];
+ [self warnWithFormat:@"got no info to write for draft!"];
return NO;
}
if (![self _ensureDraftFolderPath]) {
- [self logWithFormat:@"ERROR: could not create folder for draft: '%@'",
- [self draftFolderPath]];
+ [self errorWithFormat:@"could not create folder for draft: '%@'",
+ [self draftFolderPath]];
return NO;
}
if (![_info writeToFile:[self infoPath] atomically:YES]) {
- [self logWithFormat:@"ERROR: could not write info: '%@'", [self infoPath]];
+ [self errorWithFormat:@"could not write info: '%@'", [self infoPath]];
return NO;
}
return YES;
self->info = [[NSDictionary alloc] initWithContentsOfFile:p];
if (self->info == nil)
- [self logWithFormat:@"ERROR: draft info dictionary broken at path: %@", p];
+ [self errorWithFormat:@"draft info dictionary broken at path: %@", p];
return self->info;
}
return NO;
if (![self _ensureDraftFolderPath]) {
- [self logWithFormat:@"ERROR: could not create folder for draft!"];
+ [self errorWithFormat:@"could not create folder for draft!"];
return NO;
}
if (![self isValidAttachmentName:_name])
fm = [self spoolFileManager];
p = [self pathToAttachmentWithName:_name];
if (![fm isReadableFileAtPath:p]) {
- [self logWithFormat:@"ERROR: did not find attachment: '%@'", _name];
+ [self errorWithFormat:@"did not find attachment: '%@'", _name];
return nil;
}
attachAsString = NO;
[content release]; content = nil;
}
else {
- [self logWithFormat:
- @"WARNING: could not get text attachment as string: '%@'",_name];
+ [self warnWithFormat:
+ @"could not get text attachment as string: '%@'", _name];
body = content;
content = nil;
}
if ((emails = [lInfo objectForKey:@"to"]) != nil) {
if ([emails count] == 0) {
- [self logWithFormat:@"ERROR: missing 'to' recipient in email!"];
+ [self errorWithFormat:@"missing 'to' recipient in email!"];
return nil;
}
[map setObjects:emails forKey:@"to"];
pool = [[NSAutoreleasePool alloc] init];
if ([self fetchInfo] == nil) {
- [self logWithFormat:@"ERROR: could not locate draft fetch info!"];
+ [self errorWithFormat:@"could not locate draft fetch info!"];
return nil;
}
[self debugWithFormat:@"MIME Envelope: %@", map];
if ((bodyParts = [self bodyPartsForAllAttachments]) == nil) {
- [self logWithFormat:
- @"ERROR: could not create body parts for attachments!"];
+ [self errorWithFormat:
+ @"could not create body parts for attachments!"];
return nil; // TODO: improve error handling, return exception
}
[self debugWithFormat:@"attachments: %@", bodyParts];
if (mailer == nil)
mailer = [[NGSendMail sharedSendMail] retain];
if (![mailer isSendMailAvailable]) {
- [self logWithFormat:@"ERROR: missing sendmail binary!"];
+ [self errorWithFormat:@"missing sendmail binary!"];
return [NSException exceptionWithHTTPStatus:500 /* server error */
reason:@"did not find sendmail binary!"];
}
NSEnumerator *e;
if ((fm = [self spoolFileManager]) == nil) {
- [self logWithFormat:@"ERROR: missing spool file manager!"];
+ [self errorWithFormat:@"missing spool file manager!"];
return [NSException exceptionWithHTTPStatus:500 /* server error */
reason:@"missing spool file manager!"];
}
NSFileManager *fm;
if ((fm = [self spoolFileManager]) == nil) {
- [self logWithFormat:@"ERROR: missing spool file manager!"];
+ [self errorWithFormat:@"missing spool file manager!"];
return NO;
}
return [fm createDirectoriesAtPath:[self userSpoolFolderPath]
s = [self nameInContainer];
r = [s rangeOfString:@"@"];
if (r.length == 0) {
- [self logWithFormat:@"ERROR: missing login in account folder name: %@", s];
+ [self errorWithFormat:@"missing login in account folder name: %@", s];
return nil;
}
if (ctClass == Nil)
ctClass = NSClassFromString(@"SOGoMailAccount");
if (ctClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoMailAccount class!"];
+ [self errorWithFormat:@"missing SOGoMailAccount class!"];
return nil;
}
- (SOGoMailAccount *)mailAccountFolder {
if (![[self container] respondsToSelector:_cmd]) {
- [self logWithFormat:@"WARNING: weird container of mailfolder: %@",
- [self container]];
+ [self warnWithFormat:@"weird container of mailfolder: %@",
+ [self container]];
return nil;
}
}
- (NSString *)relativeImap4Name {
- [self logWithFormat:@"WARNING: subclass should override %@",
+ [self warnWithFormat:@"subclass should override %@",
NSStringFromSelector(_cmd)];
return nil;
}
- (NSURL *)baseImap4URL {
if (![[self container] respondsToSelector:@selector(imap4URL)]) {
- [self logWithFormat:@"WARNING: container does not implement -imap4URL!"];
+ [self warnWithFormat:@"container does not implement -imap4URL!"];
return nil;
}
return nil;
if (![[self container] respondsToSelector:_cmd]) {
- [self logWithFormat:@"WARNING: container does not implement -imap4URL!"];
+ [self warnWithFormat:@"container does not implement -imap4URL!"];
return nil;
}
else if ([enc isEqualToString:@"7BIT"])
; /* keep data as is */ // TODO: do we need to change encodings?
else
- [self debugWithFormat:@"ERROR: unsupported encoding: %@", enc];
+ [self errorWithFormat:@"unsupported encoding: %@", enc];
}
return data;
result = [client login:[_url user] password:_pwd];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:
- @"ERROR: IMAP4 login failed "
- @"(host=%@,user=%@,pwd=%s,url=%@/%@/%@): "
- @"%@",
- [_url host], [_url user], [_pwd length] > 0 ? "yes" : "no",
- [_url absoluteString], [_url baseURL],
- NSStringFromClass([[_url baseURL] class]),
- client];
+ [self errorWithFormat:
+ @"IMAP4 login failed (host=%@,user=%@,pwd=%s,url=%@/%@/%@): %@",
+ [_url host], [_url user], [_pwd length] > 0 ? "yes" : "no",
+ [_url absoluteString], [_url baseURL],
+ NSStringFromClass([[_url baseURL] class]),
+ client];
return nil;
}
result = [[entry client] list:@"INBOX" pattern:@"*"];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: listing of folder failed!"];
+ [self errorWithFormat:@"listing of folder failed!"];
return nil;
}
result = [[entry client] select:[self imap4FolderNameForURL:_url]];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not select URL: %@: %@", _url, result];
+ [self errorWithFormat:@"could not select URL: %@: %@", _url, result];
return nil;
}
result = [[entry client] sort:_so qualifier:_qualifier encoding:@"UTF-8"];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not sort contents of URL: %@", _url];
+ [self errorWithFormat:@"could not sort contents of URL: %@", _url];
return nil;
}
uids = [result valueForKey:@"sort"];
if (![uids isNotNull]) {
- [self logWithFormat:@"ERROR: got no UIDs for URL: %@: %@", _url, result];
+ [self errorWithFormat:@"got no UIDs for URL: %@: %@", _url, result];
return nil;
}
result = [client select:[self imap4FolderNameForURL:_url]];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not select URL: %@: %@", _url, result];
+ [self errorWithFormat:@"could not select URL: %@: %@", _url, result];
return nil;
}
result = [client fetchUids:_uids parts:_parts];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not fetch %d uids for url: %@",
+ [self errorWithFormat:@"could not fetch %d uids for url: %@",
[_uids count],_url];
return nil;
}
result = [client select:[self imap4FolderNameForURL:_url
removeFileName:YES]];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not select URL: %@: %@", _url, result];
+ [self errorWithFormat:@"could not select URL: %@: %@", _url, result];
return nil;
}
result = [client fetchUids:[NSArray arrayWithObject:uid] parts:_parts];
if (![[result valueForKey:@"result"] boolValue]) {
- [self logWithFormat:@"ERROR: could not fetch url: %@", _url];
+ [self errorWithFormat:@"could not fetch url: %@", _url];
return nil;
}
//[self logWithFormat:@"RESULT: %@", result];
result = [result objectForKey:@"fetch"];
if ([result count] == 0) { /* did not find part */
- [self logWithFormat:@"ERROR: did not find part: %@", _partId];
+ [self errorWithFormat:@"did not find part: %@", _partId];
return nil;
}
fetch = [result objectAtIndex:0];
if ((body = [fetch objectForKey:@"body"]) == nil) {
- [self logWithFormat:@"ERROR: did not find body in response: %@", result];
+ [self errorWithFormat:@"did not find body in response: %@", result];
return nil;
}
if ((result = [body objectForKey:@"data"]) == nil) {
- [self logWithFormat:@"ERROR: did not find data in body: %@", fetch];
+ [self errorWithFormat:@"did not find data in body: %@", fetch];
return nil;
}
return result;
id info;
if ((info = [self bodyStructure]) == nil) {
- [self logWithFormat:@"ERROR: got no body part structure!"];
+ [self errorWithFormat:@"got no body part structure!"];
return nil;
}
parts = [info valueForKey:@"parts"];
if (idx >= [parts count]) {
- [self logWithFormat:
- @"ERROR: body part index out of bounds(%d vs %d): %@",
- (idx + 1), [parts count], info];
+ [self errorWithFormat:@"body part index out of bounds(%d vs %d): %@",
+ (idx + 1), [parts count], info];
return nil;
}
info = [parts objectAtIndex:idx];
# Version file
-SUBMINOR_VERSION:=54
+SUBMINOR_VERSION:=55
+# v0.9.55 requires NGExtensions v4.5.136
# v0.9.44 requires libNGMime v4.3.194
# v0.9.41 requires libNGMime v4.3.190
# v0.9.35 requires libSOGoLogic v0.9.24
return;
if (self->ocsPath)
- [self logWithFormat:@"WARNING: OCS path is already set! '%@'", _path];
+ [self warnWithFormat:@"OCS path is already set! '%@'", _path];
ASSIGNCOPY(self->ocsPath, _path);
}
return;
if (self->ocsPath)
- [self logWithFormat:@"WARNING: OCS path is already set! '%@'", _path];
+ [self warnWithFormat:@"OCS path is already set! '%@'", _path];
ASSIGNCOPY(self->ocsPath, _path);
}
fields = [NSArray arrayWithObject:@"c_name"];
records = [[self ocsFolder] fetchFields:fields matchingQualifier:nil];
if (![records isNotNull]) {
- [self logWithFormat:@"ERROR(%s): fetch failed!", __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if ([records isKindOfClass:[NSException class]])
files = [[self ocsFolder] fetchContentsOfAllFiles];
if (![files isNotNull]) {
- [self logWithFormat:@"ERROR(%s): fetch failed!", __PRETTY_FUNCTION__];
+ [self errorWithFormat:@"(%s): fetch failed!", __PRETTY_FUNCTION__];
return nil;
}
if ([files isKindOfClass:[NSException class]])
/* pathes */
- (void)setOCSPath:(NSString *)_path {
- [self logWithFormat:
- @"WARNING: rejected attempt to reset user-folder path: '%@'",
- _path];
+ [self warnWithFormat:
+ @"rejected attempt to reset user-folder path: '%@'", _path];
}
- (NSString *)ocsPath {
return [@"/Users/" stringByAppendingString:[self login]];
if (calClass == Nil)
calClass = NSClassFromString(@"SOGoAppointmentFolder");
if (calClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoAppointmentFolder class!"];
+ [self errorWithFormat:@"missing SOGoAppointmentFolder class!"];
return nil;
}
if (calClass == Nil)
calClass = NSClassFromString(@"SOGoContactFolder");
if (calClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoContactFolder class!"];
+ [self errorWithFormat:@"missing SOGoContactFolder class!"];
return nil;
}
if (fldClass == Nil)
fldClass = NSClassFromString(@"SOGoGroupsFolder");
if (fldClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoGroupsFolder class!"];
+ [self errorWithFormat:@"missing SOGoGroupsFolder class!"];
return nil;
}
if (fldClass == Nil)
fldClass = NSClassFromString(@"SOGoMailAccounts");
if (fldClass == Nil) {
- [self logWithFormat:@"ERROR: missing SOGoMailAccounts class!"];
+ [self errorWithFormat:@"missing SOGoMailAccounts class!"];
return nil;
}
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxTabItem.m: changed to use NGLogging (v0.9.28)
+
2004-10-18 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.27
activeKey:tmp key:k];
}
else {
- NSLog(@"WARNING(%s): invalid UIxTabItem state !!!", __PRETTY_FUNCTION__);
+ [self warnWithFormat:@"(%s): invalid UIxTabItem state !!!",
+ __PRETTY_FUNCTION__];
[_response appendContentString:@"[invalid state]"];
}
}
# Version file
-SUBMINOR_VERSION:=27
+SUBMINOR_VERSION:=28
+
+# v0.9.28 requires NGExtensions v4.5.136
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxContactEditor.m: changed to use NGLogging (v0.9.18)
+
2004-10-27 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.17
NSDictionary *plist;
if ((plist = [_s propertyList]) == nil) {
- [self logWithFormat:@"ERROR: could not parse content string!"];
+ [self errorWithFormat:@"could not parse content string!"];
return;
}
# $Id$
-SUBMINOR_VERSION:=17
+SUBMINOR_VERSION:=18
-# v0.9.16 requires libSOGoUI v0.9.16
+# v0.9.18 requires NGExtensions v4.5.136
+# v0.9.16 requires libSOGoUI v0.9.16
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxMailTree.m, UIxMailEditor.m, UIxMailPartViewer.m,
+ UIxEnvelopeAddressFormatter.m, UIxMailToolbar.m,
+ UIxMailRenderingContext.m, UIxMailEditorAttach.m,
+ UIxSubjectFormatter.m, UIxMailPartAlternativeViewer.m:
+ changed to use NGLogging (v0.9.70)
+
2004-12-03 Helge Hess <helge.hess@skyrix.com>
* v0.9.69
s = [_address baseEMail];
if ([s isNotNull]) return s;
- [self debugWithFormat:@"WARNING: unexpected envelope address: %@", _address];
+ [self warnWithFormat:@"unexpected envelope address: %@", _address];
return [_address stringValue];
}
if ((info = [self storeInfo]) != nil) {
if (![[self clientObject] storeInfo:info]) {
- [self logWithFormat:@"ERROR: failed to store draft!"];
+ [self errorWithFormat:@"failed to store draft!"];
// TODO: improve error handling
return NO;
}
[self logWithFormat:@"TODO: store mail in Sent folder: %@", mailPath];
if (keepMailTmpFile)
- [self logWithFormat:@"WARNING: keeping mail file: '%@'", mailPath];
+ [self warnWithFormat:@"keeping mail file: '%@'", mailPath];
else
[[NSFileManager defaultManager] removeFileAtPath:mailPath handler:nil];
mailPath = nil;
/* delete draft */
if (keepDraftAfterSend) {
- [self logWithFormat:@"WARNING: keeping draft object: '%@'",
- [self clientObject]];
+ [self warnWithFormat:@"keeping draft object: '%@'",
+ [self clientObject]];
}
else if ((error = [[self clientObject] delete]) != nil)
return error;
if (![usedNames containsObject:name])
return name;
}
- [self logWithFormat:@"ERROR: too many attachments?!"];
+ [self errorWithFormat:@"too many attachments?!"];
return nil;
}
idx = [self selectPartIndexFromTypes:[self childPartTypes]];
if (idx == NSNotFound) {
- [self logWithFormat:@"ERROR: could not select a part of types: %@",
- [self childPartTypes]];
+ [self errorWithFormat:@"could not select a part of types: %@",
+ [self childPartTypes]];
return;
}
if ([enc isEqualToString:@"quoted-printable"])
return [[self flatContent] dataByDecodingQuotedPrintable];
- [self logWithFormat:@"ERROR: unsupported MIME encoding: %@", enc];
+ [self errorWithFormat:@"unsupported MIME encoding: %@", enc];
return [self flatContent];
}
NSData *content;
if ((content = [self decodedFlatContent]) == nil) {
- [self logWithFormat:@"ERROR: got no text content: %@", [self partPath]];
+ [self errorWithFormat:@"got no text content: %@", [self partPath]];
return nil;
}
s = [s autorelease];
}
if (s == nil) {
- [self logWithFormat:
- @"ERROR: could not convert content to text, charset: '%@'",
- charset];
+ [self errorWithFormat:@"could not convert content to text, charset: '%@'",
+ charset];
}
return s;
}
}
// TODO: always fallback to octet viewer?!
- [self logWithFormat:@"ERROR: found no viewer for MIME type: %@/%@", mt, st];
+ [self errorWithFormat:@"found no viewer for MIME type: %@/%@", mt, st];
return nil;
}
tmp = [[self clientObject] lookupName:@"toolbar" inContext:[self context]
acquire:NO];
if ([tmp isKindOfClass:[NSException class]]) {
- [self logWithFormat:
- @"ERROR: not toolbar configuration found on SoObject: %@ (%@)",
- [self clientObject], [[self clientObject] soClass]];
+ [self errorWithFormat:
+ @"not toolbar configuration found on SoObject: %@ (%@)",
+ [self clientObject], [[self clientObject] soClass]];
self->toolbarConfig = [[NSNull null] retain];
return nil;
}
if ((rm = [self resourceManager]) == nil)
rm = [[WOApplication application] resourceManager];
if (rm == nil)
- [self debugWithFormat:@"WARNING: missing resource manager!"];
+ [self warnWithFormat:@"missing resource manager!"];
/* lookup string */
- (BOOL)isRootObject:(id)_object {
if (![_object isNotNull]) {
- [self logWithFormat:@"WARNING(%s): got to root by nil lookup ...",
- __PRETTY_FUNCTION__];
+ [self warnWithFormat:@"(%s): got to root by nil lookup ...",
+ __PRETTY_FUNCTION__];
return YES;
}
/* continue NSData processing */
- [self debugWithFormat:@"WARNING: NSData subject! (using UTF-8 to decode!)"];
+ [self warnWithFormat:@"NSData subject! (using UTF-8 to decode!)"];
// TODO: exception handler?
s = [[NSString alloc] initWithData:_subject encoding:NSUTF8StringEncoding];
if (s == nil) {
- [self logWithFormat:@"ERROR: could do not decode NSData subject!"];
+ [self errorWithFormat:@"could do not decode NSData subject!"];
return [self labelForKey:@"Error_CouldNotDecodeSubject"];
}
# version file
-SUBMINOR_VERSION:=69
+SUBMINOR_VERSION:=70
-# v0.9.69 requires libNGMime v4.5.203
-# v0.9.50 requires libNGMime v4.3.190
-# v0.9.43 requires libNGObjWeb v4.3.73
-# v0.9.42 requires libNGObjWeb v4.3.72
+# v0.9.70 requires NGExtensions v4.5.136
+# v0.9.69 requires libNGMime v4.5.203
+# v0.9.50 requires libNGMime v4.3.190
+# v0.9.43 requires libNGObjWeb v4.3.73
+# v0.9.42 requires libNGObjWeb v4.3.72
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxComponent.m: changed to use NGLogging (v0.9.18)
+
2004-10-22 Marcus Mueller <znek@mulle-kybernetik.com>
* UIxComponent.m: rewrote handling of queryParameters, these get
if ((rm = [self resourceManager]) == nil)
rm = [[WOApplication application] resourceManager];
if (rm == nil)
- [self debugWithFormat:@"WARNING: missing resource manager!"];
+ [self warnWithFormat:@"missing resource manager!"];
/* get parameters */
# $Id$
-SUBMINOR_VERSION:=17
+SUBMINOR_VERSION:=18
+
+# v0.9.18 requires NGExtensions v4.5.136
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxAppointmentView.m, UIxDatePicker.m, UIxCalView.m: changed to use
+ NGLogging (v0.9.94)
+
2004-11-08 Helge Hess <helge.hess@skyrix.com>
* UIxAppointmentPrintview.m: fixed a compile warning (v0.9.93)
iCalString = [[self clientObject] valueForKey:@"iCalString"];
if (![iCalString isNotNull] || [iCalString length] == 0) {
- [self debugWithFormat:@"ERROR(%s): missing iCal string!",
+ [self errorWithFormat:@"(%s): missing iCal string!",
__PRETTY_FUNCTION__];
return nil;
}
stringByAppendingString:@"/Calendar"];
if ((folder = [[self clientObject] ocsFolderForPath:path]) == nil) {
- [self logWithFormat:@"ERROR: did not find user: %@", uid];
+ [self errorWithFormat:@"did not find user: %@", uid];
continue;
}
res = [[self clientObject] fetchCoreInfosFromFolder:folder
from:[self startDate] to:[self endDate]];
if (res == nil) {
- [self logWithFormat:@"ERROR: fetch failed for user: %@", uid];
+ [self errorWithFormat:@"fetch failed for user: %@", uid];
continue;
}
if ((rm = [self resourceManager]) == nil)
rm = [[WOApplication application] resourceManager];
if (rm == nil)
- [self debugWithFormat:@"WARNING: missing resource manager!"];
+ [self warnWithFormat:@"missing resource manager!"];
/* lookup languages */
d = [NSCalendarDate dateWithString:dateString calendarFormat:@"%Y-%m-%d"];
if (d == nil)
- [self logWithFormat:@"WARNING: Could not parse dateString: '%@'",
- dateString];
+ [self warnWithFormat:@"Could not parse dateString: '%@'",
+ dateString];
[self setDay:[NSNumber numberWithInt:[d dayOfMonth]]];
[self setMonth:[NSNumber numberWithInt:[d monthOfYear]]];
[self setYear:[NSNumber numberWithInt:[d yearOfCommonEra]]];
# $Id$
-SUBMINOR_VERSION:=93
+SUBMINOR_VERSION:=94
-# v0.9.84 requires libSOGoLogic v0.9.12
-# v0.9.70 requires libNGExtensions v4.3.107
-# v0.9.67 requires SOPE 4.3
-# v0.9.61 requires libNGExtensions v4.2.102
-# v0.9.41 requires libNGObjWeb v4.2.431
-# v0.9.31 requires libWEExtensions v4.2.52
-# v0.9.29 requires libWEExtensions v4.2.51
+# v0.9.94 requires NGExtensions v4.5.136
+# v0.9.84 requires SOGoLogic v0.9.12
+# v0.9.70 requires NGExtensions v4.3.107
+# v0.9.67 requires SOPE v4.3
+# v0.9.61 requires NGExtensions v4.2.102
+# v0.9.41 requires NGObjWeb v4.2.431
+# v0.9.31 requires WEExtensions v4.2.52
+# v0.9.29 requires WEExtensions v4.2.51
+2004-12-08 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * SOGoAppointment.m, SOGoAppointmentICalRenderer.m: changed to use
+ NGLogging (v0.9.26)
+
2004-11-01 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.25
}
else if ([_root isKindOfClass:[NSDictionary class]]) {
/* multiple vevents in the calendar */
- [self logWithFormat:
- @"ERROR(%s): tried to initialize with multiple records: %@",
- __PRETTY_FUNCTION__, _root];
+ [self errorWithFormat:
+ @"(%s): tried to initialize with multiple records: %@",
+ __PRETTY_FUNCTION__, _root];
[self release];
return nil;
}
id root;
if ([_iCal length] == 0) {
- [self logWithFormat:@"ERROR: tried to init SOGoAppointment without iCal"];
+ [self errorWithFormat:@"tried to init SOGoAppointment without iCal"];
[self release];
return nil;
}
if (parser == nil || sax == nil) {
- [self logWithFormat:@"ERROR: iCal parser not properly set up!"];
+ [self errorWithFormat:@"iCal parser not properly set up!"];
[self release];
return nil;
}
- (void)setDuration:(NSTimeInterval)_duration {
// TODO
- [self logWithFormat:@"WARNING: could not apply duration!"];
+ [self warnWithFormat:@"could not apply duration!"];
}
- (BOOL)hasDuration {
return [self->event hasDuration];
return NO;
if ([[_apt uid] length] == 0) {
- [self logWithFormat:
- @"WARNING: got apt without uid, rejecting iCal generation: %@",
- _apt];
+ [self warnWithFormat:@"got apt without uid, rejecting iCal generation: %@",
+ _apt];
return NO;
}
if ([[[_apt startDate] icalString] length] == 0) {
- [self logWithFormat:
- @"WARNING: got apt without start date, "
- @"rejecting iCal generation: %@",
- _apt];
+ [self warnWithFormat:@"got apt without start date, "
+ @"rejecting iCal generation: %@",
+ _apt];
return NO;
}
# Version file
-SUBMINOR_VERSION:=25
+SUBMINOR_VERSION:=26
+# v0.9.26 requires NGExtensions v4.5.136
# v0.9.23 requires NGiCal v4.3.32
# v0.9.18 requires NGExtensions v4.3.123
# v0.9.13 requires libFoundation v1.0.62