Commit graph

204 commits

Author SHA1 Message Date
Dan Stillman
96345a3aa8 Don't hang UI when importing files
- File import now uses a translucent overlay over Zotero pane with a progress meter that doesn't hang
- New method Zotero.wait(timeout) to allow synchronous code to wait for events on main thread to be processed until timeout is reached
- Wait status can be tested with Zotero.waiting property
- Zotero.showZoteroPaneProgressBar(msg, determinate) locks Zotero and creates overlay with progress meter
- Code that might trigger via timers or external UI should check Zotero.lock

Lock checks so far:

- Translator save icon and RIS/Refer import display error if triggered while locked
- Browser content context menu options are now in a Zotero submenu and are disabled when Zotero is locked
- Sync, repository, and DB backup timers check for lock and bail
- If a new window is opened, Zotero pane can't be opened and display an error message until lock is released

Probably need to check lock in word processor integration code and advanced search window

Also:

- New method Zotero.sleep(ms) (currently unused) to allow synchronous code to sleep and allow events on main thread to be processed
2009-08-08 07:38:34 +00:00
Dan Stillman
e1c611d1dc Fix y/m/d indicator in date fields not showing up for partial dates 2009-08-03 10:50:03 +00:00
Dan Stillman
9160cff264 Display more helpful message on newer DB version error 2009-07-26 09:44:18 +00:00
Dan Stillman
110800f154 Display more helpful startup error if file access is denied 2009-07-23 10:52:28 +00:00
Dan Stillman
d3b5553a73 Simultaneously fix and disable first run URL 2009-07-07 01:38:40 +00:00
Dan Stillman
04aa0581be Date portion of SQL datetimes entered into date fields would be lost on edit 2009-07-06 11:42:03 +00:00
Dan Stillman
91459f95f7 2.0b3 megacommit
- Support for group libraries
- General support for multiple libraries of different types
- Streamlined sync support
  - Using solely libraryID and key rather than itemID, and removed all itemID-changing code
  - Combined two requests for increased performance and decreased server load
  - Added warning on user account change
  - Provide explicit error message on SSL failure
- Removed snapshot and link toolbar buttons and changed browser context menu options and drags to create parent items + snapshots
- Closes #786, Add numPages field
- Fixes #1063, Duplicate item with tags broken in Sync Preview
- Added better purging of deleted tags
- Added local user key before first sync
- Add clientDateModified to all objects for more flexibility in syncing
- Added new triples-based Relation object type, currently used to store links between items copied between local and group libraries
- Updated zotero.org translator for groups
- Additional trigger-based consistency checks
- Fixed broken URL drag in Firefox 3.5
- Disabled zeroconf menu option (no longer functional)

Developer-specific changes:

- Overhauled data layer
  - Data object constructors no longer take arguments (return to 1.0-like API)
  - Existing objects can be retrieved by setting id or library/key properties
  - id/library/key must be set for new objects before other fields
- New methods:
  - ZoteroPane.getSelectedLibraryID()
  - ZoteroPane.getSelectedGroup(asID)
  - ZoteroPane.addItemFromDocument(doc, itemType, saveSnapshot)
  - ZoteroPane.addItemFromURL(url, itemType)
  - ZoteroPane.canEdit()
  - Zotero.CollectionTreeView.selectLibrary(libraryID)
  - New Zotero.URI methods
- Changed methods
  - Many data object methods now take a libraryID
  - ZoteroPane.addAttachmentFromPage(link, itemID)
