From dc4b89132769fc5842eab6bf4d388a8041a43bdd Mon Sep 17 00:00:00 2001
From: Thomas Tanghus <thomas@tanghus.net>
Date: Mon, 25 Jun 2012 18:23:48 +0200
Subject: [PATCH] Better visual feedback and prevent drop on self.

---
 apps/contacts/css/contacts.css |  1 +
 apps/contacts/js/contacts.js   | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/apps/contacts/css/contacts.css b/apps/contacts/css/contacts.css
index f60d9bfe67..143fdae80e 100644
--- a/apps/contacts/css/contacts.css
+++ b/apps/contacts/css/contacts.css
@@ -9,6 +9,7 @@
 #contacts { position: fixed; background: #fff; max-width: 100%; width: 20em; left: 12.5em; top: 3.7em; bottom: 3em; overflow: auto; padding: 0; margin: 0; }
 .contacts a { height: 23px; display: block; left: 12.5em; margin: 0 0 0 0; padding: 0 0 0 25px; }
 .contacts li.ui-draggable { height: 23px; width: 20em; }
+.ui-state-hover { border: 1px solid dashed; }
 #bottomcontrols { padding: 0; bottom:0px; height:2.8em; width: 20em; margin:0; background:#eee; border-top:1px solid #ccc; position:fixed; -moz-box-shadow: 0 -3px 3px -3px #000; -webkit-box-shadow: 0 -3px 3px -3px #000; box-shadow: 0 -3px 3px -3px #000;}
 #contacts_newcontact { float: left; margin: 0.2em 0 0 1em; }
 #chooseaddressbook { float: right; margin: 0.2em 1em 0 0; }
diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index 12c6d98f20..036734049b 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -1551,8 +1551,17 @@ Contacts={
 								})}, 100);
 							setTimeout(Contacts.UI.Contacts.lazyupdate, 500);*/
 							if($('#contacts h3').length > 1) {
-								$('#contacts h3,#contacts ul').droppable({ drop: Contacts.UI.Contacts.drop});
+								$('#contacts h3,#contacts ul').each(function(index) {
+									var id = $(this).data('id');
+									var accept = 'li:not([data-bookid="'+id+'"])';
+									$(this).droppable({
+										drop: Contacts.UI.Contacts.drop,
+										activeClass: 'ui-state-hover',
+										accept: accept
+									});
+								});
 								$('#contacts li').draggable({
+									revert: 'invalid',
 									axis: 'y', containment: '#contacts',
 									scroll: true, scrollSensitivity: 100,
 									opacity: 0.7, helper: 'clone'
-- 
GitLab