diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-07-01 13:50:17 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-07-01 13:50:17 +0200 |
commit | a3f745bcccbb9e89ece7a1506a83215688008d3c (patch) | |
tree | ee6529a95f418182f740a1bfeb49396a462788c7 | |
parent | a45f9b7bf58475ccc812e819f159638403c00419 (diff) |
Fix email duplicate check on contact move/copy
-rw-r--r-- | program/steps/addressbook/copy.inc | 6 | ||||
-rw-r--r-- | program/steps/addressbook/move.inc | 8 |
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 { |