Fix editing in classic citation window (broken by 2901174ba3
)
This is (hopefully) a better fix for selection issues than 2901174ba3
. A
reference to the collectionTreeView is stored in a `view` property on
the collectionTreeRow, and when an itemTreeView is initialized and
passed a collectionTreeRow it assigns itself to an `itemTreeView`
property on the row's view.
This commit is contained in:
parent
67ddc202d9
commit
c7639f328f
|
@ -59,6 +59,7 @@ var ZoteroAdvancedSearch = new function() {
|
||||||
|
|
||||||
// A minimal implementation of Zotero.CollectionTreeRow
|
// A minimal implementation of Zotero.CollectionTreeRow
|
||||||
var collectionTreeRow = {
|
var collectionTreeRow = {
|
||||||
|
view: {},
|
||||||
ref: _searchBox.search,
|
ref: _searchBox.search,
|
||||||
isSearchMode: function() { return true; },
|
isSearchMode: function() { return true; },
|
||||||
getItems: Zotero.Promise.coroutine(function* () {
|
getItems: Zotero.Promise.coroutine(function* () {
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Zotero.CollectionTreeRow = function(type, ref, level, isOpen)
|
Zotero.CollectionTreeRow = function (collectionTreeView, type, ref, level, isOpen) {
|
||||||
{
|
this.view = collectionTreeView;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.ref = ref;
|
this.ref = ref;
|
||||||
this.level = level || 0
|
this.level = level || 0
|
||||||
|
|
|
@ -178,7 +178,7 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function*
|
||||||
//
|
//
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('library', { libraryID: Zotero.Libraries.userLibraryID }),
|
new Zotero.CollectionTreeRow(this, 'library', { libraryID: Zotero.Libraries.userLibraryID }),
|
||||||
added++
|
added++
|
||||||
);
|
);
|
||||||
added += yield this._expandRow(newRows, 0);
|
added += yield this._expandRow(newRows, 0);
|
||||||
|
@ -190,12 +190,12 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function*
|
||||||
if (groups.length) {
|
if (groups.length) {
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('separator', false),
|
new Zotero.CollectionTreeRow(this, 'separator', false),
|
||||||
added++
|
added++
|
||||||
);
|
);
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('header', {
|
new Zotero.CollectionTreeRow(this, 'header', {
|
||||||
id: "group-libraries-header",
|
id: "group-libraries-header",
|
||||||
label: Zotero.getString('pane.collections.groupLibraries'),
|
label: Zotero.getString('pane.collections.groupLibraries'),
|
||||||
libraryID: -1
|
libraryID: -1
|
||||||
|
@ -205,7 +205,7 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function*
|
||||||
for (let group of groups) {
|
for (let group of groups) {
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('group', group),
|
new Zotero.CollectionTreeRow(this, 'group', group),
|
||||||
added++
|
added++
|
||||||
);
|
);
|
||||||
added += yield this._expandRow(newRows, added - 1);
|
added += yield this._expandRow(newRows, added - 1);
|
||||||
|
@ -225,12 +225,12 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function*
|
||||||
if (feeds.length) {
|
if (feeds.length) {
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('separator', false),
|
new Zotero.CollectionTreeRow(this, 'separator', false),
|
||||||
added++
|
added++
|
||||||
);
|
);
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('header', {
|
new Zotero.CollectionTreeRow(this, 'header', {
|
||||||
id: "feed-libraries-header",
|
id: "feed-libraries-header",
|
||||||
label: Zotero.getString('pane.collections.feedLibraries'),
|
label: Zotero.getString('pane.collections.feedLibraries'),
|
||||||
libraryID: -1
|
libraryID: -1
|
||||||
|
@ -240,7 +240,7 @@ Zotero.CollectionTreeView.prototype.refresh = Zotero.Promise.coroutine(function*
|
||||||
for (let feed of feeds) {
|
for (let feed of feeds) {
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
newRows,
|
newRows,
|
||||||
new Zotero.CollectionTreeRow('feed', feed),
|
new Zotero.CollectionTreeRow(this, 'feed', feed),
|
||||||
added++
|
added++
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -594,7 +594,7 @@ Zotero.CollectionTreeView.prototype._addSortedRow = Zotero.Promise.coroutine(fun
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._addRow(
|
this._addRow(
|
||||||
new Zotero.CollectionTreeRow('collection', collection, level),
|
new Zotero.CollectionTreeRow(this, 'collection', collection, level),
|
||||||
beforeRow
|
beforeRow
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -634,7 +634,7 @@ Zotero.CollectionTreeView.prototype._addSortedRow = Zotero.Promise.coroutine(fun
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this._addRow(
|
this._addRow(
|
||||||
new Zotero.CollectionTreeRow('search', search, level),
|
new Zotero.CollectionTreeRow(this, 'search', search, level),
|
||||||
beforeRow
|
beforeRow
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1180,9 +1180,10 @@ Zotero.CollectionTreeView.prototype.selectItem = Zotero.Promise.coroutine(functi
|
||||||
yield this.selectLibrary(item.libraryID);
|
yield this.selectLibrary(item.libraryID);
|
||||||
}
|
}
|
||||||
|
|
||||||
yield this.itemTreeView.waitForLoad();
|
var itemTreeView = this.itemTreeView;
|
||||||
|
yield itemTreeView.waitForLoad();
|
||||||
|
|
||||||
var selected = yield this.itemTreeView.selectItem(itemID, expand);
|
var selected = yield itemTreeView.selectItem(itemID, expand);
|
||||||
if (selected) {
|
if (selected) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1196,9 +1197,9 @@ Zotero.CollectionTreeView.prototype.selectItem = Zotero.Promise.coroutine(functi
|
||||||
yield this.selectLibrary(item.libraryID);
|
yield this.selectLibrary(item.libraryID);
|
||||||
}
|
}
|
||||||
|
|
||||||
yield this.itemTreeView.waitForLoad();
|
yield itemTreeView.waitForLoad();
|
||||||
|
|
||||||
return this.itemTreeView.selectItem(itemID, expand);
|
return itemTreeView.selectItem(itemID, expand);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -1332,7 +1333,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
let beforeRow = row + 1 + newRows;
|
let beforeRow = row + 1 + newRows;
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow('collection', collections[i], level + 1),
|
new Zotero.CollectionTreeRow(this, 'collection', collections[i], level + 1),
|
||||||
beforeRow
|
beforeRow
|
||||||
);
|
);
|
||||||
newRows++;
|
newRows++;
|
||||||
|
@ -1348,7 +1349,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
for (var i = 0, len = savedSearches.length; i < len; i++) {
|
for (var i = 0, len = savedSearches.length; i < len; i++) {
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow('search', savedSearches[i], level + 1),
|
new Zotero.CollectionTreeRow(this, 'search', savedSearches[i], level + 1),
|
||||||
row + 1 + newRows
|
row + 1 + newRows
|
||||||
);
|
);
|
||||||
newRows++;
|
newRows++;
|
||||||
|
@ -1358,7 +1359,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
// Add "My Publications"
|
// Add "My Publications"
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow(
|
new Zotero.CollectionTreeRow(this,
|
||||||
'publications',
|
'publications',
|
||||||
{
|
{
|
||||||
libraryID,
|
libraryID,
|
||||||
|
@ -1376,7 +1377,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
let d = new Zotero.Duplicates(libraryID);
|
let d = new Zotero.Duplicates(libraryID);
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow('duplicates', d, level + 1),
|
new Zotero.CollectionTreeRow(this, 'duplicates', d, level + 1),
|
||||||
row + 1 + newRows
|
row + 1 + newRows
|
||||||
);
|
);
|
||||||
newRows++;
|
newRows++;
|
||||||
|
@ -1391,7 +1392,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
s.addCondition('unfiled', 'true');
|
s.addCondition('unfiled', 'true');
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow('unfiled', s, level + 1),
|
new Zotero.CollectionTreeRow(this, 'unfiled', s, level + 1),
|
||||||
row + 1 + newRows
|
row + 1 + newRows
|
||||||
);
|
);
|
||||||
newRows++;
|
newRows++;
|
||||||
|
@ -1405,7 +1406,7 @@ Zotero.CollectionTreeView.prototype._expandRow = Zotero.Promise.coroutine(functi
|
||||||
};
|
};
|
||||||
this._addRowToArray(
|
this._addRowToArray(
|
||||||
rows,
|
rows,
|
||||||
new Zotero.CollectionTreeRow('trash', ref, level + 1),
|
new Zotero.CollectionTreeRow(this, 'trash', ref, level + 1),
|
||||||
row + 1 + newRows
|
row + 1 + newRows
|
||||||
);
|
);
|
||||||
newRows++;
|
newRows++;
|
||||||
|
|
|
@ -40,6 +40,7 @@ Zotero.ItemTreeView = function (collectionTreeRow) {
|
||||||
this.wrappedJSObject = this;
|
this.wrappedJSObject = this;
|
||||||
this.rowCount = 0;
|
this.rowCount = 0;
|
||||||
this.collectionTreeRow = collectionTreeRow;
|
this.collectionTreeRow = collectionTreeRow;
|
||||||
|
collectionTreeRow.view.itemTreeView = this;
|
||||||
|
|
||||||
this._skipKeypress = false;
|
this._skipKeypress = false;
|
||||||
|
|
||||||
|
|
|
@ -1225,7 +1225,7 @@ var ZoteroPane = new function()
|
||||||
|
|
||||||
this._updateToolbarIconsForRow(collectionTreeRow);
|
this._updateToolbarIconsForRow(collectionTreeRow);
|
||||||
|
|
||||||
this.itemsView = this.collectionsView.itemTreeView = new Zotero.ItemTreeView(collectionTreeRow);
|
this.itemsView = new Zotero.ItemTreeView(collectionTreeRow);
|
||||||
if (collectionTreeRow.isPublications()) {
|
if (collectionTreeRow.isPublications()) {
|
||||||
this.itemsView.collapseAll = true;
|
this.itemsView.collapseAll = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user