diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index cfbe94c3..573ebdc6 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -163,6 +163,8 @@ class calendar extends rcube_plugin 'innerclass' => 'icon calendar', ))), 'messagemenu'); + + $this->api->output->add_label('calendar.createfrommail'); } } diff --git a/plugins/calendar/calendar_base.js b/plugins/calendar/calendar_base.js index c60c89a2..33fe9e4d 100644 --- a/plugins/calendar/calendar_base.js +++ b/plugins/calendar/calendar_base.js @@ -6,7 +6,7 @@ * @author Thomas Bruederli * * Copyright (C) 2010, Lazlo Westerhof - * Copyright (C) 2012, Kolab Systems AG + * Copyright (C) 2013, Kolab Systems AG * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -36,10 +36,9 @@ function rcube_calendar(settings) var me = this; // create new event from current mail message - this.create_from_mail = function() + this.create_from_mail = function(uid) { - var uid; - if ((uid = rcmail.get_single_uid())) { + if (uid || (uid = rcmail.get_single_uid())) { // load calendar UI (scripts and edit dialog template) if (!this.ui_loaded) { $.when( @@ -53,7 +52,7 @@ function rcube_calendar(settings) me.ui_loaded = true; me.ui = new rcube_calendar_ui(me.settings); - me.create_from_mail(); // start over + me.create_from_mail(uid); // start over }); return; } @@ -156,9 +155,6 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { // register create-from-mail command to message_commands array if (rcmail.env.task == 'mail') { - // place link above 'view source' - $('#messagemenu a.calendarlink').parent().insertBefore($('#messagemenu a.sourcelink').parent()); - rcmail.register_command('calendar-create-from-mail', function() { cal.create_from_mail() }); rcmail.addEventListener('plugin.mail2event_dialog', function(p){ cal.mail2event_dialog(p) }); rcmail.addEventListener('plugin.unlock_saving', function(p){ cal.ui && cal.ui.unlock_saving(); }); @@ -169,6 +165,15 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { } else rcmail.enable_command('calendar-create-from-mail', true); + + // add contextmenu item + if (window.rcm_contextmenu_register_command) { + rcm_contextmenu_register_command( + 'calendar-create-from-mail', + function(cmd,el){ cal.create_from_mail() }, + 'calendar.createfrommail', + 'moveto'); + } } } diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php index 619a652d..e77bccca 100644 --- a/plugins/tasklist/tasklist.php +++ b/plugins/tasklist/tasklist.php @@ -113,6 +113,8 @@ class tasklist extends rcube_plugin 'innerclass' => 'icon taskadd', ))), 'messagemenu'); + + $this->api->output->add_label('tasklist.createfrommail'); } } diff --git a/plugins/tasklist/tasklist_base.js b/plugins/tasklist/tasklist_base.js index e3a889cd..f804c34b 100644 --- a/plugins/tasklist/tasklist_base.js +++ b/plugins/tasklist/tasklist_base.js @@ -4,7 +4,7 @@ * @version @package_version@ * @author Thomas Bruederli * - * Copyright (C) 2012, Kolab Systems AG + * Copyright (C) 2013, Kolab Systems AG * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -37,10 +37,9 @@ function rcube_tasklist(settings) /** * Open a new task dialog prefilled with contents from the currently selected mail message */ - function create_from_mail() + function create_from_mail(uid) { - var uid; - if ((uid = rcmail.get_single_uid())) { + if (uid || (uid = rcmail.get_single_uid())) { // load calendar UI (scripts and edit dialog template) if (!ui_loaded) { $.when( @@ -53,7 +52,7 @@ function rcube_tasklist(settings) ui_loaded = true; me.ui = new rcube_tasklist_ui(settings); - create_from_mail(); // start over + create_from_mail(uid); // start over }); return; } @@ -90,5 +89,14 @@ window.rcmail && rcmail.env.task == 'mail' && rcmail.addEventListener('init', fu rcmail.env.message_commands.push('tasklist-create-from-mail'); else rcmail.enable_command('tasklist-create-from-mail', true); + + // add contextmenu item + if (window.rcm_contextmenu_register_command) { + rcm_contextmenu_register_command( + 'tasklist-create-from-mail', + function(cmd,el){ tasks.create_from_mail() }, + 'tasklist.createfrommail', + 'moveto'); + } });