From 7a2bade211d2e8951dda2b88754a564670847b35 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 22 Aug 2011 11:44:07 -0400
Subject: [PATCH] - Added 'priority' column on messages list

---
 CHANGELOG                              |    1 
 skins/default/templates/mail.html      |    1 
 skins/default/images/messageicons.png  |    0 
 skins/default/ie6hacks.css             |    6 +++
 skins/default/images/messageicons.gif  |    0 
 program/include/rcube_imap.php         |    1 
 skins/default/mail.css                 |   42 ++++++++++++++++++++-
 program/steps/mail/func.inc            |    5 ++
 config/main.inc.php.dist               |    2 
 program/include/rcube_imap_generic.php |    2 
 program/js/app.js                      |    6 +++
 11 files changed, 60 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 0df9b97..131b3e8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Added 'priority' column on messages list
 - Fix image type check for contact photo uploads
 
 RELEASE 0.6-beta
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 85afa8c..159331a 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -360,7 +360,7 @@
 $rcmail_config['message_sort_order'] = 'DESC';
 
 // These cols are shown in the message list. Available cols are:
-// subject, from, to, cc, replyto, date, size, status, flag, attachment
+// subject, from, to, cc, replyto, date, size, status, flag, attachment, 'priority'
 $rcmail_config['list_cols'] = array('subject', 'status', 'from', 'date', 'size', 'flag', 'attachment');
 
 // the default locale setting (leave empty for auto-detection)
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 6a35af0..4a37af6 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -96,7 +96,6 @@
         'MESSAGE-ID',
         'CONTENT-TRANSFER-ENCODING',
         'REFERENCES',
-        'X-PRIORITY',
         'X-DRAFT-INFO',
         'MAIL-FOLLOWUP-TO',
         'MAIL-REPLY-TO',
diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index e3c987c..dd10033 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -1537,7 +1537,7 @@
         if ($bodystr)
             $request .= "BODYSTRUCTURE ";
         $request .= "BODY.PEEK[HEADER.FIELDS (DATE FROM TO SUBJECT CONTENT-TYPE ";
