From d777456fcf83900a999f7263e97d5e22af6aa374 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Fri, 27 Jun 2014 11:15:17 +0200 Subject: [PATCH] Load groups when adding an address book folder from search --- plugins/kolab_addressbook/kolab_addressbook.js | 6 +++--- plugins/kolab_addressbook/kolab_addressbook.php | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/plugins/kolab_addressbook/kolab_addressbook.js b/plugins/kolab_addressbook/kolab_addressbook.js index c519a673..c213a6ba 100644 --- a/plugins/kolab_addressbook/kolab_addressbook.js +++ b/plugins/kolab_addressbook/kolab_addressbook.js @@ -161,9 +161,9 @@ if (window.rcmail) { .addEventListener('insert-item', function(data) { // register new address source rcmail.env.address_sources[data.id] = rcmail.env.contactfolders[data.id] = data.data; - if (data.data.subscribed) - rcmail.http_post('plugin.book-subscribe', { _source:data.id, _permanent:1 }); - // TODO: load groups and add them to the list + // subscribe folder and load groups to add them to the list + if (!data.data.virtual) + rcmail.http_post('plugin.book-subscribe', { _source:data.id, _permanent:data.data.subscribed?1:0, _groups:1 }); }) .addEventListener('search-complete', function(data) { if (data.length) diff --git a/plugins/kolab_addressbook/kolab_addressbook.php b/plugins/kolab_addressbook/kolab_addressbook.php index c91d7f5f..b07e439c 100644 --- a/plugins/kolab_addressbook/kolab_addressbook.php +++ b/plugins/kolab_addressbook/kolab_addressbook.php @@ -743,6 +743,17 @@ class kolab_addressbook extends rcube_plugin $success |= $folder->subscribe(intval($_POST['_permanent'])); if (isset($_POST['_active'])) $success |= $folder->activate(intval($_POST['_active'])); + + // list groups for this address book + if (!empty($_POST['_groups'])) { + $abook = new rcube_kolab_contacts($folder->name); + foreach ((array)$abook->list_groups() as $prop) { + $prop['source'] = $id; + $prop['id'] = $prop['ID']; + unset($prop['ID']); + $this->rc->output->command('insert_contact_group', $prop); + } + } } if ($success) {