Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources.
![]() - Massive optimization of data layer -- with ~11,000-item test library on a Mac Pro, decreased initial Zotero pane loading from several minutes to ~10 seconds. This included some small API changes and new methods (e.g. Items.cacheFiles()) in the data layer, but most of it was changing the way loading and caching of data worked internally. - Moved unique itemData values out to separate itemDataValues table for better normalization - Updated itemTreeView.sort() to be able to sort a single row into the items list for performance reasons -- itemTreeView.notify() now only sorts a single row when possible (and sometimes doesn't need to sort anything). This should make general interface use dramatically less sluggish with large libraries. - Consolidated purging on item deletes, which should speed up multi-item deletes quite a bit -- clients should use Items.erase() instead of Item.erase(), since the former calls the new Items.purge() method (which calls the various other purge() methods) automatically - Notifier no longer throws errors in notify() callbacks and instead just logs them to the Error Console -- this way a misbehaving utility (or Zotero itself) won't keep other observers from receiving change notifications - Better handling of database corruption -- if an SQL query throws a file corruption error, Zotero adds a marker file to the storage directory and displays a message prompting the user to restart to attempt auto-repair--and, most importantly, no longer copies the corrupt file over the last backup. - A "Loading items list..." message appears over the items list (at least, sometimes) while data is loading -- useful for large libraries, but may need to be fine-tuned to not be annoying for smaller ones. - Note titles are now cached in itemNoteTitles table - orderIndex values are no longer consolidated when removing items from collections -- it just leaves gaps - Fixed shameful bug in getRandomID() that could result in an item with itemID 0, which wouldn't display correctly and would be impossible to remove - Fixed autocomplete and search for new location of 'title' field - Added proper multipart date support for type-specific 'date' fields - Made the pre-modification array passed to Notifier observers on item updates actually be pre-modification - New method Zotero.ItemFields.isFieldOfBase(field, baseField) -- for example, isFieldOfBase('label', 'publisher') returns true, as does isFieldOfBase('publisher', 'publisher') - Restored ability to drag child items in collections into top-level items in those collections - Disabled unresponsive script message when opening Zotero pane (necessary for large libraries, or at least was before the optimizations) - Collections in background windows didn't update on item changes - Modifying an item would cause it to appear incorrectly in other collections in background windows - Fixed an error when dragging, hovering to open, and dropping a note or attachment on another item - Removed deprecated Notifier methods registerCollectionObserver(), registerItemObserver(), unregisterCollectionObserver(), and unregisterItemObserver() - Loading of Zotero core object can be cancelled on error with Zotero.skipLoading - Removed old disabled DebugLogger code - New method Zotero.log(message, type, sourceName, sourceLine, lineNumber, columnNumber, category) to log to Error Console -- wrapper for nsIConsoleService.logMessage(nsIScriptError) - New method Zotero.getErrors(), currently unused, to return array of error strings that have occurred since startup, excluding CSS and content JS errors -- will enable an upcoming Talkback-like feature - Fixed some JS strict warnings in Zotero.Date.strToMultipart() |
||
---|---|---|
chrome | ||
components | ||
defaults/preferences | ||
chrome.manifest | ||
install.rdf | ||
license.txt | ||
scrapers.sql | ||
system.sql | ||
update.rdf | ||
userdata.sql |