pax_global_header00006660000000000000000000000064121146751240014515gustar00rootroot0000000000000052 comment=74b2a66932e74f9af8af2edb13504f623997811b Roundcube-Plugin-Copy-Message-0.9.0/000077500000000000000000000000001211467512400171775ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/CHANGELOG000066400000000000000000000012351211467512400204120ustar00rootroot00000000000000Roundcube Webmail CopyMessage ============================= Version 1.3 (2013-03-03, rc-0.9) ================================================= * rcube_ui > rcube_utils (r6091) * Update for Roundcube framework Version 1.2 (2012-04-14, rc-0.8) ================================================= * Versoin ready for rc-0.8 Version 1.1 (2012-01-22, rc-0.8) ================================================= * Add inital support for Larry * Add required plugin code (r4424) Version 1.0 (2011-01-18, rc-0.7) ================================================= * Copy function in core after r3385 * Update after r3258 * Better action name * Add de_* * First versionRoundcube-Plugin-Copy-Message-0.9.0/README.md000066400000000000000000000020311211467512400204520ustar00rootroot00000000000000Roundcube Webmail CopyMessage ============================= This plugin adds a copy message option to the context menu, allowing messages to be copied to another folder. Requirements ------------ * [Roundcube ContextMenu plugin][rccm] License ------- This plugin is released under the [GNU General Public License Version 3+][gpl]. Even if skins might contain some programming work, they are not considered as a linked part of the plugin and therefore skins DO NOT fall under the provisions of the GPL license. See the README file located in the core skins folder for details on the skin license. Install ------- * Place this plugin folder into plugins directory of Roundcube * Add copymessage to $rcmail_config['plugins'] in your Roundcube config **NB:** When downloading the plugin from GitHub you will need to create a directory called copymessage and place the files in there, ignoring the root directory in the downloaded archive. [rccm]: http://github.com/JohnDoh/Roundcube-Plugin-Context-Menu/ [gpl]: http://www.gnu.org/licenses/gpl.htmlRoundcube-Plugin-Copy-Message-0.9.0/copymessage.js000066400000000000000000000020251211467512400220530ustar00rootroot00000000000000/** * CopyMessage plugin script */ function rcmail_copyto(command, el, pos) { if (rcmail.env.rcm_destfolder == rcmail.env.mailbox) return; var prev_sel = null; // also select childs of (collapsed) threads if (rcmail.env.uid) { if (!rcmail.message_list.in_selection(rcmail.env.uid)) { prev_sel = rcmail.message_list.get_selection(); rcmail.message_list.select_row(rcmail.env.uid); } if (rcmail.message_list.rows[rcmail.env.uid].has_children && !rcmail.message_list.rows[rcmail.env.uid].expanded) rcmail.message_list.select_childs(rcmail.env.uid); rcmail.env.uid = null; } rcmail.command('copy', rcmail.env.rcm_destfolder, $(el)); if (prev_sel) { rcmail.message_list.clear_selection(); for (var i in prev_sel) rcmail.message_list.select_row(prev_sel[i], CONTROL_KEY); } delete rcmail.env.rcm_destfolder; } $(document).ready(function(){ if (window.rcm_contextmenu_register_command) { rcm_contextmenu_register_command('copy', 'rcmail_copyto', $('#rcmContextCopy'), 'moreacts', 'after', true); } });Roundcube-Plugin-Copy-Message-0.9.0/copymessage.php000066400000000000000000000066751211467512400222450ustar00rootroot00000000000000require_plugin('contextmenu'); $rcmail = rcube::get_instance(); if ($rcmail->action == '') $this->add_hook('render_mailboxlist', array($this, 'show_copy_contextmenu')); } public function show_copy_contextmenu($args) { $rcmail = rcube::get_instance(); $this->add_texts('localization/'); $this->api->output->add_label('copymessage.copyingmessage'); $this->include_script('copymessage.js'); $li = html::tag('li', array('class' => 'submenu copyto'), html::span(null, rcmail::Q($this->gettext('copyto'))) . $this->_gen_folder_list($args['list'], '#copy')); $out .= html::tag('ul', array('id' => 'rcmContextCopy'), $li); $this->api->output->add_footer(html::div(array('style' => 'display: none;'), $out)); } // based on rcmail->render_folder_tree_html() private function _gen_folder_list($arrFolders, $command, $nestLevel = 0, &$folderTotal = 0) { $rcmail = rcube::get_instance(); $maxlength = 35; $realnames = false; $out = ''; foreach ($arrFolders as $key => $folder) { $title = null; if (($folder_class = $rcmail->folder_classname($folder['id'])) && !$realnames) { $foldername = $rcmail->gettext($folder_class); } else { $foldername = $folder['name']; // shorten the folder name to a given length if ($maxlength && $maxlength > 1) { $fname = abbreviate_string($foldername, $maxlength); if ($fname != $foldername) $title = $foldername; $foldername = $fname; } } // make folder name safe for ids and class names $folder_id = asciiwords($folder['id'], true, '_'); $classes = array(); // set special class for Sent, Drafts, Trash and Junk if ($folder['id'] == $rcmail->config->get('sent_mbox')) $classes[] = 'sent'; else if ($folder['id'] == $rcmail->config->get('drafts_mbox')) $classes[] = 'drafts'; else if ($folder['id'] == $rcmail->config->get('trash_mbox')) $classes[] = 'trash'; else if ($folder['id'] == $rcmail->config->get('junk_mbox')) $classes[] = 'junk'; else if ($folder['id'] == 'INBOX') $classes[] = 'inbox'; else $classes[] = '_'.asciiwords($folder_class ? $folder_class : strtolower($folder['id']), true); if ($folder['virtual']) $classes[] = 'virtual'; if ($nestLevel > 0) $classes[] = 'subfolder'; $out .= html::tag('li', array('class' => join(' ', $classes)), html::a(array('href' => $command, 'onclick' => "rcm_set_dest_folder('" . rcmail::JQ($folder['id']) ."')", 'class' => 'active', 'title' => $title), html::span(null, str_repeat('  ', $nestLevel) . rcmail::Q($foldername)))); if (!empty($folder['folders'])) $out .= $this->_gen_folder_list($folder['folders'], $command, $nestLevel+1, $folderTotal); $folderTotal++; } if ($nestLevel == 0) { if ($folderTotal > 5) { $out = html::tag('ul', array('class' => 'toolbarmenu folders scrollable'), $out); $out = html::tag('div', array('class' => 'scroll_up_pas'), '') . $out . html::tag('div', array('class' => 'scroll_down_act'), ''); $out = html::tag('div', array('class' => 'popupmenu'), $out); } else { $out = html::tag('ul', array('class' => 'popupmenu toolbarmenu folders'), $out); } } return $out; } } ?>Roundcube-Plugin-Copy-Message-0.9.0/localization/000077500000000000000000000000001211467512400216675ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/ca_ES.inc000066400000000000000000000001621211467512400233330ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/cs_CZ.inc000066400000000000000000000001701211467512400233610ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/da_DK.inc000066400000000000000000000001751211467512400233270ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/de_CH.inc000066400000000000000000000001661211467512400233270ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/de_DE.inc000066400000000000000000000001661211467512400233250ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/en_GB.inc000066400000000000000000000001571211467512400233370ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/en_US.inc000066400000000000000000000001571211467512400233760ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/es_ES.inc000066400000000000000000000001621211467512400233570ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/fr_FR.inc000066400000000000000000000001471211467512400233620ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/gl_ES.inc000066400000000000000000000001711211467512400233520ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/hu_HU.inc000066400000000000000000000001641211467512400233730ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/it_IT.inc000066400000000000000000000001631211467512400233720ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/nl_NL.inc000066400000000000000000000001721211467512400233640ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/pl_PL.inc000066400000000000000000000001661211467512400233730ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/pt_BR.inc000066400000000000000000000001701211467512400233660ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/ro_RO.inc000066400000000000000000000001571211467512400234050ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/ru_RU.inc000066400000000000000000000002011211467512400234070ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/sv_SE.inc000066400000000000000000000001661211467512400234040ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/localization/tr_TR.inc000066400000000000000000000001611211467512400234120ustar00rootroot00000000000000Roundcube-Plugin-Copy-Message-0.9.0/package.xml000066400000000000000000000057111211467512400213200ustar00rootroot00000000000000 copymessage http://github.com/JohnDoh/Roundcube-Plugin-Copy-Message/ Adds a copy message option to the context menu Adds a copy message option to the context menu, allowing messages to be copied to another folder. Philip Weir JohnDoh roundcube@tehinterweb.co.uk yes 2013-02-24 1.3 1.3 stable stable GNU GPLv3+ Repo only 5.2.1 1.7.0 contextmenu http://github.com/JohnDoh/Roundcube-Plugin-Context-Menu/ 1.9