Don't select last item in list when item is removed from collection
This commit is contained in:
parent
9ecfc31fd4
commit
f98de97e4d
|
@ -487,7 +487,11 @@ Zotero.ItemTreeView.prototype.notify = Zotero.Promise.coroutine(function* (actio
|
||||||
var sort = false;
|
var sort = false;
|
||||||
|
|
||||||
var savedSelection = this.getSelectedItems(true);
|
var savedSelection = this.getSelectedItems(true);
|
||||||
var previousFirstSelectedRow = this._rowMap[ids[0]];
|
var previousFirstSelectedRow = this._rowMap[
|
||||||
|
// 'collection-item' ids are in the form <collectionID>-<itemID>
|
||||||
|
// 'item' events are just integers
|
||||||
|
type == 'collection-item' ? ids[0].split('-')[1] : ids[0]
|
||||||
|
];
|
||||||
|
|
||||||
// If there's not at least one new item to be selected, get a scroll position to restore later
|
// If there's not at least one new item to be selected, get a scroll position to restore later
|
||||||
var scrollPosition = false;
|
var scrollPosition = false;
|
||||||
|
|
|
@ -242,7 +242,7 @@ describe("Zotero.ItemTreeView", function() {
|
||||||
var items = [];
|
var items = [];
|
||||||
var num = 6;
|
var num = 6;
|
||||||
for (let i = 0; i < num; i++) {
|
for (let i = 0; i < num; i++) {
|
||||||
let item = createUnsavedDataObject('item');
|
let item = createUnsavedDataObject('item', { title: "" + i });
|
||||||
item.addToCollection(collection.id);
|
item.addToCollection(collection.id);
|
||||||
yield item.saveTx();
|
yield item.saveTx();
|
||||||
items.push(item);
|
items.push(item);
|
||||||
|
@ -251,6 +251,17 @@ describe("Zotero.ItemTreeView", function() {
|
||||||
|
|
||||||
// Select the third item in the list
|
// Select the third item in the list
|
||||||
itemsView.selection.select(2);
|
itemsView.selection.select(2);
|
||||||
|
|
||||||
|
// Remove item
|
||||||
|
var treeRow = itemsView.getRow(2);
|
||||||
|
yield Zotero.DB.executeTransaction(function* () {
|
||||||
|
yield collection.removeItems([treeRow.ref.id]);
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
|
// Selection should stay on third row
|
||||||
|
assert.equal(itemsView.selection.currentIndex, 2);
|
||||||
|
|
||||||
|
// Delete item
|
||||||
var treeRow = itemsView.getRow(2);
|
var treeRow = itemsView.getRow(2);
|
||||||
yield treeRow.ref.eraseTx();
|
yield treeRow.ref.eraseTx();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user