2 commits - plugins/calendar

Thomas Brüderli bruederli at kolabsys.com
Wed Nov 20 12:45:51 CET 2013


 plugins/calendar/drivers/database/database_driver.php |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

New commits:
commit 729997885413edd782e9c0a14f772619d50c557c
Merge: 8fc82a0 a25fc1a
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Wed Nov 20 12:36:40 2013 +0100

    Merge branch 'master' of ssh://git.kolab.org/git/roundcubemail-plugins-kolab



commit 8fc82a08556f2c97a8c336ace25317e0a0847c00
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Wed Nov 20 12:36:17 2013 +0100

    Fix saving of recurring events in database (#2540)

diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php
index 7896433..ddcafab 100644
--- a/plugins/calendar/drivers/database/database_driver.php
+++ b/plugins/calendar/drivers/database/database_driver.php
@@ -380,6 +380,11 @@ class database_driver extends calendar_driver
               $event['end'] = clone $event['start'];
               $event['end']->add(new DateInterval('PT'.$new_duration.'S'));
             }
+            // dates did not change, use the ones from master
+            else if ($event['start'] == $old['start'] && $event['end'] == $old['end']) {
+              $event['start'] = $master['start'];
+              $event['end'] = $master['end'];
+            }
             break;
         }
       }
@@ -542,8 +547,8 @@ class database_driver extends calendar_driver
         $notify_at = $this->_get_notification(array('alarms' => $event['alarms'], 'start' => $next_start, 'end' => $next_end));
         $query = $this->rc->db->query(sprintf(
           "INSERT INTO " . $this->db_events . "
-           (calendar_id, recurrence_id, created, changed, uid, %s, %s, all_day, recurrence, title, description, location, categories, url, free_busy, priority, sensitivity, alarms, notifyat)
-            SELECT calendar_id, ?, %s, %s, uid, ?, ?, all_day, recurrence, title, description, location, categories, url, free_busy, priority, sensitivity, alarms, ?
+           (calendar_id, recurrence_id, created, changed, uid, %s, %s, all_day, recurrence, title, description, location, categories, url, free_busy, priority, sensitivity, alarms, attendees, notifyat)
+            SELECT calendar_id, ?, %s, %s, uid, ?, ?, all_day, recurrence, title, description, location, categories, url, free_busy, priority, sensitivity, alarms, attendees, ?
             FROM  " . $this->db_events . " WHERE event_id=? AND calendar_id IN (" . $this->calendar_ids . ")",
             $this->rc->db->quote_identifier('start'),
             $this->rc->db->quote_identifier('end'),
@@ -821,6 +826,9 @@ class database_driver extends calendar_driver
       }
       $event['attendees'] = $attendees;
     }
+    else {
+      $event['attendees'] = array();
+    }
 
     unset($event['event_id'], $event['calendar_id'], $event['notifyat'], $event['all_day'], $event['_attachments']);
     return $event;




More information about the commits mailing list