diff --git a/CHANGELOG b/CHANGELOG index 62bf50ee6..5c89a5588 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ CHANGELOG Roundcube Webmail =========================== +- Fix so group/addressbook selection is retained on page refresh + RELEASE 1.1.7 ------------- - Fix vulnerability in handling of mail()'s 5th argument diff --git a/program/js/app.js b/program/js/app.js index b0002b3ea..6f5de460b 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4978,6 +4978,9 @@ function rcube_webmail() url._search = this.env.search_request; this.http_request(this.env.task == 'mail' ? 'list-contacts' : 'list', url, lock); + + if (this.env.task != 'mail') + this.update_state({_source: src, _page: page && page > 1 ? page : null, _gid: group}); }; this.list_contacts_clear = function() diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index 594c2a695..e94b90dd0 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -152,14 +152,18 @@ function rcmail_contact_source($source=null, $init_env=false, $writable=false) else $CONTACTS->set_page(isset($_SESSION['page']) ? $_SESSION['page'] : 1); - if (!empty($_REQUEST['_gid'])) - $CONTACTS->set_group(rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC)); + if (!empty($_REQUEST['_gid'])) { + $group = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC); + $CONTACTS->set_group($group); + } - if (!$init_env) + if (!$init_env) { return $CONTACTS; + } $OUTPUT->set_env('readonly', $CONTACTS->readonly); $OUTPUT->set_env('source', (string) $source); + $OUTPUT->set_env('group', $group); // reduce/extend $CONTACT_COLTYPES with specification from the current $CONTACT object if (is_array($CONTACTS->coltypes)) {