From 2b72ec46a761ded28c83ef2ac544c9406a874802 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 12 May 2014 13:41:20 +0200 Subject: Bypass cache when counting EXISTS messages --- program/steps/mail/check_recent.inc | 4 ++-- program/steps/mail/list.inc | 2 +- program/steps/mail/move_del.inc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'program/steps') diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc index cfdcda605..70f4c03a6 100644 --- a/program/steps/mail/check_recent.inc +++ b/program/steps/mail/check_recent.inc @@ -85,7 +85,7 @@ foreach ($a_mailboxes as $mbox_name) { $OUTPUT->command('set_quota', $RCMAIL->quota_content()); } - $OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS')); + $OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS', true)); // "No-list" mode, don't get messages if (empty($_POST['_list'])) { @@ -146,7 +146,7 @@ foreach ($a_mailboxes as $mbox_name) { // set trash folder state if ($mbox_name === $trash) { - $OUTPUT->command('set_trash_count', $RCMAIL->storage->count($mbox_name, 'EXISTS')); + $OUTPUT->command('set_trash_count', $RCMAIL->storage->count($mbox_name, 'EXISTS', true)); } } diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc index c4a6df57b..929dda299 100644 --- a/program/steps/mail/list.inc +++ b/program/steps/mail/list.inc @@ -93,7 +93,7 @@ rcmail_send_unread_count($mbox_name, !empty($_REQUEST['_refresh']), $unseen); // update message count display $pages = ceil($count/$RCMAIL->storage->get_pagesize()); -$exists = $RCMAIL->storage->count($mbox_name, 'EXISTS'); +$exists = $RCMAIL->storage->count($mbox_name, 'EXISTS', true); $OUTPUT->set_env('messagecount', $count); $OUTPUT->set_env('pagecount', $pages); diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc index c29985875..d98d49d1f 100644 --- a/program/steps/mail/move_del.inc +++ b/program/steps/mail/move_del.inc @@ -166,7 +166,7 @@ else { $OUTPUT->command('set_trash_count', $exists); } else if ($target !== null && $target === $trash) { - $OUTPUT->command('set_trash_count', $RCMAIL->storage->count($trash, 'EXISTS')); + $OUTPUT->command('set_trash_count', $RCMAIL->storage->count($trash, 'EXISTS', true)); } } -- cgit v1.2.3 From 3d36e8380648e231e8db1bb8410a47451b598776 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 12 May 2014 14:25:49 +0200 Subject: Performance fix: don't send vcard/photo data to the browser after contact update --- program/steps/addressbook/save.inc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'program/steps') diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc index 94556f96b..7451f433b 100644 --- a/program/steps/addressbook/save.inc +++ b/program/steps/addressbook/save.inc @@ -165,6 +165,10 @@ if (!empty($cid)) { $a_js_cols[] = rcube::Q((string)$record[$col]); } + // performance: unset some big data items we don't need here + $record = array_intersect_key($record, array('ID' => 1,'email' => 1,'name' => 1)); + $record['_type'] = 'person'; + // update the changed col in list $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source, $record); -- cgit v1.2.3