From 8749e94b4bed36500e4f45c65cc16cfd5633ef34 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 8 Jun 2012 11:14:53 +0200 Subject: Fix attachment sizes in message print page and attachment preview page (#1488515) - Use size parameter from Content-Disposition header if specified, - Calculate size of base64 encoded message parts --- program/include/rcmail.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'program/include') diff --git a/program/include/rcmail.php b/program/include/rcmail.php index a10a2aa72..8ec8cfe47 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -1997,6 +1997,31 @@ class rcmail extends rcube } + /** + * Returns real size (calculated) of the message part + * + * @param rcube_message_part Message part + * + * @return string Part size (and unit) + */ + public function message_part_size($part) + { + if (isset($part->d_parameters['size'])) { + $size = $this->show_bytes((int)$part->d_parameters['size']); + } + else { + $size = $part->size; + if ($part->encoding == 'base64') { + $size = $size / 1.33; + } + + $size = '~' . $this->show_bytes($size); + } + + return $size; + } + + /************************************************************************ ********* Deprecated methods (to be removed) ********* ***********************************************************************/ -- cgit v1.2.3 From c281619b96afaa34274bb56a3506e5c59b325b02 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 8 Jun 2012 14:18:39 +0200 Subject: Fix Shift + delete button does not permanently delete messages (#1488243) --- CHANGELOG | 1 + program/include/rcube_output_html.php | 6 +++--- program/js/app.js | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'program/include') diff --git a/CHANGELOG b/CHANGELOG index b423f7cbc..45b310ebc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fix Shift + delete button does not permanently delete messages (#1488243) - Add Content-Length for attachments where possible (#1485478) - Fix attachment sizes in message print page and attachment preview page (#1488515) - Fix XSS vulnerability in message subject handling using Larry skin (#1488519) diff --git a/program/include/rcube_output_html.php b/program/include/rcube_output_html.php index 142755bcf..fce9615cf 100644 --- a/program/include/rcube_output_html.php +++ b/program/include/rcube_output_html.php @@ -933,7 +933,7 @@ class rcube_output_html extends rcube_output // make valid href to specific buttons if (in_array($attrib['command'], rcmail::$main_tasks)) { $attrib['href'] = $this->app->url(array('task' => $attrib['command'])); - $attrib['onclick'] = sprintf("%s.command('switch-task','%s');return false", rcmail::JS_OBJECT_NAME, $attrib['command']); + $attrib['onclick'] = sprintf("%s.command('switch-task','%s',null,event); return false", rcmail::JS_OBJECT_NAME, $attrib['command']); } else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) { $attrib['href'] = $this->app->url(array('action' => $attrib['command'], 'task' => $attrib['task'])); @@ -956,7 +956,7 @@ class rcube_output_html extends rcube_output } else if ($command && !$attrib['onclick']) { $attrib['onclick'] = sprintf( - "return %s.command('%s','%s',this)", + "return %s.command('%s','%s',this,event)", rcmail::JS_OBJECT_NAME, $command, $attrib['prop'] @@ -1485,7 +1485,7 @@ class rcube_output_html extends rcube_output if (empty($attrib['form'])) { $out = $this->form_tag(array( 'name' => "rcmqsearchform", - 'onsubmit' => rcmail::JS_OBJECT_NAME . ".command('search');return false;", + 'onsubmit' => rcmail::JS_OBJECT_NAME . ".command('search'); return false", 'style' => "display:inline"), $out); } diff --git a/program/js/app.js b/program/js/app.js index 7eb8c787c..a5c7db441 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -493,7 +493,7 @@ function rcube_webmail() /*********************************************************/ // execute a specific command on the web client - this.command = function(command, props, obj) + this.command = function(command, props, obj, event) { var ret, uid, cid, url, flag; @@ -713,7 +713,7 @@ function rcube_webmail() case 'delete': // mail task if (this.task == 'mail') - this.delete_messages(); + this.delete_messages(event); // addressbook task else if (this.task == 'addressbook') this.delete_contacts(); @@ -2555,7 +2555,7 @@ function rcube_webmail() }; // delete selected messages from the current mailbox - this.delete_messages = function() + this.delete_messages = function(event) { var uid, i, len, trash = this.env.trash_mailbox, list = this.message_list, @@ -2587,7 +2587,7 @@ function rcube_webmail() // if there is a trash mailbox defined and we're not currently in it else { // if shift was pressed delete it immediately - if (list && list.modkey == SHIFT_KEY) { + if ((list && list.modkey == SHIFT_KEY) || (event && rcube_event.get_modifier(event) == SHIFT_KEY)) { if (confirm(this.get_label('deletemessagesconfirm'))) this.permanently_remove_messages(); } -- cgit v1.2.3 From 6e1864cb1731bb870d775ac15eea6589a779ab2e Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sun, 10 Jun 2012 10:09:01 +0200 Subject: Fix storing X-ANNIVERSARY date in vCard format (#1488527) --- CHANGELOG | 1 + program/include/rcube_vcard.php | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'program/include') diff --git a/CHANGELOG b/CHANGELOG index aac9e6524..3ac39c3ee 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fix storing X-ANNIVERSARY date in vCard format (#1488527) - Update to Mail_Mime-1.8.5 (#1488521) - Fix Shift + delete button does not permanently delete messages (#1488243) - Add Content-Length for attachments where possible (#1485478) diff --git a/program/include/rcube_vcard.php b/program/include/rcube_vcard.php index b03ba9cfa..52545a0d9 100644 --- a/program/include/rcube_vcard.php +++ b/program/include/rcube_vcard.php @@ -312,8 +312,9 @@ class rcube_vcard break; case 'birthday': - if ($val = rcube_strtotime($value)) - $this->raw['BDAY'][] = array(0 => date('Y-m-d', $val), 'value' => array('date')); + case 'anniversary': + if (($val = rcube_strtotime($value)) && ($fn = self::$fieldmap[$field])) + $this->raw[$fn][] = array(0 => date('Y-m-d', $val), 'value' => array('date')); break; case 'address': -- cgit v1.2.3