From 45e47513c291b53a9ea588c788453a34880098fd Mon Sep 17 00:00:00 2001 From: Sarah Mei Date: Sun, 14 Nov 2010 21:49:36 -0800 Subject: [PATCH] AspectEdit#onDeleteRequestSuccess now adds and drops attributes properly --- public/javascripts/aspect-edit.js | 6 ++++-- spec/javascripts/aspect-edit-spec.js | 26 ++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/public/javascripts/aspect-edit.js b/public/javascripts/aspect-edit.js index 452780fa6..7c47396af 100644 --- a/public/javascripts/aspect-edit.js +++ b/public/javascripts/aspect-edit.js @@ -50,7 +50,7 @@ var AspectEdit = { type: "DELETE", url: "/requests/" + person.attr('data-guid'), data: {"accept" : true, "aspect_id" : dropzone.attr('data-aspect_id') }, - success: function() { AspectEdit.onDeleteRequestSuccess(person); } + success: function() { AspectEdit.onDeleteRequestSuccess(person, dropzone); } }); } @@ -70,9 +70,11 @@ var AspectEdit = { dropzone.closest("ul").append(person); }, - onDeleteRequestSuccess: function(person) { + onDeleteRequestSuccess: function(person, dropzone) { AspectEdit.decrementRequestsCounter(); person.removeClass('request'); + person.attr('data-aspect_id', dropzone.attr('data-aspect_id')); + person.removeAttr('data-person_id'); }, onMovePersonSuccess: function(person, dropzone) { diff --git a/spec/javascripts/aspect-edit-spec.js b/spec/javascripts/aspect-edit-spec.js index f185f17ee..258eeb061 100644 --- a/spec/javascripts/aspect-edit-spec.js +++ b/spec/javascripts/aspect-edit-spec.js @@ -183,14 +183,32 @@ describe("AspectEdit", function() { ); }); it("decrements the request counter", function() { + var person = $('li.person'); + var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]'); spyOn(AspectEdit, "decrementRequestsCounter"); - AspectEdit.onDeleteRequestSuccess($('li.person')); + AspectEdit.onDeleteRequestSuccess(person, dropzone); expect(AspectEdit.decrementRequestsCounter).toHaveBeenCalled(); }); it("takes the request class off the person li", function() { - expect($('li.person')).toHaveClass('request'); - AspectEdit.onDeleteRequestSuccess($('li.person')); - expect($('li.person')).not.toHaveClass('request'); + var person = $('li.person'); + var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]'); + expect(person).toHaveClass('request'); + AspectEdit.onDeleteRequestSuccess(person, dropzone); + expect(person).not.toHaveClass('request'); + }); + it("removes data-person_id from the li", function() { + var person = $('li.person'); + var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]'); + expect(person.attr("data-person_id")).toBeDefined(); + AspectEdit.onDeleteRequestSuccess(person, dropzone); + expect(person.attr("data-person_id")).not.toBeDefined(); + }); + it("puts a data-aspect_id on the li", function() { + var person = $('li.person'); + var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]'); + expect(person.attr("data-aspect_id")).not.toBeDefined(); + AspectEdit.onDeleteRequestSuccess(person, dropzone); + expect(person.attr("data-aspect_id")).toEqual("guid-of-target-aspect"); }); });