Branch 'dev/calendar-resources' - plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Sun Mar 9 16:21:05 CET 2014
plugins/calendar/calendar_ui.js | 18 +++++++++++++-----
plugins/calendar/drivers/kolab/kolab_driver.php | 3 ++-
2 files changed, 15 insertions(+), 6 deletions(-)
New commits:
commit 0b2e726857cf7cb9af7464ae415adeb029895a02
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Sun Mar 9 16:20:58 2014 +0100
Cache resource owner info lookups
diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js
index b1c1a08..f39c4c0 100644
--- a/plugins/calendar/calendar_ui.js
+++ b/plugins/calendar/calendar_ui.js
@@ -51,6 +51,7 @@ function rcube_calendar_ui(settings)
var resources_treelist;
var resources_data = {};
var resources_index = [];
+ var resource_owners = {};
var freebusy_ui = { workinhoursonly:false, needsupdate:false };
var freebusy_data = {};
var current_view = null;
@@ -1681,9 +1682,15 @@ function rcube_calendar_ui(settings)
$(rcmail.gui_objects.resourceownerinfo).hide();
if (resource.owner) {
- // fetch owner data from server
- me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
- rcmail.http_request('resources-owner', { _id: resource.owner }, me.loading_lock);
+ // display cached data
+ if (resource_owners[resource.owner]) {
+ resource_owner_load(resource_owners[resource.owner]);
+ }
+ else {
+ // fetch owner data from server
+ me.loading_lock = rcmail.set_busy(true, 'loading', me.loading_lock);
+ rcmail.http_request('resources-owner', { _id: resource.owner }, me.loading_lock);
+ }
}
}
};
@@ -1735,12 +1742,13 @@ function rcube_calendar_ui(settings)
var resource_owner_load = function(data)
{
if (data) {
- // TODO: cache this!
+ // cache this!
+ resource_owners[data.ID] = data;
var table = $(rcmail.gui_objects.resourceownerinfo).find('tbody').html('');
for (var k in data) {
- if (k == 'event')
+ if (k == 'event' || k == 'ID')
continue;
table.append($('<tr>').addClass(k)
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 0b23f64..1bf4e17 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -1359,7 +1359,8 @@ class kolab_driver extends calendar_driver
if ($ldap = $this->resurces_ldap()) {
$owner = $ldap->get_record(rcube_ldap::dn_encode($dn), true);
- unset($owner['_raw_attrib'], $owner['_type'], $owner['ID']);
+ $owner['ID'] = rcube_ldap::dn_decode($owner['ID']);
+ unset($owner['_raw_attrib'], $owner['_type']);
}
return $owner;
More information about the commits
mailing list