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,35 +354,36 @@ Zotero.ItemFields = new function() {
return false; return false;
} }
var autoCompleteFields = [ if (!_autocompleteFields) {
'journalAbbreviation', _autocompleteFields = new Set([
'series', 'journalAbbreviation',
'seriesTitle', 'series',
'seriesText', 'seriesTitle',
'libraryCatalog', 'seriesText',
'callNumber', 'libraryCatalog',
'archive', 'callNumber',
'archiveLocation', 'archive',
'language', 'archiveLocation',
'programmingLanguage', 'language',
'rights', 'programmingLanguage',
'rights',
// TEMP - NSF
'programDirector', // TEMP - NSF
'institution', 'programDirector',
'discipline' 'institution',
]; 'discipline'
]);
// Add the type-specific versions of these base fields
var baseACFields = ['publisher', 'publicationTitle', 'type', 'medium', 'place']; // Add the type-specific versions of base fields
autoCompleteFields = autoCompleteFields.concat(baseACFields); for (let baseField of ['publisher', 'publicationTitle', 'type', 'medium', 'place']) {
_autocompleteFields.add(baseField);
for (var i=0; i<baseACFields.length; i++) { for (let typeField of Zotero.ItemFields.getTypeFieldsFromBase(baseField, true)) {
var add = Zotero.ItemFields.getTypeFieldsFromBase(baseACFields[i], true) _autocompleteFields.add(typeField);
autoCompleteFields = autoCompleteFields.concat(add); }
}
} }
return autoCompleteFields.includes(fieldName); return _autocompleteFields.has(fieldName);
} }