Monotone-Parent: 08b4d9cc0e0c16278d6212f7b7162bddfa4d3bb7

Monotone-Revision: 05d909a34ba534eac7075b29e41a123990cde5e1

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-07-24T18:45:52
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-07-24 18:45:52 +00:00
parent 86dd4e951a
commit 3f62c7906a
9 changed files with 109 additions and 97 deletions

View File

@@ -1,3 +1,14 @@
2007-07-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Scheduler/UIxCalListingActions.m,
UI/Contacts/UIxContactsListView.m, SoObjects/SOGo/SOGoUser.m,
SoObjects/SOGo/AgenorUserDefaults.m,
SoObjects/Contacts/SOGoContactGCSFolder.m,
SoObjects/Appointments/SOGoAppointmentFolder.m,
OGoContentStore/OCSiCalFieldExtractor.m,
OGoContentStore/OCSContactFieldExtractor.m: prefixed all quick
table fields with "c_".
2007-07-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/LDAPSource.m ([LDAPSource +initialize]): query

View File

@@ -43,38 +43,38 @@
value = [vCard fn];
if (value)
[fields setObject: value forKey: @"cn"];
[fields setObject: value forKey: @"c_cn"];
values = [vCard n];
if (values)
{
max = [values count];
if (max > 0)
{
[fields setObject: [values objectAtIndex: 0] forKey: @"sn"];
[fields setObject: [values objectAtIndex: 0] forKey: @"c_sn"];
if (max > 1)
[fields setObject: [values objectAtIndex: 1]
forKey: @"givenName"];
forKey: @"c_givenName"];
}
}
value = [vCard preferredTel];
if (value)
[fields setObject: value forKey: @"telephoneNumber"];
[fields setObject: value forKey: @"c_telephoneNumber"];
value = [vCard preferredEMail];
if (value)
[fields setObject: value forKey: @"mail"];
[fields setObject: value forKey: @"c_mail"];
values = [vCard org];
max = [values count];
if (max > 0)
{
[fields setObject: [values objectAtIndex: 0] forKey: @"o"];
[fields setObject: [values objectAtIndex: 0] forKey: @"c_o"];
if (max > 1)
[fields setObject: [values objectAtIndex: 1] forKey: @"ou"];
[fields setObject: [values objectAtIndex: 1] forKey: @"c_ou"];
}
adr = [vCard preferredAdr];
if (adr)
[fields setObject: [adr value: 3] forKey: @"l"];
[fields setObject: [adr value: 3] forKey: @"c_l"];
value = [[vCard uniqueChildWithTag: @"X-AIM"] value: 0];
[fields setObject: value forKey: @"screenname"];
[fields setObject: value forKey: @"c_screenname"];
return fields;
}

View File