- Removed saveItem and saveAttachments parameters from Zotero.Translate constructor
- translate() now takes a libraryID, null for local library, or false to not save items (previously on constructor)
- saveAttachments is now a translate() parameter
- Zotero.flattenArguments() better handles passed objects
- Zotero.File.getFileHash() (not currently used)
2009-05-14 18:23:40 +00:00
Dan Stillman
77b06e695f Create Zotero.isFx35 test and alias isFx31 to it until we get around to fixing the old references 2009-05-03 09:31:14 +00:00
Dan Stillman
b76fdd8e43 Set tag/creator purge flag on removals from items, and run purge on sync 2009-04-24 06:16:19 +00:00
Dan Stillman
ff24aec739 Apply r3954 to trunk 2009-02-23 08:03:16 +00:00
Dan Stillman
744d6a5a0a Fixes #1320, Last synced tool tip should tell how long ago a sync occurred 2009-02-22 10:30:01 +00:00
Dan Stillman
7572703065 Auto-sync on idle every hour and when coming back from an idle of more than 15 minutes 2009-02-19 05:26:48 +00:00
Dan Stillman
26e6125450 - More efficient purging logic -- instead of purging all objects whenever an item is deleted, flag just the object type and do the necessary purge when the Zotero pane is next opened. This also fixes a sync error edge case due to purging during synced item deletions.
- Disable unresponsive script warning during items list refresh
- Zotero.UnresponsiveScriptIndicator.disable() now returns true if it disables the indicator and false if it was already disabled
2009-02-18 03:09:39 +00:00
Dan Stillman
3b0f20c493 Add initial implementations of "Restore to Server" and "Restore from Server" to the Sync pref pane 2009-01-02 00:35:09 +00:00
Dan Stillman
f2cd272786 Merged r3888 from branch 2008-12-29 09:35:11 +00:00
Dan Stillman
8512ba8d39 Merge revisions from branch 2008-12-29 07:57:20 +00:00
Dan Stillman
337b16361a Merge [3617-3838] from branch to trunk 2008-11-30 20:18:48 +00:00
Dan Stillman
49a7537fa6 Much improved storage syncing (theoretically)
Metadata sync now always runs before storage sync, and file transfers can be stopped.

Needs testing
2008-11-29 14:13:29 +00:00
Dan Stillman
c6ae811dde Remove temp directory on shutdown 2008-11-14 13:43:01 +00:00
Dan Stillman
b8b75dd115 Don't report any "Unrecognized command line flag" errors 2008-10-30 20:53:47 +00:00
Dan Stillman
0f0c531247 Merged r3450-3580 from 1.0 branch 2008-10-25 07:37:47 +00:00
Dan Stillman
1434b8aa7a Reworked and standarized data object caching -- this should fix problems of long-term references containing stale, orphaned versions of data objects 2008-10-10 01:48:19 +00:00
Dan Stillman
340f54c8b0 Add X-Zotero-Version header to HTTP requests to zotero.org 2008-09-16 20:11:27 +00:00
Simon Kornblith
bf8e4eae28 - implement Zotero.Styles.install, refine Zotero.Style.delete, and restore functionality to Styles prefpane
- allow deletion of multiple styles simultaneously
- split Zotero.Styles/Zotero.Style and Zotero.CSL into style.js and csl.js respectively
- add Zotero.File.getBinaryContents for binary-safe file reading
- add Zotero.MIMETypeHandler to provide a unified interface for registering observers and capturing MIME types with Zotero
2008-09-16 19:14:52 +00:00
Dan Stillman
eac0c1a94d - Remove overriding OPTIONS response to text/plain -- the problem is incorrect status codes generated by IIS that result in "No element found" errors
- Replace passwords in malformed XML messages when generating error reports
2008-09-15 09:48:27 +00:00
Dan Stillman
86678aba27 Install/upgrade support for flat-file translators and styles
Files are copied from translators.zip and styles.zip (or, for SVN installs, 'translators' and (for now) 'csl' directories) in the installation directory to 'translators' and 'styles' directories in the data directory. A build_zip file is provided for testing translators.zip (which will take precedence over a 'translators' directory) but isn't required.

The timestamp stored in repotime.txt is stored in the database and is sent to the server for updates since that time.