-        $request .= "CC REPLY-TO LIST-POST DISPOSITION-NOTIFICATION-TO".$add.")])";
+        $request .= "CC REPLY-TO LIST-POST DISPOSITION-NOTIFICATION-TO X-PRIORITY".$add.")])";
 
         if (!$this->putLine($request)) {
             $this->setError(self::ERROR_COMMAND, "Unable to send command: $request");
diff --git a/program/js/app.js b/program/js/app.js
index bbb14e7..9da19b2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1778,6 +1778,12 @@
         html = expando;
       else if (c == 'subject')
         html = tree + cols[c];
+      else if (c == 'priority') {
+        if (flags.prio > 0 && flags.prio < 6)
+          html = '<span class="prio'+flags.prio+'">&nbsp;</span>';
+        else
+          html = '&nbsp;';
+      }
       else
         html = cols[c];
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b04628f..50de710 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -253,7 +253,7 @@
     return;
 
   // remove 'threads', 'attachment', 'flag', 'status' columns, we don't need them here
-  foreach (array('threads', 'attachment', 'flag', 'status') as $col) {
+  foreach (array('threads', 'attachment', 'flag', 'status', 'priority') as $col) {
     if (($key = array_search($col, $a_show_cols)) !== FALSE)
       unset($a_show_cols[$key]);
   }
@@ -309,6 +309,8 @@
       $a_msg_flags['flagged'] = 1;
     if ($header->others['list-post'])
       $a_msg_flags['ml'] = 1;
+    if ($header->priority)
+      $a_msg_flags['prio'] = (int) $header->priority;
 
     $a_msg_flags['ctype'] = Q($header->ctype);
     $a_msg_flags['mbox'] = $mbox;
@@ -372,6 +374,7 @@
         $col_name = '<span class="flagged">&nbsp;</span>';
         break;
       case 'attachment':
+      case 'priority':
       case 'status':
         $col_name = '<span class="' . $col .'">&nbsp;</span>';
         break;
diff --git a/skins/default/ie6hacks.css b/skins/default/ie6hacks.css
index bfdb6f0..5da6e7a 100644
--- a/skins/default/ie6hacks.css
+++ b/skins/default/ie6hacks.css
@@ -131,6 +131,12 @@
 #messagelist tr td.threads div.listmenu,
 #messagelist tr td.attachment span.attachment,
 #messagelist tr td.attachment span.report,
+#messagelist tr td.priority span.priority,
+#messagelist tr td.priority span.prio1,
+#messagelist tr td.priority span.prio2,
+#messagelist tr td.priority span.prio3,
+#messagelist tr td.priority span.prio4,
+#messagelist tr td.priority span.prio5,
 #messagelist tr td.flag span.flagged,
 #messagelist tr td.flag span.unflagged:hover,
 #messagelist tr td.status span.status,
diff --git a/skins/default/images/messageicons.gif b/skins/default/images/messageicons.gif
index 60526f1..80423dd 100644
--- a/skins/default/images/messageicons.gif
+++ b/skins/default/images/messageicons.gif
Binary files differ
diff --git a/skins/default/images/messageicons.png b/skins/default/images/messageicons.png
index 3dd3760..d45f065 100644
--- a/skins/default/images/messageicons.png
+++ b/skins/default/images/messageicons.png
Binary files differ
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 4e6e154..22e6939 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -702,7 +702,8 @@
 
 #messagelist tr td.flag span,
 #messagelist tr td.status span,
-#messagelist tr td.attachment span
+#messagelist tr td.attachment span,
+#messagelist tr td.priority span
 {
   width: 15px;
 }
@@ -712,6 +713,12 @@
 #messagelist tr td.threads div.listmenu,
 #messagelist tr td.attachment span.attachment,
 #messagelist tr td.attachment span.report,
+#messagelist tr td.priority span.priority,
+#messagelist tr td.priority span.prio1,
+#messagelist tr td.priority span.prio2,
+#messagelist tr td.priority span.prio3,
+#messagelist tr td.priority span.prio4,
+#messagelist tr td.priority span.prio5,
 #messagelist tr td.flag span.flagged,
 #messagelist tr td.flag span.unflagged:hover,
 #messagelist tr td.status span.status,
@@ -740,6 +747,36 @@
 #messagelist tr td.attachment span.report
 {
   background-position: 0 -255px;
+}
+
+#messagelist tr td.priority span.priority
+{
+  background-position: 0 -309px;
+}
+
+#messagelist tr td.priority span.prio5
+{
+  background-position: 0 -358px;
+}
+
+#messagelist tr td.priority span.prio4
+{
+  background-position: 0 -340px;
+}
+
+#messagelist tr td.priority span.prio3
+{
+  background-position: 0 -324px;
+}
+
+#messagelist tr td.priority span.prio2
+{
+  background-position: 0 -309px;
+}
+
+#messagelist tr td.priority span.prio1
+{
+  background-position: 0 -290px;
 }
 
 #messagelist tr td.flag span.flagged
@@ -837,7 +874,8 @@
 #messagelist tr td.attachment,
 #messagelist tr td.threads,
 #messagelist tr td.status,
-#messagelist tr td.flag
+#messagelist tr td.flag,
+#messagelist tr td.priority
 {
   width: 17px;
   padding: 0 0 0 2px;
diff --git a/skins/default/templates/mail.html b/skins/default/templates/mail.html
index ea6a2f7..30b56aa 100644
--- a/skins/default/templates/mail.html
+++ b/skins/default/templates/mail.html
@@ -166,6 +166,7 @@
     <li><input type="checkbox" name="list_col[]" value="status" id="cols_status" /><label for="cols_status"><roundcube:label name="readstatus" /></label></li>
     <li><input type="checkbox" name="list_col[]" value="attachment" id="cols_attachment" /><label for="cols_attachment"><roundcube:label name="attachment" /></label></li>
     <li><input type="checkbox" name="list_col[]" value="flag" id="cols_flag" /><label for="cols_flag"><roundcube:label name="flag" /></label></li>
+    <li><input type="checkbox" name="list_col[]" value="priority" id="cols_priority" /><label for="cols_priority"><roundcube:label name="priority" /></label></li>
   </ul>
 </fieldset>
 <roundcube:endif />

--
Gitblit v1.9.1