@@ -105,30 +105,30 @@ static NSNumber *distantFutureNumber = nil;
row = [NSMutableDictionary dictionaryWithCapacity:8];
[row setObject: @"vevent" forKey: @"component"];
[row setObject: @"vevent" forKey: @"c_component"];
if ([uid isNotNull])
[row setObject:uid forKey: @"uid"];
[row setObject:uid forKey: @"c_uid"];
else
[self logWithFormat: @"WARNING: could not extract a uid from event!"];
[row setObject: [NSNumber numberWithBool: isAllDay]
forKey: @"isallday"];
forKey: @"c_isallday"];
[row setObject: [NSNumber numberWithBool: [_event isRecurrent]]
forKey: @"iscycle"];
forKey: @"c_iscycle"];
[row setObject: [NSNumber numberWithBool: [_event isOpaque]]
forKey: @"isopaque"];
forKey: @"c_isopaque"];
[row setObject: [NSNumber numberWithInt: [_event priorityNumber]]
forKey: @"priority"];
forKey: @"c_priority"];
if ([title isNotNull]) [row setObject: title forKey: @"title"];
if ([location isNotNull]) [row setObject: location forKey: @"location"];
if ([sequence isNotNull]) [row setObject: sequence forKey: @"sequence"];
if ([title isNotNull]) [row setObject: title forKey: @"c_title"];
if ([location isNotNull]) [row setObject: location forKey: @"c_location"];
if ([sequence isNotNull]) [row setObject: sequence forKey: @"c_sequence"];
if ([startDate isNotNull])
[row setObject: [self numberForDate: startDate]
forKey: @"startdate"];
forKey: @"c_startdate"];
if ([endDate isNotNull])
{
if (endDate == distantFuture)
@@ -143,7 +143,7 @@ static NSNumber *distantFutureNumber = nil;
= [NSNumber numberWithUnsignedInt:
[endDate timeIntervalSince1970] - i];
}
[row setObject: dateNumber forKey: @"enddate"];
[row setObject: dateNumber forKey: @"c_enddate"];
}
if ([_event isRecurrent]) {
@@ -155,14 +155,14 @@ static NSNumber *distantFutureNumber = nil;
more complex - thus we set it to a "reasonable" distant future */
date = distantFuture;
}
[row setObject:[self numberForDate:date] forKey: @"cycleenddate"];
[row setObject:[_event cycleInfo] forKey: @"cycleinfo"];
[row setObject:[self numberForDate:date] forKey: @"c_cycleenddate"];
[row setObject:[_event cycleInfo] forKey: @"c_cycleinfo"];
}
if ([participants length] > 0)
[row setObject: participants forKey: @"participants"];
[row setObject: participants forKey: @"c_participants"];
if ([partmails length] > 0)
[row setObject: partmails forKey: @"partmails"];
[row setObject: partmails forKey: @"c_partmails"];
if ([status isNotNull]) {
int code = 1;
@@ -171,15 +171,15 @@ static NSNumber *distantFutureNumber = nil;
code = 2;
else if ([status isEqualToString: @"CANCELLED"])
code = 0;
[row setObject:[NSNumber numberWithInt:code] forKey: @"status"];
[row setObject:[NSNumber numberWithInt:code] forKey: @"c_status"];
}
else {
/* confirmed by default */
[row setObject: [NSNumber numberWithInt:1] forKey: @"status"];
[row setObject: [NSNumber numberWithInt:1] forKey: @"c_status"];
}
[row setObject: [NSNumber numberWithUnsignedInt: accessClass]
forKey: @"classification"];
forKey: @"c_classification"];
organizer = [_event organizer];
if (organizer) {
@@ -187,7 +187,7 @@ static NSNumber *distantFutureNumber = nil;
email = [organizer valueForKey: @"rfc822Email"];
if (email)
[row setObject:email forKey: @"orgmail"];
[row setObject:email forKey: @"c_orgmail"];
}
/* construct partstates */
@@ -203,7 +203,7 @@ static NSNumber *distantFutureNumber = nil;
[partstates appendString: @"\n"];
[partstates appendFormat: @"%d", stat];
}
[row setObject:partstates forKey: @"partstates"];
[row setObject:partstates forKey: @"c_partstates"];
[partstates release];
return row;
}
@@ -245,43 +245,43 @@ static NSNumber *distantFutureNumber = nil;
row = [NSMutableDictionary dictionaryWithCapacity:8];
[row setObject: @"vtodo" forKey: @"component"];
[row setObject: @"vtodo" forKey: @"c_component"];
if ([uid isNotNull])
[row setObject:uid forKey: @"uid"];
[row setObject:uid forKey: @"c_uid"];
else
[self logWithFormat: @"WARNING: could not extract a uid from event!"];
[row setObject:[NSNumber numberWithBool:[_task isRecurrent]]
forKey: @"iscycle"];
forKey: @"c_iscycle"];
[row setObject:[NSNumber numberWithInt:[_task priorityNumber]]
forKey: @"priority"];
forKey: @"c_priority"];
[row setObject: [NSNumber numberWithBool: NO]
forKey: @"isallday"];
forKey: @"c_isallday"];
[row setObject: [NSNumber numberWithBool: NO]
forKey: @"isopaque"];
forKey: @"c_isopaque"];
if ([title isNotNull]) [row setObject: title forKey: @"title"];
if ([location isNotNull]) [row setObject: location forKey: @"location"];
if ([sequence isNotNull]) [row setObject: sequence forKey: @"sequence"];
if ([title isNotNull]) [row setObject: title forKey: @"c_title"];
if ([location isNotNull]) [row setObject: location forKey: @"c_location"];
if ([sequence isNotNull]) [row setObject: sequence forKey: @"c_sequence"];
if ([startDate isNotNull])
date = [self numberForDate: startDate];
else
date = [NSNull null];
[row setObject: date forKey: @"startdate"];
[row setObject: date forKey: @"c_startdate"];
if ([dueDate isNotNull])
date = [self numberForDate: dueDate];
else
date = [NSNull null];
[row setObject: date forKey: @"enddate"];
[row setObject: date forKey: @"c_enddate"];
if ([participants length] > 0)
[row setObject:participants forKey: @"participants"];
[row setObject:participants forKey: @"c_participants"];
if ([partmails length] > 0)
[row setObject:partmails forKey: @"partmails"];
[row setObject:partmails forKey: @"c_partmails"];
if ([status isNotNull]) {
code = 0; /* NEEDS-ACTION */
@@ -291,15 +291,15 @@ static NSNumber *distantFutureNumber = nil;
code = 2;
else if ([status isEqualToString: @"CANCELLED"])
code = 3;
[row setObject: [NSNumber numberWithInt: code] forKey: @"status"];
[row setObject: [NSNumber numberWithInt: code] forKey: @"c_status"];
}
else {
/* confirmed by default */
[row setObject:[NSNumber numberWithInt:1] forKey: @"status"];
[row setObject:[NSNumber numberWithInt:1] forKey: @"c_status"];
}
[row setObject: [NSNumber numberWithUnsignedInt: accessClass]
forKey: @"classification"];
forKey: @"c_classification"];
organizer = [_task organizer];
if (organizer) {
@@ -307,7 +307,7 @@ static NSNumber *distantFutureNumber = nil;
email = [organizer valueForKey: @"rfc822Email"];
if (email)
[row setObject:email forKey: @"orgmail"];
[row setObject:email forKey: @"c_orgmail"];
}
/* construct partstates */
@@ -323,7 +323,7 @@ static NSNumber *distantFutureNumber = nil;
[partstates appendString: @"\n"];
[partstates appendFormat: @"%d", stat];
}
[row setObject:partstates forKey: @"partstates"];
[row setObject:partstates forKey: @"c_partstates"];
[partstates release];
return row;
}

