30 November
2007

SOGo

SOGo

  • SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder -appendSubscribedSources]):
    don't include sources for which we don't have the SOGoPerm_AccessObject permission.
  • SoObjects/SOGo/NSCalendarDate+SOGo.m ([NSCalendarDate -rfc822DateString]):
    we want positive timezones to be specified with a leading "+" too.


29 November
2007

NGCards

SOGo/SOPE/NGCards

  • iCalDateTime.m ([iCalDateTime -timeZone]):
    log a message if the corresponding timezone isn't found.


SOGo

SOGo

  • SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder +folderWithSubscriptionReference:
    referenceinContainer:aContainer]): return nil if the subscribed folder has no display name (meaning it no longer exists).
  • SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder -appendPersonalSources]):
    don't include sources which are no longer existing.
  • SoObjects/SOGo/SOGoContentObject.m ([SOGoContentObject -ocsPathOfContainer]):
    return the intended value, not that of ocsPath...
  • SoObjects/Appointments/SOGoCalendarComponent.m ([SOGoCalendarComponent -sendResponseToOrganizer]):
    send the message only of sendEMailNotifications is set.
  • SoObjects/SOGo/SOGoObject.m ([SOGoObject -subscriptionRoles]):
    new method that returns the roles that qualifies for adding the special "authorized subscribed" sogo role.


27 November
2007

GDLContentStore

SOGo/SOPE/GDLContentStore

  • GCSFolder.m ([GCSFolder -versionOfContentWithName:
    ], [GCSFolder -fetchContentWithName:]): ignore records marked as deleted. ([GCSFolder -deletionOfContentWithName:]): don't.


SOGo

SOGo

  • SoObjects/SOGo/SOGoContentObject.m ([SOGoContentObject -aclsForUser:
    uid]): copy all the roles from the container. If the object is new, make sure the roles contain "ObjectEditor" if and only if "ObjectCreator" is present.
  • SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder -aclsForUser:
    uid]): no longer take the "ObjectReader" role into account.
  • UI/Common/UIxFolderActions.m ([UIxFolderActions -canAccessContentAction]):
    always return HTTP status 204. We want this because we are relying on the SOPE access control manager to grant access to this method. This requires a fine-tuned access control in SOGo itself...
  • UI/Contacts/UIxContactsUserRightsEditor.m ([-userCanReadObjects]) ([-setUserCanReadObjects:
    userCanReadObjects]): removed methods.
  • UI/MailerUI/UIxMailUserRightsEditor.m ([UIxMailUserRightsEditor -updateRights]):
    no longer take the "ObjectReader" role into account. ([-userCanReadMails], [-setUserCanReadMails:userCanReadMails]): removed methods.
  • SoObjects/Appointments/SOGoFreeBusyObject.m ([SOGoFreeBusyObject -fetchFreeBusyInfosFrom:
    _startDateto:_endDate]): specify context when looking up the Calendar folder.


26 November
2007

NGObjWeb

SOPE/sope-appserver/NGObjWeb

  • WOComponent+Sync.m:
    use -setValue:forKey: instead of -takeValue:forKey: on gnustep-base (might also make sense on Cocoa starting with 10.4). As suggested by Sebastian (v4.7.18)


NGCards

SOGo/SOPE/NGCards

  • iCalCalendar.m ([iCalCalendar -versitString]):
    same as below, with "2.0" as value.
  • NGVCard.m ([NGVCard -versitString]):
    overriden method by forcing version to "3.0" since it's the format we comply with.


SOGo

SOGo

  • UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -todo]):
    same as below.
  • UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -event]):
    create the event if it doesn't exist.
  • UI/PreferencesUI/UIxPreferences.m ([UIxPreferences -userHasCalendarAccess]) ([UIxPreferences -userHasMailAccess]):
    same as below, for displaying preference tabs.
  • UI/Common/UIxPageFrame.m ([UIxPageFrame -userHasCalendarAccess]):
    new accessor for the link banner. ([UIxPageFrame -userHasMailAccess]): same as above.
  • SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder -toManyRelationshipKeys]):
    do not report the path to modules to which the user has no access. No longer cache this information statically, the array will be generated at each call. ([SOGoUserFolder -lookupName:_keyinContext:_ctxacquire:_flag]): ignore the path to modules to which the user has no access.
  • SoObjects/SOGo/SOGoUser.m ([SOGoUser -canAccessModule:
    module]): new method that returns whether the user has access to the specified module.
  • SoObjects/SOGo/LDAPSource.m ([LDAPSource -initFromUDSource:
    udSource]): take a new parameter named 'ModulesContraints' that defines a set of constraints for accessing specified named modules. This is an optout, meaning the modules will be present unless a constraint is specified.
  • SoObjects/Appointments/SOGoAppointmentFolder.m ([SOGoAppointmentFolder -roleForComponentsWithAccessClass:
    accessClassforUser:uid]): cache acl to reduce method calls. ([SOGoAppointmentFolder -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatetitle:titlecomponent:_component]): if the user is not the current user, we strip the useless info from the meta data.
  • UI/Common/WODirectAction+SOGo.m ([WODirectAction -labelForKey:
    key]): new category method.
  • UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -event]):
    same as below.
  • UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -todo]):
    request a secured version of the component.
  • UI/MailPartViewers/UIxMailPartViewer.m ([-fallbackStringEncoding]):
    removed method. ([UIxMailPartViewer -flatContentAsString]): we no longer use [self fallbackStringEncoding]. Instead we directly specify NSISOLatin1StringEncoding if UTF-8 has failed.
  • UI/MailPartViewers/UIxMailPartICalViewer.m ([-fallbackStringEncoding]):
    removed method.


