From a3f745bcccbb9e89ece7a1506a83215688008d3c Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 01 Jul 2013 07:50:17 -0400
Subject: [PATCH] Fix email duplicate check on contact move/copy

---
 program/steps/addressbook/move.inc |    8 ++++++--
 program/steps/addressbook/copy.inc |    6 ++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index 82917e2..d438719 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -63,8 +63,10 @@
 
         // 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 42180d7..33dd6ea 100644
--- a/program/steps/addressbook/move.inc
+++ b/program/steps/addressbook/move.inc
@@ -71,8 +71,10 @@
 
         // 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) {
         rcmail_search_update();
     }
+
+    $OUTPUT->command('list_contacts_clear');
     $OUTPUT->command('list_contacts');
 }
 else {

--
Gitblit v1.9.1