From b630ef618d0f1ce368ff76f0440582c11a430ed9 Mon Sep 17 00:00:00 2001 From: Alex Pankratov Date: Wed, 14 Apr 2021 16:17:21 +0200 Subject: [PATCH] Fix not being able to drop notes on an empty list --- nullboard.html | 59 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/nullboard.html b/nullboard.html index f30d055..13ffd24 100644 --- a/nullboard.html +++ b/nullboard.html @@ -2105,8 +2105,11 @@ var x = pos.left + $drag.width()/2 - $win.scrollLeft(); var y = pos.top + $drag.height()/2 - $win.scrollTop(); - var target = null; // if over some item - var before = false; // if should go before that item + var targetList = null; + var targetItem = null; // if over some item + var before = false; // if should go before targetItem + + var $target; $(this.listSel).each(function(){ @@ -2139,54 +2142,68 @@ if (this == drag.item) return; - target = this; + targetList = list; + targetItem = this; before = (y < (rcItem.top + rcItem.bottom)/2); }); if (y < rcList.top) { - target = itemTop; + targetList = list; + targetItem = itemTop; before = true; } else if (y >= rcList.bottom) { - target = itemBottom; + targetList = list; + targetItem = itemBottom; before = false; } }); - if (! target) + if (! targetList) return; - if (target == drag.item) - return; + if (targetItem) + { + if (targetItem == drag.item) + return; - if (! before && $(target).next()[0] == drag.item || - before && $(target).prev()[0] == drag.item) - return; + $target = $(targetItem); + + if (! before && $target.next()[0] == drag.item || + before && $target.prev()[0] == drag.item) + return; + } /* * swap 'em */ - var $target = $(target); - var have = drag.item; var $have = $(have); var $want = $have.clone(); $want.css({ display: 'none' }); - if (before) + if (targetItem) { - $want.insertBefore($target); - $want = $target.prev(); + if (before) + { + $want.insertBefore($target); + $want = $target.prev(); + } + else + { + $want.insertAfter($target); + $want = $target.next(); + } } else { - $want.insertAfter($target); - $want = $target.next(); + var $list = $(targetList); + $want = $list.append($want).find(drag.itemSel) } drag.item = $want[0]; @@ -2201,7 +2218,7 @@ /* * see if it's a same-list move */ - if (target.parentNode == have.parentNode) + if (targetList == have.parentNode) { var delta = $have.offset().top - $target.offset().top; @@ -3269,7 +3286,7 @@ function initDragAndDrop() { NB.noteDrag = new Drag2(); - NB.noteDrag.listSel = '.board .list'; + NB.noteDrag.listSel = '.board .list .notes'; NB.noteDrag.itemSel = '.note'; NB.noteDrag.dragster = 'note-dragster'; NB.noteDrag.onDragging = function(started) @@ -3965,7 +3982,7 @@ */ var NB = { - codeVersion: 20210410, + codeVersion: 20210414, blobVersion: 20190412, // board blob format in Storage board: null, };