Zotero.ItemFields.isAutocompleteField: Cache, use Set

This commit is contained in:
Abe Jellinek 2024-07-09 10:32:58 -04:00 committed by Dan Stillman
parent a334d9fdd8
commit 6eea3704a9

View file

@ -38,6 +38,7 @@ Zotero.ItemFields = new function() {
var _typeFieldIDsByBase = {}; var _typeFieldIDsByBase = {};
var _typeFieldNamesByBase = {}; var _typeFieldNamesByBase = {};
var _baseFieldIDsByTypeAndField = {}; var _baseFieldIDsByTypeAndField = {};
var _autocompleteFields = null;
// Privileged methods // Privileged methods
this.getName = getName; this.getName = getName;
@ -353,7 +354,8 @@ Zotero.ItemFields = new function() {
return false; return false;
} }
var autoCompleteFields = [ if (!_autocompleteFields) {
_autocompleteFields = new Set([
'journalAbbreviation', 'journalAbbreviation',
'series', 'series',
'seriesTitle', 'seriesTitle',
@ -370,18 +372,18 @@ Zotero.ItemFields = new function() {
'programDirector', 'programDirector',
'institution', 'institution',
'discipline' 'discipline'
]; ]);
// Add the type-specific versions of these base fields // Add the type-specific versions of base fields
var baseACFields = ['publisher', 'publicationTitle', 'type', 'medium', 'place']; for (let baseField of ['publisher', 'publicationTitle', 'type', 'medium', 'place']) {
autoCompleteFields = autoCompleteFields.concat(baseACFields); _autocompleteFields.add(baseField);
for (let typeField of Zotero.ItemFields.getTypeFieldsFromBase(baseField, true)) {
for (var i=0; i<baseACFields.length; i++) { _autocompleteFields.add(typeField);
var add = Zotero.ItemFields.getTypeFieldsFromBase(baseACFields[i], true) }
autoCompleteFields = autoCompleteFields.concat(add); }
} }
return autoCompleteFields.includes(fieldName); return _autocompleteFields.has(fieldName);
} }