221 | 221 |
e_ews_collect_attendees (icalcomponent *comp,
|
222 | 222 |
GSList **required,
|
223 | 223 |
GSList **optional,
|
224 | |
GSList **resource)
|
|
224 |
GSList **resource,
|
|
225 |
gboolean *out_rsvp_requested)
|
225 | 226 |
{
|
226 | 227 |
icalproperty *prop;
|
227 | 228 |
icalparameter *param;
|
228 | 229 |
const gchar *str = NULL;
|
229 | 230 |
const gchar *org_email_address = NULL;
|
230 | 231 |
|
|
232 |
if (out_rsvp_requested)
|
|
233 |
*out_rsvp_requested = TRUE;
|
|
234 |
|
231 | 235 |
/* we need to know who the orgenizer is so we wont duplicate him/her */
|
232 | 236 |
org_email_address = e_ews_collect_organizer (comp);
|
233 | 237 |
|
|
261 | 265 |
switch (icalparameter_get_role (param)) {
|
262 | 266 |
case ICAL_ROLE_OPTPARTICIPANT:
|
263 | 267 |
*optional = g_slist_append (*optional, (gpointer)str);
|
|
268 |
|
|
269 |
if (out_rsvp_requested && *out_rsvp_requested) {
|
|
270 |
icalparameter *rsvp;
|
|
271 |
|
|
272 |
rsvp = icalproperty_get_first_parameter (prop, ICAL_RSVP_PARAMETER);
|
|
273 |
if (rsvp && icalparameter_get_rsvp (rsvp) == ICAL_RSVP_FALSE)
|
|
274 |
*out_rsvp_requested = FALSE;
|
|
275 |
}
|
264 | 276 |
break;
|
265 | 277 |
case ICAL_ROLE_CHAIR:
|
266 | 278 |
case ICAL_ROLE_REQPARTICIPANT:
|
267 | 279 |
*required = g_slist_append (*required, (gpointer)str);
|
|
280 |
|
|
281 |
if (out_rsvp_requested && *out_rsvp_requested) {
|
|
282 |
icalparameter *rsvp;
|
|
283 |
|
|
284 |
rsvp = icalproperty_get_first_parameter (prop, ICAL_RSVP_PARAMETER);
|
|
285 |
if (rsvp && icalparameter_get_rsvp (rsvp) == ICAL_RSVP_FALSE)
|
|
286 |
*out_rsvp_requested = FALSE;
|
|
287 |
}
|
268 | 288 |
break;
|
269 | 289 |
case ICAL_ROLE_NONPARTICIPANT:
|
270 | 290 |
*resource = g_slist_append (*resource, (gpointer)str);
|
|
1059 | 1079 |
icaltimetype dtstart, dtend;
|
1060 | 1080 |
icaltimezone *tzid_start, *tzid_end;
|
1061 | 1081 |
icalproperty *prop;
|
1062 | |
gboolean has_alarms, satisfies;
|
|
1082 |
gboolean has_alarms, satisfies, rsvp_requested = TRUE;
|
1063 | 1083 |
const gchar *ical_location_start, *ical_location_end, *value;
|
1064 | 1084 |
const gchar *msdn_location_start, *msdn_location_end;
|
1065 | 1085 |
|
|
1144 | 1164 |
e_ews_message_write_string_parameter (msg, "Location", NULL, value);
|
1145 | 1165 |
|
1146 | 1166 |
/* collect attendees */
|
1147 | |
e_ews_collect_attendees (icalcomp, &required, &optional, &resource);
|
|
1167 |
e_ews_collect_attendees (icalcomp, &required, &optional, &resource, &rsvp_requested);
|
|
1168 |
|
|
1169 |
e_ews_message_write_string_parameter (msg, "IsResponseRequested", NULL, rsvp_requested ? "true" : "false");
|
1148 | 1170 |
|
1149 | 1171 |
if (required != NULL) {
|
1150 | 1172 |
add_attendees_list_to_message (msg, "RequiredAttendees", required);
|
|
1384 | 1406 |
gboolean has_alarms, has_alarms_old;
|
1385 | 1407 |
gboolean dt_start_changed = FALSE, dt_end_changed = FALSE, dt_changed;
|
1386 | 1408 |
gboolean dt_start_changed_timezone_name = FALSE, dt_end_changed_timezone_name = FALSE;
|
1387 | |
gboolean satisfies;
|
|
1409 |
gboolean satisfies, rsvp_requested = TRUE;
|
1388 | 1410 |
gint alarm = 0, alarm_old = 0;
|
1389 | 1411 |
gchar *recid;
|
1390 | 1412 |
GError *error = NULL;
|
|
1575 | 1597 |
convert_vevent_property_to_updatexml (msg, "IsAllDayEvent", "false", "calendar", NULL, NULL);
|
1576 | 1598 |
}
|
1577 | 1599 |
|
1578 | |
e_ews_collect_attendees (icalcomp, &required, &optional, &resource);
|
|
1600 |
e_ews_collect_attendees (icalcomp, &required, &optional, &resource, &rsvp_requested);
|
|
1601 |
|
|
1602 |
e_ews_message_write_string_parameter (msg, "IsResponseRequested", NULL, rsvp_requested ? "true" : "false");
|
|
1603 |
|
1579 | 1604 |
if (required != NULL) {
|
1580 | 1605 |
e_ews_message_start_set_item_field (msg, "RequiredAttendees", "calendar", "CalendarItem");
|
1581 | 1606 |
|