From 86135e2bcca0546b9c200a9663ec3ad7b94459fa Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 30 May 2012 05:35:57 -0400
Subject: [PATCH] Don't show errors when moving contacts into groups they're already in (#1488493)

---
 program/localization/de_DE/messages.inc |    1 +
 CHANGELOG                               |    1 +
 program/steps/addressbook/groups.inc    |    4 +++-
 program/localization/de_CH/messages.inc |    1 +
 program/localization/en_US/messages.inc |    1 +
 program/include/rcube_contacts.php      |    4 +++-
 6 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 53989bd..0164bef 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Don't show errors when moving contacts into groups they are already in (#1488493)
 - Make folders with unread messages in subfolders bold again (#1486793)
 - Abbreviate long attachment file names with ellipsis (#1488499)
 - Fix html2text conversion of strong|b|a|th|h tags when used in upper case
diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php
index c30751f..3e30043 100644
--- a/program/include/rcube_contacts.php
+++ b/program/include/rcube_contacts.php
@@ -937,7 +937,9 @@
                 $contact_id
             );
 
-            if (!$this->db->db_error)
+            if ($this->db->db_error)
+                $this->set_error(self::ERROR_SAVING, $this->db->db_error_msg);
+            else
                 $added++;
         }
 
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index 2260ba0..a343580 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -115,6 +115,7 @@
 $messages['addresswriterror'] = 'Das gewählte Adressbuch kann nicht verändert werden.';
 $messages['contactaddedtogroup'] = 'Kontakte wurden dieser Gruppe hinzugefügt.';
 $messages['contactremovedfromgroup'] = 'Kontakte wurden aus dieser Gruppe entfernt.';
+$messages['nogroupassignmentschanged'] = 'Es wurde keine Gruppenzuweisung verändert.';
 $messages['importwait'] = 'Daten werden importiert, bitte warten...';
 $messages['importerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist nicht im vCard-Format.';
 $messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert</b>';
diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc
index a0e71d2..6a4bc21 100644
--- a/program/localization/de_DE/messages.inc
+++ b/program/localization/de_DE/messages.inc
@@ -113,6 +113,7 @@
 $messages['addresswriterror'] = 'Das gewählte Adressbuch kann nicht verändert werden.';
 $messages['contactaddedtogroup'] = 'Kontakte wurden dieser Gruppe hinzugefügt.';
 $messages['contactremovedfromgroup'] = 'Kontakte wurden aus dieser Gruppe entfernt.';
+$messages['nogroupassignmentschanged'] = 'Es wurde keine Gruppenzuweisung verändert.';
 $messages['importwait'] = 'Daten werden importiert, bitte warten...';
 $messages['importerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist nicht im vCard-Format.';
 $messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert.</b>';
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index 779c416..995be7b 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -121,6 +121,7 @@
 $messages['addresswriterror'] = 'The selected address book is not writeable.';
 $messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
 $messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
 $messages['importwait'] = 'Importing, please wait...';
 $messages['importerror'] = 'Import failed! The uploaded file is not a valid vCard file.';
 $messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
diff --git a/program/steps/addressbook/groups.inc b/program/steps/addressbook/groups.inc
index 3bdd89f..201eb06 100644
--- a/program/steps/addressbook/groups.inc
+++ b/program/steps/addressbook/groups.inc
@@ -50,8 +50,10 @@
 
     if ($result)
       $OUTPUT->show_message('contactaddedtogroup');
-    else
+    else if ($plugin['abort'] || $CONTACTS->get_error())
       $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');
+    else
+      $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'nogroupassignmentschanged');
   }
 }
 

--
Gitblit v1.9.1