Commit graph

270 commits

Author SHA1 Message Date
Adomas Venčkauskas
5e706c31ad Translate and add items to library on drag 2016-03-22 06:56:33 -04:00
Adomas Venčkauskas
e6ede4b36f Various feeds changes
And move Z.Attachments.cleanAttachmentURI() to Z.Utilities.cleanURL()
2016-03-22 06:56:30 -04:00
Adomas Venčkauskas
8a2dc6e7f2 Adds Zotero.FeedReader tests 2016-03-22 06:56:29 -04:00
Dan Stillman
da45df06cc Load reverse relations mappings at startup
This allows Zotero.Relations.getByPredicateAndObject()/getByObject() and
Zotero.Item::getLinkedItem()/Zotero.Collection::getLinkedCollection() to
be synchronous, which is necessary for word processor integration.
2016-03-18 04:31:37 -04:00
Dan Stillman
a949d6bf8d Merge branch 'deasyncification' 2016-03-16 02:02:41 -04:00
Dan Stillman
28dc7d17e2 Fix setting of local mtime when remote file change matches local file 2016-03-16 02:01:51 -04:00
Dan Stillman
5cd3ab22ba Make sure "Unfiled Items" is showing before test 2016-03-15 01:18:55 -04:00
Dan Stillman
be04f3d33c Restore colored tags at top of tag selector when not linked to item 2016-03-15 01:18:55 -04:00
Dan Stillman
8e5016ae4d Load synced settings (incl. tag colors) at startup 2016-03-15 01:18:55 -04:00
Dan Stillman
60830c27ee Remove items from open Unfiled Items view when added to collection 2016-03-13 22:59:19 -04:00
Dan Stillman
6b509820b3 Fixes #918, Enabling "Show Unfiled Items" or "Show Duplicates" breaks UI 2016-03-13 20:31:15 -04:00
Dan Stillman
75bf69526c Daylight saving time: it's a thing! 2016-03-13 20:28:12 -04:00
Dan Stillman
0fc91a4ef2 Tests for showing/hiding virtual folders 2016-03-12 05:03:47 -05:00
Dan Stillman
c4ca22ca62 Fix duplicate merging
Fixes #919
2016-03-11 09:27:03 -05:00
Dan Stillman
1982938bc7 Store userLibraryID in test 2016-03-11 09:26:32 -05:00
Dan Stillman
f795240bbf Fix display of Duplicate/Unfiled Items rows 2016-03-11 09:25:33 -05:00
Dan Stillman
394aa8dded Update display title after item edit 2016-03-11 09:25:33 -05:00
Dan Stillman
ae6d560a66 Fix Item::multiDiff() 2016-03-11 07:48:24 -05:00
Dan Stillman
7a03b1e527 Accept ISO dates in Item::setField() 2016-03-11 07:48:24 -05:00
Dan Stillman
28eaaaf2bf Don't try to parse non-SQL dates in Date.sqlToDate() 2016-03-11 07:48:24 -05:00
Dan Stillman
de897d2878 Add "new" to File constructor for Firefox 45 2016-03-07 20:12:48 -05:00
Dan Stillman
208d470531 Fix test failures 2016-03-07 17:13:30 -05:00
Dan Stillman
daf4a8fe4d Deasyncification 🔙 😢
While trying to get translation and citing working with asynchronously
generated data, we realized that drag-and-drop support was going to
be...problematic. Firefox only supports synchronous methods for
providing drag data (unlike, it seems, the DataTransferItem interface
supported by Chrome), which means that we'd need to preload all relevant
data on item selection (bounded by export.quickCopy.dragLimit) and keep
the translate/cite methods synchronous (or maintain two separate
versions).

What we're trying instead is doing what I said in #518 we weren't going
to do: loading most object data on startup and leaving many more
functions synchronous. Essentially, this takes the various load*()
methods described in #518, moves them to startup, and makes them operate
on entire libraries rather than individual objects.

The obvious downside here (other than undoing much of the work of the
last many months) is that it increases startup time, potentially quite a
lot for larger libraries. On my laptop, with a 3,000-item library, this
adds about 3 seconds to startup time. I haven't yet tested with larger
libraries. But I'm hoping that we can optimize this further to reduce
that delay. Among other things, this is loading data for all libraries,
when it should be able to load data only for the library being viewed.
But this is also fundamentally just doing some SELECT queries and
storing the results, so it really shouldn't need to be that slow (though
performance may be bounded a bit here by XPCOM overhead).

If we can make this fast enough, it means that third-party plugins
should be able to remain much closer to their current designs. (Some
things, including saving, will still need to be made asynchronous.)
2016-03-07 17:03:58 -05:00
Dan Stillman
ad0d6765d7 Fix Zotero.Attachments.linkFromDocument() 2016-02-11 02:54:52 -05:00
Dan Stillman
a20a6c86bc Closes #899, Setting max chars to 0 should disable full-text indexing 2016-02-07 01:01:26 -05:00
Dan Stillman
72c927c840 Fix Zotero.Utilities tests, which were being skipped accidentally
Unfortunately this will need to be partly redone, since retrieveItem(), and
therefore itemToCSLJSON(), and therefore itemToExportFormat(), need to be
synchronous. The item data load statements in itemToExportFormat() will
probably need to be performed earlier, when they can be async, and made
available to the session for retrieval by retrieveItem(), but I'll let someone
more familiar with the citation infrastructure do that.

