Asyncify various functions to fix cross-library drag-and-drop error
When dragging an item to another library, we have to check if there's a linked item in the target library, but items might not yet be laoded in the other library, so item.getLinkedItem() can fail with "Item [n] not yet loaded]. Fixing required asyncifying the follow functions: - Zotero.Item::getLinkedItem() - Zotero.Collection::getLinkedCollection() - Zotero.URI.getURIItem() - Zotero.URI.getURICollection() - Various integration functions
This commit is contained in:
parent
182b9a937b
commit
fe9fc8bc5a
9 changed files with 93 additions and 99 deletions
|
@ -631,7 +631,7 @@ describe("Zotero.CollectionTreeView", function() {
|
|||
assert.equal(treeRow.ref.libraryID, group.libraryID);
|
||||
assert.equal(treeRow.ref.id, ids[0]);
|
||||
// New item should link back to original
|
||||
var linked = item.getLinkedItem(group.libraryID);
|
||||
var linked = yield item.getLinkedItem(group.libraryID);
|
||||
assert.equal(linked.id, treeRow.ref.id);
|
||||
|
||||
// Check attachment
|
||||
|
@ -641,7 +641,7 @@ describe("Zotero.CollectionTreeView", function() {
|
|||
treeRow = itemsView.getRow(1);
|
||||
assert.equal(treeRow.ref.id, ids[1]);
|
||||
// New attachment should link back to original
|
||||
linked = attachment.getLinkedItem(group.libraryID);
|
||||
linked = yield attachment.getLinkedItem(group.libraryID);
|
||||
assert.equal(linked.id, treeRow.ref.id);
|
||||
|
||||
return group.eraseTx();
|
||||
|
@ -673,7 +673,7 @@ describe("Zotero.CollectionTreeView", function() {
|
|||
var item = yield createDataObject('item', false, { skipSelect: true });
|
||||
yield drop('item', 'L' + group.libraryID, [item.id]);
|
||||
|
||||
var droppedItem = item.getLinkedItem(group.libraryID);
|
||||
var droppedItem = yield item.getLinkedItem(group.libraryID);
|
||||
droppedItem.setCollections([collection.id]);
|
||||
droppedItem.deleted = true;
|
||||
yield droppedItem.saveTx();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue