diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-10-27 06:53:11 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-10-27 06:53:11 +0000 |
| commit | 0a196253e923035cd5fff230c3f8fea29bcc2350 (patch) | |
| tree | 199574e9aabae0d42a3113b377c38a74b94cb03e | |
| parent | 756be8ec4ecb039474f33a79e1810f022c70e7d9 (diff) | |
- Improve performance of rcube_imap_generic::countMessages() using STATUS instead of SELECT
git-svn-id: https://svn.roundcube.net/trunk@4143 208e9e7b-5314-0410-a742-e7e81cd9613c
| -rw-r--r-- | roundcubemail/program/include/rcube_imap_generic.php | 7 | ||||
| -rw-r--r-- | roundcubemail/program/steps/settings/manage_folders.inc | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/roundcubemail/program/include/rcube_imap_generic.php b/roundcubemail/program/include/rcube_imap_generic.php index 41240a2d1..2171e5d5d 100644 --- a/roundcubemail/program/include/rcube_imap_generic.php +++ b/roundcubemail/program/include/rcube_imap_generic.php @@ -944,11 +944,16 @@ class rcube_imap_generic $this->selected = ''; } - $this->select($mailbox); if ($this->selected == $mailbox) { return $this->data['EXISTS']; } + // Try STATUS, should be faster + $counts = $this->status($mailbox, array('MESSAGES')); + if (is_array($counts)) { + return (int) $counts['MESSAGES']; + } + return false; } diff --git a/roundcubemail/program/steps/settings/manage_folders.inc b/roundcubemail/program/steps/settings/manage_folders.inc index 1dd459aef..adcb5eecf 100644 --- a/roundcubemail/program/steps/settings/manage_folders.inc +++ b/roundcubemail/program/steps/settings/manage_folders.inc @@ -299,7 +299,7 @@ function rcube_subscription_form($attrib) $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes))); $table->add('name', Q($display_folder)); - $table->add('msgcount', ($folder['virtual'] ? '' : $IMAP->messagecount($folder['id'], 'ALL', false, false))); + $table->add('msgcount', (($folder['virtual'] || $noselect) ? '' : $IMAP->messagecount($folder['id'], 'ALL', false, false))); $table->add('subscribed', $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''), array('value' => $folder_utf8, 'disabled' => ($protected || $noselect) ? 'disabled' : ''))); if ($threading_supported) { |
