From 107964335ec222d61612541d15b9b9834c9d8572 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 18 Dec 2008 14:05:30 +0000 Subject: [PATCH 1/2] Monotone-Parent: 99f71142b4c9049e7cba05c730fa70b7c121288f Monotone-Revision: 74c949b35e429b1df360c4c434e28f1c2b1d1465 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-12-18T14:05:30 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/UIxAclEditor.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/UI/WebServerResources/UIxAclEditor.css b/UI/WebServerResources/UIxAclEditor.css index 1ec4fa5c0..78092dc02 100644 --- a/UI/WebServerResources/UIxAclEditor.css +++ b/UI/WebServerResources/UIxAclEditor.css @@ -60,6 +60,9 @@ UL#userList list-style-type: none; list-style-image: none; } +UL#userList LI +{ margin-left: 3px; } + UL#userList > LI._selected { background: #4b6983 !important; color: #fff !important; } From 60c96ee1051b4ba82e6727150cb6a803312a0edc Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 19 Dec 2008 02:40:24 +0000 Subject: [PATCH 2/2] Monotone-Parent: 74c949b35e429b1df360c4c434e28f1c2b1d1465 Monotone-Revision: 9b0d550ad7ecf3304e02f47b720a4aed7b1b3ce0 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2008-12-19T02:40:24 Monotone-Branch: ca.inverse.sogo --- .../Appointments/SOGoAppointmentObject.m | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index a5ead2168..0e7f756d9 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -699,7 +699,6 @@ BOOL isUpdate, hasChanged; elements = [NSMutableArray array]; - ownerUID = [[LDAPUserManager sharedUserManager] getUIDForEmail: originator]; emailEvent = [self component: NO secure: NO]; @@ -721,26 +720,29 @@ { // We check if we must send an invitation update // rather than just a normal invitation. + NSCalendarDate *recurrenceId; NSString *iCalString; - SOGoAppointmentObject *oldEventObject; + SOGoAppointmentObject *oldEventObject, *ownerEventObject; + iCalCalendar *calendar; oldEventObject = [self _lookupEvent: [newEvent uid] forUID: uid]; - + calendar = [oldEventObject calendar: NO secure: NO]; + ownerEventObject = nil; + + recurrenceId = [newEvent recurrenceId]; + if (![oldEventObject isNew]) { // We are updating an existing event. // If the event containts a recurrence-id, replace the proper // occurrence of the recurrent event. - iCalCalendar *calendar; iCalEvent *currentOccurence; iCalEventChanges *changes; NSArray *occurences; - NSCalendarDate *recurrenceId, *currentId; + NSCalendarDate *currentId; NSString *recurrenceTime; unsigned int i; - calendar = [oldEventObject calendar: NO secure: NO]; - recurrenceId = [newEvent recurrenceId]; if (recurrenceId == nil) oldEvent = [oldEventObject component: NO secure: NO]; else @@ -776,11 +778,21 @@ // if necessary and with the proper template. changes = [newEvent getChangesRelativeToEvent: oldEvent]; if ([[oldEvent sequence] compare: [newEvent sequence]] != NSOrderedSame - && [changes sequenceShouldBeIncreased]) + && [changes sequenceShouldBeIncreased]) isUpdate = YES; else hasChanged = NO; } + + else if (recurrenceId) + { + // We must add a recurrence to a non-existing event -- simply retrieve + // the event from the organizer's calendar + if (ownerEventObject == nil) + ownerEventObject = [self _lookupEvent: [newEvent uid] forUID: ownerUID]; + + newEvent = [ownerEventObject component: NO secure: NO]; + } // We generate the updated iCalendar file and we save it // in the database.