Execute (delayed) the configured action after an iTip message has been processed by the user (#419)

This commit is contained in:
Thomas Bruederli 2014-07-20 15:15:42 +02:00
parent aada053324
commit aedba0a4c0
2 changed files with 16 additions and 2 deletions

View file

@ -2497,7 +2497,8 @@ class calendar extends rcube_plugin
$this->rc->output->command('display_message', $this->gettext(array('name' => $message, 'vars' => array('calendar' => $calendar['name']))), 'confirmation');
$metadata['rsvp'] = intval($metadata['rsvp']);
$this->rc->output->command('plugin.fetch_itip_object_status', $metadata);
$metadata['after_action'] = $this->rc->config->get('calendar_itip_after_action', $this->defaults['calendar_itip_after_action']);
$this->rc->output->command('plugin.itip_message_processed', $metadata);
$error_msg = null;
}
else if ($error_msg)

View file

@ -854,6 +854,19 @@ rcube_libcalendaring.update_itip_object_status = function(p)
$('#'+p.action+'-'+p.id).show().find('input.button').last().after(p.select);
};
/**
* Callback from server after an iTip message has been processed
*/
rcube_libcalendaring.itip_message_processed = function(metadata)
{
if (metadata.after_action) {
setTimeout(function(){ rcube_libcalendaring.itip_after_action(metadata.after_action); }, 1200);
}
else {
rcube_libcalendaring.fetch_itip_object_status(metadata);
}
};
/**
* After-action on iTip request message. Action types:
* 0 - no action
@ -903,7 +916,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) {
rcmail.addEventListener('plugin.update_itip_object_status', rcube_libcalendaring.update_itip_object_status)
.addEventListener('plugin.fetch_itip_object_status', rcube_libcalendaring.fetch_itip_object_status)
.addEventListener('plugin.itip_after_action', rcube_libcalendaring.itip_after_action);
.addEventListener('plugin.itip_message_processed', rcube_libcalendaring.itip_message_processed);
$('.rsvp-buttons').on('click', 'a.reply-comment-toggle', function(e){
$(this).hide().parent().find('textarea').show().focus();