- The (empty) created collection is now deleted after import failure
- Sped up general DB performance dramatically (especially on XP and Linux) by using a dummy statement to keep the SQLite shared cache active between transactions -- this seems to have only a moderate effect on OS X, which was already much faster, perhaps because of its own disk cache (though running XP and Linux under Parallels with limited RAM probably didn't help)
- Added some additional sanity checks to Date.strToDate() to prevent errors in the metadata pane and on import with dates like "1998-99" -- strToDate() was treating 99 as the month, which caused an error in the stricter DB trigger. "99" is now left as an unparsed part, though "2006-08" (where the second part is <= 31) will still get parsed as August 2006. Can't do much about that, though.
- Fixed a bug when rolling back nested transactions that could temporarily leave things somewhat funky
Put Unicode characters in RTF output in braces to avoid need for extra space (which showed up in OS X TextEdit but not Windows WordPad) -- as far as I can tell, this works cross-platform.
Replace en and em dashes in HTML bib output with HTML entities
Not pushing updated CSLs to repo, since the em-dashes rely on these other changes (particularly the RTF one) to appear properly
This should prevent any chance of data loss from transaction rollback if Firefox crashes, since it removes almost all possibility of modifying Zotero data after an error.
Also replaced commitAllTransactions() call in DB shutdown observer with rollbackAllTransactions(), since the extra safety precaution now shouldn't be necessary.
Addresses #597, Don't iterate Array with for...in
Also fixes child items displaying twice in saved search reports and adds proper collation support in reports
- Added asTempTable parameter to Zotero.Search.search() to save results to a temporary table -- avoids large inserts with post-search filters
- Added proper collation sort support for tags
Also, child items in search results now always display in context, with the non-matching rows in gray. May later implement Elena's idea to show an ellipsis to toggle non-matching items.
New method Search.setScope(searchObj) to pass one search as the scope for another -- used to make quicksearch and tag selector properly search within the current view.
Note: These changes need testing -- I may not have gotten all the various conditions (view mode, quicksearch, tag selector, advanced search, drag-and-drop) exactly right.