summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2013-02-13 15:09:29 +0100
committerThomas Bruederli <thomas@roundcube.net>2013-02-13 15:09:29 +0100
commita0e86dcdeb201bb2422b3e4b8e249c2868f4c5ab (patch)
tree1a821087167c15555c13051999067e8377331f50
parent004f866f203cbca3fd9ed5547dd849da2d0882ff (diff)
Fix updating contacts
-rw-r--r--program/js/app.js10
-rw-r--r--program/steps/addressbook/save.inc4
2 files changed, 8 insertions, 6 deletions
diff --git a/program/js/app.js b/program/js/app.js
index f9b72cdc2..e95344641 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -4229,7 +4229,7 @@ function rcube_webmail()
this.load_contact = function(cid, action, framed)
{
var win, url = {}, target = window,
- rec = this.contact_list.data[cid];
+ rec = this.contact_list ? this.contact_list.data[cid] : null;
if (win = this.get_frame_window(this.env.contentframe)) {
url._framed = 1;
@@ -4240,8 +4240,8 @@ function rcube_webmail()
if (!cid)
this.contact_list.clear_selection();
- this.enable_command('compose', rec.email);
- this.enable_command('export-selected', rec._type != 'group');
+ this.enable_command('compose', rec && rec.email);
+ this.enable_command('export-selected', rec && rec._type != 'group');
}
else if (framed)
return false;
@@ -4351,7 +4351,7 @@ function rcube_webmail()
};
// update a contact record in the list
- this.update_contact_row = function(cid, cols_arr, newcid, source)
+ this.update_contact_row = function(cid, cols_arr, newcid, source, data)
{
var c, row, list = this.contact_list;
@@ -4378,6 +4378,8 @@ function rcube_webmail()
list.selection[0] = newcid;
row.style.display = '';
}
+
+ list.data[cid] = data;
}
};
diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 901ea0190..7bd7da302 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -134,11 +134,11 @@ if (!empty($cid))
$record['email'] = reset($CONTACTS->get_col_values('email', $record, true));
$record['name'] = rcube_addressbook::compose_list_name($record);
- foreach (array('name', 'email') as $col)
+ foreach (array('name') as $col)
$a_js_cols[] = Q((string)$record[$col]);
// update the changed col in list
- $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source);
+ $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source, $record);
// show confirmation
$OUTPUT->show_message('successfullysaved', 'confirmation', null, false);