View File

@@ -143,7 +143,7 @@ static NSNumber *sharedYes = nil;
c_name = [object objectForKey: @"c_name"];
if ([[object objectForKey: @"component"] isEqualToString: @"vevent"])
if ([[object objectForKey: @"c_component"] isEqualToString: @"vevent"])
componentClass = [SOGoAppointmentObject class];
else
componentClass = [SOGoTaskObject class];
@@ -497,12 +497,12 @@ static NSNumber *sharedYes = nil;
Class objectClass;
qualifier = [EOQualifier qualifierWithQualifierFormat:@"c_name = %@", c_name];
records = [[self ocsFolder] fetchFields: [NSArray arrayWithObject: @"component"]
records = [[self ocsFolder] fetchFields: [NSArray arrayWithObject: @"c_component"]
matchingQualifier: qualifier];
if ([records count])
{
component = [[records objectAtIndex:0] valueForKey: @"component"];
component = [[records objectAtIndex:0] valueForKey: @"c_component"];
if ([component isEqualToString: @"vevent"])
objectClass = [SOGoAppointmentObject class];
else if ([component isEqualToString: @"vtodo"])
@@ -526,7 +526,7 @@ static NSNumber *sharedYes = nil;
md = [[_record mutableCopy] autorelease];
if ((tmp = [_record objectForKey:@"startdate"])) {
if ((tmp = [_record objectForKey:@"c_startdate"])) {
tmp = [[NSCalendarDate alloc] initWithTimeIntervalSince1970:
(NSTimeInterval)[tmp unsignedIntValue]];
[tmp setTimeZone: timeZone];
@@ -536,7 +536,7 @@ static NSNumber *sharedYes = nil;
else
[self logWithFormat:@"missing 'startdate' in record?"];
if ((tmp = [_record objectForKey:@"enddate"])) {
if ((tmp = [_record objectForKey:@"c_enddate"])) {
tmp = [[NSCalendarDate alloc] initWithTimeIntervalSince1970:
(NSTimeInterval)[tmp unsignedIntValue]];
[tmp setTimeZone: timeZone];
@@ -605,23 +605,23 @@ static NSNumber *sharedYes = nil;
NSArray *rules, *exRules, *exDates, *ranges;
unsigned i, count;
cycleinfo = [[_row objectForKey:@"cycleinfo"] propertyList];
cycleinfo = [[_row objectForKey:@"c_cycleinfo"] propertyList];
if (cycleinfo == nil) {
[self errorWithFormat:@"cyclic record doesn't have cycleinfo -> %@", _row];
return;
}
row = [self fixupRecord:_row fetchRange: _r];
[row removeObjectForKey:@"cycleinfo"];
[row setObject:sharedYes forKey:@"isRecurrentEvent"];
[row removeObjectForKey: @"c_cycleinfo"];
[row setObject: sharedYes forKey:@"isRecurrentEvent"];
startDate = [row objectForKey:@"startDate"];
endDate = [row objectForKey:@"endDate"];
startDate = [row objectForKey:@"c_startDate"];
endDate = [row objectForKey:@"c_endDate"];
fir = [NGCalendarDateRange calendarDateRangeWithStartDate:startDate
endDate:endDate];
rules = [cycleinfo objectForKey:@"rules"];
exRules = [cycleinfo objectForKey:@"exRules"];
exDates = [cycleinfo objectForKey:@"exDates"];
rules = [cycleinfo objectForKey:@"c_rules"];
exRules = [cycleinfo objectForKey:@"c_exRules"];
exDates = [cycleinfo objectForKey:@"c_exDates"];
ranges = [iCalRecurrenceCalculator recurrenceRangesWithinCalendarDateRange:_r
firstInstanceCalendarDateRange:fir
@@ -673,8 +673,8 @@ static NSNumber *sharedYes = nil;
components = [NSArray arrayWithObject: _component];
sqlString
= [NSString stringWithFormat: @" AND (component = '%@')",
[components componentsJoinedByString: @"' OR component = '"]];
= [NSString stringWithFormat: @" AND (c_component = '%@')",
[components componentsJoinedByString: @"' OR c_component = '"]];
}
else
sqlString = @"";
@@ -691,7 +691,7 @@ static NSNumber *sharedYes = nil;
end = (unsigned int) [_endDate timeIntervalSince1970];
return [NSString stringWithFormat:
@" AND (startdate <= %u) AND (enddate >= %u)",
@" AND (c_startdate <= %u) AND (c_enddate >= %u)",
end, start];
}
@@ -809,14 +809,14 @@ static NSNumber *sharedYes = nil;
/* prepare mandatory fields */
fields = [NSMutableArray arrayWithArray: _fields];
[fields addObject: @"uid"];
[fields addObject: @"startdate"];
[fields addObject: @"enddate"];
[fields addObject: @"c_uid"];
[fields addObject: @"c_startdate"];
[fields addObject: @"c_enddate"];
if (logger)
[self debugWithFormat:@"should fetch (%@=>%@) ...", _startDate, _endDate];
sql = [NSString stringWithFormat: @"(iscycle = 0)%@%@%@",
sql = [NSString stringWithFormat: @"(c_iscycle = 0)%@%@%@",
dateSqlString, componentSqlString, privacySqlString];
/* fetch non-recurrent apts first */
@@ -834,11 +834,11 @@ static NSNumber *sharedYes = nil;
}
/* fetch recurrent apts now */
sql = [NSString stringWithFormat: @"(iscycle = 1)%@%@%@",
sql = [NSString stringWithFormat: @"(c_iscycle = 1)%@%@%@",
dateSqlString, componentSqlString, privacySqlString];
qualifier = [EOQualifier qualifierWithQualifierFormat: sql];
[fields addObject: @"cycleinfo"];
[fields addObject: @"c_cycleinfo"];
records = [_folder fetchFields: fields matchingQualifier: qualifier];
if (records)
@@ -895,8 +895,8 @@ static NSNumber *sharedYes = nil;
static NSArray *infos = nil; // TODO: move to a plist file
if (!infos)
infos = [[NSArray alloc] initWithObjects: @"partmails", @"partstates",
@"isopaque", @"status", nil];
infos = [[NSArray alloc] initWithObjects: @"c_partmails", @"c_partstates",
@"c_isopaque", @"c_status", nil];
return [self fetchFields: infos from: _startDate to: _endDate
component: @"vevent"];
@@ -910,12 +910,13 @@ static NSNumber *sharedYes = nil;
if (!infos)
infos = [[NSArray alloc] initWithObjects:
@"c_name", @"component",
@"title", @"location", @"orgmail",
@"status", @"classification",
@"isallday", @"isopaque",
@"participants", @"partmails",
@"partstates", @"sequence", @"priority", nil];
@"c_name", @"c_component",
@"c_title", @"c_location", @"c_orgmail",
@"c_status", @"c_classification",
@"c_isallday", @"c_isopaque",
@"c_participants", @"c_partmails",
@"c_partstates", @"c_sequence", @"c_priority",
nil];
return [self fetchFields: infos from: _startDate to: _endDate
component: _component];

View File

@@ -33,9 +33,9 @@
#import "SOGoContactGCSEntry.h"
#import "SOGoContactGCSFolder.h"
#define folderListingFields [NSArray arrayWithObjects: @"c_name", @"cn", \
@"givenname", @"screenname", \
@"o", @"mail", @"telephonenumber", \
#define folderListingFields [NSArray arrayWithObjects: @"c_name", @"c_cn", \
@"c_givenname", @"c_screenname", \
@"c_o", @"c_mail", @"c_telephonenumber", \
nil]
@implementation SOGoContactGCSFolder
@@ -141,10 +141,10 @@
if (filter && [filter length] > 0)
{
qs = [NSString stringWithFormat:
@"(sn isCaseInsensitiveLike: '%@%%') OR "
@"(givenname isCaseInsensitiveLike: '%@%%') OR "
@"(mail isCaseInsensitiveLike: '%@%%') OR "
@"(telephonenumber isCaseInsensitiveLike: '%%%@%%')",
@"(c_sn isCaseInsensitiveLike: '%@%%') OR "
@"(c_givenname isCaseInsensitiveLike: '%@%%') OR "
@"(c_mail isCaseInsensitiveLike: '%@%%') OR "
@"(c_telephonenumber isCaseInsensitiveLike: '%%%@%%')",
filter, filter, filter, filter];
qualifier = [EOQualifier qualifierWithQualifierFormat: qs];
}

View File

@@ -38,7 +38,7 @@
@implementation AgenorUserDefaults
static NSString *uidColumnName = @"uid";
static NSString *uidColumnName = @"c_uid";
- (id) initWithTableURL: (NSURL *) tableURL
uid: (NSString *) userID

View File

@@ -296,7 +296,7 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
userDefaults
= [[AgenorUserDefaults alloc] initWithTableURL: AgenorProfileURL
uid: login
fieldName: @"defaults"];
fieldName: @"c_defaults"];
return userDefaults;
}
@@ -307,7 +307,7 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
userSettings
= [[AgenorUserDefaults alloc] initWithTableURL: AgenorProfileURL
uid: login
fieldName: @"settings"];
fieldName: @"c_settings"];
return userSettings;
}

