Mercurial > hg > rc1
diff plugins/vcard_attachments/vcardattach.js @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
author | Charlie Root |
---|---|
date | Thu, 04 Jan 2018 15:50:29 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/vcard_attachments/vcardattach.js Thu Jan 04 15:50:29 2018 -0500 @@ -0,0 +1,72 @@ +/** + * vcard_attachments plugin script + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2012-2016, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can redistribute it + * and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ + +function plugin_vcard_save_contact(mime_id) +{ + var lock = rcmail.set_busy(true, 'loading'); + rcmail.http_post('plugin.savevcard', { _uid: rcmail.env.uid, _mbox: rcmail.env.mailbox, _part: mime_id }, lock); + + return false; +} + +function plugin_vcard_insertrow(data) +{ + var ctype = data.row.ctype; + + if (ctype == 'text/vcard' || ctype == 'text/x-vcard' || ctype == 'text/directory') { + $('#rcmrow' + rcmail.html_identifier(data.uid, true) + ' > td.attachment') + .html('<img src="' + rcmail.env.vcard_icon + '" alt="" />'); + } +} + +function plugin_vcard_attach() +{ + var id, n, contacts = [], + ts = new Date().getTime(), + args = {_uploadid: ts, _id: rcmail.env.compose_id}; + + for (n=0; n < rcmail.contact_list.selection.length; n++) { + id = rcmail.contact_list.selection[n]; + if (id && id.charAt(0) != 'E' && rcmail.env.contactdata[id]) + contacts.push(id); + } + + if (!contacts.length) + return false; + + args._uri = 'vcard://' + contacts.join(','); + + // add to attachments list + if (!rcmail.add2attachment_list(ts, {name: '', html: rcmail.get_label('attaching'), classname: 'uploading', complete: false})) + rcmail.file_upload_id = rcmail.set_busy(true, 'attaching'); + + rcmail.http_post('upload', args); +} + +window.rcmail && rcmail.addEventListener('init', function(evt) { + if (rcmail.gui_objects.messagelist) + rcmail.addEventListener('insertrow', function(data, evt) { plugin_vcard_insertrow(data); }); + + if (rcmail.env.action == 'compose' && rcmail.gui_objects.contactslist) { + rcmail.env.compose_commands.push('attach-vcard'); + rcmail.register_command('attach-vcard', function() { plugin_vcard_attach(); }); + rcmail.contact_list.addEventListener('select', function(list) { + // TODO: support attaching more than one at once + rcmail.enable_command('attach-vcard', list.selection.length == 1 && rcmail.contact_list.selection[0].charAt(0) != 'E'); + }); + } +});