25 November
2007

SOGo

SOGo

  • SoObjects/Mailer/SOGoMailForward.m Use [sourceMail decodedSubject] instead of [sourceMail subject] Signature fix in -signature - see the comment for SOGoMailReply.
  • SoObjects/Mailer/SOGoMailObject.m Improved -stringFromData:
    to try UTF-8 then fallback to Latin1
  • SoObjects/Mailer/SOGoMailReply.m Modified -messageBody to strip the signature from the reply. Also modified -signature to add "-- \n%@" instead of the broken ""--\r\n%@" pattern.
  • UI/MailPartViewers/UIxMailPartAlternativeViewer.m We now favor text/calendar parts over text/html and text/plain parts when viewing a multipart/alternative mail. This allows us to show the email invitations coming from Microsoft Outlook.
  • UI/MailerUI/UIxMailAccountActions.m Signature fix in -composeAction - see the comment for SOGoMailReply.
  • UI/MailPartViewers/UIxMailPartViewer.m Modified -flatContentAsString to use UTF-8 as the default fallback encoding for 8-bit content.
  • SoObjects/Mailer/SOGoDraftObject.m Modified _fillInReplyAddresses:
    replyToAll:envelope: so that if there's no recipient, we add at least ourself to the list. Fixed a mem leak in the same method.


22 November
2007

NGCards

SOGo/SOPE/NGCards

  • iCalEntityObject.m ([iCalEntityObject -compare:
    otherObject]): safely compare between objects which may be nil.


SOGo

SOGo

  • UI/MailPartViewers/UIxMailRenderingContext.m ([UIxMailRenderingContext -viewerForBodyInfo:
    _info]): same as below.
  • SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject -plainTextContentFetchKeys]):
    same as below.
  • SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart +bodyPartClassForMimeType:
    mimeTypeinContext:_ctx]): accept the application/ics type from Google Calendar.
  • SoObjects/SOGo/NSCalendarDate+SOGo.m ([NSCalendarDate +distantFuture]):
    rewrote method to return an object that is compatible with NSCalendarDate, unlike the implementation in GNUstep. ([NSCalendarDate +distantPast]): same as above.


21 November
2007

NGLdap

SOPE/sope-ldap/NGLdap

  • NGLdapConnection.m:
    replaced some -cString calls with -UTF8String (v4.7.34)
  • NGLdapURL.m:
    removed local URL escaping and replaced it with NSString+misc (v4.7.33)
  • NSString+DN.m:
    removed cString based space-stripping function and replaced it with the method from NGExtensions (v4.7.32)


SOGo

SOGo

  • UI/MailPartViewers/UIxMailPartHTMLViewer.m:
    fixed infinite loop when charset is us-ascii, match it to ascii rather than none.
  • SoObjects/Appointments/SOGoAppointmentFolder.m ([SOGoAppointmentFolder -fetchFields:
    _fieldsfromFolder:_folderfrom:_startDateto:_endDatetitle:titlecomponent:_component]): added search on the c_title column too.
  • UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions -eventsListAction]):
    take the "search" url parameter into account. ([UIxCalListingActions -eventsListAction]): fetch events matching the title filter too.
  • UI/MainUI/SOGoRootPage.m ([SOGoRootPage -connectAction]):
    the user infos are now posted as "application/x-www-form-urlencoded". So we have to have like a form has been posted.


SOGo

SOGo

  • UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -calendarList]):
    also returns the calendar of the current event. This is required so the proper calender is selected when you view an event to which you don't have write access.
  • UI/Common/UIxAclEditor.m ([UIxAclEditor -currentUserIsOwner]):
    also returns true for super users.


SOGo

SOGo

  • SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject -lookupImap4BodyPartKey:
    inContext:]): return a correct body part when "0" is requested, taking its mime-type into account.
  • UI/MailPartViewers/UIxMailRenderingContext.m ([UIxMailRenderingContext -flatContentForPartPath:
    _partPath]): return content for part "0", which would be the message body.


20 November
2007

NGXmlRpc

SOPE/sope-appserver/NGXmlRpc

  • NGXmlRpcClient.m:
    add redirect locations to error reason (v4.7.17)


SOGo

