Monotone-Parent: 36c59ea6f5d3705bff60a615e113d6b9e7a7501e

Monotone-Revision: 2ae12f2c67f3e74fddaf5d592a19e233d0806899

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-04-26T01:16:19
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-04-26 01:16:19 +00:00
parent e17d43a24e
commit 27d801a9fc
14 changed files with 332 additions and 142 deletions
+73 -35
View File
@@ -161,45 +161,39 @@ static BOOL shouldDisplayWeekend = NO;
- (void) setAppointment:(id) _apt
{
NSString *mailtoChunk;
NSString *myEmail;
ASSIGN (appointment, _apt);
}
ASSIGN(appointment, _apt);
// - (void) setAppointment:(id) _apt
// {
// NSString *mailtoChunk;
// NSString *myEmail;
// NSString *partmails;
/* cache some info about apt for faster access */
// ASSIGN(appointment, _apt);
// /* cache some info about apt for faster access */
mailtoChunk = [_apt valueForKey: @"orgmail"];
myEmail = [self emailForUser];
if ([mailtoChunk rangeOfString: myEmail].length > 0)
{
aptFlags.isMyApt = YES;
aptFlags.canAccessApt = YES;
}
else
{
NSString *partmails;
// mailtoChunk = [_apt valueForKey: @"orgmail"];
// myEmail = [self emailForUser];
// if ([mailtoChunk rangeOfString: myEmail].length > 0)
// {
// aptFlags.isMyApt = YES;
// aptFlags.canAccessApt = YES;
// }
// else
// {
// aptFlags.isMyApt = NO;
aptFlags.isMyApt = NO;
partmails = [_apt valueForKey: @"partmails"];
if ([partmails rangeOfString: myEmail].length)
aptFlags.canAccessApt = YES;
else
aptFlags.canAccessApt
= ([[_apt valueForKey: @"classification"] intValue]
== iCalAccessPublic);
}
}
- (void) setTasks: (NSArray *) _tasks
{
ASSIGN(tasks, _tasks);
}
- (NSArray *) tasks
{
return tasks;
}
// partmails = [_apt valueForKey: @"partmails"];
// if ([partmails rangeOfString: myEmail].length)
// aptFlags.canAccessApt = YES;
// else
// aptFlags.canAccessApt
// = ([[_apt valueForKey: @"classification"] intValue]
// == iCalAccessPublic);
// }
// }
- (id) appointment
{
@@ -248,6 +242,16 @@ static BOOL shouldDisplayWeekend = NO;
return privateAptTooltipFormatter;
}
- (void) setTasks: (NSArray *) _tasks
{
ASSIGN(tasks, _tasks);
}
- (NSArray *) tasks
{
return tasks;
}
/* TODO: remove this */
- (NSString *) shortTextForApt
{
@@ -496,6 +500,38 @@ static BOOL shouldDisplayWeekend = NO;
return activeFolders;
}
- (void) _updatePrivacyInObjects: (NSArray *) objectInfos
fromFolder: (SOGoAppointmentFolder *) folder
{
int hideDetails[] = {-1, -1, -1};
NSMutableDictionary *currentRecord;
int privacyFlag;
NSString *roleString, *userLogin;
NSEnumerator *infos;
userLogin = [[context activeUser] login];
infos = [objectInfos objectEnumerator];
currentRecord = [infos nextObject];
while (currentRecord)
{
privacyFlag = [[currentRecord objectForKey: @"classification"] intValue];
if (hideDetails[privacyFlag] == -1)
{
roleString = [folder roleForComponentsWithAccessClass: privacyFlag
forUser: userLogin];
hideDetails[privacyFlag] = ([roleString isEqualToString: @"ComponentDAndTViewer"]
? 1 : 0);
}
if (hideDetails[privacyFlag])
{
[currentRecord setObject: [self labelForKey: @"(Private Event)"]
forKey: @"title"];
[currentRecord setObject: @"" forKey: @"location"];
}
currentRecord = [infos nextObject];
}
}
- (NSArray *) _fetchCoreInfosForComponent: (NSString *) component
{
NSArray *currentInfos;
@@ -517,6 +553,8 @@ static BOOL shouldDisplayWeekend = NO;
[currentInfos makeObjectsPerform: @selector (setObject:forKey:)
withObject: [currentFolder ownerInContext: nil]
withObject: @"owner"];
[self _updatePrivacyInObjects: currentInfos
fromFolder: currentFolder];
[infos addObjectsFromArray: currentInfos];
currentFolder = [folders nextObject];
}