removing gettext function. there is no human readable string
[squirrelmail.git] / functions / mailbox_display.php
index fdf317f90170d6fe80deded5cb3528681df9bbbd..33aa3049c320a432187aadd5ce3c1a32bc545a34 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * mailbox_display.php
  *
- * Copyright (c) 1999-2003 The SquirrelMail Project Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * This contains functions that display mailbox information, such as the
@@ -58,7 +58,9 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
            $allow_server_sort,    /* enable/disable server-side sorting */
            $truncate_sender,      /* number of characters for From/To field (<= 0 for unchanged) */
            $email_address,
-           $show_recipient_instead;    /* show recipient name instead of default identity */
+           $show_recipient_instead,    /* show recipient name instead of default identity */
+           $use_icons,            /* indicates to use icons or text markers */
+           $icon_theme;           /* icons theming */
 
     $color_string = $color[4];
 
@@ -274,41 +276,104 @@ function printMessageInfo($imapConnection, $t, $not_last=true, $key, $mailbox,
                 echo html_tag( 'td', $td_str, 'left', $hlt_color );
                 break;
             case 5: /* flags */
-                $stuff = false;
-                $td_str = "<b><small>";
 
-                if (isset($msg['FLAG_ANSWERED']) && $msg['FLAG_ANSWERED'] == true) {
-                    $td_str .= _("A");
-                    $stuff = true;
-                }
-                if ($msg['TYPE0'] == 'multipart') {
-                    $td_str .= '+';
-                    $stuff = true;
+                // icon message markers
+                //
+                if ($use_icons && $icon_theme != 'none') {
+                    $td_str = "<b><small>";
+                    if (isset($msg['FLAG_FLAGGED']) && $msg['FLAG_FLAGGED'] == true) {
+                        $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/flagged.gif" border="0" height="10" width="10"> ';
+                    }
+                    if ($default_use_priority) {
+                        if ( ($msg['PRIORITY'] == 1) || ($msg['PRIORITY'] == 2) ) {
+                            $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/prio_high.gif" border="0" height="10" width="5"> ';
+                        }
+                        else if ($msg['PRIORITY'] == 5) {
+                            $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/prio_low.gif" border="0" height="10" width="5"> ';
+                        }
+                        else
+                        {
+                            $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/transparent.gif" border="0" width="5"> ';
+                        }
+                    }
+                    if ($msg['TYPE0'] == 'multipart') {
+                        $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/attach.gif" border="0" height="10" width="6">';
+                    }
+                    else
+                    {
+                        $td_str .= '<IMG SRC="' . SM_PATH . 'images/themes/' . $icon_theme . '/transparent.gif" border="0" width="6">';
+                    }
+
+                    $msg_icon = '';
+                    if (!isset($msg['FLAG_SEEN']) || ($msg['FLAG_SEEN']) == false)
+                    {
+                        $msg_alt = '(' . _("New") . ')';
+                        $msg_title = '(' . _("New") . ')';
+                        $msg_icon .= SM_PATH . 'images/themes/' . $icon_theme . '/msg_new';
+                    }
+                    else
+                    {
+                        $msg_alt = '(' . _("Read") . ')';
+                        $msg_title = '(' . _("Read") . ')';
+                        $msg_icon .= SM_PATH . 'images/themes/' . $icon_theme . '/msg_read';
+                    }
+                    if (isset($msg['FLAG_DELETED']) && ($msg['FLAG_DELETED']) == true)
+                    {
+                        $msg_icon .= '_deleted';
+                    }
+                    if (isset($msg['FLAG_ANSWERED']) && ($msg['FLAG_ANSWERED']) == true)
+                    {
+                        $msg_alt = '(' . _("Answered") . ')';
+                        $msg_title = '(' . _("Answered") . ')';
+                        $msg_icon .= '_reply';
+                    }
+                    $td_str .= '<IMG SRC="' . $msg_icon . '.gif" border="0" alt="'. $msg_alt . '" title="' . $msg_title . '" height="12" width="18" >';
+                    $td_str .= '</small></b>';
+                    echo html_tag( 'td',
+                                   $td_str,
+                                   'right',
+                                   $hlt_color,
+                                   'nowrap' );
                 }
-                if ($default_use_priority) {
-                    if ( ($msg['PRIORITY'] == 1) || ($msg['PRIORITY'] == 2) ) {
-                        $td_str .= "<font color=\"$color[1]\">!</font>";
+
+
+                // plain text message markers
+                //
+                else {
+                    $stuff = false;
+                    $td_str = "<b><small>";
+                    if (isset($msg['FLAG_ANSWERED']) && $msg['FLAG_ANSWERED'] == true) {
+                        $td_str .= _("A");
                         $stuff = true;
                     }
-                    if ($msg['PRIORITY'] == 5) {
-                        $td_str .= "<font color=\"$color[8]\">?</font>";
+                    if ($msg['TYPE0'] == 'multipart') {
+                        $td_str .= '+';
                         $stuff = true;
                     }
+                    if ($default_use_priority) {
+                        if ( ($msg['PRIORITY'] == 1) || ($msg['PRIORITY'] == 2) ) {
+                            $td_str .= "<font color=\"$color[1]\">!</font>";
+                            $stuff = true;
+                        }
+                        if ($msg['PRIORITY'] == 5) {
+                            $td_str .= "<font color=\"$color[8]\">?</font>";
+                            $stuff = true;
+                        }
+                    }
+                    if (isset($msg['FLAG_DELETED']) && $msg['FLAG_DELETED'] == true) {
+                        $td_str .= "<font color=\"$color[1]\">D</font>";
+                        $stuff = true;
+                    }
+                    if (!$stuff) {
+                        $td_str .= '&nbsp;';
+                    }
+                    $td_str .= '</small></b>';
+                    echo html_tag( 'td',
+                                   $td_str,
+                                   'center',
+                                   $hlt_color,
+                                   'nowrap' );
                 }
-                if (isset($msg['FLAG_DELETED']) && $msg['FLAG_DELETED'] == true) {
-                    $td_str .= "<font color=\"$color[1]\">D</font>";
-                    $stuff = true;
-                }
-                if (!$stuff) {
-                    $td_str .= '&nbsp;';
-                }
-                do_hook("msg_envelope");
-                $td_str .= '</small></b>';
-                echo html_tag( 'td',
-                               $td_str,
-                               'center',
-                               $hlt_color,
-                               'nowrap' );
                 break;
             case 6: /* size */
                 echo html_tag( 'td',
@@ -467,8 +532,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
            sqsession_unregister('msgs');       }
         switch ($mode) {
             case 'thread':
-                $id   = get_thread_sort($imapConnection);
-                $msgs = getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
+                $msgs = getThreadMessages($imapConnection, $start_msg, $show_num, $num_msgs);
                 if ($msgs === false) {
                     echo '<b><small><center><font color=red>' .
                          _("Thread sorting is not supported by your IMAP server.<br>Please report this to the system administrator.").
@@ -481,8 +545,8 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
                 }
                 break;
             case 'serversort':
-                $id   = sqimap_get_sort_order($imapConnection, $sort, $mbxresponse);
-                $msgs = getServerMessages($imapConnection, $start_msg, $show_num, $num_msgs, $id);
+                $msgs = getServerSortMessages($imapConnection, $start_msg, $show_num,
+                                              $num_msgs, $sort, $mbxresponse);
                 if ($msgs === false) {
                     echo '<b><small><center><font color=red>' .
                          _( "Server-side sorting is not supported by your IMAP server.<br>Please report this to the system administrator.").
@@ -523,7 +587,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
 <table border="0" width="100%" cellpadding="0" cellspacing="0">
   <tr>
     <td>
-      <?php mail_message_listing_beginning($imapConnection, $mailbox, $sort, 
+      <?php mail_message_listing_beginning($imapConnection, $mbxresponse, $mailbox, $sort, 
                                            $msg_cnt_str, $paginator_str, $start_msg); ?>
     </td>
   </tr>
@@ -537,7 +601,7 @@ function showMessagesForMailbox($imapConnection, $mailbox, $num_msgs,
               <tr>
                 <td>
                   <?php 
-                    printHeader($mailbox, $sort, $color, !$thread_sort_messages, $start_msg);
+                    printHeader($mailbox, $srt, $color, !$thread_sort_messages, $start_msg);
                     displayMessageArray($imapConnection, $num_msgs, $start_msg, 
                                                $msort, $mailbox, $sort, $color, $show_num,0,0);
                   ?>
@@ -691,6 +755,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
  * you need to do a "</table></table>";
  *
  * $moveURL is the URL to submit the delete/move form to
+ * $mbxresponse is the array with the results of SELECT against the current mailbox 
  * $mailbox is the current mailbox
  * $sort is the current sorting method (-1 for no sorting available [searches])
  * $Message is a message that is centered on top of the list
@@ -698,11 +763,12 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg,
  */
 
 function mail_message_listing_beginning ($imapConnection,
+                                         $mbxresponse,
                                          $mailbox = '', $sort = -1,
                                          $msg_cnt_str = '',
                                          $paginator = '&nbsp;',
                                          $start_msg = 1) {
-    global $color, $auto_expunge, $base_uri,
+    global $color, $auto_expunge, $base_uri, $show_flag_buttons,
            $allow_server_sort, $server_sort_order,
            $PHP_SELF, $allow_thread_sort, $thread_sort_messages;
 
@@ -734,12 +800,30 @@ function mail_message_listing_beginning ($imapConnection,
                          '<input type="hidden" name="startMessage" value="'.htmlspecialchars($start_msg).'">'.
                   '<input type="hidden" name="location" value="'.$location.'">';
 
+    /* build thread sorting links */
+    if ($allow_thread_sort == TRUE) {
+      if ($thread_sort_messages == 1 ) {
+        $set_thread = 2;
+        $thread_name = _("Unthread View");
+      } elseif ($thread_sort_messages == 0) {
+        $set_thread = 1;
+        $thread_name = _("Thread View");
+      }
+      $thread_link_str = '<small>[<a href="' . $source_url . '?sort='
+           . $sort . '&start_messages=1&set_thread=' . $set_thread
+           . '&mailbox=' . urlencode($mailbox) . '">' . $thread_name
+           . '</a>]</small>';
+    }
+    else
+        $thread_link_str ='';
+
     /*
      * This is the beginning of the message list table.
      * It wraps around all messages
      */
     $safe_name = preg_replace("/[^0-9A-Za-z_]/", '_', $mailbox);
     $form_name = "FormMsgs" . $safe_name;
+
     echo '<form name="' . $form_name . '" method="post" action="move_messages.php">' ."\n"
             . $moveFields;
 ?>
@@ -748,7 +832,8 @@ function mail_message_listing_beginning ($imapConnection,
           <td>
             <table bgcolor="<?php echo $color[4]; ?>" border="0" width="100%" cellpadding="1"  cellspacing="0">
               <tr>
-                <td align="left"><small><?php echo $paginator; ?></small></td>
+                <td align="left"><small><?php echo $paginator; ?><?php echo $thread_link_str; ?></small></td>
+                <td align="center"></td>
                 <td align="right"><small><?php echo $msg_cnt_str; ?></small></td>
               </tr>
             </table>
@@ -760,9 +845,18 @@ function mail_message_listing_beginning ($imapConnection,
               <tr>
                 <td align="left">
                   <small><?php
-                    echo getButton('SUBMIT', 'markRead',_("Read"));
+                    
+                    // display flag buttons only if supported
+                    if ($show_flag_buttons && $mbxresponse != NULL && 
+                      strpos($mbxresponse['PERMANENTFLAGS'], '\\Flagged') !== FALSE) {
+                        echo getButton('SUBMIT', 'markUnflagged',_("Unflag"));
+                        echo getButton('SUBMIT', 'markFlagged',_("Flag"));
+                        echo '&nbsp;';
+                    }
                     echo getButton('SUBMIT', 'markUnread',_("Unread"));
+                    echo getButton('SUBMIT', 'markRead',_("Read"));
                     echo '&nbsp;';
+
                     echo getButton('SUBMIT', 'attache',_("Forward"));
                     echo '&nbsp;';
                     echo getButton('SUBMIT', 'delete',_("Delete"));
@@ -777,22 +871,9 @@ function mail_message_listing_beginning ($imapConnection,
                 </td>
                 <td align="right">
                   <small><?php
-                    /* draws thread sorting links */
-                    if ($allow_thread_sort == TRUE) {
-                      if ($thread_sort_messages == 1 ) {
-                        $set_thread = 2;
-                        $thread_name = _("Unthread View");
-                      } elseif ($thread_sort_messages == 0) {
-                        $set_thread = 1;
-                        $thread_name = _("Thread View");
-                      }
-                      echo '&nbsp;&nbsp;<small>[<a href="' . $source_url . '?sort='
-                           . $sort . '&start_messages=1&set_thread=' . $set_thread
-                           . '&mailbox=' . urlencode($mailbox) . '">' . $thread_name
-                           . '</a>]</small>';
-                    }
+                    //echo $thread_link_str;   //previous behaviour
                     getMbxList($imapConnection);  
-                    echo getButton('SUBMIT', 'moveButton',_("Move")) . "\n";   
+                    echo getButton('SUBMIT', 'moveButton',_("Move")) . "\n";
                   ?></small>
                 </td>
               </tr>
@@ -843,7 +924,7 @@ function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $colo
     echo "</FORM>\n";
 }
 
-function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg) {
+function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg=1) {
     global $index_order;
     echo html_tag( 'tr' ,'' , 'center', $color[5] );
 
@@ -858,7 +939,7 @@ function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg) {
     foreach ($index_order as $item) {
         switch ($item) {
         case 1: /* checkbox */
-            echo html_tag( 'td',get_selectall_link($start_msg, $sort) , '', '', 'width="1%"' );
+            echo html_tag( 'td',get_selectall_link($start_msg, $sort, $mailbox) , '', '', 'width="1%"' );
             break;
         case 5: /* flags */
             echo html_tag( 'td','' , '', '', 'width="1%"' );
@@ -904,8 +985,9 @@ function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg) {
 /*
  * This function shows the sort button. Isn't this a good comment?
  */
-function ShowSortButton($sort, $mailbox, $Up, $Down ) {
+function ShowSortButton($sort, $mailbox, $Down, $Up ) {
     global $PHP_SELF;
+
     /* Figure out which image we want to use. */
     if ($sort != $Up && $sort != $Down) {
         $img = 'sort_none.png';
@@ -932,8 +1014,8 @@ function ShowSortButton($sort, $mailbox, $Up, $Down ) {
          . _("Click here to change the sorting of the message list") .'"></a>';
 }
 
-function get_selectall_link($start_msg, $sort) {
-    global $checkall, $what, $where, $mailbox, $javascript_on;
+function get_selectall_link($start_msg, $sort, $mailbox) {
+    global $checkall, $what, $where, $javascript_on;
     global $PHP_SELF, $PG_SHOWNUM;
 
     $result = '';
@@ -976,12 +1058,7 @@ function get_selectall_link($start_msg, $sort) {
                     .  '&amp;what=' . urlencode($what);
         }
         $result .= "\">";
-
-        if (isset($checkall) && ($checkall == '1')) {
-            $result .= _("Unselect All");
-        } else {
-            $result .= _("Select All");
-        }
+        $result .= _("All");
         $result .= "</A>\n";
     }
 
@@ -1197,7 +1274,7 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs,
     } else if ($PG_SHOWNUM == 999999) {
         $pg_str = "<A HREF=\"right_main.php?PG_SHOWALL=0"
                 . "&amp;use_mailbox_cache=$use&amp;startMessage=1&amp;mailbox=$box\" "
-                . "TARGET=\"right\">" ._("Paginate") . '</A>';
+                . ">" ._("Paginate") . '</A>';
     }
 
     /* Put all the pieces of the paginator string together. */
@@ -1216,7 +1293,7 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs,
       /* Compute the 'show all' string. */
       $all_str = "<A HREF=\"right_main.php?PG_SHOWALL=1"
                  . "&amp;use_mailbox_cache=$use&amp;startMessage=1&amp;mailbox=$box\" "
-                 . "TARGET=\"right\">" . _("Show All") . '</A>'; 
+                 . ">" . _("Show All") . '</A>'; 
     }
 
     $result .= ($pg_str  != '' ? $spc . '['.$spc.$pg_str.']' .  $spc : '');
@@ -1294,8 +1371,14 @@ function getMbxList($imapConnection, $boxes = 0) {
     echo '         </SELECT></TT>&nbsp;';
 }
 
-function getButton($type, $name, $value) {
-    return '<INPUT TYPE="'.$type.'" NAME="'.$name.'" VALUE="'.$value . '" style="padding: 0px; margin: 0px">';
+function getButton($type, $name, $value, $js = '', $enabled = TRUE) {
+    $disabled = ( $enabled ? '' : 'disabled ' );
+    $js = ( $js ? $js.' ' : '' );
+    return '<INPUT '.$disabled.$js.
+               'TYPE="'.$type.
+             '" NAME="'.$name.
+            '" VALUE="'.$value .
+            '" style="padding: 0px; margin: 0px">';
 }
 
 function getSmallStringCell($string, $align) {