mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-14 01:38:51 +00:00
iPhone + CalDAV fixed
Monotone-Parent: 3c522ae41fe50f5ebe60bb22d26f407dc4c942d4 Monotone-Revision: 0bc72fc660e8d843466e5428a65d7ea595d8f88e Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-07-20T18:20:44 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2009-07-20 Cyril Robert <crobert@inverse.ca>
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolder.m (davResourceType): Removed
|
||||
a few things for the iPhone calDAV sync (schedule-inbox, schedule-outbox,
|
||||
vevent-collection, vtodo-collection).
|
||||
* SoObjects/SOGo/WORequest+SOGo.m (isIPhone): Added new method to detect
|
||||
iPhone's DAV client.
|
||||
|
||||
2009-07-20 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolder.m
|
||||
|
||||
@@ -2216,29 +2216,37 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
|
||||
NSMutableArray *colType;
|
||||
NSArray *gdRT, *gdVEventCol, *gdVTodoCol;
|
||||
NSString *login;
|
||||
WORequest *request;
|
||||
|
||||
colType = [NSMutableArray arrayWithCapacity: 10];
|
||||
[colType addObject: @"collection"];
|
||||
[colType addObject: [NSArray arrayWithObjects: @"calendar", XMLNS_CALDAV, nil]];
|
||||
|
||||
gdRT = [self groupDavResourceType];
|
||||
gdVEventCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 0],
|
||||
XMLNS_GROUPDAV, nil];
|
||||
[colType addObject: gdVEventCol];
|
||||
gdVTodoCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 1],
|
||||
XMLNS_GROUPDAV, nil];
|
||||
[colType addObject: gdVTodoCol];
|
||||
if ([nameInContainer isEqualToString: @"personal"])
|
||||
// WARNING
|
||||
// don't touch unless you're going to re-test caldav sync
|
||||
// with an iPhone AND lightning
|
||||
request = [context request];
|
||||
if (![request isIPhone])
|
||||
{
|
||||
login = [[context activeUser] login];
|
||||
if ([login isEqualToString: [self ownerInContext: self]])
|
||||
gdRT = [self groupDavResourceType];
|
||||
gdVEventCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 0],
|
||||
XMLNS_GROUPDAV, nil];
|
||||
[colType addObject: gdVEventCol];
|
||||
gdVTodoCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 1],
|
||||
XMLNS_GROUPDAV, nil];
|
||||
[colType addObject: gdVTodoCol];
|
||||
if ([nameInContainer isEqualToString: @"personal"])
|
||||
{
|
||||
// [colType addObject: [NSArray arrayWithObjects: @"schedule-calendar",
|
||||
// XMLNS_CALDAV, nil]];
|
||||
[colType addObject: [NSArray arrayWithObjects: @"schedule-inbox",
|
||||
XMLNS_CALDAV, nil]];
|
||||
[colType addObject: [NSArray arrayWithObjects: @"schedule-outbox",
|
||||
XMLNS_CALDAV, nil]];
|
||||
login = [[context activeUser] login];
|
||||
if ([login isEqualToString: [self ownerInContext: self]])
|
||||
{
|
||||
// [colType addObject: [NSArray arrayWithObjects: @"schedule-calendar",
|
||||
// XMLNS_CALDAV, nil]];
|
||||
[colType addObject: [NSArray arrayWithObjects: @"schedule-inbox",
|
||||
XMLNS_CALDAV, nil]];
|
||||
[colType addObject: [NSArray arrayWithObjects: @"schedule-outbox",
|
||||
XMLNS_CALDAV, nil]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
- (BOOL) handledByDefaultHandler;
|
||||
- (NSDictionary *) davPatchedPropertiesWithTopTag: (NSString *) topTag;
|
||||
- (BOOL) isIPhone;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#import <NGObjWeb/SoObjectRequestHandler.h>
|
||||
#import <NGObjWeb/WOApplication.h>
|
||||
#import <NGObjWeb/WEClientCapabilities.h>
|
||||
|
||||
#import <DOM/DOMProtocols.h>
|
||||
|
||||
@@ -102,4 +103,22 @@
|
||||
return patchedProperties;
|
||||
}
|
||||
|
||||
- (BOOL) isIPhone
|
||||
{
|
||||
WEClientCapabilities *cc;
|
||||
BOOL rc;
|
||||
|
||||
rc = NO;
|
||||
cc = [self clientCapabilities];
|
||||
if ([[cc userAgentType] isEqualToString: @"AppleDAVAccess"])
|
||||
{
|
||||
NSRange r = [[cc userAgent] rangeOfString: @"iPhone"];
|
||||
if (r.location != NSNotFound)
|
||||
rc = YES;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user