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