2 commits - plugins/calendar plugins/tasklist
Thomas Brüderli
bruederli at kolabsys.com
Tue Feb 24 14:17:57 CET 2015
plugins/calendar/drivers/kolab/kolab_calendar.php | 8 +++
plugins/calendar/drivers/kolab/kolab_driver.php | 11 ----
plugins/calendar/drivers/kolab/kolab_invitation_calendar.php | 27 +++++++++++
plugins/calendar/drivers/kolab/kolab_user_calendar.php | 16 ++++++
plugins/tasklist/tasklist.js | 2
5 files changed, 53 insertions(+), 11 deletions(-)
New commits:
commit 2a5e28a377fddd4e3a6b36eed85a3e81852b5d72
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Tue Feb 24 14:17:45 2015 +0100
Also respect filters in quickview
diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 4acc8e2..c8faa87 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -2554,7 +2554,7 @@ function rcube_tasklist_ui(settings)
// in focusview mode, only tasks from the selected list are allowed
if (focusview)
- match = $.inArray(rec.list, focusview_lists) >= 0;
+ match = $.inArray(rec.list, focusview_lists) >= 0 && match;
if (match && tagsfilter.length) {
match = rec.tags && rec.tags.length;
commit a837feb76e3458eb58c04545ad4711a0a5d77ef5
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Tue Feb 24 12:49:05 2015 +0100
Fix loading attachments for events listed in virtual calendars (#4400)
diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php
index 64bb082..4bf064f 100644
--- a/plugins/calendar/drivers/kolab/kolab_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_calendar.php
@@ -207,6 +207,14 @@ class kolab_calendar extends kolab_storage_folder_api
return $this->events[$id];
}
+ /**
+ * Get attachment body
+ * @see calendar_driver::get_attachment_body()
+ */
+ public function get_attachment_body($id, $event)
+ {
+ return $this->ready ? $this->storage->get_attachment($event['id'], $id): false;
+ }
/**
* @param integer Event's new start (unix timestamp)
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 848f0f9..6549381 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -583,15 +583,6 @@ class kolab_driver extends calendar_driver
$cid = $event['calendar'] ? $event['calendar'] : reset(array_keys($this->calendars));
if ($storage = $this->get_calendar($cid)) {
- // handle attachments to add
- if (!empty($event['attachments'])) {
- foreach ($event['attachments'] as $idx => $attachment) {
- // we'll read file contacts into memory, Horde/Kolab classes does the same
- // So we cannot save memory, rcube_imap class can do this better
- $event['attachments'][$idx]['content'] = $attachment['data'] ? $attachment['data'] : file_get_contents($attachment['path']);
- }
- }
-
$success = $storage->insert_event($event);
if ($success && $this->freebusy_trigger) {
@@ -1614,7 +1605,7 @@ class kolab_driver extends calendar_driver
if (!($cal = $this->get_calendar($event['calendar'])))
return false;
- return $cal->storage->get_attachment($event['id'], $id);
+ return $cal->get_attachment_body($id, $event);
}
/**
diff --git a/plugins/calendar/drivers/kolab/kolab_invitation_calendar.php b/plugins/calendar/drivers/kolab/kolab_invitation_calendar.php
index a78c5a8..0ffdee5 100644
--- a/plugins/calendar/drivers/kolab/kolab_invitation_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_invitation_calendar.php
@@ -188,6 +188,33 @@ class kolab_invitation_calendar
return $event;
}
+ /**
+ * Get attachment body
+ * @see calendar_driver::get_attachment_body()
+ */
+ public function get_attachment_body($id, $event)
+ {
+ // find the actual folder this event resides in
+ if (!empty($event['_folder_id'])) {
+ $cal = $this->cal->get_calendar($event['_folder_id']);
+ }
+ else {
+ $cal = null;
+ foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) {
+ $cal = new kolab_calendar($foldername, $this->cal);
+ if ($cal->ready && $cal->storage && $cal->get_event($event['id'])) {
+ break;
+ }
+ }
+ }
+
+ if ($cal && $cal->storage) {
+ return $cal->get_attachment_body($id, $event);
+ }
+
+ return false;
+ }
+
/**
* @param integer Event's new start (unix timestamp)
diff --git a/plugins/calendar/drivers/kolab/kolab_user_calendar.php b/plugins/calendar/drivers/kolab/kolab_user_calendar.php
index 7241dd1..3d53206 100644
--- a/plugins/calendar/drivers/kolab/kolab_user_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_user_calendar.php
@@ -174,6 +174,22 @@ class kolab_user_calendar extends kolab_calendar
return $this->events[$id];
}
+ /**
+ * Get attachment body
+ * @see calendar_driver::get_attachment_body()
+ */
+ public function get_attachment_body($id, $event)
+ {
+ if (!$event['calendar'] && ($ev = $this->get_event($event['id']))) {
+ $event['calendar'] = $ev['calendar'];
+ }
+
+ if ($event['calendar'] && ($cal = $this->cal->get_calendar($event['calendar']))) {
+ return $cal->get_attachment_body($id, $event);
+ }
+
+ return false;
+ }
/**
* @param integer Event's new start (unix timestamp)
More information about the commits
mailing list