Fix relation member drag-and-drop

This commit is contained in:
Quincy Morgan
2020-02-27 19:02:15 -08:00
parent c8e9bf3de7
commit 10fe7b6e92
2 changed files with 18 additions and 20 deletions
+2 -4
View File
@@ -1280,9 +1280,6 @@ a.hide-toggle {
.section .grouped-items-area:empty {
display: none;
}
.preset-list-item a.hide-toggle {
margin-bottom: 5px;
}
/*
The parts of a field:
@@ -2490,7 +2487,8 @@ img.tag-reference-wiki-image {
.section-raw-member-editor .member-list,
.section-raw-membership-editor .member-list {
padding-top: 10px;
position: relative; /* required for drag-and-drop */
padding-top: 5px;
}
.section-raw-member-editor .member-list li,
.section-raw-membership-editor .member-list li {
+16 -16
View File
@@ -241,9 +241,22 @@ export function uiSectionRawMemberEditor(context) {
wrapEnter.each(bindTypeahead);
}
// update
items = items
.merge(itemsEnter)
.order();
items.select('input.member-role')
.property('value', function(d) { return d.role; })
.on('blur', changeRole)
.on('change', changeRole);
items.select('button.member-delete')
.on('click', deleteMember);
var dragOrigin, targetIndex;
itemsEnter.call(d3_drag()
items.call(d3_drag()
.on('start', function() {
dragOrigin = {
x: d3_event.x,
@@ -269,12 +282,12 @@ export function uiSectionRawMemberEditor(context) {
var node = d3_select(this).node();
if (index === index2) {
return 'translate(' + x + 'px, ' + y + 'px)';
} else if (index2 > index && d3_event.y > node.offsetTop - node.offsetHeight) {
} else if (index2 > index && d3_event.y > node.offsetTop) {
if (targetIndex === null || index2 > targetIndex) {
targetIndex = index2;
}
return 'translateY(-100%)';
} else if (index2 < index && d3_event.y < node.offsetTop) {
} else if (index2 < index && d3_event.y < node.offsetTop + node.offsetHeight) {
if (targetIndex === null || index2 < targetIndex) {
targetIndex = index2;
}
@@ -306,19 +319,6 @@ export function uiSectionRawMemberEditor(context) {
);
// update
items = items
.merge(itemsEnter);
items.select('input.member-role')
.property('value', function(d) { return d.role; })
.on('blur', changeRole)
.on('change', changeRole);
items.select('button.member-delete')
.on('click', deleteMember);
function bindTypeahead(d) {
var row = d3_select(this);