From a62ff159f0ae72d2794ab538dfc1848bdf5504a4 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 13 Feb 2016 05:50:59 -0500 Subject: [PATCH] Performance: Make sure that after contact update we call get_record() only once --- program/steps/addressbook/save.inc | 7 +++++-- program/steps/addressbook/show.inc | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc index 3f2a75c..9070411 100644 --- a/program/steps/addressbook/save.inc +++ b/program/steps/addressbook/save.inc @@ -164,9 +164,12 @@ $_POST['_cid'] = $newcid; } - // define list of cols to be displayed + // refresh contact data for list update and 'show' action + $CONTACT_RECORD = $CONTACTS->get_record($newcid ?: $cid, true); + + // Update contacts list $a_js_cols = array(); - $record = $CONTACTS->get_record($newcid ?: $cid, true); + $record = $CONTACT_RECORD; $record['email'] = reset($CONTACTS->get_col_values('email', $record, true)); $record['name'] = rcube_addressbook::compose_list_name($record); diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc index 35f381d..f8755c4 100644 --- a/program/steps/addressbook/show.inc +++ b/program/steps/addressbook/show.inc @@ -28,8 +28,8 @@ $CONTACTS = rcmail_contact_source($source, true); $SOURCE_ID = $source; -// read contact record -if ($cid && ($record = $CONTACTS->get_record($cid, true))) { +// read contact record (or get the one defined in 'save' action) +if ($cid && ($record = ($CONTACT_RECORD ?: $CONTACTS->get_record($cid, true)))) { $OUTPUT->set_env('readonly', $CONTACTS->readonly || $record['readonly']); $OUTPUT->set_env('cid', $record['ID']); -- Gitblit v1.9.1