if (window.rcmail) { rcmail.addEventListener('init', function() { rcmail.set_book_actions(); if (rcmail.gui_objects.editform && rcmail.env.action.match(/^plugin\.book/)) { rcmail.enable_command('book-save', true); } // add contextmenu items if (window.rcm_contextmenu_register_command) { var menu = $('#rcmGroupMenu'); rcm_contextmenu_register_command( 'book-edit', function(cmd,el){ rcmail.book_edit() }, 'kolab_addressbook.bookedit', null, true, false, false, menu ); rcm_contextmenu_register_command( 'book-delete', function(cmd,el){ rcmail.book_delete() }, 'kolab_addressbook.bookdelete', null, false, false, false, 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') 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, showurl = source && sources[source] && sources[source].carddavurl; if (p.menu) { p.menu[editable ? 'enableContextMenuItems' : 'disableContextMenuItems']('#book-edit,#book-delete'); p.menu[showurl ? 'enableContextMenuItems' : 'disableContextMenuItems']('#book-showurl'); } }); } }); rcmail.addEventListener('listupdate', function() { rcmail.set_book_actions(); }); } // (De-)activates address book management commands rcube_webmail.prototype.set_book_actions = function() { var source = this.env.source, sources = this.env.address_sources; this.enable_command('book-create', true); this.enable_command('book-edit', 'book-delete', source && sources[source] && sources[source].kolab && sources[source].editable); this.enable_command('book-showurl', source && sources[source] && sources[source].carddavurl); }; rcube_webmail.prototype.book_create = function() { this.book_show_contentframe('create'); }; rcube_webmail.prototype.book_edit = function() { this.book_show_contentframe('edit'); }; rcube_webmail.prototype.book_delete = function() { if (this.env.source != '' && confirm(this.get_label('kolab_addressbook.bookdeleteconfirm'))) { var lock = this.set_busy(true, 'kolab_addressbook.bookdeleting'); this.http_request('plugin.book', '_act=delete&_source='+urlencode(this.book_realname()), lock); } }; rcube_webmail.prototype.book_showurl = function() { var source = this.env.source ? this.env.address_sources[this.env.source] : null; if (source && source.carddavurl) { $('div.showurldialog:ui-dialog').dialog('close'); var $dialog = $('
'+rcmail.gettext('carddavurldescription', 'kolab_addressbook')+'
'), textbox = $('