SOGo

  • UI/MailPartViewers/UIxMailPartHTMLViewer.m ([_UIxHTMLMailContentHandler -setContentEncoding:
    newContentEncoding]): new method that specifies an xml charset to return to the parser. ([UIxMailPartHTMLViewer -flatContentAsString]): specifies the charset to the content handler before parsing.
  • SoObjects/Appointments/SOGoAppointmentObject.m:
    don't take an empty c_name as a valid response when looking up an event. Create one in that case instead.


19 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Contact.m:
    Always render the superuser account (10000) as an Account entity and not as a Contact. (v1.5.39)
  • zOGIAction+Object.m:
    Make the objectId of an objectLink entity numeric rather than a string. Fix case where objectId of an Unknown entity was an EOGlobalId rather than an integer. (v1.5.39)
  • zOGIAction+Team.h|.m:
    Add support for updating the members of a Team via the memberObjectIds attribute (v1.5.39)
  • zOGIAction+Project.m:
    Return objectId of a Project entity as an integer. (v1.5.39)
  • zOGIRPCAction.m:
    Support "revolve" feature when searching for Contact or Enterprise objects, support filters when performing getObjectsById, and log duration of getObjectsById calls. Enable updating Teams via putObject. (v1.5.39)
  • zOGIAction+Document.m:
    Remove superfluous log message. Fix error when an object was requested from an emtpy array. Fixes Consonance / ZOGI.Net issue#22. (v1.5.39)


27 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Appointment.m:
    Remove concrete class check. (v1.5.38)
  • zOGIAction+Property.m:
    Remove concrete class check (v1.5.38)


26 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Contact.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Appointment.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+AppointmentConflicts.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Defaults.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Assignment.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Enterprise.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Property.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Team.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Company.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIRPCAction.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Notifications.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+News.m:
    Removed use of concrete classes. (v1.5.37)
  • zOGIAction+Document.m:
    Removed use of concrete classes. (v1.5.37)
  • common.h:
    Removed use of concrete classes. (v1.5.37)


19 November
2007

SOGo

SOGo

  • UI/PreferencesUI/UIxPreferences.m ([UIxPreferences -signature]):
    returns the signature for the default identity of the default accouunt... ([UIxPreferences -setSignature:newSignature]): accessor that sets the default signature.
  • UI/MailerUI/UIxMailAccountActions.m ([UIxMailAccountActions -composeAction]):
    append the message signature to the new draft.
  • SoObjects/Mailer/SOGoMailReply.m ([SOGoMailReply -signature]):
    same as above.
  • SoObjects/Mailer/SOGoMailForward.m ([SOGoMailForward -signature]):
    new method that takes the user's signature and put it at the end of the message, if exists.
  • UI/Common/UIxPageFrame.m ([UIxPageFrame -isSuperUser]):
    new accessor that forwards the call to the active user.
  • SoObjects/SOGo/SOGoUser.m ([SOGoUser -signature]):
    returns the user default signature. ([SOGoUser -isSuperUser]): declares whether the user is listed among the super users.
  • UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -setComponent:
    newComponent]): retain the component object. ([UIxComponentEditor -organizerIdentity]): new accessor method to handle list of possible organizers.
  • UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -event]):
    retain the returned event object.
  • SoObjects/Appointments/SOGoAppointmentObject.m ([SOGoAppointmentObject -saveComponent:
    newEvent]): reset the organizer only if there are no attendees AND the owner of the component is not the organizer him-/herself.
  • UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -toolbar]):
    rewrote in a way that ensures that each case is handled properly.
  • SoObjects/SOGo/SOGoUser.m ([SOGoUser -isEqual:
    otherUser]): new override method.
  • UI/Scheduler/UIxTaskEditor.m ([-acceptAction]) ([-declineAction]):
    commented out unused methods.
  • UI/MailPartViewers/UIxMailPartICalActions.m ([UIxMailPartICalActions -deleteFromCalendarAction]):
    actually delete the found object.


18 November
2007

NGCards

SOGo/SOPE/NGCards

  • iCalPerson.m ([-rsvp]):
    return lowercase string.
  • iCalCalendar.m ([iCalCalendar -setMethod:
    _value]): convert method to uppercase before setting value.
  • CardGroup.m ([CardGroup -addChild:
    aChild]): don't process nil values for aChild. ([CardGroup -setUniqueChild:aChild]): same as above. ([CardGroup -setChildrenAsCopy:someChildren]): reparent the copied children. ([CardGroup -mutableCopyWithZone:aZone]): implemented NSMutableCopying protocol.
  • CardElement.m ([CardElement -mutableCopyWithZone:
    aZone]): implemented NSMutableCopying protocol.


SOGo

SOGo

  • SoObjects/Mailer/SOGoMailBodyPart.m SoObjects/Mailer/SOGoMailObject.m UI/MailPartViewers/UIxMailPartViewer.m Added support of messages containing non-textual content and no parts.
  • UI/MailerUI/UIxMailView.m SoObjects/Mailer/SOGoMailObject.m UI/Templates/MailerUI/UIxMailView.wox Added support for the Reply-To header upon message display.


