From cba0d9d606e517ee8466e7af64afe79651af4f5a Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 30 Oct 2013 17:16:47 +0100 Subject: [PATCH] Include CardDAV URL menu item in contextmenu; fix menu ID check --- .../kolab_addressbook/kolab_addressbook.js | 21 ++++++++++++++++--- .../lib/kolab_addressbook_ui.php | 4 +++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/plugins/kolab_addressbook/kolab_addressbook.js b/plugins/kolab_addressbook/kolab_addressbook.js index 2eb5fad6..8aa831ac 100644 --- a/plugins/kolab_addressbook/kolab_addressbook.js +++ b/plugins/kolab_addressbook/kolab_addressbook.js @@ -29,18 +29,33 @@ if (window.rcmail) { menu ); + if (rcmail.env.kolab_addressbook_carddav_url) { + rcm_contextmenu_register_command( + 'book-showurl', + function(cmd,el){ rcmail.book_showurl() }, + 'kolab_addressbook.bookshowurl', + null, + false, + false, + false, + menu + ); + } + // adjust menu items when shown rcmail.addEventListener('contextmenu_show', function(p){ - if (p.menu.attr('id') != '#rcmGroupMenu') + if (p.menu.attr('id') != 'rcmGroupMenu') return; var m = String(p.src.attr('id')).match(/rcmli([a-z0-9\-_=]+)/i), source = m && m.length ? rcmail.html_identifier_decode(m[1]) : null, sources = rcmail.env.address_sources, - editable = source && sources[source] && sources[source].kolab && sources[source].editable; + editable = source && sources[source] && sources[source].kolab && sources[source].editable, + showurl = source && sources[source] && sources[source].carddavurl; if (p.menu) { - p.menu[editable?'enableContextMenuItems':'disableContextMenuItems']('#book-edit,#book-delete'); + p.menu[editable ? 'enableContextMenuItems' : 'disableContextMenuItems']('#book-edit,#book-delete'); + p.menu[showurl ? 'enableContextMenuItems' : 'disableContextMenuItems']('#book-showurl'); } }); } diff --git a/plugins/kolab_addressbook/lib/kolab_addressbook_ui.php b/plugins/kolab_addressbook/lib/kolab_addressbook_ui.php index 37a75396..c7c1a7f5 100644 --- a/plugins/kolab_addressbook/lib/kolab_addressbook_ui.php +++ b/plugins/kolab_addressbook/lib/kolab_addressbook_ui.php @@ -60,6 +60,7 @@ class kolab_addressbook_ui if ($this->rc->config->get('kolab_addressbook_carddav_url')) { $options[] = 'book-showurl'; + $this->rc->output->set_env('kolab_addressbook_carddav_url', true); } foreach ($options as $command) { @@ -89,7 +90,8 @@ class kolab_addressbook_ui 'kolab_addressbook.bookdeleting', 'kolab_addressbook.bookshowurl', 'kolab_addressbook.carddavurldescription', 'kolab_addressbook.bookedit', - 'kolab_addressbook.bookdelete'); + 'kolab_addressbook.bookdelete', + 'kolab_addressbook.bookshowurl'); } // book create/edit form else {