diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index f910b2b6..15c81f99 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -746,6 +746,10 @@ class calendar extends rcube_plugin $results[] = $cal; } + // report more results available + if ($this->driver->search_more_results) + $this->rc->output->show_message('autocompletemore', 'info'); + $this->rc->output->command('multi_thread_http_response', $results, get_input_value('_reqid', RCUBE_INPUT_GPC)); return; } diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index 81263393..8f1af0c4 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -409,6 +409,7 @@ class kolab_driver extends calendar_driver return array(); $this->calendars = array(); + $this->search_more_results = false; // find unsubscribed IMAP folders that have "event" type if ($source == 'folders') { @@ -419,7 +420,8 @@ class kolab_driver extends calendar_driver } // find other user's virtual calendars else if ($source == 'users') { - foreach (kolab_storage::search_users($query, 0) as $user) { + $limit = $this->rc->config->get('autocomplete_max', 15) * 2; // we have slightly more space, so display twice the number + foreach (kolab_storage::search_users($query, 0, array(), $limit, $count) as $user) { $calendar = new kolab_user_calendar($user, $this->cal); $this->calendars[$calendar->id] = $calendar; @@ -431,6 +433,10 @@ class kolab_driver extends calendar_driver } } } + + if ($count > $limit) { + $this->search_more_results = true; + } } // don't list the birthday calendar