2 commits - plugins/calendar plugins/tasklist
Thomas Brüderli
bruederli at kolabsys.com
Wed Aug 1 17:00:39 CEST 2012
plugins/calendar/calendar.php | 2 -
plugins/tasklist/tasklist.js | 18 ++++++----
plugins/tasklist/tasklist.php | 70 +++++++++++++++++++++---------------------
3 files changed, 48 insertions(+), 42 deletions(-)
New commits:
commit bea77257251c31ebb0406eb53a6612315810d26b
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Wed Aug 1 17:00:27 2012 +0200
Copy message attachments when creating a task from mail
diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js
index 55f25a5..2457b44 100644
--- a/plugins/tasklist/tasklist.js
+++ b/plugins/tasklist/tasklist.js
@@ -844,7 +844,7 @@ function rcube_tasklist_ui(settings)
}
// show/hide tabs according to calendar's feature support
- $('#taskedit-tab-attachments')[(list.attachments?'show':'hide')]();
+ $('#taskedit-tab-attachments')[(list.attachments||rec.attachments?'show':'hide')]();
// activate the first tab
$('#taskedit').tabs('select', 0);
@@ -894,15 +894,15 @@ function rcube_tasklist_ui(settings)
$dialog.dialog('close');
};
- if (rec.id) {
- buttons[rcmail.gettext('delete', 'tasklist')] = function() {
- if (delete_task(rec.id))
- $dialog.dialog('close');
- };
+ if (action != 'new') {
+ buttons[rcmail.gettext('delete', 'tasklist')] = function() {
+ if (delete_task(rec.id))
+ $dialog.dialog('close');
+ };
}
buttons[rcmail.gettext('cancel', 'tasklist')] = function() {
- $dialog.dialog('close');
+ $dialog.dialog('close');
};
// open jquery UI dialog
@@ -930,6 +930,10 @@ function rcube_tasklist_ui(settings)
*/
function load_attachment(rec, att)
{
+ // can't open temp attachments
+ if (!rec.id || rec.id < 0)
+ return false;
+
var qstring = '_id='+urlencode(att.id)+'&_t='+urlencode(rec.recurrence_id||rec.id)+'&_list='+urlencode(rec.list);
// open attachment in frame if it's of a supported mimetype
diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php
index ff99f2e..e1559d6 100644
--- a/plugins/tasklist/tasklist.php
+++ b/plugins/tasklist/tasklist.php
@@ -329,7 +329,6 @@ class tasklist extends rcube_plugin
private function cleanup_task(&$rec)
{
// remove temp. attachment files
- $taskid = $rec['id'];
if (!empty($_SESSION['tasklist_session']) && ($taskid = $_SESSION['tasklist_session']['id'])) {
$this->rc->plugins->exec_hook('attachments_cleanup', array('group' => $taskid));
$this->rc->session->remove('tasklist_session');
@@ -650,7 +649,7 @@ class tasklist extends rcube_plugin
'size' => $_FILES['_attachments']['size'][$i],
'name' => $_FILES['_attachments']['name'][$i],
'mimetype' => rc_mime_content_type($filepath, $_FILES['_attachments']['name'][$i], $_FILES['_attachments']['type'][$i]),
- 'group' => $eventid,
+ 'group' => $taskid,
);
$attachment = $this->rc->plugins->exec_hook('attachment_upload', $attachment);
@@ -852,40 +851,43 @@ class tasklist extends rcube_plugin
if ($message->headers) {
$task['title'] = trim($message->subject);
$task['description'] = trim($message->first_text_part());
-/*
- // copy mail attachments to event
- if ($message->attachments) {
- $eventid = 'cal:';
- if (!is_array($_SESSION['event_session']) || $_SESSION['event_session']['id'] != $eventid) {
- $_SESSION['event_session'] = array();
- $_SESSION['event_session']['id'] = $eventid;
- $_SESSION['event_session']['attachments'] = array();
- }
-
- foreach ((array)$message->attachments as $part) {
- $attachment = array(
- 'data' => $imap->get_message_part($uid, $part->mime_id, $part),
- 'size' => $part->size,
- 'name' => $part->filename,
- 'mimetype' => $part->mimetype,
- 'group' => $eventid,
- );
-
- $attachment = $this->rc->plugins->exec_hook('attachment_save', $attachment);
-
- if ($attachment['status'] && !$attachment['abort']) {
- $id = $attachment['id'];
-
- // store new attachment in session
- unset($attachment['status'], $attachment['abort'], $attachment['data']);
- $_SESSION['event_session']['attachments'][$id] = $attachment;
-
- $attachment['id'] = 'rcmfile' . $attachment['id']; # add prefix to consider it 'new'
- $event['attachments'][] = $attachment;
+ $task['id'] = -$uid;
+
+ $this->load_driver();
+
+ // copy mail attachments to task
+ if ($message->attachments && $this->driver->attachments) {
+ if (!is_array($_SESSION['tasklist_session']) || $_SESSION['tasklist_session']['id'] != $task['id']) {
+ $_SESSION['tasklist_session'] = array();
+ $_SESSION['tasklist_session']['id'] = $task['id'];
+ $_SESSION['tasklist_session']['attachments'] = array();
+ }
+
+ foreach ((array)$message->attachments as $part) {
+ $attachment = array(
+ 'data' => $imap->get_message_part($uid, $part->mime_id, $part),
+ 'size' => $part->size,
+ 'name' => $part->filename,
+ 'mimetype' => $part->mimetype,
+ 'group' => $task['id'],
+ );
+
+ $attachment = $this->rc->plugins->exec_hook('attachment_save', $attachment);
+
+ if ($attachment['status'] && !$attachment['abort']) {
+ $id = $attachment['id'];
+ $attachment['classname'] = rcmail_filetype2classname($attachment['mimetype'], $attachment['name']);
+
+ // store new attachment in session
+ unset($attachment['status'], $attachment['abort'], $attachment['data']);
+ $_SESSION['tasklist_session']['attachments'][$id] = $attachment;
+
+ $attachment['id'] = 'rcmfile' . $attachment['id']; # add prefix to consider it 'new'
+ $task['attachments'][] = $attachment;
+ }
}
- }
}
-*/
+
$this->rc->output->command('plugin.mail2taskdialog', $task);
}
else {
commit 754aa2a2995f96b5737d68d5894289daf9db42cd
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Wed Aug 1 16:53:44 2012 +0200
Add attachment css classes; remove unused var
diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index 2378417..d1aea13 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -1744,7 +1744,6 @@ class calendar extends rcube_plugin
private function cleanup_event(&$event)
{
// remove temp. attachment files
- $eventid = 'cal:'.$event['id'];
if (!empty($_SESSION['event_session']) && ($eventid = $_SESSION['event_session']['id'])) {
$this->rc->plugins->exec_hook('attachments_cleanup', array('group' => $eventid));
$this->rc->session->remove('event_session');
@@ -2413,6 +2412,7 @@ class calendar extends rcube_plugin
if ($attachment['status'] && !$attachment['abort']) {
$id = $attachment['id'];
+ $attachment['classname'] = rcmail_filetype2classname($attachment['mimetype'], $attachment['name']);
// store new attachment in session
unset($attachment['status'], $attachment['abort'], $attachment['data']);
More information about the commits
mailing list