/**
* 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
$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];
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 .= ' ';
+ }
+ $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 .= ' ';
- }
- 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',
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.").
}
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.").
<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>
<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);
?>
* 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
*/
function mail_message_listing_beginning ($imapConnection,
+ $mbxresponse,
$mailbox = '', $sort = -1,
$msg_cnt_str = '',
$paginator = ' ',
$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;
'<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;
?>
<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>
<tr>
<td align="left">
<small><?php
- echo getButton('SUBMIT', 'markRead',_("Read"));
- echo ' ';
+
+ // 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 ' ';
+ }
echo getButton('SUBMIT', 'markUnread',_("Unread"));
+ echo getButton('SUBMIT', 'markRead',_("Read"));
echo ' ';
+
echo getButton('SUBMIT', 'attache',_("Forward"));
echo ' ';
echo getButton('SUBMIT', 'delete',_("Delete"));
</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 ' <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>
echo "</FORM>\n";
}
-function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg=0) {
+function printHeader($mailbox, $sort, $color, $showsort=true, $start_msg=1) {
global $index_order;
echo html_tag( 'tr' ,'' , 'center', $color[5] );
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%"' );
/*
* 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';
. _("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 = '';
. '&what=' . urlencode($what);
}
$result .= "\">";
-
- if (isset($checkall) && ($checkall == '1')) {
- $result .= _("Unselect All");
- } else {
- $result .= _("Select All");
- }
+ $result .= _("All");
$result .= "</A>\n";
}
} else if ($PG_SHOWNUM == 999999) {
$pg_str = "<A HREF=\"right_main.php?PG_SHOWALL=0"
. "&use_mailbox_cache=$use&startMessage=1&mailbox=$box\" "
- . "TARGET=\"right\">" ._("Paginate") . '</A>';
+ . ">" ._("Paginate") . '</A>';
}
/* Put all the pieces of the paginator string together. */
/* Compute the 'show all' string. */
$all_str = "<A HREF=\"right_main.php?PG_SHOWALL=1"
. "&use_mailbox_cache=$use&startMessage=1&mailbox=$box\" "
- . "TARGET=\"right\">" . _("Show All") . '</A>';
+ . ">" . _("Show All") . '</A>';
}
$result .= ($pg_str != '' ? $spc . '['.$spc.$pg_str.']' . $spc : '');
echo ' </SELECT></TT> ';
}
-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) {