+2007-08-16 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailEditor.m ([-patchFlagsInStore]): removed
+ useless stub method, of which the intention was implemented in
+ SOGoDraftObject.
+ ([-lookupSentFolderUsingAccount]): removed obsolete method.
+ ([-selectedMailIdentity]): removed obsolete method.
+ ([-lookupSentFolderUsingFrom]): removed obsolete method.
+ ([-storeMailInSentFolder:_path]): removed obsolete method, of
+ which the mechanism has been put in -[SOGoDraftObject sendMail]
+ method.
+ ([UIxMailEditor -_saveFormInfo], [UIxMailEditor -defaultAction])
+ ([UIxMailEditor -saveAction], [UIxMailEditor -sendAction]):
+ adapted algorithms to the new SOGoDraftObject methods.
+ ([-deleteAction]): removed method since local draft objects cannot
+ be removed by the user.
+
+ * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions
+ -expungeAction]): new method replacing the one previously found in
+ UIxMailListView.
+ ([UIxMailFolderActions -createFolderAction])
+ ([UIxMailFolderActions -renameFolderAction])
+ ([UIxMailFolderActions -deleteFolderAction])
+ ([UIxMailFolderActions -emptyTrashAction])
+ ([UIxMailFolderActions -subscribeAction])
+ ([UIxMailFolderActions -unsubscribeAction]): error situations
+ should have http return code 500 instead of 403.
+
+ * UI/MailerUI/UIxMailAccountActions.m ([UIxMailAccountActions
+ -composeAction]): new method replacing the one previously in
+ UIxMailMainFrame.
+
+ * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+ -imap4URLString]): removed overriden method (see below).
+
+ * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder -aclUsers]):
+ cache the mailbox acl.
+ ([SOGoMailFolder -aclsForUser:uid]): cache the mailbox acl.
+ ([SOGoMailFolder -setRoles:rolesforUser:uid]): reset the mailbox
+ acl cache.
+ ([SOGoMailFolder -httpURLForAdvisoryToUser:uid]): modified to use
+ the new method of determining the users mail accounts.
+
+ * SoObjects/Mailer/SOGoMailBaseObject.m ([-imap4URLString]): no
+ longer adds a "/" at the end of the string (the default for
+ folders), therefore this will be overriden in SOGoMailFolder
+ rather than in SOGoMailObject.
+
+ * UI/MailerUI/UIxMailListView.m ([-expungeAction]): removed
+ method, moved into the new UIxMailActions module class.
+
+ * SoObjects/Mailer/SOGoDraftsFolder.m ([SOGoDraftsFolder
+ -newDraft]): new method that returns a new SOGoDraftObject
+ instance with a unique filename based on the current timestamp and
+ the "newDraft" prefix.
+ ([SOGoDraftsFolder
+ -lookupName:nameinContext:localContextacquire:acquire]): overriden
+ method by detecting local drafts with their "newDraft" prefix.
+ ([SOGoDraftsFolder -isInDraftsFolder]): returns YES.
+
+ * SoObjects/Mailer/SOGoDraftsFolder.[hm]: rewrote class module
+ from scratch by making it a subclass of SOGoMailFolder.
+
+ * UI/MailerUI/UIxMailReplyAction.m: removed obsolete class
+ module.
+
+ * UI/MailerUI/UIxMailForwardAction.m: removed obsolete class
+ module.
+
+ * UI/MailerUI/UIxMailEditorAction.[hm]: removed obsolete class
+ module.
+
+ * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject -init]):
+ new method, initializing the new ivars: IMAP4ID, headers, text,
+ sourceURL and sourceFlag.
+ ([-spoolFileManager], [SOGoDraftObject -userSpoolFolderPath])
+ ([-_ensureUserSpoolFolderPath])
+ ([-saveMimeMessageToTemporaryFileWithHeaders:])
+ ([SOGoDraftObject -mimeMessageWithHeaders:_headers])
+ ([-deleteTemporaryMessageFile:], [-delete], [-content])
+ ([-GETAction:_ctx], [-DELETEAction:_ctx], [-fetchParts:])
+ ([-uid], [-flags], [-size], [-envelope]): removed methods.
+ ([SOGoDraftObject -storeInfo]): rewrote method to take the new
+ ivars into account.
+ ([SOGoDraftObject -setSourceURL:newSourceURL])
+ ([SOGoDraftObject -setSourceFlag:newSourceFlag]): new accessor
+ methods to store the url of the original message between accesses
+ so that, depending on the action taken (forward or reply), the
+ correct flag can be given.
+ ([SOGoDraftObject -setIMAP4ID:]): new accessor method that sets
+ the imap4 id that is returned for the message whenever it is saved
+ into the drafts folder.
+ ([SOGoDraftObject -save]): new method that takes in charge the
+ saving of the message in the IMAP drafts folder.
+ ([SOGoDraftObject -fetchMailForReplying:sourceMailtoAll:toAll]):
+ new method that fills the original data of the new message with
+ the reply content of the original message.
+ ([SOGoDraftObject -fetchMailForForwarding:sourceMail]): same as
+ above for message forwarding.
+ ([-spoolFileManager]): removed useless method (only returned the
+ default filemanager...)
+ ([SOGoDraftObject -mimeMessageAsData]): new method that returns
+ the resulting message as an NSData chunk.
+
+ * SoObjects/Mailer/SOGoMailObject+Draft.m: new extension module
+ containing a rewrite of the mail action methods found in
+ UI/Mailer/, that needed to be put in the SOGoMailObject class.
+ ([SOGoMailObject -subjectForReply]): new method that returns a
+ subject suitable for replies.
+ ([SOGoMailObject -contentForReply]): new method that returns the
+ textual content of an email, quoted for replying.
+ ([SOGoMailObject -filenameForForward]): new method that returns
+ the name of the filename that should contain the forwarded
+ message, based on its subject.
+ ([SOGoMailObject -subjectForForward]): explicit.
+
+2007-08-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailMainFrame.m ([UIxMailMainFrame
+ -mailAccounts]): rewrote method to return the name of the mail
+ accounts now available with the -[SOGoUser mailAccounts] method.
+ ([UIxMailMainFrame -showLinkBanner]): removed method.
+ ([UIxMailMainFrame -bannerToolbarStyle]): removed method.
+ ([UIxMailMainFrame -bannerConsumeStyle]): removed method.
+ ([UIxMailMainFrame -rootURL]): removed method.
+ ([UIxMailMainFrame -userRootURL]): removed method.
+ ([UIxMailMainFrame -calendarRootURL]): removed method.
+ ([UIxMailMainFrame -contactsRootURL]): removed method.
+ ([UIxMailMainFrame -hasErrorText])
+ ([UIxMailMainFrame -errorText])
+ ([UIxMailMainFrame -errorAlertJavaScript]): removed methods.
+ ([-composeAction]): removed method. Now provided by
+ UIxMailAccountActions.
+ ([UIxMailMainFrame -setHideFolderTree:_flag]): removed method.
+ ([UIxMailMainFrame -hideFolderTree]): removed method.
+ ([UIxMailMainFrame -treeRootClassName]): removed method.
+ ([UIxMailMainFrame +initialize]): removed method.
+ SOGoMailTreeRootClass userdefaults will no longer have any effect.
+
+ * UI/Common/WODirectAction+SOGo.m ([WODirectAction
+ -redirectToLocation:newLocation]): new method that implements the
+ same functionality as WOComponent.
+
+ * UI/Common/WODirectAction+SOGo.[hm]: new class extension module.
+
+ * UI/MailerUI/UIxMailView.m ([UIxMailView -mailIsDraft]): new
+ method that returns whether the current mail is store in the
+ drafts folder hierarchy.
+
+ * SoObjects/SOGo/SOGoUser.m ([-fullEmail]): removed method.
+ ([-primaryEmail]): removed method.
+ ([SOGoUser -primaryIMAP4AccountString]): removed method.
+ ([SOGoUser -mailAccounts]): new method that returns an array
+ containing description dictionaries for all the user mail
+ accounts. Each account also contain the user's identities for that
+ account.
+ ([SOGoUser -allIdentities]): new utility method that returns all
+ the user identities on all accounts.
+ ([SOGoUser -primaryIdentity]): new method return the first
+ identity of the first account.
+
+ * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder -httpURLForAdvisoryToUser:uid]):
+
+ * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount
+ -isInDraftsFolder]): returns NO.
+ ([-preferredIdentity]): removed method, replaced with -[SOGoUser
+ primaryIdentity].
+ ([SOGoMailAccount -draftsFolderInContext:_ctx]): new method.
+
+ * SoObjects/Mailer/SOGoMailBaseObject.m ([SOGoMailBaseObject
+ -isInDraftsFolder]): new method that detects if self is contained
+ by the drafts folder by calling itself on the container object.
+
+ * SoObjects/Mailer/SOGoMailAccounts.m ([-fetchAllIdentities]):
+ removed method.
+ ([-fetchIdentitiesWithEmitterPermissions]): removed method.
+ ([SOGoMailAccounts -toManyRelationshipKeys]): rewrote method to
+ return the name of the mail accounts now available with the
+ -[SOGoUser mailAccounts] method.
+
+ * SoObjects/Mailer/SOGoUser+Mail.[hm]: removed useless class
+ extension module.
+
+ * SoObjects/Mailer/SOGoMailIdentity.[hm]: removed useless class
+ module.
+
+ * SoObjects/SOGo/NSArray+Utilities.m ([NSArray
+ -keysWithFormat:format]): method that forward the method of the
+ same name to each member of the array, considering they all are
+ instances of NSDictionary.
+ ([NSArray -objectsForKey:key]): same principle as above.
+ ([NSArray -flattenedArray]): new method that transforms an array
+ of arrays into a single array containing all the elements of the
+ subarrays.
+
+ * SoObjects/SOGo/NSDictionary+Utilities.m ([NSDictionary
+ -keysWithFormat:keyFormat]): new method inspired by the python
+ string formatting system and which replaces occurences of "%{key}"
+ by the corresponding keys.
+
+2007-08-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * Main/SOGo.m ([SOGo -run]): check for channel-type specific
+ sql script before the generic one when initializing mandatory
+ system tables.
+
+2007-08-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/NSString+Utilities.m ([NSString
+ -pureEMailAddress]): new utility method inspired by the
+ "_rawSender" private method in SOGoDraftObject, which it now
+ replaces.
+
+ * SoObjects/SOGo/SOGoMailer.m: new abstraction class module that
+ provides a common API for sending emails, no matter what the
+ transport is.
+
+2007-08-08 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions
+ -quotasAction]): invoke "relativeImap4Name" instead of
+ "nameInContainer" since the latter also returns the "folder"
+ prefix.
+
+ * UI/MailerUI/UIxMailAccountActions.m ([UIxMailAccountActions
+ -listMailboxesAction]): declare the output as text/plain in UTF-8.
+
+ * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions
+ -deleteFolderAction]): fixed the url of the destination folder.
+
+ * Main/SOGo.m ([SOGo +initialize]): show the build date and
+ hostname at startup.
+
+2007-08-07 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/Appointments/SOGoCalendarComponent.m
+ ([SOGoCalendarComponent
+ -sendEMailUsingTemplateNamed:_pageNameforOldObject:_oldObjectandNewObject:_newObjecttoAttendees:_attendees]):
+ set the mail date to the current date string returned by our
+ rfc822DateString extension method.
+
+ * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView
+ -_gcsFoldersFromFolder:): ignore the personal folders who are
+ returned but don't really exist.
+
+2007-08-02 Francis Lachapelle <flachapelle@inverse.ca>
+
+ * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView _responseForResults:]):
+ has to return only one element.
+
+2007-08-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailPartViewers/UIxMailPartViewer.m ([UIxMailPartViewer
+ -content]): new method returning the decoded content of the
+ corresponding attachment as an NSData instance.
+ ([UIxMailPartViewer -filename]): if the "filename" parameter of
+ the metadata parameterList is empty, try to find out the filename
+ from the "disposition" metadata returned with the BODYSTRUCTURE
+ imap4 tag.
+
+ * UI/MailerUI/UIxMailMainFrame.m ([UIxMailMainFrame
+ -composeAction]): prefix the INBOX folder with "folder".
+
+ * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailBaseObject
+ -relativeImap4Name]): return nameInContainer stripped from its
+ first 6 characters since all folder names are prefixed with
+ "folder".
+
+ * SoObjects/Mailer/SOGoMailBaseObject.m ([SOGoMailBaseObject
+ -imap4URLString]): invoke -relativeImap4Name instead of
+ "nameInContainer" since the former will return the fixed IMAP4
+ foldername and the latter the SoObject name.
+
+ * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+ +initialize]): we now fetch the "BODYSTRUCTURE" key instead of "BODY".
+
+ * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount -inboxFolderNameInContext:])
+ ([SOGoMailAccount -draftsFolderNameInContext:_ctx])
+ ([SOGoMailAccount -sieveFolderNameInContext:_ctx])
+ ([SOGoMailAccount -sentFolderNameInContext:])
+ ([SOGoMailAccount -trashFolderNameInContext:]): prefix the folder
+ names with "folder".
+ ([SOGoMailAccount -inboxFolderInContext:_ctx])
+ ([SOGoMailAccount -sentFolderInContext:_ctx])
+ ([SOGoMailAccount -trashFolderInContext:_ctx]): no longer prefix
+ the folder names with "folder" since they are prefixed earlier.
+
+2007-07-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount -inboxFolderInContext:_ctx])
+ ([-sentFolderInContext:], [-trashFolderInContext:]): folder keys
+ all starts with "folder".
+
+ * SoObjects/SOGo/SOGoObject.m ([SOGoObject +initialize]): no
+ longer declare security info from here.
+
+ * SoObjects/Mailer/SOGoMailFolder.m
+ ([-isMessageKey:_keyinContext:_ctx]): removed useless method.
+ ([SOGoMailFolder -lookupName:_keyinContext:acquire:_acquire]):
+ folder names now always start with "folder".
+
+ * SoObjects/Mailer/SOGoMailAccount.m
+ ([-lookupName:inContext:acquire:]): folder names now always start
+ with "folder".
+
+2007-07-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailForwardAction.m ([UIxMailForwardAction
+ -forwardAction]): adapted to the new saveAttachment:withMetadata:
+ method (see below).
+
+ * UI/MailerUI/UIxMailEditor.m ([UIxMailEditor -saveAction]): added
+ code to save the attached filenames with the filename returned by
+ the web server as well as their mime types.
+
+ * UI/MailPartViewers/UIxMailPartMessageViewer.m ([UIxMailPartMessageViewer -fromAddresses])
+ ([UIxMailPartMessageViewer -toAddresses])
+ ([UIxMailPartMessageViewer -ccAddresses]): new methods returning
+ the corresponding fields separated with a ", " (if needed).
+
+ * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject
+ -saveAttachment:_attachwithMetadata:metadata]): new method
+ replacing -saveAttachment:withName: and which takes a dictionary
+ as parameter with the filename and the mime type of the
+ attachment.
+ The mimetype is then saved in a hidden text file.
+ ([SOGoDraftObject -contentTypeForAttachmentWithName:]): if exists,
+ take the mime type from the hidden text file related to the
+ attachment.
+
+ * SoObjects/Contacts/SOGoContactGCSFolder.m ()
+ ([SOGoContactGCSFolder
+ -lookupContactsWithFilter:filtersortBy:sortKeyordering:sortOrdering]):
+ return records if the db records are > 0 and not just > 1...
+
+2007-07-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/Contacts/UIxContactsListView.m ([-displayName]): removed
+ method.
+ ([UIxContactsListView -defaultSortKey]): changed to "displayName".
+
+ * SoObjects/Contacts/SOGoContactLDAPFolder.m
+ ([SOGoContactLDAPFolder
+ -lookupContactsWithFilter:filtersortBy:sortKeyordering:sortOrdering]):
+ translate the returned records to a normalized form.
+
+ * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder
+ -lookupContactsWithFilter:filtersortBy:sortKeyordering:sortOrdering]):
+ translate the returned records to a normalized form.
+
+ * UI/Scheduler/UIxCalListingActions.m,
+ UI/Contacts/UIxContactsListView.m, SoObjects/SOGo/SOGoUser.m,
+ SoObjects/SOGo/AgenorUserDefaults.m,
+ SoObjects/Contacts/SOGoContactGCSFolder.m,
+ SoObjects/Appointments/SOGoAppointmentFolder.m,
+ OGoContentStore/OCSiCalFieldExtractor.m,
+ OGoContentStore/OCSContactFieldExtractor.m: prefixed all quick
+ table fields with "c_".
+
+2007-07-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/LDAPSource.m ([LDAPSource +initialize]): query
+ the values for SOGoLDAPQueryLimit and SOGoLDAPQueryTimeout from
+ the application settings. If set, both limit will influence the
+ maximum size of the resultsets and the time taken to solve them.
+ ([LDAPSource -_initLDAPConnection]): initialize the limits.
+
+2007-07-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder -davNamespaces]): added new overriden
+ method that declares the DAV namespace related to CardDAV.
+ ([SOGoContactGCSFolder -davComplianceClassesInContext:]): new
+ method that declares the "access-control" and "addressbook-access"
+ classes to the list.
+
+ * SoObjects/Appointments/SOGoAppointmentFolder.m
+ ([-lookupActionForCalDAVMethod:]): removed method.
+ ([SOGoAppointmentFolder -davNamespaces]): added new overriden
+ method that declares the DAV namespace related to CalDAV.
+
+ * SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -davNamespaces]): new
+ optional method for subclasses which handle specific extensions to
+ the DAV protocol: CardDAV or CalDAV.
+ ([SOGoFolder
+ -lookupName:lookupNameinContext:localContextacquire:acquire]):
+ new overriden method that handles dav invocations for extensions
+ to DAV by returning an appropriate SoSelectorInvocation.
+
+ * SoObjects/SOGo/NSString+Utilities.m ([NSString
+ -asDavInvocation]): new method returning a dictionary with a "ns"
+ key representing the dav namespace and a "method" key representing
+ the dav method name of the request.
+
+ * UI/PreferencesUI/UIxPreferences.m ([UIxPreferences
+ +initialize]): scan the value of SOGoUIxUserCanChangePassword.
+ Default is "no".
+ ([UIxPreferences -shouldDisplayPasswordChange]): new template
+ method that returns the value of SOGoUIxUserCanChangePassword.
+
+ * UI/MainUI/SOGoUserHomePage.m ([SOGoUserHomePage +initialize]):
+ scan the value of SOGoUIxDefaultModule. If not set, the default
+ module defaults to "Calendar".
+ ([SOGoUserHomePage -defaultAction]): redirect the user to the
+ value of "SOGoUIxDefaultModule".
+
+2007-07-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/Contacts/UIxContactsListView.m ([UIxContactsListView
+ -contactInfos]): cache the results to avoid multiple invocations.
+
+ * SoObjects/Contacts/SOGoContactLDAPFolder.m
+ ([SOGoContactLDAPFolder -toOneRelationshipKeys]): check whether we
+ really should return something or if we fake to return nil...
+
+2007-07-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/SOGoUser.m ([SOGoUser +initialize]): set
+ acceptAnyUser to YES only when the SOGoAuthentificationMethod user
+ default is set to "bypass".
+
+ * SoObjects/SOGo/SOGoAuthenticator.m ([SOGoAuthenticator
+ -checkLogin:_loginpassword:_pwd]): accepts unverified connections
+ when authMethod is set to "bypass" from now on. This would avoid a
+ security concern with a default installation of SOGo.
+ AuthentificationMethod is now prefixed with "SOGo" for better
+ clarity.
+
+2007-07-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailFolderActions.m ([UIxMailFolderActions
+ -quotasAction]): new method that returns a json representation of
+ the mailbox quotas.
+
+2007-07-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/Mailer/SOGoMailBaseObject.m ([SOGoMailBaseObject
+ -imap4URL]): rewrote method to support accented mailbox names.
+ ([SOGoMailBaseObject imap4Password]): rewrote to simply use
+ SOGoAuthenticator's passwordInContext:.
+
+ * UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor
+ -takeValuesFromRequest:_rqinContext:_ctx]): explicitly set the
+ start and due dates to nil if hasStartDate and hasDueDate are
+ false.
+
+ * SoObjects/SOGo/SOGoAuthenticator.m ([SOGoAuthenticator
+ -passwordInContext:context]): made method public.
+
+ * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor
+ -extractQuickFieldsFromTodo:_task]): set "isallday" and "isopaque"
+ to false to avoid a null violation.
+
+2007-07-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+ -contentAsString]): returns the message encoded in ISO Latin 1
+ again.
+
+ * SoObjects/SOGo/SOGoUser.m ([SOGoUser +initialize]): read the
+ SOGoSuperUsername user defaults.
+ ([SOGoUser -initWithLogin:newLoginroles:newRoles]): simplified
+ method.
+ ([SOGoUser -rolesForObject:objectinContext:context]): if the
+ current user is the superuser, grant him/her the "owner" role.
+
+ * SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -ocsFolder]): create
+ the folder only if the current user is the owner of the future
+ folder.
+
+ * SoObjects/Appointments/SOGoCalendarComponent.m
+ ([SOGoCalendarComponent -contentAsString]): we return the content
+ based on the permissions returned by the security manager instead
+ of by looking at the user roles.
+
+ * SoObjects/Appointments/SOGoAppointmentFolder.m
+ ([SOGoAppointmentFolder -calendarFolders]): read the calendar
+ folders of the user to whom this folder belongs instead of the
+ active user. This way, a delegate user will be able to have the
+ same view that the original user has if he connects from his user
+ directory.
+
+ * Main/SOGo.m ([SOGo -lookupUser:_keyinContext:]): check if the
+ user exists before creating the SOGoUserFolder instance. If not,
+ returns nil.
+
+ * UI/MailerUI/UIxMailSourceView.[hm]: new class module designed to
+ return the message source code in plain text.
+
+ * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+ -contentAsString]): returns the message encoded in UTF8.
+
+2007-07-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * OGoContentStore/iCalRepeatableEntityObject+OCS.m
+ ([iCalRepeatableEntityObject -cycleInfo]): no longer take the
+ leading tagname into account when serializing the element values.
+
+ * Main/SOGoProductLoader.m: only load bundle directories ending
+ with the "SOGo" extension.
+
+ * Main/SOGo.m ([SOGo
+ -_checkTableWithCM:cmtableURL:urlandType:tableType]): empty the
+ result set if the query has caused no exception. Otherwise we get
+ an "evaluation is in progress exception".
+
+2007-06-29 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults
+ -generateSQLForInsert]): initialize error to nil before the
+ serialization. Otherwise the method can get confused if it ever is
+ initialized to something else.
+
+ * SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder
+ -folderIsMandatory]): returns NO unconditionnally.
+
+ * SoObjects/Contacts/SOGoContactFolders.m ([SOGoContactFolders
+ -appendPersonalSources]): add the "personal" folder to the list of
+ user folders even if it doesn't exist, so that it is created when
+ the user accesses it.
+
+ * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder
+ -folderIsMandatory]): returns YES if nameInContainer is set to
+ "personal", which is the default address book.
+
+ * SoObjects/Appointments/SOGoAppointmentFolder.m
+ ([SOGoAppointmentFolder -folderIsMandatory]): returns YES since
+ users must have one Calendar folder (one and only one).
+ ([SOGoAppointmentFolder -_privacySqlString]): unescape the
+ escaping '\' so make the carriage return a real one. This way,
+ PgSQL 8 won't complain about escaping the string.
+
+ * SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -ocsFolder]): new
+ method that create the folder if considered mandatory.
+ ([SOGoFolder -folderIsMandatory]): new method that determines
+ whether the folder should be created automatically or not. To be
+ overriden by subclasses.
+
+ * Main/SOGo.m ([SOGo -run]): override method and create the
+ missing system tables if needed.
+
+2007-06-28 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/WOContext+UIxMailer.m ([WOContext
+ -mailDateFormatter]): returns the user's date formatter.
+
+ * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject -date]):
+ applies the user timezone to the date object before returning it.
+
+ * UI/Common/UIxSortButton.m: removed useless class module.
+
+ * UI/Common/UIxSortableTableHeader.m: removed useless class
+ module.
+
+ * UI/Contacts/UIxContactsListView.m ([UIxContactsListView
+ -contactInfos]): use the "asc" url parameter instead of "desc" to
+ determine the ordering.
+ ([-sortOrdering]): removed method.
+ ([UIxContactsListView -init]): removed the "searchText" ivar.
+ (general): the template no longer use the UIxSortableTableHeader
+ components.
+
+ * UI/MailerUI/UIxMailListView.m ([UIxMailListView
+ -defaultSortKey]): default sort following the messages arrival
+ instead of their date.
+ ([-isSortedDescending]): removed method.
+ ([-imap4SortOrdering]): use the "asc" url parameter instead of
+ "desc" to determine the ordering.
+ (general): the template no longer use the UIxSortableTableHeader
+ components.
+
+2007-06-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/MailerUI/UIxMailListView.m ([UIxMailListView -sleep]):
+ removed method.
+ ([-setQualifier:_msg], [-qualifier]): removed methods.
+ ([UIxMailListView -defaultAction]): added code to handle the
+ search criteria and value passed as url parameters. Also, we now
+ handle the same search criterias as Thunderbird/Icedove.
+
+2007-06-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * UI/PreferencesUI/UIxJSONPreferences.m ([UIxJSONPreferences
+ -jsonDefaultsAction]): bug fix: returns a WOResponse instance with
+ the string instead of the string itself.
+ ([UIxJSONPreferences -jsonSettingsAction]): same as above.
+
+ * SoObjects/SOGo/SOGoUser.m ([SOGoUser +initialize]): new module
+ bool var "acceptAnyUser" that is set when the AuthenticationMethod
+ user default is nil.
+ ([SOGoUser -initWithLogin:newLoginroles:newRoles]):
+ unconditionnally returns an instance whenever acceptAnyUser is set.
+
+2007-06-21 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * Main/sogod.m (main): prevent SOGo from running as root.
+
+2007-06-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/SOGoUser.m ([SOGoUser
+ -setCurrentPassword:newPassword]): new stub method.
+ ([SOGoUser -dateFormatterInContext:context]): new method that
+ returns an instance of SOGoDateFormatter configured based on the
+ user defaults.
+
+ * UI/Common/UIxPageFrame.m ([UIxPageFrame
+ -relativePreferencesPath]): new method.
+
+ * UI/Scheduler/UIxComponentEditor.m ([-titleDateFormatter]):
+ removed useless method.
+
+ * SoObjects/SOGo/SOGoDateFormatter.m: rewrote class to accept
+ different configurable formats (long and short date + time).
+
+ * SoObjects/SOGo/SOGoDateFormatter.[hm]: moved from UI/SOGoUI/.
+
+ * SoObjects/Mailer/SOGoMailAccounts.m ([SOGoMailAccounts
+ -isInternetRequest]): removed method.
+
+ * SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults
+ -jsonRepresentation]): new method with an explicit name.
+
+ * UI/PreferencesUI/product.plist: new bundle that provides a web
+ ui for handling user defaults.
+
+ * UI/Scheduler/UIxTaskView.[hm]: removed unused module.
+
+ * UI/Scheduler/UIxAppointmentView.[hm]: removed unused module.
+
+ * SoObjects/SOGo/WOContext+Agenor.[hm]: removed unused module.
+
+2007-06-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
+
+ * SoObjects/SOGo/SOGoLRUCache.m: removed unused module.
+