Fix not being able to drop notes on an empty list

This commit is contained in:
Alex Pankratov
2021-04-14 16:17:21 +02:00
parent 196e00edaf
commit b630ef618d

View File

@@ -2105,8 +2105,11 @@
var x = pos.left + $drag.width()/2 - $win.scrollLeft(); var x = pos.left + $drag.width()/2 - $win.scrollLeft();
var y = pos.top + $drag.height()/2 - $win.scrollTop(); var y = pos.top + $drag.height()/2 - $win.scrollTop();
var target = null; // if over some item var targetList = null;
var before = false; // if should go before that item var targetItem = null; // if over some item
var before = false; // if should go before targetItem
var $target;
$(this.listSel).each(function(){ $(this.listSel).each(function(){
@@ -2139,45 +2142,53 @@
if (this == drag.item) if (this == drag.item)
return; return;
target = this; targetList = list;
targetItem = this;
before = (y < (rcItem.top + rcItem.bottom)/2); before = (y < (rcItem.top + rcItem.bottom)/2);
}); });
if (y < rcList.top) if (y < rcList.top)
{ {
target = itemTop; targetList = list;
targetItem = itemTop;
before = true; before = true;
} }
else else
if (y >= rcList.bottom) if (y >= rcList.bottom)
{ {
target = itemBottom; targetList = list;
targetItem = itemBottom;
before = false; before = false;
} }
}); });
if (! target) if (! targetList)
return; return;
if (target == drag.item) if (targetItem)
{
if (targetItem == drag.item)
return; return;
if (! before && $(target).next()[0] == drag.item || $target = $(targetItem);
before && $(target).prev()[0] == drag.item)
if (! before && $target.next()[0] == drag.item ||
before && $target.prev()[0] == drag.item)
return; return;
}
/* /*
* swap 'em * swap 'em
*/ */
var $target = $(target);
var have = drag.item; var have = drag.item;
var $have = $(have); var $have = $(have);
var $want = $have.clone(); var $want = $have.clone();
$want.css({ display: 'none' }); $want.css({ display: 'none' });
if (targetItem)
{
if (before) if (before)
{ {
$want.insertBefore($target); $want.insertBefore($target);
@@ -2188,6 +2199,12 @@
$want.insertAfter($target); $want.insertAfter($target);
$want = $target.next(); $want = $target.next();
} }
}
else
{
var $list = $(targetList);
$want = $list.append($want).find(drag.itemSel)
}
drag.item = $want[0]; drag.item = $want[0];
@@ -2201,7 +2218,7 @@
/* /*
* see if it's a same-list move * 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; var delta = $have.offset().top - $target.offset().top;
@@ -3269,7 +3286,7 @@
function initDragAndDrop() function initDragAndDrop()
{ {
NB.noteDrag = new Drag2(); NB.noteDrag = new Drag2();
NB.noteDrag.listSel = '.board .list'; NB.noteDrag.listSel = '.board .list .notes';
NB.noteDrag.itemSel = '.note'; NB.noteDrag.itemSel = '.note';
NB.noteDrag.dragster = 'note-dragster'; NB.noteDrag.dragster = 'note-dragster';
NB.noteDrag.onDragging = function(started) NB.noteDrag.onDragging = function(started)
@@ -3965,7 +3982,7 @@
*/ */
var NB = var NB =
{ {
codeVersion: 20210410, codeVersion: 20210414,
blobVersion: 20190412, // board blob format in Storage blobVersion: 20190412, // board blob format in Storage
board: null, board: null,
}; };