From 4695f1a464cdedfb49a8ec91fd2f87dab2535f6e Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 2 Jul 2009 13:38:10 +0000 Subject: [PATCH 1/3] Monotone-Parent: 7b1c90d751a6ba1af3047dcf85c17673325dfcfe Monotone-Revision: 366dd63bc8cb90bda841f039b5d9e177f4dc3bbc Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-07-02T13:38:10 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/SchedulerUI.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 11034c3c2..f1db14084 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -406,7 +406,9 @@ function onViewEventCallback(http) { } function editDoubleClickedEvent(event) { - if (this.recurrenceTime && !this.isException) + if (this.isException && this.recurrenceTime) + _editEventId(this.cname, this.calendar, "occurence" + this.recurrenceTime); + else if (this.recurrenceTime) _editRecurrenceDialog(this, "confirmEditing"); else _editEventId(this.cname, this.calendar); From 9311eccc483f2d0f90c0f08724396b428444159a Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 2 Jul 2009 14:14:57 +0000 Subject: [PATCH 2/3] Monotone-Parent: 200696af293fef0e2e6002c56a321834f165a2ec Monotone-Revision: 53683aad48259504e699908753251ef4902e4139 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-07-02T14:14:57 Monotone-Branch: ca.inverse.sogo --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 4dcf3fa80..172a41ad3 100644 --- a/NEWS +++ b/NEWS @@ -5,7 +5,7 @@ - implemented the webdav sync spec from Cyrus Daboo, in order to reduce useless payload on databases - greatly reduced the number of SQL requests performed in many situations - added HTML composition in the web mail module -- added drag and drop in the address book and email modules +- added drag and drop in the addressbook and mail modules - improved the attendees modification dialog by implementing slots management - added the capability to display the size of messages in the mail module From b63050dac99c289e7500c14d5d71b65cde5b5897 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 2 Jul 2009 14:24:36 +0000 Subject: [PATCH 3/3] Monotone-Parent: 53683aad48259504e699908753251ef4902e4139 Monotone-Revision: ef38d39938984cb34954a23cdc1d54fecf577117 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-07-02T14:24:36 Monotone-Branch: ca.inverse.sogo --- SOPE/sope-patchset-r1657.diff | 109 +++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 3 deletions(-) diff --git a/SOPE/sope-patchset-r1657.diff b/SOPE/sope-patchset-r1657.diff index 043e5ff28..43c0b7424 100644 --- a/SOPE/sope-patchset-r1657.diff +++ b/SOPE/sope-patchset-r1657.diff @@ -4043,7 +4043,18 @@ Index: sope-appserver/NGObjWeb/ChangeLog =================================================================== --- sope-appserver/NGObjWeb/ChangeLog (revision 1660) +++ sope-appserver/NGObjWeb/ChangeLog (working copy) -@@ -1,3 +1,11 @@ +@@ -1,3 +1,22 @@ ++2009-07-02 Wolfgang Sourdeau ++ ++ * WOMessage.m (-setHeaders:, -setHeader:forKey:, headerForKey:, ++ -appendHeader:forKey:, -appendHeaders:forKey:, setHeaders:forKey:, ++ -headersForKey:): convert the specified header key to lowercase, ++ to ensure they are managed case-insensitively. ++ * WOHttpAdaptor/WOHttpTransaction.m ++ (-deliverResponse:toRequest:onStream:): if the content-type is ++ specified and already has "text/plain" as prefix, we don't ++ override it. ++ +2009-07-01 Wolfgang Sourdeau + + * WOHttpAdaptor/WOHttpTransaction.m @@ -4154,6 +4165,88 @@ Index: sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h BOOL sidInUrl; /* 'ivar' associations */ +Index: sope-appserver/NGObjWeb/WOMessage.m +=================================================================== +--- sope-appserver/NGObjWeb/WOMessage.m (revision 1660) ++++ sope-appserver/NGObjWeb/WOMessage.m (working copy) +@@ -182,7 +182,7 @@ + NSString *key; + + keys = [_headers keyEnumerator]; +- while ((key = [keys nextObject])) { ++ while ((key = [[keys nextObject] lowercaseString])) { + id value; + + value = [_headers objectForKey:key]; +@@ -198,34 +198,39 @@ + } + + - (void)setHeader:(NSString *)_header forKey:(NSString *)_key { +- [self->header setObject:[_header stringValue] forKey:_key]; ++ [self->header setObject:[_header stringValue] ++ forKey:[_key lowercaseString]]; + } + - (NSString *)headerForKey:(NSString *)_key { +- return [[self->header objectEnumeratorForKey:_key] nextObject]; ++ return [[self->header objectEnumeratorForKey:[_key lowercaseString]] ++ nextObject]; + } + + - (void)appendHeader:(NSString *)_header forKey:(NSString *)_key { +- [self->header addObject:_header forKey:_key]; ++ [self->header addObject:_header forKey:[_key lowercaseString]]; + } + - (void)appendHeaders:(NSArray *)_headers forKey:(NSString *)_key { +- [self->header addObjects:_headers forKey:_key]; ++ [self->header addObjects:_headers forKey:[_key lowercaseString]]; + } + + - (void)setHeaders:(NSArray *)_headers forKey:(NSString *)_key { + NSEnumerator *e; + id value; ++ NSString *lowerKey; + ++ lowerKey = [_key lowercaseString]; + e = [_headers objectEnumerator]; + +- [self->header removeAllObjectsForKey:_key]; ++ [self->header removeAllObjectsForKey:lowerKey]; + + while ((value = [e nextObject])) +- [self->header addObject:value forKey:_key]; ++ [self->header addObject:value forKey:lowerKey]; + } + - (NSArray *)headersForKey:(NSString *)_key { + NSEnumerator *values; + +- if ((values = [self->header objectEnumeratorForKey:_key])) { ++ if ((values ++ = [self->header objectEnumeratorForKey:[_key lowercaseString]])) { + NSMutableArray *array = nil; + id value = nil; + +@@ -243,17 +248,14 @@ + NSEnumerator *values; + + if ((values = [self->header keyEnumerator])) { +- NSMutableArray *array = nil; ++ NSMutableArray *array; + id name = nil; +- array = [[NSMutableArray alloc] init]; +- ++ array = [NSMutableArray array]; ++ + while ((name = [values nextObject])) + [array addObject:name]; + +- name = [array copy]; +- [array release]; +- +- return [name autorelease]; ++ return array; + } + return nil; + } Index: sope-appserver/NGObjWeb/SoObjects/SoObject.m =================================================================== --- sope-appserver/NGObjWeb/SoObjects/SoObject.m (revision 1660) @@ -4326,15 +4419,25 @@ Index: sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m doZip = [_response shouldZipResponseToRequest:_request]; -@@ -738,7 +739,10 @@ +@@ -738,7 +739,11 @@ /* add content length header */ - snprintf((char *)buf, sizeof(buf), "%d", [body length]); -+ if ((length = [body length]) == 0) { ++ if ((length = [body length]) == 0 ++ && ![[_response headerForKey: @"content-type"] hasPrefix:@"text/plain"]) { + [_response setHeader:@"text/plain" forKey:@"content-type"]; + } + snprintf((char *)buf, sizeof(buf), "%d", length); t1 = [[NSString alloc] initWithCString:(char *)buf]; [_response setHeader:t1 forKey:@"content-length"]; [t1 release]; t1 = nil; +@@ -766,7 +771,7 @@ + NSString *value; + + if (!hasConnectionHeader) { +- if ([fieldName caseInsensitiveCompare:@"connection"]==NSOrderedSame) ++ if ([fieldName isEqualToString:@"connection"]) + hasConnectionHeader = YES; + } +