Commit Graph

10 Commits

Author SHA1 Message Date
Dan Stillman
c5a9987f37 WebDAV file sync overhaul for 5.0
Also:

- Remove last-sync-time mechanism for both WebDAV and ZFS, since it can
  be determined by storage properties (mtime/md5) in data sync
- Add option to include synced storage properties in item toJSON()
  instead of local file properties
- Set "Fake-Server-Match" header in setHTTPResponse() test support
  function, which can be used for request count assertions -- see
  resetRequestCount() and assertRequestCount() in webdavTest.js
- Allow string (e.g., 'to_download') instead of constant in
  Zotero.Sync.Data.Local.setSyncState()
- Misc storage tweaks
2015-12-30 05:14:50 -05:00
Adomas Venčkauskas
ffd9a07164 Restores sync credential functionality of 4.0.
Improves UX of sync authentication.
The account is now linked and unlinked and an API key related to
the client is generated transparently in the background.
The API key is deleted on unlinking.
No sync options are allowed before linking an account.
2015-12-14 23:55:28 +00:00
Dan Stillman
d07756d68d Store API key in login manager, and add temp field in prefs 2015-11-02 03:22:37 -05:00
Dan Stillman
984789d304 API syncing megacommit
There's a lot more to do, and this isn't ready for actual usage, but the
basic functionality is mostly in place and has decent test coverage. It
can successfully upgrade a library last used with classic syncing and
pull down changes via the API. Uploading mostly works but is currently
disabled for safety until it has better test coverage.

Downloaded JSON is first saved to a cache table, which is then used to
populate other tables and later for generating PATCH requests and
automatically resolving conflicts (since it shows what was changed
locally and what was changed remotely). Objects with unmet dependencies
or unknown fields are skipped for now but don't block the rest of the
sync.

Some of the bigger remaining to-dos:

- Tests for uploading
- Re-do the preferences to get an API key
- File sync integration
- Full-text syncing integration
- Manual conflict resolution (though this already includes much smarter
  conflict handling that automatically resolves many conflicts)
2015-07-20 18:16:57 -04:00
aurimasv
9b63ca5f4d Clear cached file sync credentials/URLs when changing settings 2014-04-23 17:18:33 -05:00
Dan Stillman
8bed3d44ed Remove another extra function wrapper 2013-05-01 16:19:01 -04:00
Dan Stillman
2a7a604f28 Use foreground requests for manual sync and error reporting
Adds a 'foreground' flag to Zotero.HTTP.promise() options

Also, can now pass successCodes: false to always resolve the promise and never
throw UnexpectedStatusException
2013-05-01 15:30:39 -04:00
Dan Stillman
5442e2e8a8 Fix ZFS purging when switching to WebDAV 2013-04-15 22:21:54 -04:00
Dan Stillman
acb45593e7 Fix WebDAV file purging
Deleted files are purged at the end of every sync, without any delay.
(If there's a conflict, it will be resolved before the file is deleted.)

Orphaned files are deleted once every 10 days, since it's a potentially
expensive operation for the server.
2013-03-26 02:50:00 -04:00
Dan Stillman
a417c9ef59 Fix window height bug in Zotero preferences, and reorganize code
Prefpanes are now in separate overlays, which fixes the age-old resizing
bug when switching between panes (at least on OS X) that varied
depending on the initial pane. Code has also been moved into
pane-specific files and objects, with strict mode enabled. When calling
code from another pane (e.g., for a UI update in another pane), first
check whether the Zotero_Preferences.[Pane] object exists--if it doesn't
then nothing needs to be called.

This change breaks the word integration plugin pref overlays, which
hopefully can be rewritten to work with either overlay format.

There is a good chance that this breaks some other things in the
preferences too.

Fixes #243
2013-03-20 05:10:38 -04:00