From 628706acdcb973154161b5862c30ce706a08455a Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 9 Oct 2013 12:04:17 +0200 Subject: Prepare message list to display IMAP folder --- program/js/app.js | 4 +++- program/js/list.js | 14 ++++++++++++++ program/lib/Roundcube/rcube_imap.php | 1 + program/lib/Roundcube/rcube_message_header.php | 9 +++++++++ program/steps/mail/func.inc | 4 +++- skins/larry/mail.css | 8 ++++++++ 6 files changed, 38 insertions(+), 2 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 654faa024..55387c0ed 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -6399,8 +6399,10 @@ function rcube_webmail() if ((n = $.inArray('status', this.env.coltypes)) >= 0) this.env.status_col = n; - if (list) + if (list) { + list.hide_column('folder', !(this.env.search_request || this.env.search_id)); list.init_header(); + } }; // replace content of row count display diff --git a/program/js/list.js b/program/js/list.js index 022ed3180..319807eae 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -381,6 +381,20 @@ blur: function() }, +/** + * Set/unset the given column as hidden + */ +hide_column: function(col, hide) +{ + var method = hide ? 'addClass' : 'removeClass'; + + if (this.fixed_header) + $(this.row_tagname()+' '+this.col_tagname()+'.'+col, this.fixed_header)[method]('hidden'); + + $(this.row_tagname()+' '+this.col_tagname()+'.'+col, this.list)[method]('hidden'); +}, + + /** * onmousedown-handler of message list column */ diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php index 432227091..adac77b23 100644 --- a/program/lib/Roundcube/rcube_imap.php +++ b/program/lib/Roundcube/rcube_imap.php @@ -1111,6 +1111,7 @@ class rcube_imap extends rcube_storage } foreach ($headers as $h) { + $h->folder = $folder; $a_msg_headers[$h->uid] = $h; } diff --git a/program/lib/Roundcube/rcube_message_header.php b/program/lib/Roundcube/rcube_message_header.php index 2c5e2b6c8..2bda930eb 100644 --- a/program/lib/Roundcube/rcube_message_header.php +++ b/program/lib/Roundcube/rcube_message_header.php @@ -166,6 +166,13 @@ class rcube_message_header */ public $mdn_to; + /** + * IMAP folder this message is stored in + * + * @var string + */ + public $folder; + /** * Other message headers * @@ -189,6 +196,8 @@ class rcube_message_header 'reply-to' => 'replyto', 'cc' => 'cc', 'bcc' => 'bcc', + 'mbox' => 'folder', + 'folder' => 'folder', 'content-transfer-encoding' => 'encoding', 'in-reply-to' => 'in_reply_to', 'content-type' => 'ctype', diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 0211fabc4..7436544be 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -398,6 +398,8 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null $cont = show_bytes($header->$col); else if ($col == 'date') $cont = $RCMAIL->format_date($header->date); + else if ($col == 'folder') + $cont = rcube::Q(rcube_charset::convert($header->folder, 'UTF7-IMAP')); else $cont = rcube::Q($header->$col); @@ -421,7 +423,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null $a_msg_flags['prio'] = (int) $header->priority; $a_msg_flags['ctype'] = rcube::Q($header->ctype); - $a_msg_flags['mbox'] = $mbox; + $a_msg_flags['mbox'] = $header->folder; // merge with plugin result (Deprecated, use $header->flags) if (!empty($header->list_flags) && is_array($header->list_flags)) diff --git a/skins/larry/mail.css b/skins/larry/mail.css index 8e6e78e77..bf77201fd 100644 --- a/skins/larry/mail.css +++ b/skins/larry/mail.css @@ -497,6 +497,14 @@ table.messagelist.fixedcopy { width: 155px; } +.messagelist tr td.folder { + width: 135px; +} + +.messagelist tr td.hidden { + display: none; +} + .messagelist tr.message { /* background-color: #fff; */ } -- cgit v1.2.3