| | |
| | | | 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. | |
| | |
| | | |
| | | // 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 |
| | |
| | | && $_SESSION['search_request'] == $_REQUEST['_search'] |
| | | ) { |
| | | $_SESSION['search'] = $RCMAIL->storage->get_search_set(); |
| | | |
| | | // multi-folder search |
| | | if ($_SESSION['search'][1]->multi) { |
| | | if (empty($cols)) |
| | | $cols = $_SESSION['list_attrib']['columns'] ? $_SESSION['list_attrib']['columns'] : (array)$CONFIG['list_cols']; |
| | | if (!in_array('folder', $cols)) |
| | | $cols[] = 'folder'; // Add 'folder' column to list |
| | | |
| | | // make message UIDs unique by appending the folder name |
| | | foreach ($a_headers as $i => $header) { |
| | | $header->uid .= '-'.$header->folder; |
| | | $header->flags['skip_mbox_check'] = true; |
| | | if ($header->parent_uid) |
| | | $header->parent_uid .= '-'.$header->folder; |
| | | } |
| | | |
| | | $OUTPUT->command('select_folder', ''); |
| | | } |
| | | } |
| | | // remove old search data |
| | | else if (empty($_REQUEST['_search']) && isset($_SESSION['search'])) { |
| | |
| | | $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)); |