Support _filter and _scope as GET arguments for opening mail UI (#5825)

pull/5874/head
Aleksander Machniak 7 years ago
parent 92d5406b4e
commit 06323ddef4

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail CHANGELOG Roundcube Webmail
=========================== ===========================
- Support _filter and _scope as GET arguments for opening mail UI (#5825)
- Support for IMAP folders that cannot contain both folders and messages (#5057) - Support for IMAP folders that cannot contain both folders and messages (#5057)
- Added .user.ini file for php-fpm (#5846) - Added .user.ini file for php-fpm (#5846)
- Email Resent (Bounce) feature (#4985) - Email Resent (Bounce) feature (#4985)

@ -249,7 +249,11 @@ function rcube_webmail()
this.enable_command('set-listmode', this.env.threads && !this.is_multifolder_listing()); this.enable_command('set-listmode', this.env.threads && !this.is_multifolder_listing());
// load messages // load messages
this.command('list'); var searchfilter = $(this.gui_objects.search_filter).val();
if (searchfilter && searchfilter != 'ALL')
this.filter_mailbox(searchfilter);
else
this.command('list');
$(this.gui_objects.qsearchbox).val(this.env.search_text).focusin(function() { ref.message_list.blur(); }); $(this.gui_objects.qsearchbox).val(this.env.search_text).focusin(function() { ref.message_list.blur(); });
} }
@ -2506,14 +2510,16 @@ function rcube_webmail()
if (this.filter_disabled) if (this.filter_disabled)
return; return;
var lock = this.set_busy(true, 'searching'); var params = this.search_params(false, filter),
lock = this.set_busy(true, 'searching');
this.clear_message_list(); this.clear_message_list();
// reset vars // reset vars
this.env.current_page = 1; this.env.current_page = 1;
this.env.search_filter = filter; this.env.search_filter = filter;
this.http_request('search', this.search_params(false, filter), lock); this.http_request('search', params, lock);
this.update_state({_mbox: params._mbox, _filter: filter, _scope: params._scope});
}; };
// reload the current message listing // reload the current message listing

@ -66,8 +66,10 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
if (empty($RCMAIL->action)) { if (empty($RCMAIL->action)) {
$OUTPUT->set_env('search_mods', rcmail_search_mods()); $OUTPUT->set_env('search_mods', rcmail_search_mods());
if (!empty($_SESSION['search_scope'])) $scope = rcube_utils::get_input_value('_scope', rcube_utils::INPUT_GET) ?: $_SESSION['search_scope'];
$OUTPUT->set_env('search_scope', $_SESSION['search_scope']); if ($scope && preg_match('/^(all|sub)$/i', $scope)) {
$OUTPUT->set_env('search_scope', strtolower($scope));
}
rcmail_list_pagetitle(); rcmail_list_pagetitle();
} }
@ -2016,7 +2018,13 @@ function rcmail_search_filter($attrib)
$RCMAIL->output->add_gui_object('search_filter', $attrib['id']); $RCMAIL->output->add_gui_object('search_filter', $attrib['id']);
return $select->show($_REQUEST['_search'] ? $_SESSION['search_filter'] : 'ALL'); $selected = rcube_utils::get_input_value('_filter', rcube_utils::INPUT_GET);
if (!$selected && $_REQUEST['_search']) {
$selected = $_SESSION['search_filter'];
}
return $select->show($selected ?: 'ALL');
} }
function rcmail_search_interval($attrib) function rcmail_search_interval($attrib)

Loading…
Cancel
Save