Updating a file in [install-dir]/translators or [install-dir]/styles automatically copies all files in that directory to the data directory.
2008-09-12 22:09:54 +00:00
Dan Stillman
79ef2eac4d Better startup error debugging 2008-09-11 23:19:23 +00:00
Simon Kornblith
f06ce2705c implements Zotero.Styles and Zotero.Style using flat files 2008-09-11 21:29:05 +00:00
Simon Kornblith
492d3a8cb2 shuffle around initialization code 2008-09-11 19:35:53 +00:00
Dan Stillman
4648ae0f3b Zotero.getStylesDirectory(), Zotero.getTranslatorsDirectory(), and Zotero.File.createDirectoryIfMissing(dir) 2008-09-11 17:20:09 +00:00
Dan Stillman
e3acd9a513 Better cleanup of cached data after sync error
Clearer error message for "Creator must be a Zotero.Creator object in Zotero.Item.setCreator()" problem (which isn't yet fixed)
2008-09-03 18:04:50 +00:00
Dan Stillman
d662466ff6 Merged revisions 3306,3309 from 1.0 branch via svnmerge 2008-09-01 06:09:56 +00:00
Dan Stillman
f37d724a9e Merged revisions 3080-3081,3084,3087-3088,3090,3092,3099-3103,3113-3114,3132,3134-3143,3145,3148-3151,3154-3159,3165,3174,3194,3234-3235,3239-3240,3244,3246-3254,3258-3262,3268,3270,3274,3279,3286-3288,3294-3295 from 1.0 branch via svnmerge 2008-09-01 01:54:00 +00:00
Dan Stillman
a8bb8dae40 Adds WebDAV file sync
- Still experimental and incomplete, with no lock support and not much error handling

Also:

- New expiry date for sync functions
- Attachment character set was being dropped during syncing
- Possibly improves sizing issues with preferences window
- Fixes problems with attachment filenames with extended characters
- Fixes some problem with tags that I don't remember
- Makes XMLHTTPRequest calls are now background requests (no auth windows or other prompts)
- Z.U.HTTP.doOptions() now takes an nsIURI instead of a URL spec
- New methods:
  - Zotero.Utilities.rand(min, max)
  - Zotero.Utilities.probability(x)
  - Zotero.Utilities.Base64.encode(str) and decode(str)
  - Zotero.getTempDirectory()
  - Zotero.Date.dateToISO(date) - convert JS Date object to ISO 8601 UTC date/time
  - Zotero.Date.isoToDate(isoDate) - convert an ISO 8601 UTC date/time to a JS Date object
2008-08-31 23:36:01 +00:00
Simon Kornblith
53da1ccb03 references #698, Migration away from VBA
Adds a Python/py-appscript-based plug-in for Word 2008. To get this to work, you'll need to copy the Zotero directory (not its contents) to ~/Microsoft User Data/Word Script Menu Items and install py-appscript (sudo easy_install appscript)

Some caveats:
- Requires Word be installed at /Applications/Microsoft Office 2008/Microsoft Word 2008.app (this is fixable, but I'm still determining the best way to solve it)
- Still need to figure out what to do with items that have been deleted from the DB (right now, we just ignore them)
- Sometimes, Python.app launches with the script, which seems to slow execution time
2008-07-10 11:05:43 +00:00
Dan Stillman
6e7bfe413e Merged revisions 2890,2895-2896,2898,2900-2901,2905,2909-2911,2913,2916-2917,2919,2922,2936-2937,2953-2954,2957,2959,2962-2965,2969-2970,2973-2975,2979-2980,2983 via svnmerge from 1.0 branch 2008-07-07 15:18:49 +00:00
Dan Stillman
1bf13aaa1a Part of auto-sync support 2008-06-30 01:01:53 +00:00
Dan Stillman
3d725141b6 Don't put quotes around numbers in varDump() (used in debug()) 2008-06-25 01:07:35 +00:00
Simon Kornblith
d8868cd9cb fixes #1030, CSL broken on trunk due to XML namespace change
closes #704, EndNote to Zotero style converter (won't actually convert styles due to copyright concerns, but will load them into the DB)
also adds CSL style manager
2008-06-20 06:40:05 +00:00
Dan Stillman
d5eacdcbc6 Fix sync URL 2008-06-18 08:47:38 +00:00
Dan Stillman
42fa6f091f Move sync URL to ZOTERO_CONFIG array 2008-06-17 20:41:31 +00:00
Dan Stillman
97f214c9dc Merged revisions 2710-2712,2714-2716,2718-2728,2730-2731,2734,2736-2738,2740-2750,2752-2753,2755,2758-2768,2770-2779,2782,2789-2790,2794,2797-2802,2804,2808-2810,2812,2814-2824,2826-2832,2834-2835 via svnmerge from 1.0 branch 2008-06-11 08:55:59 +00:00
Dan Stillman
00c2b14d6c Adds rudimentary Zeroconf support to Zotero (a.k.a. "Z(ot)eroconf")
- Inspired by Dan Chudnov's Python/MODS-based Zeroconf demo at THATcamp
- Enabled by extensions.zotero.zeroconf.enabled (off by default)
- Currently supports only OS X (tested on Leopard, not sure about earlier versions)
- Uses Apple's dns-sd and mDNS command-client clients, but should be able to be extended to other clients, though a native library would be far superior
- Discovery is on-demand for now via Actions menu ("Search for Shared Libraries")
- Includes rudimentary web server (code copied from integration.js) that serves items as sync XML -- no authentication yet!
- Only supports top-level items
- Remote libraries show up in left pane (under remote computer name, for now)
- Items can be dragged into collections (but not the library yet, for some reason)
- On first run, might cause a long pause and the "This file was downloaded from the Internet" message on Leopard -- can't manage to get around the quarantine for the script file that we need to access stdout from Firefox
- Needs a lot of work, and without a real JS (or otherwise Mozilla-native) Zeroconf library we can't do proper discovery without intermittent polling
- But it works, at least for me

Also includes some data/sync-layer changes that I needed along the way (and that we'll need for shared collections of any type)
2008-06-03 05:26:30 +00:00
Dan Stillman
6408762b12 Merged revisions 2640-2647,2651,2653-2654,2656-2658,2660-2667,2670-2672,2674-2677,2680,2683-2684,2687-2704,2707 to trunk via svnmerge from 1.0 branch 2008-05-16 09:14:11 +00:00
Dan Stillman
416f023384 Merged revisions 2190-2192,2194,2196-2199,2202-2205,2209,2212,2214-2215,2227-2228,2230,2232-2243,2245,2247-2256,2263-2272,2276,2278-2279,2281,2284-2286,2292,2296-2297,2299-2302,2304-2305,2309-2310,2314,2317-2323,2325-2329,2331-2337,2339,2341-2342,2344,2347-2366,2370-2371,2373-2377,2379-2391,2393-2402,2405-2410,2413,2415-2416,2418,2420-2421,2423,2427-2429,2431-2433,2437,2440-2441,2443-2450,2453,2455-2459,2461-2467,2471,2475-2480,2482-2490,2493,2495-2499,2501-2506,2511,2513-2519,2521,2525-2536,2540,2543-2553,2555-2559,2561-2576,2578,2580-2603,2606-2609,2611-2616,2618-2620,2624-2630,2632-2633 to trunk via svnmerge from 1.0 branch 2008-05-05 07:19:34 +00:00
Dan Stillman
3de1789f26 Initial Zotero 1.5 Megacommit
Apologies for the massive (and, due to data_access.js splitting, difficult-to-follow) commit. Please note that external code that accesses the data layer may need to be tweaked for compatibility. Here's a comprehensive-as-possible changelog:

- Added server sync functionality (incomplete)
- Overhaul of data layer
  - Split data_access.js into separate files (item.js, items.js, creator.js, etc.)
  - Made creators and collections first-class objects, similar to items
  - Constructors now take id as first parameter, e.g. new Zotero.Item(1234, 'book'), to allow explicit id setting and id changing
  - Made various data layer operations (including attachment fields) require a save() rather than making direct DB changes
  - Better handling of unsaved objects
    - Item.setCreator() now takes creator objects instead of creator ids, and Item.save() will auto-save unsaved creators
    - clone() now works on unsaved objects
  - Newly created object instances are now disabled after save() to force refetch of globally accessible instance using Zotero.(Items|Creators|etc.).get()
  - Added secondary lookup key to data objects
  - Deprecated getID() and getItemType() methods in favor of .id and .itemTypeID properties
  - toArray() deprecated in favor of serialize(), which has a somewhat modified format
  - Added support for multiple creators with identical data -- currently unimplemented in interface and most of data layer
  - Added Item.diff() for comparing item metadata
- Database changes
  - Added SQLite triggers to enforce foreign key constraints
  - Added Zotero.DB.transactionVacuum flag to run a VACUUM after a transaction
  - Added Zotero.DB.transactionDate, .transactionDateTime, and transactionTimestamp to retrieve consistent timestamps for entire transaction
  - Properly store 64-bit integers
  - Set PRAGMA locking_mode=EXCLUSIVE on database
  - Set SQLite page size to 4096 on new databases
  - Set SQLite page cache to 8MB
  - Do some database cleanup and integrity checking on migration from 1.0 branch
  - Removed IF NOT EXISTS from userdata.sql CREATE statements -- userdata.sql is now processed only on DB initialization
  - Removed itemNoteTitles table and moved titles into itemNotes
- Abstracted metadata edit box and note box into flexible XBL bindings with various modes, including read-only states
- Massive speed-up of item tree view
- Several fixes from 1.0 branch for Fx3 compatibility
- Added Notifier observer to log delete events for syncing
- Zotero.Utilities changes
  - New methods getSQLDataType() and md5()
  - Removed onError from Zotero.Utilities.HTTP.doGet()
  - Don't display more than 1024 characters in doPost() debug output
  - Don't display passwords in doPost() debug output
- Added Zotero.Notifier.untrigger() -- currently unused
- Added Zotero.reloadDataObjects() to reset all in-memory objects
- Added |chars| parameter to Zotero.randomString(len, chars)
- Added Zotero.Date.getUnixTimestamp() and Date.toUnixTimestamp(JSDate)
- Adjusted zotero-service.js to simplify file inclusion

Various things (such as tags) are temporarily broken.
2008-05-04 08:32:48 +00:00
Dan Stillman
d92e3661d5 - Added Zotero.ID.get(table) method for getting a primary key id -- it first tries to find the lowest unused integer in the PK column and falls back to using MAX() + 1 if it can't find one quickly
- Removed Zotero.getRandomID() (moved into Zotero.ID, but unused)
- Purge itemDataValues on item delete
2008-02-09 09:46:29 +00:00
Dan Stillman
200cca74a6 Merged revisions 1986,1988-1990,1996,1998,2000-2004,2006,2008-2010,2013,2020-2028,2032-2034,2037,2039,2044-2049,2052-2056,2059,2065-2066,2068-2072,2075,2077-2079,2081,2083-2084,2086,2088-2094,2096,2099,2101,2103-2104,2107-2110,2115,2118,2120-2122,2126-2128,2131,2140,2142-2145,2149-2153,2155-2159,2165,2167-2168,2170-2171,2173-2176,2179-2183,2185-2186 via svnmerge from
https://www.zotero.org/svn/extension/branches/1.0
2008-01-30 09:53:19 +00:00
Dan Stillman
e2cb3a699a Merge r1802-1983 from branch to trunk 2007-12-02 05:45:07 +00:00
Dan Stillman
35ff52f2e8 Merged 1.0 branch back to trunk 2007-10-23 07:11:59 +00:00
Dan Stillman
026b37169a Closes #63, Add ECL license info to source code
Added on all non-trivial files -- be sure to copy over XML or JS version as appropriate for new files
2006-10-04 17:16:56 +00:00
Dan Stillman
7cee5b3b60 Fixes #333, Access date needs special handling in item pane for webpage item type
- Currently requires user to enter dates in SQL format if they want to change the access date, but at least it doesn't mangle the dates anymore

- Uses new function ScholardammitZotero.Date.dateToSQL(Date date [, Boolean toUTC])

- Utilities.lpad() now forces _string_ to a string so that .length exists

- Unrelated: Item.save() now returns false if the item didn't change
2006-10-04 00:47:55 +00:00
Simon Kornblith
03e9dc5ae5 closes #305, add conditionals/quotes to CSL
addresses #327, Scrapers should either take snapshots or use URL field
closes #309, Integration server prevents Zotero from loading in multiple instances of Firefox
2006-10-03 21:05:48 +00:00
Dan Stillman
c97b4b0bc0 OK, this might be it, assuming I got the build script right 2006-10-03 00:29:42 +00:00
Renamed from chrome/content/zotero/xpcom/scholar.js (Browse further)