]> err.no Git - scalable-opengroupware.org/blobdiff - ChangeLog
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1219 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / ChangeLog
index a4c799c2f9a123cc68889f961fa9e7f8bec37e1e..b865d14f9149a605fd176ada094d7eae3f1e5176 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,505 @@
+2007-11-01  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Appointments/SOGoAppointmentObject.m
+       ([SOGoAppointmentObject -deleteWithBaseSequence:]): an email was
+       sent when modifying an event, when the event was considered
+       relevant. The same thing is now implemented for event deletion.
+
+       * SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults
+       -primaryFetchProfile]): make sure that the deserialized "values"
+       is an instance of NSMutableDictionary, otherwise we override it
+       with one.
+
+       * SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject
+       -contentForReply]): make use of the SOGoMailReply WO page.
+
+       * SoObjects/Mailer/SOGoMailReply.[hm]: new class module copied
+       from SOGoMailForward to handle mail replies instead. Only three
+       methods remaining: date, from and messageBody. The latter is
+       quoted properly.
+
+       * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject
+       -fetchMailForForwarding:sourceMail]): fetch attachments for
+       forwarded messages.
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+       -hasMessageAttachment]): initialize hasAttachment with "NO" to
+       avoid false positives.
+
+       * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor -extractQuickFieldsFromEvent:_event])
+       ([OCSiCalFieldExtractor -extractQuickFieldsFromTodo:_task]):
+       set title to an empty string where the event/task summary is null.
+
+       * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject
+       -setHeaders:newHeaders]): make sure there is a message id in the
+       headers dictionary, if not, generate one.
+       ([SOGoDraftObject -fetchMailForEditing:sourceMail]): retrieve the
+       message id from the existing draft.
+       ([SOGoDraftObject -mimeHeaderMapWithHeaders:_headers]): store the
+       message id in the header map.
+
+       * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions
+       -deleteFolderAction]): no longer prefix the target folder with
+       "folder".
+
+       * UI/MailerUI/UIxMailAccountActions.m ([UIxMailAccountActions
+       -listMailboxesAction]): base the folder type on the folder
+       traversal path.
+
+       * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder
+       -lookupName:_keyinContext:acquire:_acquire]): compare the full
+       traversal to the potential looked up folder with the special
+       folder names and return an object with the appropriate
+       SOGoMailFolder subclass.
+
+       * SoObjects/Mailer/SOGoMailBaseObject.m ([SOGoMailBaseObject
+       -traversalFromMailAccount]): don't prepend the whole string with
+       "/".
+
+       * SoObjects/Mailer/SOGoMailAccount.m
+       ([-lookupSentFolder:_keyinContext:_ctx])
+       ([-lookupDraftsFolder:_keyinContext:_ctx])
+       ([-lookupTrashFolder:_keyinContext:_ctx])
+       ([-lookupFiltersFolder:_key:_ctx]): removed methods.
+       ([SOGoMailAccount -inboxFolderNameInContext:])
+       ([SOGoMailAccount -draftsFolderNameInContext:_ctx])
+       ([SOGoMailAccount -sentFolderNameInContext:])
+       ([SOGoMailAccount -trashFolderNameInContext:]): no longer prefixes
+       the resulting name with "prefix" since we might return a nested
+       foldername.
+       ([SOGoMailAccount -allFolderPaths]): prefixes all special folder
+       names with "/". Sorts the resulting folder list with
+       localizedCaseInsensitiveCompare: instead of
+       caseInsensitiveCompare:. No longer use the -[lookupXXX] methods
+       that were removed, instead, we choose the appropriate class
+       depending on the folder name. And since we are in SOGoMailAccount,
+       we don't have to compute a traversal path to match the key with
+       the foldernames.
+       ([SOGoMailAccount
+       -folderWithTraversal:traversalandClassName:className]): new method
+       that returns an instance of the specified SOGoMailFolder subclass,
+       based on the traversal path passed as parameter.
+       ([SOGoMailAccount -inboxFolderInContext:_ctx])
+       ([SOGoMailAccount -draftsFolderInContext:_ctx])
+       ([-sentFolderInContext:_ctx])
+       ([SOGoMailAccount -trashFolderInContext:_ctx]): invoke the new
+       -folderWithTraversal:andClassName: method described above.
+
+       * SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults
+       -primaryFetchProfile]): make use of -[NSPropertyListSerialization
+       propertyListFromData:mutabilityOption:format:errorDescription:] to
+       deserialize the plist. Removed variant for libFoundation since it
+       should support the above.
+       ([AgenorUserDefaults -generateSQLForInsert])
+       ([AgenorUserDefaults -generateSQLForUpdate]): make use of
+       -[NSPropertyListSerialization
+       dataFromPropertyList:format:errorDescription:] to serialize the
+       plist. Removed variant for libFoundation since it should support
+       the above. Escape the backslashes from the resulting string.
+
+2007-10-31  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Mailer/SOGoMailFolder.[hm]: added a new subclass of
+       SOGoMailFolder: SOGoMailSpecialFolder.
+
+       * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount
+       -traversalFromMailAccount]): overridden method that returns the
+       initialized mutable string.
+       ([SOGoMailAccount -allFolderPaths]): take the special folder paths
+       with -traversalFromMailAccount and reposition them at the
+       beginning of the list. By creating the special folders during that
+       request, we also make sure that the folder exists thanks to the
+       new initialisation method of the new "SOGoSpecialMailFolder"
+       class.
+       ([SOGoMailAccount -lookupSentFolder:_keyinContext:_ctx]): new
+       method.
+       ([SOGoMailAccount -lookupTrashFolder:_keyinContext:_ctx]): new
+       method.
+       ([SOGoMailAccount -lookupName:_keyinContext:acquire:_flag]): no
+       longer use lookupImap4Folder.
+       ([SOGoMailAccount -lookupImap4Folder:_keyinContext:_ctx]): removed
+       method.
+
+       * SoObjects/Mailer/SOGoMailBaseObject.m ([SOGoMailBaseObject
+       -traversalFromMailAccount]): new method that returns the full
+       IMAP4 path to the object.
+
+       * SoObjects/SOGo/SOGoUser.m ([SOGoUser +initialize]): retain
+       "superUsernames" after fetching it from the ud.
+
+2007-10-30  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions
+       -eventsListAction]): substitude the start and end date with their
+       UTC counterpart, taking into account the offset from UTC related
+       to those dates instead of the current one. This renders
+       -[UIxCalMainView -userUTCOffset] obsolete because the computings
+       that occured in javascript are now done server-side.
+
+       * UI/Scheduler/UIxCalMainView.m ([UIxCalMainView -userUTCOffset]):
+       removed obsolete method.
+
+       * SoObjects/Mailer/NSString+Mail.m ([NSString -htmlToText]): new
+       method converting html content to plain text.
+
+       * SoObjects/Mailer/NSString+Mail.[hm]: new category module
+       enhancing NSString with utility methods pertaining to mail handling.
+
+       * SoObjects/Mailer/SOGoMailObject.m
+       ([-shouldFetchPartOfType:_typesubtype:_subtype]): removed obsolete method.
+       ([SOGoMailObject
+       -addRequiredKeysOfStructure:infopath:ptoArray:keysacceptedTypes:types]):
+       modified method to be always recursive and to take an array of the
+       accepted mime-types as parameter. The returned array now contains
+       the mime-type as well as the part keys.
+
+       * SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject
+       -contentForEditingOnParts:_prtskeys:_k]): removed obsolete method.
+       ([SOGoMailObject -contentForEditing]): rewrote method to take into
+       account the first text/plain part or the first text/html part
+       converted to text/plain with our new -[NSString htmlToText]
+       category method.
+
+       * UI/MailerUI/UIxMailActions.m ([-replyToAllAction]): invoke
+       "replyToAll:" with YES as parameter instead of NO.
+
+2007-10-29  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart
+       -davContentType]): ignore any possible parameter taken from the
+       mime-info of the body part.
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+       -lastFirstMessageNumber]): new accessor that returns the first
+       message number of the last series of messages.
+       ([UIxMailListView -fetchKeys]): request the bodystructure for each
+       listed message.
+       ([UIxMailListView -hasMessageAttachment]): extract the attachment
+       information from the message bodystructure.
+
+2007-10-26  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart
+       -GETAction:]): use the "application/octet-stream" mime type for
+       elements of type "application/x-xpinstall" to avoid confusing
+       Firefox.
+
+       * UI/PreferencesUI/UIxPreferences.m ([UIxPreferences -messageCheckList])
+       ([UIxPreferences -itemMessageCheckText])
+       ([UIxPreferences -userMessageCheck])
+       ([UIxPreferences -setUserMessageCheck:newMessageCheck]): new
+       methods for handling the retrieval of new messages automatically.
+
+       * SoObjects/SOGo/SOGoUser.m ([SOGoUser -messageCheck]): new method
+       that returns the interval of time between automatic message
+       retrievals.
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+       -defaultAction]): now expunges the last folder marked for expunge.
+
+       * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+       -trashInContext:_ctx]): now marks the container folder for
+       expunge.
+
+       * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder
+       -markForExpunge]): new method that marks the folder for the next
+       automatic expunge operation in the user settings.
+       ([SOGoMailFolder -expungeLastMarkedFolder]): new methods that
+       takes the last folder marked for expunge, expunges it and removes
+       it from the user settings, if it exists.
+
+2007-10-25  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+       -messageSubjectCellStyleClass]): added support for replied,
+       forwarded, forwarded and replied mails.
+
+       * SoObjects/Mailer/NSData+Mail.m ([NSData
+       -bodyDataFromEncoding:encoding]): new utility method that decodes
+       the NSData instance properly depending on the encoding string
+       passed as parameter.
+
+       * SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject
+       -fetchFileAttachmentKeys]): fetch the attachment encoding as well.
+
+       * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+       -stringForData:_datapartInfo:_info]): simplified by invoking
+       -bodyDataFromEncoding: from our new NSData category methods.
+
+       * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject
+       -fetchMailForEditing:sourceMail]): work-around a bug in SOPE-mime
+       where only the body part of the first of the keys fetched was
+       returned. Also decodes the body parts properly following their
+       encoding.
+
+       * SoObjects/Mailer/NSData+Mail.[hm]: new extension module that
+       extends the NSData class with utility methods useful for handling
+       mail.
+
+2007-10-23  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/SOGo/NSArray+Utilities.m
+       ([NSArray -stringsWithFormat:format]): replace instances of NSNull
+       with empty strings.
+
+       * SoObjects/SOGo/NSDictionary+Utilities.m ([NSDictionary
+       -keysWithFormat:keyFormat]): replace instances of NSNull with
+       empty strings.
+
+       * SoObjects/Contacts/SOGoContactLDAPFolder.m: if "displayName" is
+       empty, use "c_cn" instead.
+
+       * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount -inboxFolderInContext:_ctx])
+       ([SOGoMailAccount -draftsFolderInContext:_ctx])
+       ([SOGoMailAccount -sentFolderInContext:_ctx]): no longer make use
+       of the "SOGoSpecialFoldersInRoot" user defaults. The folders will
+       no always be specified from the root instead of sometimes from the
+       INBOX.
+
+2007-10-22  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * UI/Common/UIxPageFrame.m ([UIxPageFrame -commonLocalizableStrings])
+       ([UIxPageFrame -productLocalizableStrings]): invoke the new
+       +[SOGoUser language] method if the user is nil.
+
+       * SoObjects/SOGo/SOGoUser.m ([SOGoUser +language]): new method
+       that returns any generically-found language.
+       ([SoUser -language]): modified to call the above.
+       ([SOGoUser -language]): modified to call the above if the user
+       language has a null length.
+
+       * SoObjects/Contacts/SOGoContactLDIFEntry.m ([SOGoContactLDIFEntry
+       -davEntityTag]): modified to return the "hash" of the vCard string.
+
+       * UI/MailerUI/UIxMailActions.m ([UIxMailActions
+       -removeAllLabelsAction]): new method that removes all label flags
+       from the associated message.
+       ([UIxMailActions -addLabel1Action]
+       [UIxMailActions -addLabel2Action]
+       [UIxMailActions -addLabel3Action
+       [UIxMailActions -addLabel4Action]
+       [UIxMailActions -addLabel5Action]): new methods that adds label
+       flags to the associated message.
+       ([UIxMailActions -removeLabel1Action]
+       [UIxMailActions -removeLabel2Action]
+       [UIxMailActions -removeLabel3Action
+       [UIxMailActions -removeLabel4Action]
+       [UIxMailActions -removeLabel5Action]): new methods that removes
+       label flags from the associated message.
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView -msgLabels]):
+       new accessor that returns the labels associated with the message.
+
+       * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder
+       -allFolderPaths]): new method that returns all the paths of all
+       the subfolders of the folder object.
+       ([SOGoMailFolder -allFolderURLs]): new method replacing
+       subfoldersURL.
+
+       * SoObjects/SOGo/SOGoContentObject.m ([SOGoContentObject
+       -aclsForUser:uid]): object inherits the 'SOGoRole_ObjectEditor'
+       role from its parent folder.
+
+2007-10-19  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * SoObjects/SOGo/SOGoUser.m 
+       ([SOGoUser -rolesForObject:objectinContext:context]): allow
+       multiple super usernames to be defined. The user default 
+       SOGoSuperUsername is renamed SOGoSuperUsernames and must be
+       an array.
+
+2007-10-18  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/SOGo/SOGoWebAuthenticator.m ([SOGoWebAuthenticator
+       -userInContext:]): override the super method by returning
+       anonymous if the super returns nil.
+
+       * UI/Common/UIxPageFrame.m ([UIxPageFrame
+       -productLocalizableStrings]): new method that returns the
+       product-specific translation dictionary as a JSON hash.
+       ([UIxPageFrame -commonLocalizableStrings]): same as above but for
+       the "Common" framework.
+       ([UIxPageFrame -setJsFiles:newJSFiles]): new setter that enables
+       the requestor components to require additional Javascript files.
+       This is useful now that all the scripts are loaded at the end of
+       the HTML code.
+       ([UIxPageFrame -additionalJSFiles]): new getter related to the
+       above.
+
+2007-10-17  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * UI/MailerUI/UIxMailActions.m ([UIxMailActions -copyAction]):
+       implemented new web method.
+
+       * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+       -copyToFolderNamed:folderNameinContext:]): new method with the
+       code cut/pasted from -moveToFolderNamed:inContext:.
+       ([SOGoMailObject -moveToFolderNamed:folderNameinContext:]):
+       modified to use the code from -copyToFolderNamed:inContext:, which
+       is common between the two actions.
+
+       * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount -draftsFolderNameInContext:_ctx])
+       ([SOGoMailAccount -sentFolderNameInContext:])
+       ([SOGoMailAccount -trashFolderNameInContext:]): modified to take
+       the user settings into account.
+
+       * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions -setAsDraftsFolderAction])
+       ([UIxMailFolderActions -setAsSentFolderAction])
+       ([UIxMailFolderActions -setAsTrashFolderAction]): new web methods
+       that change the purpose of the active folder to "Sent", "Drafts"
+       or "Trash".
+
+       * UI/SOGoUI/SOGoACLAdvisory.m ([SOGoACLAdvisory -subject]): 
+       returns the subject as quoted-printable.
+
+       * UI/SOGoUI/SOGoACLAdvisory.[hm]: added two intermediary classes:
+       SOGoACLAdditionAdvisory and SOGoACLRemovalAdvisory implementing
+       the "aclMethod" method for the subsequent language-dependent
+       subclasses.
+
+       * UI/SOGoUI/SOGoFolderAdvisory.m ([SOGoFolderAdvisory -subject]):
+       returns the subject as quoted-printable.
+
+       * UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor
+       -dealloc]): release item, aptStartDate and aptEndDate.
+
+2007-10-16  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder
+       -initWithName:newNameinContainer:newContainer]): the owner of a
+       shared folder is set to "nobody" by default.
+
+       * UI/Common/UIxAclEditor.m ([UIxAclEditor -hasOwner]): new method
+       that returns whether the object has an owner or not.
+
+2007-10-15  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -ocsFolder]): create
+       the folder even if the current user is not its owner.
+
+2007-10-10  Ludovic Marcotte  <ludovic@inverse.ca>
+
+       * We now send advisory emails when folders
+         are created / deleted.
+
+       * Fixed the sending of advisory emails upon
+         ACL changes on folders.
+
+2007-10-10  Ludovic Marcotte  <ludovic@inverse.ca>
+
+       * UI/Scheduler/UIxComponentEditor.m
+       Implemented event/task priority support.
+
+       * SoObjects/Contacts/SOGoContactGCSFolder.m
+       Added CardDAV support. 
+
+       * SoObjects/SOGo/LDAPUserManager.m and SOGoUser.m
+       Implemented From: based on LDAP results based on
+       the MailFieldNames attribute (an array) specified
+       in every LDAP-based authentication sources.
+
+       * UI/MailPartViewers/UIxMailPartTextViewer.m and
+         UI/WebServerResources/MailerUI.css
+       We avoid replacing "\r\n" and "\n" with <br /> and
+       rather use CSS capabilities for proper formatting.
+       This is _WAY_ faster on very large mails.
+2007-10-10  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * UI/Scheduler/UIxComponentEditor.m
+       ([UIxComponentEditor -componentCalendar]): returns the calendar
+       object of the current event.
+
+2007-10-05  Ludovic Marcotte  <ludovic@inverse.ca>
+
+       * UI/WebServerResources/MailerUI.js
+       We check if at least one message is selected
+       before performing a Reply/Reply All/Forward
+       
+       * SoObjects/Appointments/SOGoAppointmentFolder.m
+       and others - implemented support for recurring
+       events (with some known limitations right now,
+       all soon to be fixed).
+       
+2007-10-04  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * Main/SOGo.m ([SOGo -isUserName:_keyinContext:_ctx]): removed
+       the constraint that a username can't start with a digit.
+
+2007-10-02  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * Moved SOPE/sope-gdl1/GDLContentStore from the default trunk
+       repository to Inverse's branch.
+
+2007-09-28  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * SoObjects/Mailer/SOGoDraftObject.m 
+       ([SOGoDraftObject -isValidAttachmentName:_name]): removed
+       constraint on space in file name.
+       ([SOGoDraftObject -saveAttachment:_attachwithMetadata:metadata]):
+       now removes from file name all characters preceding a backslash.
+       This happens with IE7 because the complete attachment file path
+       is sent.
+
+2007-09-25  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * SoObjects/Appointments/SOGoAptMailNotification.m 
+       ([SOGoAptMailNotification -appointmentURL]): set personal as the
+       default calendar where to add the event.
+
+       * UI/MainUI/SOGoUserHomePage.m ([SOGoUserHomePage +initialize]): 
+       activate the SOGoUIxDefaultModule user defaults.
+
+2007-09-21  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * UI/SOGoUI/UIxComponent.m 
+       ([UIxComponent -shortUserNameForDisplay]): returns the string
+       "wrongusernamepassword" when authentication failed.
+
+2007-09-17  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * UI/MailPartViewers/UIxMailPartICalViewer.m
+       ([UIxMailPartICalViewer -calendarFolder]): returns the "personal"
+       entry of the Calendars parent folder.
+
+       * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+       -messageSubject]): new accessor method to work-around a problem
+       within SOPE where a subject could be returned as an NSData.
+
+       * SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder
+       -appendPersonalSources]): make sure the value of the "c_path4" of
+       the returned rows are not NSNull, otherwise, discard them.
+
+2007-09-16  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder
+       -compare:otherFolder]): new overriden method that compares two
+       contact foldes based on their class and then transfer the control
+       to the super method in SOGoFolder.
+
+       * SoObjects/Contacts/SOGoContactLDAPFolder.m
+       ([SOGoContactLDAPFolder -compare:otherFolder]): new method that
+       compare two contact folders based on their class and then their
+       display name.
+
+       * SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -compare:otherFolder]):
+       new method for sorting folders. The folders are compared based on
+       their ownership, whether they are a main folder and finally
+       depending on their display name.
+
+       * SoObjects/SOGo/SOGoObject.m ([SOGoObject
+       -pathArrayToSOGoObject]): do not reorder the paths if the third
+       element is an instance of NSNull.
+
+       * SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder
+       -subFolders]): returns a sorted array using the "compare:"
+       selector.
+
 2007-09-14  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
+       * UI/Scheduler/UIxCalendarSelector.m ([UIxCalendarSelector
+       -calendars]): also returns the owner of the listed folders.
+
        * SoObjects/Appointments/SOGoAppointmentFolder.m
        ([-deleteEntriesWithIds:ids]): moved method into SOGoFolder.
 
 2006-09-13  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * UI/Contacts/UIxContactView.m: added many wrapper methods to
-       display blocks of data à la Thunderbird Addressbook. If data is
+       display blocks of data à la Thunderbird Addressbook. If data is
        available, those wrappers (around the NGVCard methods) will
        enclose the results in a proper HTML output with the correct label
        (if present), otherwise it will return an empty string.