From: wolfgang Date: Mon, 17 Dec 2007 21:29:35 +0000 (+0000) Subject: git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1308 d1b88da0-ebda-0310... X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b9226ad90ca81337db63f17da75465de43cddc7;p=scalable-opengroupware.org git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1308 d1b88da0-ebda-0310-925b-ed51d893ca5b --- diff --git a/NEWS b/NEWS index 0d4165cf..35889fda 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +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; @@ -14,8 +19,6 @@ - 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) ------------------------ diff --git a/SoObjects/Appointments/product.plist b/SoObjects/Appointments/product.plist index af1952f6..3250fef2 100644 --- a/SoObjects/Appointments/product.plist +++ b/SoObjects/Appointments/product.plist @@ -38,7 +38,7 @@ 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" ); diff --git a/UI/MailerUI/UIxMailFolderActions.m b/UI/MailerUI/UIxMailFolderActions.m index dcdfa6e6..bb28e284 100644 --- a/UI/MailerUI/UIxMailFolderActions.m +++ b/UI/MailerUI/UIxMailFolderActions.m @@ -84,6 +84,8 @@ NSURL *destURL; path = [[srcURL path] stringByDeletingLastPathComponent]; + if (![path hasSuffix: @"/"]) + path = [path stringByAppendingString: @"/"]; destURL = [[NSURL alloc] initWithScheme: [srcURL scheme] host: [srcURL host] diff --git a/UI/Scheduler/UIxCalListingActions.m b/UI/Scheduler/UIxCalListingActions.m index 04e3355d..2d005687 100644 --- a/UI/Scheduler/UIxCalListingActions.m +++ b/UI/Scheduler/UIxCalListingActions.m @@ -349,33 +349,35 @@ 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]; diff --git a/UI/Scheduler/UIxComponentEditor.m b/UI/Scheduler/UIxComponentEditor.m index 4e61724d..aa756c84 100644 --- a/UI/Scheduler/UIxComponentEditor.m +++ b/UI/Scheduler/UIxComponentEditor.m @@ -1096,7 +1096,8 @@ { if (![sm validatePermission: SOGoCalendarPerm_ModifyComponent onObject: clientObject - inContext: context]) + inContext: context] + || [component userIsOrganizer: currentUser]) toolbarFilename = adminToolbar; else toolbarFilename = @"SOGoComponentClose.toolbar";