SOGo

SOGo

  • UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -saveAction]):
    invoke saveComponent:.
  • UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -hasOrganizer]) ([UIxComponentEditor -organizerName]):
    new template accessor related to displaying the event's organizer. ([-containsConflict:_component]): removed method. ([UIxComponentEditor -takeValuesFromRequest:_rqinContext:_ctx]): set RSVP to "TRUE" on each attendee.
  • UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -saveAction]):
    invoke saveComponent:.
  • UI/MailPartViewers/UIxMailPartICalViewer.m ([UIxMailPartICalViewer -isLoggedInUserTheOrganizer]):
    make use of the -userIsOrganizer: category method. ([-isLoggedInUserAnAttendee]): make use of -userIsParticipant:. ([UIxMailPartICalViewer -hasSenderStatusChanged]): new template accessor that determines whether the "Update" button should be displayed.
  • UI/MailPartViewers/UIxMailPartICalActions.m ([UIxMailPartICalActions -deleteFromCalendarAction]):
    implemented action. ([UIxMailPartICalActions -updateUserStatusAction]): implemented action.
  • UI/Common/UIxPageFrame.m ([UIxPageFrame -setCssFiles:
    newCSSFiles]): new accessor that enables the sub-templates to specify extra CSS files to load.
  • SoObjects/SOGo/SOGoUser.m ([SOGoUser -homeFolderInContext:
    context]): cache the home folder of the user object instead of the current user.
  • SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder -deleteEntriesWithIds:
    ids]): invokes the "prepareDelete" optional method if the child object implements it.
  • SoObjects/SOGo/SOGoContentObject.m ([-setContentString:
    ]) removed method.
  • SoObjects/SOGo/LDAPSource.m ([LDAPSource -setBaseDN:
    newBaseDNIDField:newIDFieldCNField:newCNFieldUIDField:newUIDFieldmailFields:newMailFieldsandBindFields:newBindFields]): take a new "mailFields" parameter defining an array of fields where to look at when searching the user's emails. It defaults to the standard "mail" LDAP field.
  • SoObjects/Appointments/SOGoAptMailICalReply.[hm]:
    new SoComponent implementing a template for ITIP replies.
  • SoObjects/Appointments/iCalPerson+SOGo.m ([iCalPerson -mailAddress]):
    new method that returns a properly formatted email address for the specified person entry. ([iCalPerson -uid]): new method that tests whether the user is known to the system and if so, returns its user id.
  • SoObjects/Appointments/iCalPerson+SOGo.[hm]:
    new category module.
  • SoObjects/Appointments/iCalEventChanges+SOGo.m ([iCalEventChanges -sequenceShouldBeIncreased]):
    determine whether the changes involved need a sequence inscrease, based on the RFC2446 (ITIP).
  • SoObjects/Appointments/iCalEventChanges+SOGo.[hm]:
    new category module.
  • SoObjects/Appointments/iCalEvent+SOGo.m ([iCalEvent -isStillRelevant]):
    new overriden method determining the relevance of the current event based on its end date.
  • SoObjects/Appointments/iCalEvent+SOGo.[hm]:
    new category module.
  • SoObjects/Appointments/iCalEntityObject+SOGo.m ([iCalEntityObject -attendeeUIDs]):
    new category methods that returns an array containing the uids of the system-know attendees. ([iCalEntityObject -isStillRelevant]): new template method. ([iCalEntityObject -itipEntryWithMethod:method]): clone the current entry calendar with the specified ITIP method. ([iCalEntityObject -attendeesWithoutUser:user]): returns an array of attendees while making sure the specified user is not listed.
  • SoObjects/Appointments/SOGoCalendarComponent.m ([SOGoCalendarComponent -calendar:
    create:secure]): new name for -calendar:. Added a "secure" parameter that specifies whether a stripped calendar instance is needed or not. Also, we no longer cache the content to simplify handling of new data. ([SOGoCalendarComponent -component:create:secure]): same as above. ([SOGoCalendarComponent -sendEMailUsingTemplateNamed:_pageNameforOldObject:_oldObjectandNewObject:_newObjecttoAttendees:_attendees]): test whether the component is "still relevant" before sending an email... ([SOGoCalendarComponent -sendResponseToOrganizer]): new method for sending ITIP replies. ([SOGoCalendarComponent -getUIDsForICalPerson:iCalPerson]): removed method. Replaced with -[iCalPerson uid] category method.
  • SoObjects/Appointments/SOGoAppointmentObject.[hm]:
    rewrote class. No longer override saveContentString:, saveContentString:baseSequence:, .... Implemented the saveComponent: and the prepareDelete methods instead. Those methods are called only from the web methods. This avoids the risks related to email sending and changes propagation.
  • UI/Common/UIxTabItem.m:
    removed useless class module.
  • UI/Common/UIxTabView.[hm]:
    removed useless class module.
  • UI/Common/UIxPrintPageFrame.m:
    removed useless class module.
  • UI/Common/UIxAppNavView.m:
    removed useless class module.


