summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-07-01 13:50:17 +0200
committerAleksander Machniak <alec@alec.pl>2013-07-01 13:50:17 +0200
commita3f745bcccbb9e89ece7a1506a83215688008d3c (patch)
treeee6529a95f418182f740a1bfeb49396a462788c7 /program
parenta45f9b7bf58475ccc812e819f159638403c00419 (diff)
Fix email duplicate check on contact move/copy
Diffstat (limited to 'program')
-rw-r--r--program/steps/addressbook/copy.inc6
-rw-r--r--program/steps/addressbook/move.inc8
2 files changed, 10 insertions, 4 deletions
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index 82917e2ac..d4387194a 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -63,8 +63,10 @@ foreach ($cids as $source => $cid)
// Check if contact exists, if so, we'll need it's ID
// Note: Some addressbooks allows empty email address field
- if (!empty($a_record['email']))
- $result = $TARGET->search('email', $a_record['email'], 1, true, true);
+ // @TODO: should we check all email addresses?
+ $email = $CONTACTS->get_col_values('email', $a_record, true);
+ if (!empty($email))
+ $result = $TARGET->search('email', $email[0], 1, true, true);
else if (!empty($a_record['name']))
$result = $TARGET->search('name', $a_record['name'], 1, true, true);
else
diff --git a/program/steps/addressbook/move.inc b/program/steps/addressbook/move.inc
index 42180d777..33dd6ea4c 100644
--- a/program/steps/addressbook/move.inc
+++ b/program/steps/addressbook/move.inc
@@ -71,8 +71,10 @@ foreach ($cids as $source => $source_cids) {
// Check if contact exists, if so, we'll need it's ID
// Note: Some addressbooks allows empty email address field
- if (!empty($a_record['email']))
- $result = $TARGET->search('email', $a_record['email'], 1, true, true);
+ // @TODO: should we check all email addresses?
+ $email = $CONTACTS->get_col_values('email', $a_record, true);
+ if (!empty($email))
+ $result = $TARGET->search('email', $email[0], 1, true, true);
else if (!empty($a_record['name']))
$result = $TARGET->search('name', $a_record['name'], 1, true, true);
else
@@ -144,6 +146,8 @@ if (!$deleted || $deleted != $all) {
if ($deleted) {
rcmail_search_update();
}
+
+ $OUTPUT->command('list_contacts_clear');
$OUTPUT->command('list_contacts');
}
else {