Commit Graph

1144 Commits

Author SHA1 Message Date
Simon Kornblith
5bb324e2eb - fix issues with errors in async detectCode 2007-03-19 19:21:32 +00:00
Dan Stillman
2de3ed40c5 Addresses #417, Preference to keep files in Zotero directory named based on the attachment title
Implemented auto-renaming of PDFs and other files based on the parent item's metadata. Format is customizable via 'attachmentRenameFormatString' pref, though options are currently rather limited. Default is '%c - %y - %t{50}', meaning "FirstCreator - 2007 - Title Truncated to 50 Characters"

Also:

- Removed |forceFileName| from Attachments.importFromDocument() -- I don't think it'll be necessary?
- Modified WebPageDump not to save HTML wrapper files around non-HTML documents
2007-03-19 15:22:11 +00:00
Dan Stillman
3dc5a21f4a Allow tab in notes 2007-03-19 12:36:13 +00:00
Dan Stillman
870a362902 Fixed bug in itemTreeView.rememberOpenState() that caused open state of first row in items list to not be remembered 2007-03-19 05:50:40 +00:00
Dan Stillman
2875c0d4ce Fixes #257, snapshots not getting the CSS from some web pages
Switched importFromURL() from native Mozilla saveDocument() to WebPageDump code (originally from Scrapbook), which fixes CSS saving problems and other issues -- viewing a WPD snapshot of the New York Times front page causes a crash in the Flash plugin in all Mac browsers, however, unless the Flash security settings are changed to whitelist the Zotero storage directory for accessing the network (but this should be done anyway, since the warning is annoying)


Also:

- Fix broken items list in Related and Advanced Search windows from r1231

- Fix several _getItemAtRow() errors from r1231

- Adjusted Zotero.Progress API: fade()->startCloseTimer(), kill()->close()

- Added forceTitle parameter to importFromURL(), currently unimplemented -- note that order of the last parameter changed

- Added progress windows for "Create New Item from Current Page", snapshot, and link actions

- Added "Miscellaneous" caption in General pane of preferences

- Clarify Mac rich-text warnings

- Switched small Export prefpane to generic icon
2007-03-19 04:38:27 +00:00
Dan Stillman
d9f2a7b466 Fix SQL error on new install 2007-03-17 18:39:57 +00:00
Simon Kornblith
1548f62a29 closes #553, new location of moved annotations not saved under certain circumstances 2007-03-16 23:36:31 +00:00
Simon Kornblith
2df7792d60 closes #538, Change Zotero XML namespace prefix used in Zotero RDF 2007-03-16 23:28:45 +00:00
Simon Kornblith
9bac943dc7 closes #530, add base field conversion to translation level
closes #534, export fails on missing attachments
2007-03-16 23:25:52 +00:00
Dan Stillman
2e2fa0dcfa *As always, but in particular this time, do not test this commit with valuable data -- but please do test.*
- 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()
2007-03-16 16:28:50 +00:00
Dan Stillman
b88adcaaf0 Pushed ScientificCommons to repo 2007-03-16 02:50:25 +00:00
Simon Kornblith
bf44c0fe91 - fix scrape bug
- fix problem with scientificcommons search results
2007-03-16 02:43:18 +00:00
Sean Takats
7b0d3c89ee ScientificCommons translator added 2007-03-15 18:49:46 +00:00
Simon Kornblith
5833b02057 - add tooltips for annotation buttons
- change collapsed annotation icon
2007-03-14 00:52:11 +00:00
Simon Kornblith
735aab1de1 fix move (broken in r1225) 2007-03-13 19:39:55 +00:00
Simon Kornblith
8eeefc16e7 closes #551, ability to minimize annotations 2007-03-13 08:44:28 +00:00
Simon Kornblith
bb0fe85b52 fix resize issues 2007-03-13 07:55:17 +00:00
Simon Kornblith
5c1949f572 closes #529, ability to move annotations. there's a move button in the upper right. not quite as nice as dragging, but functional. 2007-03-13 07:36:39 +00:00
Simon Kornblith
0cde7d570d closes #478, ability to resize annotations 2007-03-13 00:45:40 +00:00
Dan Stillman
93b56ec0f3 Update SQL for inserting Quick Start Guide item in new installs to put title in itemData 2007-03-10 20:24:30 +00:00
Dan Stillman
ca61bce276 Localized strings for new 'title'-based fields from r1219 2007-03-10 06:45:34 +00:00
Dan Stillman
358924de47 Moved title field to itemData table, which made the following possible:
- All remaining fields in the items table exists in all items and are non-user-editable
   - Simplified some data access code (e.g. removed Item.isEditableField())
   - 'title' is now a base field used in case (Case Name), statute (nameOfAct) and e-mail (Subject)