16 November
2007

SOGo

SOGo

  • SoObjects/Mailer/SOGoMailBaseObject.m Fixed typo.
  • SoObjects/Mailer/SOGoMailBodyPart.m We also grok image/jpeg and return the SOGoMailBodyPart for attachments fetching.
  • SoObjects/Mailer/SOGoMailObject+Draft.m Prevent a crash in case body decoding failed during a reply.
  • SoObjects/Mailer/SOGoMailObject.m Improved body decoding during a reply to also try latin1 as an encoding.
  • UI/MailPartViewers/UIxMailRenderingContext.m Greatly improved the display mechanisms for emails. Also properly consider the content disposition for most content types.
  • UI/MailerUI/UIxMailToSelection.m Removed worthless code.
  • UI/WebServerResources/MailerUI.css CSS fix for table views.


15 November
2007

SOGo

SOGo

  • UI/WebServerResources/MailerUI.js We now check for empty selection and warn the user about it when deleting messages
  • SoObjects/Mailer/SOGoDraftObject.m Correctly check for the presence of a subject before attempting to forward a message from the Drafts folder.
  • SoObjects/Mailer/SOGoMailObject+Draft.m We no longer use "[Fwd:
    ]" but simply "Fwd:" when forwarding email messages.
  • SoObjects/SOGo/SOGoUser.m Modified the default forwarding format to be inline instead of "attachment".
  • SoObjects/Mailer/SOGoDraftObject.m We now create and use a NGMimeContentDispositionHeaderField in order to avoid encoding the whole Content-Disposition header in case a non-ASCII char is present!


14 November
2007

LSTasks

OpenGroupware.org/Logic/LSTasks

  • v5.3.11
  • LSFilterArchivedJobCommand.m:
    Removed old control job stuff.
  • LSFilterToDoListJobCommand.m:
    Removed old control job stuff.
  • LSFetchPrivateJobsCommand.m:
    Remove control job and kind constraints from filter.
  • LSFetchArchivedJobsCommand.m:
    Remove control job and kind constraints from filter.
  • LSFetchToDoJobsCommand.m:
    Remove control job and kind constraints from filter.
  • LSFetchProjectJobsCommand.m:
    Remove control job and kind constraints from filter.
  • GNUmakefile:
    Remove reference to LSControlJob.m, LSFetchControlJobsCommand.m, and LSFilterControlJobsCommand.m files.
  • LSFetchJobsForExecutantCommand.m:
    Remove control job and kind constraints from filter.
  • commands.plist:
    Remove LSControlJobCommand, LSFilterControlJobCommand, and LSFetchControlJobsCommand commands list.
  • bundle-info.plist:
    Remove LSControlJobCommand, LSFilterControlJobCommand, and LSFetchControlJobsCommand commands from bundle info.
  • LSFetchDelegatedJobsCommand.m:
    Remove control job and kind constraints from filter.
  • LSFetchProjectToJobCommand.m:
    Remove control job and kind constraints from filter.
  • LSFilterDelegatedJobCommand.m:
    Removed old control job stuff.


EnterprisesUI

OpenGroupware.org/WebUI/Contact/EnterprisesUI

  • LSWEnterpriseAdvancedSearch.m:
    Preserve the match-one / match-all in saved contact searchs. (v5.3.51) Bug#1920


PersonsUI

OpenGroupware.org/WebUI/Contact/PersonsUI

  • LSWPersonAdvancedSearch.m:
    Preserve the match-one / match-all in saved contact searchs. (v5.3.76) Bug#1920


JobUI

OpenGroupware.org/WebUI/JobUI

  • 5.3.55
  • GNUmakefile:
    Remove reference to LSWJobImport.
  • LSWJobEditor.m:
    Remove old isParentJob stuff.
  • LSWJobs.m:
    Remove old control job stuff.


13 November
2007

SOGo

SOGo

  • SoObjects/SOGo/iCalEntityObject+Utilities.m ([iCalEntityObject -findParticipant:
    user]): new method based on the one removed from SOGoCalendarComponent below.
  • SoObjects/SOGo/iCalEntityObject+Utilities.[hm]:
    new category module for iCalEntityObject.
  • SoObjects/Appointments/SOGoCalendarComponent.m ([-findParticipant:
    user]): removed method.
  • SoObjects/SOGo/SOGoContentObject.m ([SOGoContentObject -setContentString:
    newContent]): new accessor method. ([SOGoContentObject -saveContentString:newContentbaseVersion:newBaseVersion]): invoke -[self setContentString:].
  • UI/MailPartViewers/UIxMailPartICalViewer.m ([UIxMailPartICalViewer -authorativeEvent]):
    returns the most up-to-date event. ([-isLoggedInUserTheOrganizer]): make use of -[SOGoUser hasEmail:].
  • UI/MailPartViewers/UIxMailPartTextViewer.m ([NSString -stringByConvertingCRLNToHTML]):
    fixed crashes due to overflows in temporary buffer we are handing.
  • UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -setComponent:
    newComponent]): check that newComponent is non-nil before replacing the default values. ([UIxComponentEditor -calendarList]): privacy is already an ivar. We don't need to refetch it.


