Don't change selection unnecessarily when creating trashed item
This commit is contained in:
parent
27f6f018d3
commit
0d1d4ee5cb
|
@ -823,7 +823,6 @@ Zotero.ItemTreeView.prototype.notify = Zotero.Promise.coroutine(function* (actio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (singleSelect) {
|
|
||||||
if (sort) {
|
if (sort) {
|
||||||
yield this.sort(typeof sort == 'number' ? sort : false);
|
yield this.sort(typeof sort == 'number' ? sort : false);
|
||||||
}
|
}
|
||||||
|
@ -831,6 +830,7 @@ Zotero.ItemTreeView.prototype.notify = Zotero.Promise.coroutine(function* (actio
|
||||||
this._refreshItemRowMap();
|
this._refreshItemRowMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (singleSelect) {
|
||||||
if (!extraData[singleSelect] || !extraData[singleSelect].skipSelect) {
|
if (!extraData[singleSelect] || !extraData[singleSelect].skipSelect) {
|
||||||
// Reset to Info tab
|
// Reset to Info tab
|
||||||
this._ownerDocument.getElementById('zotero-view-tabbox').selectedIndex = 0;
|
this._ownerDocument.getElementById('zotero-view-tabbox').selectedIndex = 0;
|
||||||
|
@ -841,19 +841,14 @@ Zotero.ItemTreeView.prototype.notify = Zotero.Promise.coroutine(function* (actio
|
||||||
else if (action == 'modify' && ids.length == 1 &&
|
else if (action == 'modify' && ids.length == 1 &&
|
||||||
savedSelection.length == 1 && savedSelection[0] == ids[0]) {
|
savedSelection.length == 1 && savedSelection[0] == ids[0]) {
|
||||||
// If the item no longer matches the search term, clear the search
|
// If the item no longer matches the search term, clear the search
|
||||||
|
// DEBUG: Still needed/wanted? (and search is async, so doesn't work anyway,
|
||||||
|
// here or above)
|
||||||
if (quicksearch && this._rowMap[ids[0]] == undefined) {
|
if (quicksearch && this._rowMap[ids[0]] == undefined) {
|
||||||
Zotero.debug('Selected item no longer matches quicksearch -- clearing');
|
Zotero.debug('Selected item no longer matches quicksearch -- clearing');
|
||||||
quicksearch.value = '';
|
quicksearch.value = '';
|
||||||
quicksearch.doCommand();
|
quicksearch.doCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sort) {
|
|
||||||
yield this.sort(typeof sort == 'number' ? sort : false);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this._refreshItemRowMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activeWindow) {
|
if (activeWindow) {
|
||||||
yield this.selectItem(ids[0]);
|
yield this.selectItem(ids[0]);
|
||||||
}
|
}
|
||||||
|
@ -861,16 +856,8 @@ Zotero.ItemTreeView.prototype.notify = Zotero.Promise.coroutine(function* (actio
|
||||||
yield this.rememberSelection(savedSelection);
|
yield this.rememberSelection(savedSelection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (sort) {
|
|
||||||
yield this.sort(typeof sort == 'number' ? sort : false);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this._refreshItemRowMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
// On removal of a row, select item at previous position
|
// On removal of a row, select item at previous position
|
||||||
|
else if (savedSelection.length) {
|
||||||
if (action == 'remove' || action == 'trash' || action == 'delete') {
|
if (action == 'remove' || action == 'trash' || action == 'delete') {
|
||||||
// In duplicates view, select the next set on delete
|
// In duplicates view, select the next set on delete
|
||||||
if (collectionTreeRow.isDuplicates()) {
|
if (collectionTreeRow.isDuplicates()) {
|
||||||
|
|
|
@ -116,6 +116,23 @@ describe("Zotero.ItemTreeView", function() {
|
||||||
assert.equal(selected[0], existingItemID);
|
assert.equal(selected[0], existingItemID);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("shouldn't change selection outside of trash if new trashed item is created with skipSelect", function* () {
|
||||||
|
yield selectLibrary(win);
|
||||||
|
yield waitForItemsLoad(win);
|
||||||
|
|
||||||
|
itemsView.selection.clearSelection();
|
||||||
|
|
||||||
|
var item = createUnsavedDataObject('item');
|
||||||
|
item.deleted = true;
|
||||||
|
var id = yield item.saveTx({
|
||||||
|
skipSelect: true
|
||||||
|
});
|
||||||
|
|
||||||
|
// Nothing should be selected
|
||||||
|
selected = itemsView.getSelectedItems(true);
|
||||||
|
assert.lengthOf(selected, 0);
|
||||||
|
})
|
||||||
|
|
||||||
it("shouldn't select a modified item", function* () {
|
it("shouldn't select a modified item", function* () {
|
||||||
// Create item
|
// Create item
|
||||||
var item = new Zotero.Item('book');
|
var item = new Zotero.Item('book');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user