plugins/calendar plugins/libcalendaring
Thomas Brüderli
bruederli at kolabsys.com
Sun Jul 20 15:19:01 CEST 2014
plugins/calendar/calendar.php | 3 ++-
plugins/libcalendaring/libcalendaring.js | 15 ++++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
New commits:
commit aedba0a4c068285e594722d77d2895cfdea38bf4
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Sun Jul 20 15:15:42 2014 +0200
Execute (delayed) the configured action after an iTip message has been processed by the user (#419)
diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index 6b28657..343b3e5 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -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)
diff --git a/plugins/libcalendaring/libcalendaring.js b/plugins/libcalendaring/libcalendaring.js
index a5558dd..a2cf667 100644
--- a/plugins/libcalendaring/libcalendaring.js
+++ b/plugins/libcalendaring/libcalendaring.js
@@ -855,6 +855,19 @@ rcube_libcalendaring.update_itip_object_status = function(p)
};
/**
+ * 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
* 1 - move to Trash
@@ -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();
More information about the commits
mailing list