With any storage service backed by S3 or another eventually consistent
storage service, there will be a short delay between when files
are uploaded and when they're available, so show a more helpful message
and allow the verification to pass. (Any IIS servers configured not to
serve extensionless files will also fail, but that's probably much
rarer at this point.)
We should also just retry the request on a 404, but that will have to
happen on master.
Addresses #115
beginUpdateBatch() doesn't suppress select events, so various batch
operations were triggering lots of extra selects.
This hopefully fixes the long hang some people were seeing when making
changes with an open quick search (which I was only able to reproduce in
Standalone).
- Some item changes were putting data in the wrong form into extraData,
which was keeping it from being passed through in notifications.
- For item modifications, set a 'changed' object, keyed by itemID, with
just the fields that changed as keys and their old values. For
deletes, keep the 'old' object for now, since sync relies on it.
- Remove item.serialize() for all item changes except deletions, which
should speed up writes (and which will leave extraData empty for some
changes).
- Currently only item fields, creators, related items ('related'), and
'parentItem' are added to 'changed'.
Closes#220
For at least one Windows user, a .docx file was being interpreted as
text/plain. Instead of relying entirely on the system, hard-code some
extensions we know. (More can be added.)
Also:
- Determine MIME type when opening files instead of using stored type,
since we might have gotten smarter
- Remove references to configOptions, displayOptions, and hiddenPrefs
from connector/translator.js. We can't rely on them to be set in
Zotero.Translator since https://repo.zotero.org/repo/metadata doesn't
provide them, but we shouldn't need them until we get the translator
code anyway.
- Don't serve configOptions, displayOptions, and hiddenPrefs from Zotero
Standalone server. There's no point in serving anything that
https://repo.zotero.org/repo/metadata doesn't.
- Alias the translator metadata loaded into the sandbox as
Zotero.Translate._translatorInfo. Use this to get configOptions and
hiddenPrefs.
- "v" browserSupport indicates that a translator can be run through
translation-server, not that translation-server is required.
This obviates the need for zotero/zotero-connectors#4.