From 0911facde954d60ca3124e03b85b3b9b47c3c6b0 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sat, 25 Sep 2010 09:47:51 -0400 Subject: [PATCH] - Truncate message subject when setting page title --- program/steps/mail/show.inc | 74 ++++++++++++++---------------------- 1 files changed, 29 insertions(+), 45 deletions(-) diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index c7431d6..382733f 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -4,8 +4,8 @@ +-----------------------------------------------------------------------+ | program/steps/mail/show.inc | | | - | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -22,51 +22,27 @@ $PRINT_MODE = $RCMAIL->action=='print' ? TRUE : FALSE; // similar code as in program/steps/mail/get.inc -if ($_GET['_uid']) { - $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET)); +if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { + $MESSAGE = new rcube_message($uid); // if message not found (wrong UID)... if (empty($MESSAGE->headers)) { - $OUTPUT->show_message('messageopenerror', 'error'); - // ... display error or preview page - if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messageerror')) - $OUTPUT->send('messageerror'); - else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview')) - $OUTPUT->send('messagepreview'); - // ... go back to the list - else { - rcmail_overwrite_action(''); - return; - } + rcmail_message_error($uid); } + send_nocacheing_headers(); + $mbox_name = $IMAP->get_mailbox_name(); - + // show images? rcmail_check_safe($MESSAGE); - - // calculate Etag for this request - $etag = md5($MESSAGE->uid.$mbox_name.session_id() - .intval($MESSAGE->headers->mdn_sent) - .intval($MESSAGE->is_safe) - .(!empty($MESSAGE->attachments) ? intval($CONFIG['inline_images']) : '') - .intval($PRINT_MODE) - .$_SESSION['sort_col'].$_SESSION['sort_order'] - .$IMAP->messagecount($mbox_name, 'ALL', true) - ); - - // allow caching, unless remote images are present - if ((bool)$MESSAGE->is_safe) - send_nocacheing_headers(); - else if (empty($CONFIG['devel_mode'])) - send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE->headers->seen); // set message charset as default if (!empty($MESSAGE->headers->charset)) $IMAP->set_charset($MESSAGE->headers->charset); - $OUTPUT->set_pagetitle($MESSAGE->subject); - + $OUTPUT->set_pagetitle(abbreviate_string($MESSAGE->subject, 128, '...', true)); + // give message uid to the client $OUTPUT->set_env('uid', $MESSAGE->uid); // set environement @@ -88,7 +64,7 @@ if (!$OUTPUT->ajax_call) $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage'); - + // check for unset disposition notification if ($MESSAGE->headers->mdn_to && !$MESSAGE->headers->mdn_sent && !$MESSAGE->headers->seen && @@ -118,7 +94,7 @@ $next = $prev = $first = $last = -1; if ($_SESSION['sort_col'] == 'date' && $_SESSION['sort_order'] != 'DESC' - && empty($_REQUEST['_search']) && !$IMAP->skip_deleted) + && empty($_REQUEST['_search']) && !$CONFIG['skip_deleted'] && !$IMAP->threading) { // this assumes that we are sorted by date_DESC $cnt = $IMAP->messagecount(); @@ -137,10 +113,11 @@ $MESSAGE->index = array_search($IMAP->get_id($MESSAGE->uid), $a_msg_index); - $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index-1]) : -1 ; - $first = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[0]) : -1; - $next = isset($a_msg_index[$MESSAGE->index+1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index+1]) : -1 ; - $last = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[count($a_msg_index)-1]) : -1; + $count = count($a_msg_index); + $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index-1]) : -1; + $first = $count > 1 ? $IMAP->get_uid($a_msg_index[0]) : -1; + $next = isset($a_msg_index[$MESSAGE->index+1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index+1]) : -1; + $last = $count > 1 ? $IMAP->get_uid($a_msg_index[$count-1]) : -1; } if ($prev > 0) @@ -151,11 +128,14 @@ $OUTPUT->set_env('next_uid', $next); if ($last > 0) $OUTPUT->set_env('last_uid', $last); + + // Don't need a real messages count value + $OUTPUT->set_env('messagecount', 1); } - if (!$MESSAGE->headers->seen) + if (!$MESSAGE->headers->seen && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, - 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); + 'mailbox' => $mbox_name, 'message' => $MESSAGE)); } @@ -239,9 +219,13 @@ // mark message as read -if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) - $IMAP->set_flag($MESSAGE->uid, 'SEEN'); +if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen && + ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) +{ + if ($IMAP->set_flag($MESSAGE->uid, 'SEEN') && $_SESSION['unseen_count'][$mbox_name]) + $_SESSION['unseen_count'][$mbox_name] -= 1; +} exit; -?> + -- Gitblit v1.9.1