12 November
2007

NGCards

SOGo/SOPE/NGCards

  • iCalTimeZonePeriod.m ([iCalTimeZonePeriod -occurenceForDate:
    refDate]): added support for timezone periods which do not contain a recurrence rule, such as the one provided by iCal.


SOGo

SOGo

  • SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject -fetchMailForReplying:
    sourceMailtoAll:toAll]): remove the current user from the list of recipients and make sure no other address is counted twice.
  • UI/MailPartViewers/UIxMailPartTextViewer.m ([NSString -stringByConvertingCRLNToHTML]):
    build the returned NSString without the ending \0.


10 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIRPCAction.m|h:
    Clean to retrieval of server's time. Also return server's perspective of client's time. (v1.5.36)


09 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Account.m:
    Add isTimeZoneSet element to DEFAULTS key in response to getLoginAccount. Indicates if the time zone is defaulting or if the user has selected the indicated time zone. (v1.5.35)
  • zOGIAction+Appointment.m:
    Support server side time zone offsets via timeZone attribute. Provide client with offsets between users default time zone and GMT with the endOffset, startOffset, and offsetTimeZone attributes. (v1.5.35)
  • zOGIAction.m|h:
    makeCalendarDate now guaranteers provided dates are turned into GMT; optionally offsets the date time to GMT on behalf of the client. (v1.5.35)
  • zOGIRPCAction.m|h:
    Clients can retrieve server's time zone tables and current time via searchForObjects. (v1.5.35)


SOGo

SOGo

  • UI/MailPartViewers/UIxMailPartICalViewer.m ([UIxMailPartICalViewer -acceptLink]) ([UIxMailPartICalViewer -declineLink]) ([UIxMailPartICalViewer -tentativeLink]):
    removed useless methods.
  • UI/MailPartViewers/UIxMailPartICalAction.m ([UIxMailPartICalAction -addToCalendarAction]) ([UIxMailPartICalAction -deleteFromCalendarAction]):
    new stub methods.
  • SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject -lookupImap4BodyPartKey:
    ]): make use of the new method below.
  • SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart +bodyPartClassForMimeType:
    mimeTypeinContext:_ctx]): new method that returns an appropriate Class depending on a given mime type.
  • UI/SOGoUI/UIxComponent.m ([UIxComponent -canCreateOrModify]):
    new boolean accessor that determines whether someone can create (i.e. modify a new entry) or modify an existing entry.
  • SoObjects/SOGo/SOGoObject.m ([SOGoObject -lookupName:
    lookupNameinContext:localContextacquire:acquire]): overriden method to bind looked up keys to So methods but by avoiding a call to toOneRelationshipKeys. This will be the top method of the chain, meant to override SoObject's behaviour.
  • SoObjects/Contacts/SOGoContactLDAPFolder.m ([SOGoContactLDAPFolder -lookupName:
    objectNameinContext:lookupContextacquire:acquire]): removed hack to prevent [super lookupName...] to read the entire LDAP directory when looking up a record.


08 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Contact.m:
    Fixed memory leak. (v1.5.34)
  • zOGIAction+Appointment.m:
    Fix memory leaks. Render participants into NONVISIBLE appointments if participants were requested via detail; this duplicates the behaviour of WebUI. (v1.5.34)
  • zOGIAction+AppointmentConflicts.m:
    Fix memory leak. (v1.5.34)
  • zOGIAction+Note.m:
    Fix memory leaks. (v1.5.34)
  • zOGIAction+Assignment.m:
    Fix memory leaks. (v1.5.34)
  • zOGIAction+Enterprise.m:
    Fix memory leak. (v1.5.34)
  • zOGIAction+Property.m:
    Fix memory leaks. (v1.5.34)
  • zOGIAction+Resource.m:
    Fix memory leak. (v1.5.34)
  • zOGIAction+Task.m:
    Fix memory leaks. (v1.5.34)
  • zOGIAction+Company.m:
    Fix memory leaks. (v1.5.34)
  • zOGIAction+Project.m:
    Fix memory leaks. (v1.5.34)
  • zOGIRPCAction.m:
    Fix memory leak. (v1.5.34)
  • zOGIAction+News.m:
    Fix memory leak. (v1.5.34)
  • zOGIAction+Document.m:
    Fix memory leak. (v1.5.34)


SOGo

