diff --git a/public/javascripts/aspect-edit.js b/public/javascripts/aspect-edit.js index adcc7fbf9..8edaa1853 100644 --- a/public/javascripts/aspect-edit.js +++ b/public/javascripts/aspect-edit.js @@ -50,29 +50,35 @@ var AspectEdit = { type: "DELETE", url: "/requests/" + person.attr('data-guid'), data: {"accept" : true, "aspect_id" : dropzone.attr('data-aspect_id') }, - success: function(data) { - AspectEdit.decrementRequestsCounter(); - person.removeClass('request'); - } + success: function() { AspectEdit.onDeleteRequestSuccess(person); } }); } if (dropzone.attr('data-aspect_id') != person.attr('data-aspect_id')) { $.ajax({ url: "/aspects/move_friend/", - data: {"friend_id" : person.attr('data-guid'), + data: { + "friend_id" : person.attr('data-guid'), "from" : person.attr('data-aspect_id'), - "to" : { "to" : dropzone.attr('data-aspect_id') }}, - success: function(data) { - person.attr('data-aspect_id', dropzone.attr('data-aspect_id')); - }}); + "to" : { "to" : dropzone.attr('data-aspect_id') } + }, + success: function() { AspectEdit.onMovePersonSuccess(person, dropzone); } + }); } dropzone.closest("ul").append(person); }, + onDeleteRequestSuccess: function(person) { + AspectEdit.decrementRequestsCounter(); + person.removeClass('request'); + }, + + onMovePersonSuccess: function(person, dropzone) { + person.attr('data-aspect_id', dropzone.attr('data-aspect_id')); + }, + deletePersonFromAspect: function(person) { - var person_id = person.attr('data-guid'); if( $(".person[data-guid='"+ person_id +"']").length == 1) { diff --git a/spec/javascripts/aspect-edit-spec.js b/spec/javascripts/aspect-edit-spec.js index 9f0841b1d..d5eea139a 100644 --- a/spec/javascripts/aspect-edit-spec.js +++ b/spec/javascripts/aspect-edit-spec.js @@ -91,6 +91,30 @@ describe("AspectEdit", function() { }); }); + describe("onDropMove", function() { + beforeEach(function() { + $('#jasmine_content').html( + '
' +
+ '