Reengineered parts of the data layer for better performance

   - Various recent changes, including the 'title' change above and base field mapping in Item.getField(), had a negative effect on performance. This should help. In particular, itemData values are now loaded in in bulk by Items._load() (via Items.get()) rather than on-demand, the sort process in itemTreeView caches values while sorting, and ItemFields.getFieldIDFromTypeAndBase() is faster.


Addresses #346, mapping for new item types
2007-03-10 06:44:39 +00:00
Dan Stillman
3465346694 Fix translation errors when Zotero pane was closed (after being open previously) -- caused by zotero-pane switch from 'collapsed' to 'hidden' 2007-03-09 01:04:29 +00:00
Dan Stillman
caf97b6da4 Missed files from r1216
Localization changes:

- Removed periods on ingester.scrapeComplete and ingester.scrapeError
- Removed changed ingester.scrapeErrorDescription from existing locales
- Added ingester.scrapeErrorDescription.linkText
2007-03-08 23:38:54 +00:00
Dan Stillman
541c228a37 Translator errors now include a link to an upcoming Known Translator Issues page, which will eventually contain instructions for helping to fix broken translators
Related progress window changes:

- Translators now use Zotero.ProgressWindow rather than Zotero_Browser.Progress (removed) -- browser.js currently creates a single instance of ProgressWindow per browser window for its use
- Progress boxes now stay open while the mouse is over them and close when you click on them
- New method Zotero.Utilities.parseMarkup() -- parses a text string for HTML/XUL markup and returns an array of parts (currently only <a>)
- Using parseMarkup, ProgressWindow.addDescription() now supports adding clickable links to notifications

Other progress window changes:

- Fixed progress window offsets on Mac (on OS X outerHeight doesn't include 22px title bar and moveTo() positions popups 22px below the specified location) -- need to test this on other platforms
- Added support for displaying progress window notifications relative to screen edges when there's no browser window

Unrelated:

- Fixed warning when calling getSelectedCollections() before the Z pane had been opened
2007-03-08 23:36:19 +00:00
Sean Takats
47ec444b72 Whoops: didn't double quote an XPath... 2007-03-08 22:11:40 +00:00
Sean Takats
52f48e7c36 Fixes ACM, Blackwell Synergy, and SpringerLink issues mentioned in the forums 2007-03-08 21:59:48 +00:00
Dan Stillman
1f7f8bb7e1 Fix error when closing window caused by expand/collapse code 2007-03-08 20:56:45 +00:00
Dan Stillman
719ec8c694 Miscellaneous updates:
- Display items with empty titles at beginning of list (since having new notes and items appear at the bottom of the list is distracting)
- On item modify, select item if in active window (which hopefully doesn't have any side effects, though I'm not sure why I ever changed this)
- Focus quicksearch bar on Z pane open
2007-03-06 18:40:57 +00:00
Dan Stillman
f6d9a42644 Update Zotero.ProgressWindow to properly handle and stack multiple progress windows, stored in Zotero.ProgressWindowSet
Refresher:

var progress = new Zotero.ProgressWindow();
progress.changeHeadline('Indexing item...');
progress.addLines("My First Book", "chrome://zotero/skin/treeitem-book.png");
progress.addDescription('This is my first book.');
progress.show();
progress.fade();

var progress2 = new Zotero.ProgressWindow();
progress2.changeHeadline('Indexing item 2...');
progress2.addLines("My Second Book", "chrome://zotero/skin/treeitem-book.png");
progress2.addDescription('This is my second book.');
progress2.show();
progress2.fade();
2007-03-06 15:38:29 +00:00
Dan Stillman
5f37a75804 Miscellaneous fixes:
- Tags matching JS Array object methods ("every", "map", "splice") would appear selected in tag selector after clicking Deselect All
- Tag selector wasn't notified correctly on tag renames
- Don't use LIKE if no text string in Tags.search()
- Iterator variable in for loop in Notifier.commit() wasn't local
- Removed extra debug info in pdftotext run
2007-03-03 00:56:49 +00:00
Dan Stillman
12606548fe Added third parameter to Item.getField(), |includeBaseMapped|, to return value of equivalent type-specific field if provided field is a base field (e.g. getField('publisher', false, true) returns the value of the 'label' field if the item is an 'audioRecording')
Type-specific fields now display for 'publisher' in the items list

Added caching to ItemFields.isBaseField() and ItemFields.getFieldIDFromTypeAndBase()
2007-03-01 17:12:27 +00:00
Dan Stillman
5ae02ce447 Added Language, Call Number and Repository fields to middle pane
Row sorting now sorts by 'firstCreator' and 'date' after the main sort column
2007-03-01 16:05:19 +00:00
Dan Stillman
22dacc2dbc Renaming 'abstract' field to 'abstractNote' so it's not a reserved word in JS and we don't have to add in special logic for it
(Doesn't have to be 'abstractNote', especially now that abstracts aren't actually notes--other suggestions welcome.)
2007-02-28 20:16:04 +00:00
Dan Stillman
7a9cc0f935 Fixes #544, Can't add the word 'map' as a tag
Words corresponding to JS Object/Array methods/properties couldn't be added as tags -- oops

Fixed for CachedTypes and ItemFields as well, just in case
2007-02-28 20:01:34 +00:00
Dan Stillman
3e2bb8a4d7 Missed file from r1203 and removal of unrelated changes in zotero.js 2007-02-28 11:39:20 +00:00
Dan Stillman
f161b1afb8 Closes #359, Ability to store Zotero directory outside of Firefox profile directory
Customizable in the preferences

Also improves handling of Zotero startup errors, adding the ability to customize the tooltiptext of the status bar error icon and to have ZoteroPane.toggleDisplay() run a customizable error function (it no longer opens an empty and broken Zotero pane). For example, a missing Z directory now prompts the user to locate the directory.

Various code parts now check for the Zotero object and Zotero.initialized before trying to do stuff, which should cut down on redundant error lines in the console and generally make things cleaner.


Refs #542, Better icons for preferences window -- need icon for Advanced prefpane
2007-02-28 11:33:08 +00:00
Dan Stillman
4ffaaa9eea Addresses #346, mapping for new item types
Fix for base field not being included (only type-specific fields) when searching by a base field
2007-02-27 20:45:41 +00:00
Dan Stillman
b1a025be92 Fixes #543, database migration error
'number' data in B3 'patent' items should become 'applicationNumber', since there already was a 'patentNumber', even if going forward 'patentNumber' will map to the 'number' base field

Simon, if you still have a copy of the problematic data, please check that this fixes the upgrade path.
2007-02-27 20:18:06 +00:00
Sean Takats
b70cb4a2e6 Fixes JSTOR single item save; copies abbreviated publication title to full title if full title is absent in RIS (reported problem with Nature); fixes Voyager to handle UPenn catalog 2007-02-27 19:40:28 +00:00
Dan Stillman
3c60b98d69 Fix error when deleting non-attachment items caused by r1195 2007-02-21 19:53:04 +00:00
Dan Stillman
937ccaa850 Restore Notifier enable()/disable() for use by Attachment.importFromURL() and importFromDocument(), which do two-part saves and need to not send notifications after the first part 2007-02-21 19:46:14 +00:00
Dan Stillman
937072e875 Add Item.hasTags(tagIDs) -- returns true if the item has one or more of |tagIDs|
|tagIDs| can be an int or array of ints, so made Item.hasTag(tagID) just call hasTags()
2007-02-21 19:22:45 +00:00
Dan Stillman
fe0c574dee Updated JSTOR regex from Sean to work on articles from JSTOR's sandbox -- pushed to repo 2007-02-21 18:58:35 +00:00
Dan Stillman
baca59063d -- Basic support for indexing and scanning of PDF content --
This is still mostly proof-of-concept stage, but it seems to work on my Mac. It requires the pdftotext utility from the Xpdf project, which parses PDFs into plain text files. The Zotero fulltext indexer calls pdftotext on the PDF file and saves the plaintext version as .zotero-ft-cache in the attachment item's storage directory. It runs the fulltext word indexer on the plaintext file and also scans the plaintext file when doing a phrase search.

To try it out, install a copy of Xpdf (or just pdftotext) and either place pdftotext into the Zotero data directory or create a symlink. Either way, the file must be named pdftotext-{platform}[.exe], where {platform} is navigator.platform, with spaces replaced by hyphens (e.g. "Win32", "Linux-i686", "MacPPC", "MacIntel", etc.). On my Mac, with Xpdf installed via Darwin Ports, I create a symlink to /opt/local/bin/pdftotext named pdftotext-MacIntel. This setup will allow users to sync their Firefox profiles and still have Zotero use the appropriate platform-specific binary.

Assuming we go this pdftotext route, I think we'll instruct users to download and install Xpdf/pdftotext, possibly even providing binaries ourselves. The binaries are too big to include in the XPI. I'm going to look into creating a GUI to make linking Zotero to pdftotext easier. I also need to finish some of the other tickets related to indexer feedback and control.

There are also two new hidden prefs, fulltext.pdfMaxPages and fulltext.textMaxLength, currently set to 100 and 500K, respectively. The first determines how many pages of each PDF pdftotext processes, and the second determines how many characters and/or bytes of text files (the PDF cache files included) Zotero indexes and scans. These defaults may want to be adjusted higher or lower.

Closes #315, Hidden pref to set maximum file size to index/scan
2007-02-20 15:55:24 +00:00
Dan Stillman
0eb970fc9c Closes #443, Duplicate record via context menu
Works for regular items and notes, not attachments (and doesn't clone child items when duplicating parent)

New method Item.clone()


Unrelated changes:

- Fix note/attachment dragging, broken by notifier changes (r1131) a while back
- Item.save() now triggers Notifier even if a transaction is in progress, which I hopefully no longer had a reason not to be doing
2007-02-19 11:05:51 +00:00
Dan Stillman
264778f72c 2007-02-19 01:35:30 +00:00
Dan Stillman
bdcad86da5 Addresses #85, Button(s) to expand/collapse all notes in a view
Better idea: Add expand/collapse keypress listener in treeview setTree() so that it works automatically in all trees

More of the functionality in the overlay could probably be moved into the treeviews like this
2007-02-18 11:59:31 +00:00
Dan Stillman
5d638df73a Addresses #85, Button(s) to expand/collapse all notes in a view
Enable expand/collapse in advanced search window
2007-02-18 11:23:23 +00:00
Dan Stillman
4740d85d49 Closes #85, Button(s) to expand/collapse all notes in a view
Hit + to expand all tree rows, - to collapse. Works in both collections tree and items tree.

Probably could've thought of that 8 months ago when we created the ticket...
2007-02-18 11:16:41 +00:00