From a4614f83ff6553f3e7b094e44ab2b0cf4ce68ff2 Mon Sep 17 00:00:00 2001
From: Thomas Tanghus <thomas@tanghus.net>
Date: Fri, 29 Jun 2012 23:17:32 +0200
Subject: [PATCH] Don't add duplicate contacts in the list when en-/disable an
 address book.

---
 apps/contacts/js/contacts.js | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index 9d41b70a31..5be1fa6129 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -1621,19 +1621,21 @@ Contacts={
 							var contactlist = $('#contacts ul[data-id="'+b+'"]');
 							for(var c in book.contacts) {
 								if(book.contacts[c].id == undefined) { continue; }
-								var contact = Contacts.UI.Card.createEntry(book.contacts[c]);
-								if(c == self.batchnum-5) {
-									contact.bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
-										$(this).unbind(event);
-										var bookid = $(this).data('bookid');
-										var numsiblings = $('.contacts li[data-bookid="'+bookid+'"]').length;
-										if (isInView && numsiblings >= self.batchnum) {
-											console.log('This would be a good time to load more contacts.');
-											Contacts.UI.Contacts.update(id, bookid, $('#contacts li[data-bookid="'+bookid+'"]').length);
-										}
-									});
+								if($('#contacts li[data-id="'+book.contacts[c]['id']+'"][data-id="'+book.contacts[c]['bookid']+'"]').length == 0) {
+									var contact = Contacts.UI.Card.createEntry(book.contacts[c]);
+									if(c == self.batchnum-5) {
+										contact.bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
+											$(this).unbind(event);
+											var bookid = $(this).data('bookid');
+											var numsiblings = $('.contacts li[data-bookid="'+bookid+'"]').length;
+											if (isInView && numsiblings >= self.batchnum) {
+												console.log('This would be a good time to load more contacts.');
+												Contacts.UI.Contacts.update(id, bookid, $('#contacts li[data-bookid="'+bookid+'"]').length);
+											}
+										});
+									}
+									contactlist.append(contact);
 								}
-								contactlist.append(contact);
 							}
 						});
 						if($('#contacts h3').length > 1) {
-- 
GitLab