summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas <tb@woodcrest.local>2013-10-09 12:04:17 +0200
committerThomas <tb@woodcrest.local>2013-10-09 12:04:17 +0200
commitf540f86d19ae1d374ba3c78fe11eaf3f771af150 (patch)
tree6e476ed01ed962a9e8fb638e5c60e9c04aecebfc
parentd016dcc6f6a3daf8c19e2ececd3c676cd274381a (diff)
Prepare message list to display IMAP folder
-rw-r--r--program/js/app.js4
-rw-r--r--program/js/list.js14
-rw-r--r--program/lib/Roundcube/rcube_imap.php1
-rw-r--r--program/lib/Roundcube/rcube_message_header.php9
-rw-r--r--program/steps/mail/func.inc4
-rw-r--r--skins/larry/mail.css8
6 files changed, 38 insertions, 2 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 43ab7be17..1d59794d7 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5998,8 +5998,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 0f8d56c19..32e34e080 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -373,6 +373,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
*/
drag_column: function(e, col)
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index 9faf1bbc6..e0dce6f79 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -1076,6 +1076,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
@@ -167,6 +167,13 @@ class rcube_message_header
public $mdn_to;
/**
+ * IMAP folder this message is stored in
+ *
+ * @var string
+ */
+ public $folder;
+
+ /**
* Other message headers
*
* @var array
@@ -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 48afecb60..b677c4675 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -363,6 +363,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 = format_date($header->date);
+ else if ($col == 'folder')
+ $cont = Q(rcube_charset::convert($header->folder, 'UTF7-IMAP'));
else
$cont = Q($header->$col);
@@ -386,7 +388,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'] = 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 b65b08112..3c7242b4f 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -521,6 +521,14 @@ table.messagelist.fixedcopy {
width: 135px;
}
+.messagelist tr td.folder {
+ width: 135px;
+}
+
+.messagelist tr td.hidden {
+ display: none;
+}
+
.messagelist tr.message {
/* background-color: #fff; */
}