From 963cc3e1f5098490be8cf5f7afea6b8b84358e44 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 12 Nov 2014 19:03:06 +0100 Subject: [PATCH] Support SCHEDULE-STATUS attende/organizer parameters --- plugins/libcalendaring/libvcalendar.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/libcalendaring/libvcalendar.php b/plugins/libcalendaring/libvcalendar.php index 4d432488..7c049b3d 100644 --- a/plugins/libcalendaring/libvcalendar.php +++ b/plugins/libcalendaring/libvcalendar.php @@ -36,8 +36,16 @@ class libvcalendar implements Iterator private $attach_uri = null; private $prodid = '-//Roundcube//Roundcube libcalendaring//Sabre//Sabre VObject//EN'; private $type_component_map = array('event' => 'VEVENT', 'task' => 'VTODO'); - private $attendee_keymap = array('name' => 'CN', 'status' => 'PARTSTAT', 'role' => 'ROLE', - 'cutype' => 'CUTYPE', 'rsvp' => 'RSVP', 'delegated-from' => 'DELEGATED-FROM', 'delegated-to' => 'DELEGATED-TO'); + private $attendee_keymap = array( + 'name' => 'CN', + 'status' => 'PARTSTAT', + 'role' => 'ROLE', + 'cutype' => 'CUTYPE', + 'rsvp' => 'RSVP', + 'delegated-from' => 'DELEGATED-FROM', + 'delegated-to' => 'DELEGATED-TO', + 'schedule-status' => 'SCHEDULE-STATUS', + ); private $iteratorkey = 0; private $charset; private $forward_exceptions; @@ -1107,12 +1115,14 @@ class libvcalendar implements Iterator else if (!empty($attendee['email'])) { if (isset($attendee['rsvp'])) $attendee['rsvp'] = $attendee['rsvp'] ? 'TRUE' : 'FALSE'; - $ve->add('ATTENDEE', 'mailto:' . $attendee['email'], array_filter(self::map_keys($attendee, $this->attendee_keymap))); + $ve->add('ATTENDEE', 'mailto:' . $attendee['email'], + array_filter(self::map_keys($attendee, $this->attendee_keymap))); } } if ($event['organizer']) { - $ve->add('ORGANIZER', 'mailto:' . $event['organizer']['email'], self::map_keys($event['organizer'], array('name' => 'CN'))); + $ve->add('ORGANIZER', 'mailto:' . $event['organizer']['email'], + array_filter(self::map_keys($event['organizer'], $this->attendee_keymap))); } foreach ((array)$event['url'] as $url) {