This restores some code in retrieveItem() that may have been accidentally
removed in a merge, though it probably won't be useful anymore anyway.

Addresses #529
2016-02-04 04:05:46 -05:00
Dan Stillman
9c2a7a9e77 Only retry file sync requests once after 500 error in tests
Now that 500 errors are retried in file downloads (ec28c5a3), we have to
override the default backoff schedule in order to get expected failures.

This also fixes an error that occurred on a retried download.
2016-02-03 01:19:15 -05:00
Dan Stillman
9fb85a263a Fix LIKE errors in Fx44
In Fx44, SQL queries must use '?' with LIKE and cannot concatenate a
placeholder string (e.g., 'foo%'). This is for Sqlite.jsm only, so it
doesn't affect 4.0.
2016-02-03 01:13:30 -05:00
Dan Stillman
aff8e35a0e Fix stuck checkUser prompt in sync prefs tests on Ubuntu
For some reason the confirmEx prompt behaves differently (as a modal
window?) on Ubuntu if it's the only window open, preventing the
setTimeout() callback within support.js::waitForWindow() from being run.
(Passing -c to the test runner fixed it.) This removes a win.close() in
the middle of the file, which was probably a mistake anyway, so that the
pref window stays open until the end of the file.
2016-01-25 18:22:25 -05:00
Dan Stillman
b3e14644f2 Fix sync tests 2016-01-18 13:50:46 -05:00
Dan Stillman
e873617890 Fix trashing of descendant items when deleting a collection
Also allows 'collections' property to be passed to
createDataObject()/createUnsavedDataObject() in tests.
2016-01-18 13:50:46 -05:00
Dan Stillman
f05b98ba20 Fetch top-level items before other items when syncing 2016-01-14 01:50:13 -05:00
Dan Stillman
02eea99128 Get latest cache object versions in bulk during sync downloads 2016-01-12 21:57:00 -05:00
Dan Stillman
eb89b4ed12 Test for DB integrity check 2016-01-08 03:31:43 -05:00
Dan Stillman
50b46bdb19 Don't bother doing a full DB reset after sync tests
Tests should make no assumptions about the presence of bundled files and
should do a full resetDB() if they need them. But most tests don't need
them, and they're very slow to install. We can reconsider this if we
drastically speed up DB resetting in tests (e.g., by caching a pristine
data directory).
2016-01-08 03:23:35 -05:00
Dan Stillman
4a5de628ce Fix WebDAV test failure 2016-01-07 16:48:57 -05:00
Adomas Venčkauskas
2e389de471 Closes #833, Displays a warning dialog if API key present but library empty 2016-01-07 21:11:20 +00:00
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
Dan Stillman
8933e3b586 Item.toJSON() should output unset mtime/md5 as null, not undefined 2015-12-22 01:49:45 -05:00
Dan Stillman
cfee7ea9d2 Merge pull request #879 from adomasven/feature/transparent-api-keygen
Restores the functionality of 4.0 for sync settings
2015-12-14 19:28:56 -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
177dac3fd2 Closes #805, Translation shouldn't create new item in My Publications
And in download overlay, save and switch to My Library if My
Publications is selected.
2015-12-10 01:11:41 -05:00
Dan Stillman
e3033b056e Fix intermittent error in FullText.getUnsyncedContent() test 2015-12-09 04:51:48 -05:00
Dan Stillman
18349b2232 Restore certificate checking for API syncing errors
Closes #864

This adds a 'channel' property to Zotero.HTTP.UnexpectedStatusException,
because the 'channel' property of the XHR can be garbage-collected
before handling, and the channel's 'securityInfo' property is necessary
to detect certificate errors.
2015-12-09 04:11:27 -05:00
Dan Stillman
01fddc9bb9 Tweak DataObject::save() tests 2015-12-08 16:38:58 -05:00
Dan Stillman
08cb63f66d Fix various cases of saving items to selected collection
This changes Zotero.Translate.Base.translate() to take an options object (in
order to take a 'collections' parameter, which is passed to the
Zotero.Translate.ItemSaver constructor). The old parameters are still supported
with a deprecation warning, and there may be other places that still need to be
updated.
2015-11-15 17:49:31 -05:00
Dan Stillman
22b1fa8cf8 Don't load bundled files before each storageLocal test 2015-11-15 17:49:31 -05:00
Dan Stillman
6d64526648 Ignore unknown fields in Zotero.Item::fromJSON() 2015-11-12 17:24:03 -05:00
Dan Stillman
563cfb4fd4 Add test PDF file 2015-11-12 15:40:42 -05:00
Dan Stillman
62aeb1da32 Full-text syncing support via API [DB reupgrade] 2015-11-12 02:54:51 -05:00