+0.9.0-20071217 (1.0 rc3)
+------------------------
+- mail folders state is now saved;
+- the status of participants in represented with an icon;
+
0.9.0-20071127 (1.0 rc2)
------------------------
- the user password is no longer transmitted in the url when logging in;
- invitation from Google calendar are now correctly parsed;
- it is now possible to search events by title in the Calendar module;
- all the writable calendars are now listed in the event edition dialog;
-- mail folders state is now save;
-- the status of participants in represented with an icon;
0.9.0-20071119 (1.0 rc1)
------------------------
defaultRoles = {
"ViewAllComponent" = ( "Owner", "Organizer", "Participant", "ComponentModifier", "ComponentResponder", "ComponentViewer" );
"ViewDAndT" = ( "Organizer", "Participant", "ComponentDAndTViewer" );
- "ModifyComponent" = ( "Owner", "Organizer" );
+ "ModifyComponent" = ( "Owner", "Organizer", "ComponentModifier" );
"RespondToComponent" = ( "Participant", "ComponentModifier", "ComponentResponder" );
"Access Object" = ( "Owner", "Organizer", "Participant", "ComponentModifier", "ComponentResponder", "ComponentViewer", "ComponentDAndTViewer" );
"Change Images and Files" = ( "Owner", "Organizer", "ComponentModifier" );
participants = nil;
state = nil;
if ([[oldEvent objectAtIndex: 9] length] > 0 &&
- [[oldEvent objectAtIndex: 10] length] > 0) {
- participants = [[oldEvent objectAtIndex: 9] componentsSeparatedByString: @"\n"];
- states = [[oldEvent objectAtIndex: 10] componentsSeparatedByString: @"\n"];
- for (i = 0; i < [participants count]; i++) {
- user = [SOGoUser userWithLogin: [oldEvent objectAtIndex: 11] roles: nil];
- participant = [participants objectAtIndex: i];
- if ([user hasEmail: participant]) {
- switch ([[states objectAtIndex: i] intValue]) {
- case iCalPersonPartStatNeedsAction:
- state = @"needs-action";
- break;
- case iCalPersonPartStatAccepted:
- state = @"accepted";
- break;
- case iCalPersonPartStatDeclined:
- state = @"declined";
- break;
+ [[oldEvent objectAtIndex: 10] length] > 0)
+ {
+ participants = [[oldEvent objectAtIndex: 9] componentsSeparatedByString: @"\n"];
+ states = [[oldEvent objectAtIndex: 10] componentsSeparatedByString: @"\n"];
+ for (i = 0; i < [participants count]; i++)
+ {
+ user = [SOGoUser userWithLogin: [oldEvent objectAtIndex: 11] roles: nil];
+ participant = [participants objectAtIndex: i];
+ if ([user hasEmail: participant]) {
+ switch ([[states objectAtIndex: i] intValue]) {
+ case iCalPersonPartStatNeedsAction:
+ state = @"needs-action";
+ break;
+ case iCalPersonPartStatAccepted:
+ state = @"accepted";
+ break;
+ case iCalPersonPartStatDeclined:
+ state = @"declined";
+ break;
+ }
+ [newEvent replaceObjectAtIndex: 9 withObject: state];
+ break;
+ }
}
- [newEvent replaceObjectAtIndex: 9 withObject: state];
- break;
- }
}
- }
if (participants == nil || i == [participants count])
[newEvent replaceObjectAtIndex: 9 withObject: @""];
- [newEvent removeObjectAtIndex: 10];
[newEvent removeObjectAtIndex: 11];
+ [newEvent removeObjectAtIndex: 10];
[newEvents addObject: newEvent];