| | |
| | | | program/steps/mail/list.inc | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2007, The Roundcube Dev Team | |
| | | | Copyright (C) 2005-2014, The Roundcube Dev Team | |
| | | | | |
| | | | Licensed under the GNU General Public License version 3 or | |
| | | | any later version with exceptions for skins & plugins. | |
| | |
| | | return; |
| | | } |
| | | |
| | | $save_arr = array(); |
| | | $dont_override = (array) $RCMAIL->config->get('dont_override'); |
| | | $save_arr = array(); |
| | | $dont_override = (array) $RCMAIL->config->get('dont_override'); |
| | | |
| | | // is there a sort type for this request? |
| | | if ($sort = rcube_utils::get_input_value('_sort', rcube_utils::INPUT_GET)) { |
| | |
| | | |
| | | // is there a set of columns for this request? |
| | | if ($cols = rcube_utils::get_input_value('_cols', rcube_utils::INPUT_GET)) { |
| | | $_SESSION['list_attrib']['columns'] = explode(',', $cols); |
| | | if (!in_array('list_cols', $dont_override)) { |
| | | $save_arr['list_cols'] = explode(',', $cols); |
| | | } |
| | |
| | | |
| | | // initialize searching result if search_filter is used |
| | | if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') { |
| | | $search_request = md5($mbox_name.$_SESSION['search_filter']); |
| | | $search_request = md5($mbox_name.$_SESSION['search_scope'].$_SESSION['search_filter']); |
| | | $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCUBE_CHARSET, rcmail_sort_column()); |
| | | $_SESSION['search'] = $RCMAIL->storage->get_search_set(); |
| | | $_SESSION['search_request'] = $search_request; |
| | | $OUTPUT->set_env('search_request', $search_request); |
| | | $OUTPUT->set_env('search_filter', $_SESSION['search_filter']); |
| | | } |
| | | |
| | | // fetch message headers |
| | |
| | | rcmail_send_unread_count($mbox_name, !empty($_REQUEST['_refresh']), $unseen); |
| | | |
| | | // update message count display |
| | | $pages = ceil($count/$RCMAIL->storage->get_pagesize()); |
| | | $pages = ceil($count/$RCMAIL->storage->get_pagesize()); |
| | | $exists = $RCMAIL->storage->count($mbox_name, 'EXISTS'); |
| | | |
| | | $OUTPUT->set_env('messagecount', $count); |
| | | $OUTPUT->set_env('pagecount', $pages); |
| | | $OUTPUT->set_env('threading', $threading); |
| | | $OUTPUT->set_env('current_page', $count ? $RCMAIL->storage->get_page() : 1); |
| | | $OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS')); |
| | | $OUTPUT->set_env('exists', $exists); |
| | | $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count), $mbox_name); |
| | | |
| | | // remove old message rows if commanded by the client |
| | | if (!empty($_REQUEST['_clear'])) { |
| | | $OUTPUT->command('clear_message_list'); |
| | | } |
| | | |
| | | // add message rows |
| | | rcmail_js_message_list($a_headers, FALSE, $cols); |
| | | rcmail_js_message_list($a_headers, false, $cols); |
| | | |
| | | if (isset($a_headers) && count($a_headers)) { |
| | | if ($search_request) { |
| | | $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count)); |
| | | } |
| | | |
| | | // remember last HIGHESTMODSEQ value (if supported) |
| | | // we need it for flag updates in check-recent |
| | | $data = $RCMAIL->storage->folder_data($mbox_name); |
| | | if (!empty($data['HIGHESTMODSEQ'])) { |
| | | $_SESSION['list_mod_seq'] = $data['HIGHESTMODSEQ']; |
| | | } |
| | | } |
| | | else { |
| | |
| | | $OUTPUT->show_message('nomessagesfound', 'notice'); |
| | | } |
| | | |
| | | // set trash folder state |
| | | if ($mbox_name === $RCMAIL->config->get('trash_mbox')) { |
| | | $OUTPUT->command('set_trash_count', $exists); |
| | | } |
| | | |
| | | // send response |
| | | $OUTPUT->send(); |