Re: [evolution-patches] Patch for implementation of modify Cal objects in GW backend
- From: Harish Krishnaswamy <kharish novell com>
- To: rodrigo <rodrigo ximian com>
- Cc: patches <evolution-patches lists ximian com>
- Subject: Re: [evolution-patches] Patch for implementation of modify Cal objects in GW backend
- Date: Wed, 12 May 2004 17:58:01 +0530
added the two changes.. committed.
thanks,
harish
On Wed, 2004-05-12 at 17:38, Rodrigo Moya wrote:
> On Wed, 2004-05-12 at 16:00 +0530, Harish Krishnaswamy wrote:
> > hi,
> >
> > the patch contains code that allows modification of calendar objects
> > using the modifyItemRequest of the GW SOAP interface instead of the
> > sendItems call.
> >
> > Also included is a fix for letting evo set the default timezone on the
> > GW backend.
>
> > +e_gw_item_set_changes (EGwItem *item, EGwItem *cache_item)
> > +{
> > + char *subject, *cache_subject;
> > + char *message, *cache_message;
> > + char *classification, *cache_classification;
> > + char *accept_level, *cache_accept_level;
> > + char *place, *cache_place;
> > + char *priority, *cache_priority;
> > +
> > + /* TODO assert the types of the items are the same */
> > +
> > + SET_DELTA(subject);
> > + SET_DELTA(message);
> > + SET_DELTA(classification);
> > +
> > + if (difftime (e_gw_item_get_start_date (item),
> > e_gw_item_get_start_date (cache_item)))
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_UPDATE,
> > "startDate", e_gw_item_get_start_date (item));
> > + if (difftime (e_gw_item_get_end_date (item), e_gw_item_get_end_date
> > (cache_item)))
> >
> end_date should only be used for APPOINTMENTS, right?
>
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_UPDATE, "endDate",
> > e_gw_item_get_end_date (item));
> > +
> > + if ( e_gw_item_get_item_type (item) == E_GW_ITEM_TYPE_APPOINTMENT) {
> > + accept_level = e_gw_item_get_accept_level
> > (item);
> > + cache_accept_level = e_gw_item_get_accept_level
> > (cache_item);
> > + if ( cache_accept_level )
> > {
> > + if (!accept_level
> > )
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_DELETE,
> > "acceptLevel", cache_accept_level );
> > + else if (strcmp ( accept_level, cache_accept_level
> > ))
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_UPDATE,
> > "acceptLevel", accept_level );
> > + }
> > + else if ( accept_level
> > )
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_ADD,
> > "acceptLevel", accept_level );
> > +
> > + SET_DELTA(place);
> > + if ( e_gw_item_get_trigger (cache_item) )
> > {
> > + if (!e_gw_item_get_trigger (item)
> > )
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_DELETE, "alarm",
> > e_gw_item_get_trigger (cache_item));
> > + else if (e_gw_item_get_trigger (item) != e_gw_item_get_trigger
> > (cache_item))
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_UPDATE, "alarm",
> > e_gw_item_get_trigger (item));
> > + }
> > + else if ( e_gw_item_get_trigger (item)
> > )
> > + e_gw_item_set_change (item, E_GW_ITEM_CHANGE_TYPE_ADD, "alarm",
> > e_gw_item_get_trigger (item));
> > + }
> > +
> > + if ( e_gw_item_get_item_type (item) == E_GW_ITEM_TYPE_TASK) {
> >
> instead of using an 'if' for each item type, it would be better to use a
> if/else if/else, or even better a switch statement.
>
> apart from that it looks ok
>
> cheers
>
> _______________________________________________
> evolution-patches mailing list
> evolution-patches lists ximian com
> http://lists.ximian.com/mailman/listinfo/evolution-patches
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]