Don't try to select unselectable row on library tree row removal

(If deleting a group, don't select the header or separator before it.)
This commit is contained in:
Dan Stillman 2015-08-07 16:36:53 -04:00
parent cbf4876173
commit 5a61ac4871
3 changed files with 17 additions and 6 deletions

View File

@ -2364,7 +2364,7 @@ Zotero.CollectionTreeRow.prototype.getSearchObject = Zotero.Promise.coroutine(fu
s.addCondition('deleted', 'true');
}
else {
throw new Error('Invalid search mode in Zotero.CollectionTreeRow.getSearchObject()');
throw new Error('Invalid search mode ' + this.type);
}
}

View File

@ -140,9 +140,22 @@ Zotero.LibraryTreeView.prototype = {
if (lastRow && this.selection.isSelected(row)) {
// Deselect removed row
this.selection.toggleSelect(row);
// If no other rows selected, select row before
// If no other rows selected, select first selectable row before
if (this.selection.count == 0 && row !== 0) {
this.selection.toggleSelect(row - 1);
let previous = row;
while (true) {
previous--;
// Should ever happen
if (previous < 0) {
break;
}
if (!this.isSelectable(previous)) {
continue;
}
this.selection.toggleSelect(previous);
break;
}
}
}

View File

@ -415,9 +415,7 @@ describe("Zotero.CollectionTreeView", function() {
linked = yield attachment.getLinkedItem(group.libraryID);
assert.equal(linked.id, treeRow.ref.id);
yield Zotero.DB.executeTransaction(function* () {
return group.erase();
})
return group.eraseTx();
})
it("should not copy an item or its attachment to a group twice", function* () {