View File

@@ -101,7 +101,7 @@
displayName = [currentContact objectForKey: @"displayName"];
if (!(displayName && [displayName length] > 0))
displayName = [currentContact objectForKey: @"cn"];
displayName = [currentContact objectForKey: @"c_cn"];
return displayName;
}

View File

@@ -188,8 +188,8 @@
forUser: userLogin];
if ([roleString isEqualToString: @"ComponentDAndTViewer"])
{
[component setObject: @"" forKey: @"title"];
[component setObject: @"" forKey: @"location"];
[component setObject: @"" forKey: @"c_title"];
[component setObject: @"" forKey: @"c_location"];
}
}
@@ -265,14 +265,14 @@
newInfo = [currentInfos nextObject];
while (newInfo)
{
uid = [newInfo objectForKey: @"uid"];
uid = [newInfo objectForKey: @"c_uid"];
currentInfo = [infos objectForKey: uid];
if (!currentInfo
|| [owner isEqualToString: userLogin])
{
[self _updatePrivacyInComponent: newInfo
fromFolder: currentFolder];
[newInfo setObject: owner forKey: @"owner"];
[newInfo setObject: owner forKey: @"c_owner"];
[infos setObject: [newInfo objectsForKeys: fields
notFoundMarker: marker]
forKey: uid];
@@ -325,9 +325,9 @@
[self _setupContext];
newEvents = [NSMutableArray array];
fields = [NSArray arrayWithObjects: @"c_name", @"owner", @"status",
@"title", @"startdate", @"enddate", @"location",
@"isallday", nil];
fields = [NSArray arrayWithObjects: @"c_name", @"c_owner", @"c_status",
@"c_title", @"c_startdate", @"c_enddate", @"c_location",
@"c_isallday", nil];
events = [[self _fetchFields: fields
forComponentOfType: @"vevent"] objectEnumerator];
oldEvent = [events nextObject];
@@ -396,8 +396,8 @@
[self _setupContext];
fields = [NSArray arrayWithObjects: @"c_name", @"owner", @"status",
@"title", @"enddate", nil];
fields = [NSArray arrayWithObjects: @"c_name", @"c_owner", @"c_status",
@"c_title", @"c_enddate", nil];
tasks = [[self _fetchFields: fields
forComponentOfType: @"vtodo"] objectEnumerator];