SOGo

  • SoObjects/SOGo/SOGoGCSFolder.m ([SOGoGCSFolder +folderWithSubscriptionReference:
    referenceinContainer:aContainer]): fixed a leak.
  • UI/MailPartViewers/UIxMailPartHTMLViewer.m ([UIxMailPartHTMLViewer -_attachmentIds]):
    the reference was one character too short, which cause the images not to be displayed sometimes and crashes to happen whenever the references on a message were wrong (due to bugs in SOPE).
  • UI/MailerUI/UIxMailListView.m ([UIxMailListView -hasMessageAttachment]):
    consider an attachment any content that has a non-nil disposition.
  • SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder -newFolderWithName:
    nameandNameInContainer:newNameInContainer]): fixed method to make use of the parameters instead of the useless remains that weren't even initialized.
  • SoObjects/Appointments/SOGoAppointmentObject.m ([SOGoAppointmentObject -saveContentString:
    _iCalbaseSequence:_v]): don't propagate the event among the attendees if this is not an "so" request. ([SOGoAppointmentObject -deleteWithBaseSequence:]): same as above.
  • Main/SOGo.m ([SOGo -authenticatorInContext:
    context]): make use of the new category method below.
  • SoObjects/SOGo/WORequest+SOGo.m ([WORequest -handledByDefaultHandler]):
    new method that returns whether this is an "so" or alike request.
  • SoObjects/SOGo/WORequest+SOGo.[hm]:
    new category module.
  • SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder -newFolderWithName:
    nameandNameInContainer:newNameInContainer]): write the new folder's name in the folder cache.
  • UI/Scheduler/UIxCalendarSelector.m ([UIxCalendarSelector -calendars]):
    same as below.
  • UI/Contacts/UIxContactsListViewContainer.m ([UIxContactsListViewContainer -currentContactFolderName]):
    translate the display name if its the default one.
  • SoObjects/Appointments/SOGoAppointmentFolder.m ([SOGoAppointmentFolder -create]):
    overriden method that invokes its ancestor and then activate itself within the user settings.
  • SoObjects/SOGo/SOGoParentFolder.m ([SOGoParentFolder -appendPersonalSources]):
    when the user is the owner of the current folder, we create the "personal" folder if it doesn't exist by invoking "create".
  • SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults -primaryFetchProfile]):
    when no row is returned, we initialize "values" to a new dictionary. This solves a bug where the defaults would not be initialized properly.


07 November
2007

SOGo

SOGo

  • SoObjects/SOGo/SOGoGCSFolder.m ([-compare:
    otherFolder]): method moved into the SOGoFolder class.
  • SoObjects/Appointments/SOGoAppointmentObject.m ([SOGoAppointmentObject -saveContentString:
    _iCalinUIDs:_uids]): simplified method by directly building a similar appointment object with the current folder as container.
  • SoObjects/Contacts/SOGoContactLDAPFolder.m ([SOGoContactLDAPFolder -appendObject:
    objectwithBaseURL:baseURLtoREPORTResponse:r]): take the content of an object returned by lookupName:inContext:acquire: instead of the dictionary passed as parameter since it represents a flattened entry return by lookupContactsWithFilter...
  • SoObjects/Contacts/SOGoFolder+CardDAV.m:
    NSObject+CardDAV category renamed to SOGoFolder+CardDAV.
  • SoObjects/SOGo/SOGoParentFolder.m:
    no longer a subclass of SOGoObject, but of SOGoFolder instead.
  • SoObjects/SOGo/SOGoUserFolder.m:
    no longer a subclass of SOGoGCSFolder, but of SOGoFolder instead.
  • SoObjects/Appointments/SOGoAppointmentFolder.m ([SOGoAppointmentFolder -lookupCalendarFolderForUID:
    uid]): fixed to take the new SOGoParentFolder class into account. Also, create the personal folder if it doesn't exist.
  • SoObjects/SOGo/SOGoFolder.[hm]:
    new class module implementing the parent of all SOGo containers.
  • SoObjects/SOGo/SOGoGCSFolder.[hm]:
    SOGoFolder class renamed to SOGoGCSFolder.


06 November
2007

SOGo

SOGo

  • UI/MailerUI/UIxMailToSelection.m ([UIxMailToSelection -getAddressesFromFormValues:
    _dict]): take NSString and NSArray values. Ignore addresses with a length of 0.
  • SoObjects/SOGo/SOGoUser.m ([SOGoUser -mailAccounts]):
    we now fetch the accounts from the user defaults and create default values if missing.


05 November
2007

SOGo

