Page MenuHomePhabricator

Fix two bugs with DraggableList
ClosedPublic

Authored by epriestley on Jan 12 2014, 10:51 PM.
Tags
None
Referenced Files
F17836811: D7939.id17960.diff
Sat, Jul 26, 4:34 PM
F17811404: D7939.id.diff
Fri, Jul 25, 6:31 PM
F17795047: D7939.diff
Fri, Jul 25, 12:06 AM
F17751449: D7939.diff
Tue, Jul 22, 5:33 AM
F17751202: D7939.id.diff
Tue, Jul 22, 5:03 AM
F17750657: D7939.id17981.diff
Tue, Jul 22, 3:59 AM
F17629991: D7939.id.diff
Thu, Jul 10, 9:45 AM
F17619522: D7939.id17960.diff
Wed, Jul 9, 7:18 PM
Subscribers

Details

Summary

Ref T1344. This fixes two issues with DraggableList:

  • In lists which allowed it, you could drag the top item above itself and get a dashed-border ghost item. This didn't make sense and didn't behave well. Just don't treat this operation as valid.
  • In lists which allowed it, you could drag any non-top item to the topmost position, then drag it to an invalid position. The dashed-border ghost item would not be removed properly if this happend.
  • Also fix some minor leftovers with Celerity.
Test Plan
  • Dragged the first item above itself; now an invalid operation with no ghost.
  • Dragged another item to the first position then back to its original position; ghost vanishes.
  • Clean lint.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

webroot/rsrc/js/core/DraggableList.js
162–165

Note this for null vs false trickiness.

I tried to make a good joke about null, but I kept coming up false. (See how bad that was?)