Add support for task-specific participant status values

This commit is contained in:
Thomas Bruederli 2014-07-31 11:36:18 +02:00
parent 228a1b2438
commit e46cc9499e
2 changed files with 19 additions and 4 deletions

View file

@ -60,6 +60,11 @@ class libcalendaring_itip
$this->rsvp_status = array_merge($this->rsvp_actions, array('delegated')); $this->rsvp_status = array_merge($this->rsvp_actions, array('delegated'));
} }
public function set_rsvp_status($status)
{
$this->rsvp_status = $status;
}
/** /**
* Wrapper for rcube_plugin::gettext() * Wrapper for rcube_plugin::gettext()
* Checking for a label in different domains * Checking for a label in different domains
@ -246,7 +251,8 @@ class libcalendaring_itip
// attach ics file for this event // attach ics file for this event
$ical = libcalendaring::get_ical(); $ical = libcalendaring::get_ical();
$ics = $ical->export(array($event), $method, false, $method == 'REQUEST' && $this->plugin->driver ? array($this->plugin->driver, 'get_attachment_body') : false); $ics = $ical->export(array($event), $method, false, $method == 'REQUEST' && $this->plugin->driver ? array($this->plugin->driver, 'get_attachment_body') : false);
$message->addAttachment($ics, 'text/calendar', 'event.ics', false, '8bit', '', RCMAIL_CHARSET . "; method=" . $method); $filename = $event['_type'] == 'task' ? 'todo.ics' : 'event.ics';
$message->addAttachment($ics, 'text/calendar', $filename, false, '8bit', '', RCMAIL_CHARSET . "; method=" . $method);
return $message; return $message;
} }
@ -321,9 +327,10 @@ class libcalendaring_itip
$listed = false; $listed = false;
foreach ($existing['attendees'] as $attendee) { foreach ($existing['attendees'] as $attendee) {
if ($attendee['role'] != 'ORGANIZER' && strcasecmp($attendee['email'], $event['attendee']) == 0) { if ($attendee['role'] != 'ORGANIZER' && strcasecmp($attendee['email'], $event['attendee']) == 0) {
if (in_array($status, array('ACCEPTED','TENTATIVE','DECLINED','DELEGATED'))) { $status_lc = strtolower($status);
$html = html::div('rsvp-status ' . strtolower($status), $this->gettext(array( if (in_array($status_lc, $this->rsvp_status)) {
'name' => 'attendee'.strtolower($status), $html = html::div('rsvp-status ' . $status_lc, $this->gettext(array(
'name' => 'attendee' . $status_lc,
'vars' => array( 'vars' => array(
'delegatedto' => Q($attendee['delegated-to'] ?: '?'), 'delegatedto' => Q($attendee['delegated-to'] ?: '?'),
) )

View file

@ -86,6 +86,8 @@ $labels['itipobjectnotfound'] = 'The object referred by this message was not fou
$labels['itipsubjectaccepted'] = '"$title" has been accepted by $name'; $labels['itipsubjectaccepted'] = '"$title" has been accepted by $name';
$labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name'; $labels['itipsubjecttentative'] = '"$title" has been tentatively accepted by $name';
$labels['itipsubjectdeclined'] = '"$title" has been declined by $name'; $labels['itipsubjectdeclined'] = '"$title" has been declined by $name';
$labels['itipsubjectin-process'] = '"$title" is in-process by $name';
$labels['itipsubjectcompleted'] = '"$title" was completed by $name';
$labels['itipsubjectcancel'] = 'Your participation in "$title" has been cancelled'; $labels['itipsubjectcancel'] = 'Your participation in "$title" has been cancelled';
$labels['itipnewattendee'] = 'This is a reply from a new participant'; $labels['itipnewattendee'] = 'This is a reply from a new participant';
@ -99,18 +101,24 @@ $labels['youhaveaccepted'] = 'You have accepted this invitation';
$labels['youhavetentative'] = 'You have tentatively accepted this invitation'; $labels['youhavetentative'] = 'You have tentatively accepted this invitation';
$labels['youhavedeclined'] = 'You have declined this invitation'; $labels['youhavedeclined'] = 'You have declined this invitation';
$labels['youhavedelegated'] = 'You have delegated this invitation'; $labels['youhavedelegated'] = 'You have delegated this invitation';
$labels['youhavein-process'] = 'You are working on this assignment';
$labels['youhavecompleted'] = 'You have completed this assignment';
$labels['youhaveneeds-action'] = 'Your response to this invitation is still pending'; $labels['youhaveneeds-action'] = 'Your response to this invitation is still pending';
$labels['youhavepreviouslyaccepted'] = 'You have previously accepted this invitation'; $labels['youhavepreviouslyaccepted'] = 'You have previously accepted this invitation';
$labels['youhavepreviouslytentative'] = 'You have previously accepted this invitation tentatively'; $labels['youhavepreviouslytentative'] = 'You have previously accepted this invitation tentatively';
$labels['youhavepreviouslydeclined'] = 'You have previously declined this invitation'; $labels['youhavepreviouslydeclined'] = 'You have previously declined this invitation';
$labels['youhavepreviouslydelegated'] = 'You have previously delegated this invitation'; $labels['youhavepreviouslydelegated'] = 'You have previously delegated this invitation';
$labels['youhavepreviouslyin-process'] = 'You have previously reported to work on this assignment';
$labels['youhavepreviouslycompleted'] = 'You have previously completed this assignment';
$labels['youhavepreviouslyneeds-action'] = 'Your response to this invitation is still pending'; $labels['youhavepreviouslyneeds-action'] = 'Your response to this invitation is still pending';
$labels['attendeeaccepted'] = 'Participant has accepted'; $labels['attendeeaccepted'] = 'Participant has accepted';
$labels['attendeetentative'] = 'Participant has tentatively accepted'; $labels['attendeetentative'] = 'Participant has tentatively accepted';
$labels['attendeedeclined'] = 'Participant has declined'; $labels['attendeedeclined'] = 'Participant has declined';
$labels['attendeedelegated'] = 'Participant has delegated to $delegatedto'; $labels['attendeedelegated'] = 'Participant has delegated to $delegatedto';
$labels['attendeein-process'] = 'Participant is in-process';
$labels['attendeecompleted'] = 'Participant has completed';
$labels['notanattendee'] = 'You\'re not listed as an attendee of this object'; $labels['notanattendee'] = 'You\'re not listed as an attendee of this object';
$labels['outdatedinvitation'] = 'This invitation has been replaced by a newer version'; $labels['outdatedinvitation'] = 'This invitation has been replaced by a newer version';