SOGo

  • UI/MailPartViewers/UIxMailPartTextViewer.m ([UIxMailPartTextViewer -flatContentAsString]):
    re-added conversion of line-break to sequences of HTML "BR", with a fast algorithm in C.
  • UI/MailPartViewers/UIxMailPartViewer.m ([UIxMailPartViewer -flatContentAsString]):
    simplified method now that we know -[NSString stringWithData:usingEncodingNamed:] has a more robust implementation.
  • UI/MailerUI/UIxMailListView.m ([UIxMailListView -showToAddress]):
    the answer is cached.
  • UI/Common/UIxObjectActions.m ([UIxObjectActions +initialize]):
    read "SOGoACLsSendEMailNotifications" from the user defaults to determiner whether to send an email when a user is added or removed from an object's acl.
  • SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject -contentForEditing]):
    make sure the htmlContent flag is set to NO when we select the textual part. Also we select only the relevant keys for fetching.
  • UI/MailerUI/WOContext+UIxMailer.m ([-mailSubjectFormatter]):
    removed method.
  • UI/MailerUI/UIxMailView.m ([UIxMailView -messageSubject]):
    new method replacing -objectTitle, written like the ones below.
  • UI/MailerUI/UIxMailListView.m ([UIxMailListView -messageSubject]):
    rewrote method to act the one below.
  • UI/MailPartViewers/UIxMailPartMessageViewer.m ([UIxMailPartMessageViewer -messageSubject]):
    new method that returns the decoded mail subject or "Untitled" if the subject is empty.
  • SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject -decodedSubject]):
    new method that invoke -decodedSubject from the NSString and NSData class, depending on the identity of the subject obtained from the envelope.
  • SoObjects/Mailer/SOGoMailObject+Draft.m ([SOGoMailObject -subjectForReply]):
    take the value of -[SOGoMail decodedSubject] instead of the subject of the envelope. ([SOGoMailObject -filenameForForward]): same as above. ([SOGoMailObject -subjectForForward]): same as above.
  • SoObjects/Mailer/NSString+Mail.m ([NSString -decodedSubject]):
    same as below for NSString.
  • SoObjects/Mailer/NSData+Mail.m ([NSData -decodedSubject]):
    new method that decodes the subject of a mail taken as an NSData instance. Handling the exceptions and the badly formatted headers.
  • UI/MailerUI/UIxSubjectFormatter.[hm]:
    dropped class module.


04 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Account.m:
    Correctly handle users who have no notification CC: address when rendering defaults for the logged in user account. (v1.5.32)
  • zOGIAction+Defaults.m:
    Correctly handle retrieving the notification CC: address from user defaults when none has been set. (v1.5.33)


GDLContentStore

SOGo/SOPE/GDLContentStore

  • GCSFolder.m ([GCSFolder -writeContent:
    toName:baseVersion:]): the test for the improvement below was wrong, we want to test the value of the column ('0' or null) instead of whether it is null or filled.


SOGo

SOGo

  • SoObjects/SOGo/SOGoFolder.m ([SOGoFolder -deleteEntriesWithIds:
    ids]): make sure the objects returned by lookupName:... are not instances of NSException.


03 November
2007

zOGI

OpenGroupware.org/ZideStore/Protocols/zOGI

  • zOGIAction+Contact.m:
    Include zOGIAction+Defaults.h. (v1.5.31)
  • zOGIAction+Account.m:
    Include zOGIAction+Defaults.h. Removed panel rendering, which is now in the Defaults category. (v1.5.31)
  • zOGIAction+Appointment.m:
    Resources can now be specified, by objectd, as participants when searching for appointments. Removed a useless log message. "isConflictDisabled" attribute is now rendered in the Appointment entity. (v1.5.31)
  • zOGIAction+Defaults.h|m:
    New category for handling retrieval and manipulation of user defaults. User's schedular panel, notification CC address, and timezone can now be changed via zOGI API. (v1.5.31)
  • zOGIAction+AppointmentConflicts.m:
    _renderConflictsForDate now respects the "isConflictDisabled" attribute and sets an empty array of conflicts if conflict detection is disabled for the appointment. (v1.5.31)
  • zOGIAction+Object.m:
    Include zOGIAction+Defaults.h. (v1.5.31)
  • zOGIAction+Enterprise.m:
    Include zOGIAction+Defaults.h. (v1.5.31)
  • zOGIAction+Team.m:
    Include zOGIAction+Defaults.h. (v1.5.31)
  • zOGIAction.h|m:
    Removed methods relating to defaults. (v1.5.31)
  • zOGIAction+Company.m:
    Include zOGIAction+Defaults.h. (v1.5.31)
  • zOGIRPCAction.m:
    Include zOGIAction+Defaults.h. A putObject of a "defaults" entity now invokes _storeDefaults from the Defaults category. (v1.5.31)
  • zOGIAction+Notifications.m:
    Include zOGIAction+Defaults.h. (v1.5.31)


SOGo

SOGo

  • UI/Scheduler/UIxAppointmentEditor.m Fixed monthly recurrences support.


02 November
2007

NGCards

SOGo/SOPE/NGCards

  • iCalDateHolder.m ([iCalDateHolder -awakeAfterUsingSaxDecoder:
    ]): make use of cStringUsingEncoding: instead of getString:length: to retrieve the buffer content to work-around a bug in gnustep-base.


01 November
2007

NGCards

SOGo/SOPE/NGCards

  • CardGroup.m ([CardGroup +parseFromSource:
    source]): make sure the given source is not nil, otherwise the parser will raise an exception, which we don't want.


SOGo

SOGo

  • 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.