diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 7 | ||||
-rw-r--r-- | calendar/gui/e-itip-control.c | 50 |
2 files changed, 14 insertions, 43 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index f7c89238f7..0a8a0fa085 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,11 @@ 2004-06-23 <jpr@novell.com> + * gui/e-itip-control.c (update_attendee_status): tidy up to work + again + (ok_clicked_cb): use above when replying + +2004-06-23 JP Rosevear <jpr@novell.com> + * gui/dialogs/meeting-page.c (remove_attendee): util function to do the actual removal (remove_attendee_at_row): ditto based on row number @@ -7,7 +13,6 @@ (popup_delete_cb): use utility routines to do removal (button_press_event): do the icon properly - 2004-06-22 JP Rosevear <jpr@novell.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c index 6d4f081fd3..8a7386e364 100644 --- a/calendar/gui/e-itip-control.c +++ b/calendar/gui/e-itip-control.c @@ -1779,39 +1779,21 @@ update_item (EItipControl *itip) icalcomponent_remove_component (priv->top_level, clone); } -#if 0 static void update_attendee_status (EItipControl *itip) { EItipControlPrivate *priv; - ECal *client; - ECalGetStatus status; ECalComponent *comp = NULL; icalcomponent *icalcomp = NULL; - ECalComponentVType type; const char *uid; GtkWidget *dialog; - ECalResult result; - + GError *error; + priv = itip->priv; - - type = e_cal_component_get_vtype (priv->comp); - if (type == E_CAL_COMPONENT_TODO) - client = priv->task_client; - else - client = priv->event_client; - - if (client == NULL) { - dialog = gnome_warning_dialog (_("Attendee status can not be updated " - "because the item no longer exists")); - goto cleanup; - } /* Obtain our version */ e_cal_component_get_uid (priv->comp, &uid); - status = e_cal_get_object (client, uid, NULL, &icalcomp); - - if (status == E_CAL_GET_SUCCESS) { + if (e_cal_get_object (priv->current_ecal, uid, NULL, &icalcomp, NULL)) { GSList *attendees; comp = e_cal_component_new (); @@ -1853,25 +1835,11 @@ update_attendee_status (EItipControl *itip) } } - result = e_cal_update_object (client, comp); - switch (result) { - case E_CAL_RESULT_INVALID_OBJECT : - dialog = gnome_warning_dialog (_("Object is invalid and cannot be updated\n")); - break; - case E_CAL_RESULT_CORBA_ERROR : - dialog = gnome_warning_dialog (_("There was an error on the CORBA system\n")); - break; - case E_CAL_RESULT_NOT_FOUND : - dialog = gnome_warning_dialog (_("Object could not be found\n")); - break; - case E_CAL_RESULT_PERMISSION_DENIED : - dialog = gnome_warning_dialog (_("You don't have the right permissions to update the calendar\n")); - break; - case E_CAL_RESULT_SUCCESS : + if (!e_cal_modify_object (priv->current_ecal, icalcomp, CALOBJ_MOD_ALL, &error)) { + dialog = gnome_warning_dialog (error->message); + g_error_free (error); + } else { dialog = gnome_ok_dialog (_("Attendee status updated\n")); - break; - default : - dialog = gnome_warning_dialog (_("Attendee status could not be updated!\n")); } } else { dialog = gnome_warning_dialog (_("Attendee status can not be updated " @@ -1883,7 +1851,6 @@ update_attendee_status (EItipControl *itip) g_object_unref (comp); gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); } -#endif static void remove_item (EItipControl *itip) @@ -2123,8 +2090,7 @@ ok_clicked_cb (GtkHTML *html, const gchar *method, const gchar *url, const gchar send_freebusy (itip); break; case 'R': - /* FIXME Make sure this does the right thing in the backend */ - update_item (itip); + update_attendee_status (itip); break; case 'S': send_item (itip); |