diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 4fec6f76c..b69bb8d92 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,5 +1,8 @@ 2009-08-27 Wolfgang Sourdeau + * iCalEntityObject.m (-removeFromAttendees:): new helper method to + remove a specific attendee from the list. + * NSArray+NGCards.m (-renderedForCards): empty values are not returned, so as to avoid rendering attributes that do not have a value. diff --git a/SOPE/NGCards/iCalEntityObject.h b/SOPE/NGCards/iCalEntityObject.h index 1b8efeaa5..ba62d1ce9 100644 --- a/SOPE/NGCards/iCalEntityObject.h +++ b/SOPE/NGCards/iCalEntityObject.h @@ -106,11 +106,13 @@ typedef enum - (void) setStatus: (NSString *) _value; - (NSString *) status; -- (void) removeAllAttendees; - (void) addToAttendees: (iCalPerson *) _person; - (NSArray *) attendees; - (void) setAttendees: (NSArray *) attendees; +- (void) removeFromAttendees: (iCalPerson *) oldAttendee; +- (void) removeAllAttendees; + /* categorize attendees into participants and resources */ - (NSArray *) participants; - (NSArray *) resources; diff --git a/SOPE/NGCards/iCalEntityObject.m b/SOPE/NGCards/iCalEntityObject.m index e4475a611..11d7f82dc 100644 --- a/SOPE/NGCards/iCalEntityObject.m +++ b/SOPE/NGCards/iCalEntityObject.m @@ -302,6 +302,23 @@ [self addChild: _person]; } +- (void) removeFromAttendees: (iCalPerson *) oldAttendee +{ + NSMutableArray *newAttendees; + int count, max; + + newAttendees = [NSMutableArray arrayWithArray: [self attendees]]; + max = [newAttendees count]; + for (count = max - 1; count > -1; count--) + { + if ([[newAttendees objectAtIndex: count] + hasSameEmailAddress: oldAttendee]) + [newAttendees removeObjectAtIndex: count]; + } + + [self setAttendees: newAttendees]; +} + - (void) setAttendees: (NSArray *) attendees { [self removeAllAttendees];