Commit graph

310 commits

Author SHA1 Message Date
Dan Stillman
e57e297156 Update submodules 2018-09-26 19:00:05 -04:00
Dan Stillman
d6095a4eac Update submodules 2018-08-30 16:52:24 -04:00
Dan Stillman
26056c87f1 Fix non-integer userID in settings table
A submitted database had a text userID with a trailing "A0. Not sure how
that happened -- it doesn't appear to be possible in current code -- but
it caused group permissions not to be properly synced.
2018-08-09 03:30:47 -04:00
Dan Stillman
868a21b7e7 Update renamed styles 2018-08-07 04:58:15 -04:00
adam3smith
94dde661f7 remove Moscow from biochemistry 2018-07-30 00:40:08 -04:00
adam3smith
a8521d2712 fix abbreviation for http://www.ncbi.nlm.nih.gov/nlmcatalog/7505598 (following NLM) 2018-07-30 00:40:03 -04:00
Dan Stillman
2ebc78adc0 Update submodules 2018-07-07 13:04:49 +02:00
Dan Stillman
c26bd73895 Update translators 2018-06-20 17:09:11 -04:00
Dan Stillman
72481b072e Clean up extra files from Mendeley imports
Follow-up to cdee741a6
2018-06-16 03:07:46 -04:00
Dan Stillman
79d7c15d4f Update translators 2018-06-12 07:54:20 -04:00
Dan Stillman
e46f1d06e0 Update submodules 2018-06-05 05:46:41 -04:00
Dan Stillman
05843bb093 Fix base fields in connectorTypeSchemaData.js 2018-05-10 02:26:44 -04:00
Dan Stillman
5751838a3d Update submodules 2018-05-09 04:20:41 -04:00
Dan Stillman
6b4bce8754 Update submodules 2018-04-29 03:54:24 -04:00
Dan Stillman
bf26c230be Update submodules 2018-04-16 14:58:37 -04:00
Dan Stillman
b600885d11 Update translators 2018-03-27 03:10:56 -04:00
Dan Stillman
c96363746b Fix related-item relations pointing to a previous user account
If somebody switched accounts in a previous version, it was apparently
possible for related items to end up pointing at an item URI with the
old userID, which could cause a 403 on sync.

https://forums.zotero.org/discussion/70989/report-id-477331252

(5.0 deletes data when switching accounts to avoid exactly this sort of
bug.)
2018-03-26 02:12:20 -04:00
Dan Stillman
c71f657b08 Update translators 2018-03-20 15:31:58 -07:00
Dan Stillman
5f6de1c787 Update submodules 2018-03-09 14:35:41 -05:00
Dan Stillman
51ddc46322 Update translators 2018-03-05 18:10:17 -05:00
Dan Stillman
16f228b2a3 Update renamed styles 2018-02-28 04:31:22 -05:00
Dan Stillman
eca9d82aa2 Update submodules 2018-01-29 17:22:35 -05:00
Dan Stillman
e3dee4dee7 Update translators 2018-01-17 01:15:31 -05:00
Dan Stillman
09fc3c2b1c Update submodules 2018-01-11 20:20:32 -05:00
Dan Stillman
5847388862 Add schema update step to remove dc:isReplacedBy relations
These should've all been replaced with dc:replaces relations in a schema
update step, so any that exist were likely synced down from the API
(since fixed) and should be obsolete/redundant.
2018-01-05 02:53:27 -05:00
Dan Stillman
90d948a6bc Update submodules 2017-12-13 21:33:00 -05:00
Dan Stillman
8f98398dfd Update submodules 2017-12-03 15:20:35 -05:00
Dan Stillman
bbad56a32a Update submodules 2017-11-27 20:48:24 -05:00
Dan Stillman
d4ae63ff0d Update submodules 2017-11-22 03:15:37 -05:00
Dan Stillman
48928deba4 Update submodules 2017-11-17 09:37:54 -05:00
Dan Stillman
20ad57a368 Update submodules 2017-11-12 18:47:32 -05:00
Dan Stillman
56289b6693 Update submodules 2017-10-25 23:56:12 -04:00
Dan Stillman
45357bdb85 Update submodules 2017-10-17 21:05:52 -04:00
Dan Stillman
5f413b2ff3 Update submodules 2017-09-30 19:10:05 -04:00
Dan Stillman
da21c9c47b Remove old archive.org relations
These aren't allowed by the API and were breaking syncing (and haven't
been exposed anywhere for years anyway).
2017-09-22 16:58:16 -04:00
Dan Stillman
a455a72534 Remove invalid relations mangled during import
Not sure if this occurred for our own translators, but it addresses
items created from #1282.
2017-09-22 01:22:33 -04:00
Dan Stillman
d2a33f2613 Update submodules 2017-09-18 01:37:26 -04:00
Dan Stillman
acb990c75d Update submodules 2017-08-17 16:58:26 +02:00
Dan Stillman
ffc32d992d Update submodules 2017-07-30 15:34:03 -04:00
Dan Stillman
ac7c22a7c6 Fix searches for PowerPoint files
This also adds a mechanism for indicating that DB userdata upgrades
after a certain version are minor and shouldn't show "Upgrading
database…" or create a pre-upgrade backup.
2017-07-30 00:06:59 -04:00
Dan Stillman
6ae2b58d3f Update submodules 2017-07-24 08:59:23 -04:00
Dan Stillman
073d27311f Use HTTPS for Google Scholar and CrossRef lookup engines
TODO: Update existing engines
2017-07-23 00:57:04 -04:00
Dan Stillman
94a3921d0a Update translators 2017-07-17 18:25:21 -04:00
Dan Stillman
e5972b705f Update translators 2017-07-08 17:25:10 -04:00
Dan Stillman
dc71af9110 Update translators 2017-07-05 05:18:00 -04:00
Dan Stillman
7769b5d09e Update submodules 2017-07-03 03:03:41 -04:00
Dan Stillman
5aaefff1d6 Update submodules 2017-06-24 01:25:32 -04:00
Dan Stillman
d81e463507 Update translators 2017-06-06 04:37:45 -04:00
Adomas Venčkauskas
e1f09d4655 Remove unneeded connector files, update connectorTypeSchemaData.js
Addresses zotero/zotero-connectors#121
2017-05-08 14:38:03 +03:00
Dan Stillman
12e7b7b851 Update submodules 2017-05-08 00:14:06 -04:00
Dan Stillman
2eef1702e0 Prevent items in group libraries from being added to My Publications
And remove existing group items that have been added
2017-05-04 21:18:44 -04:00
Dan Stillman
7bd8f47dac Schema update step to remove linked files from My Publications 2017-04-27 15:33:25 -04:00
Dan Stillman
a2f11f5338 Update submodules 2017-04-14 23:14:22 -04:00
Dan Stillman
5ff2a59f87 Move My Publications into My Library
Instead of My Publications being a separate library, have it be a
special collection inside My Library. Top-level items can be dragged
into it as before, and child items can be toggled off and on with a
button in the item pane. Newly added child items won't be shown by
default.

For upgraders, items in the My Publications library will be moved into
My Library, which might result in their being duplicated if the items
weren't removed from My Library. The client will then upload those new
items into My Library.

The API endpoint will continue to show items in the separate My
Publications library until My Publications items are added to My
Library, so the profile page will continue to show them.
2017-04-12 19:26:58 -04:00
Dan Stillman
9bdb907751 Update submodules 2017-03-28 02:28:14 -04:00
Dan Stillman
3a5490a1ef If userID is set, migrate any item relations with local user key
DB update to go along with 0d8643087a
2017-03-02 01:32:33 -05:00
Dan Stillman
9ac458e05c Add 'archived' property to Zotero.Library objects
Set when a user loses access to a library but chooses to keep it as a
read-only library.
2017-02-24 02:36:18 -05:00
Dan Stillman
a33c53dcdb Update translators 2017-01-27 17:46:25 -05:00
Dan Stillman
c3ba7340c6 Update submodules 2017-01-24 02:51:18 -05:00
Dan Stillman
e0d92ecd94 Update submodules 2017-01-19 05:48:46 -05:00
gracile-fr
695cb9583a Amend short form of French months (continuing #64)
The Firefox French language pack contains some mistakes regarding
the short form of months. As a consequence, French month parsing
didn't work.

Please note that these values aren't even the correct abbreviations
but only the three or four first letters of the correct abbreviations.
See the French CSL locale for the correct abbreviations.
2017-01-16 18:58:59 +01:00
Dan Stillman
97f5c41aff Update submodules 2017-01-10 01:57:50 -05:00
Dan Stillman
ef1ff8bc42 Fix #64, Non-English month parsing doesn't work in Standalone
Month values from the Firefox language packs are included in a
JSON file used by `Zotero.Date.getMonths()`. `getMonths(true)` includes
English months as well.

The JSON file should be bundled with the connectors as well, and
Zotero.Date.init() should be updated to populate the month data from
that.
2017-01-09 04:47:23 -05:00
Dan Stillman
1b3dfe1aea Update submodules 2017-01-06 03:44:40 -05:00
Dan Stillman
b7daef6bf4 Update submodules 2016-12-16 03:31:06 -05:00
Adomas Ven
d6d4e4b33e Saner feed database management (#1131)
* Mark feedItems read in a single batch SQL update
* Automatically remove old feed items
* User-facing preference globally and per-feed for feed item expiration
2016-12-13 09:07:43 -05:00
Dan Stillman
15a71dc741 Update submodules 2016-11-03 17:41:34 -04:00
Dan Stillman
1ae71c3830 Merge branch '4.0' 2016-11-03 17:40:58 -04:00
Dan Stillman
55ee55ed7b Update version and submodules 2016-11-02 02:20:49 -04:00
Dan Stillman
8a915beaaa Fix bug in relations upgrade fix 2016-10-20 22:48:20 -04:00
Dan Stillman
63ab9da467 Fix incorrect related items upgrade
https://forums.zotero.org/discussion/62779/zotero-5-0-relations-made-in-4-0-disappeared
2016-10-15 16:04:08 -04:00
Dan Stillman
51a3687123 Merge branch '4.0' 2016-10-12 19:29:32 -04:00
Dan Stillman
db2fc7d0ba Update translators 2016-10-03 11:54:25 -04:00
Dan Stillman
21d3ca298b Merge branch '4.0' 2016-09-18 18:39:18 -04:00
Dan Stillman
71a7eb2628 Update submodules 2016-09-18 18:04:41 -04:00
Dan Stillman
5bcce8ba82 Merge branch '4.0' 2016-09-06 18:57:05 -04:00
Dan Stillman
6591ad63af Update translators 2016-09-06 18:53:27 -04:00
Dan Stillman
daf0f8e0b0 Merge branch '4.0' 2016-08-14 17:27:36 -04:00
Dan Stillman
8f9d356f11 Update translators 2016-08-13 20:39:41 -04:00
Dan Stillman
0eb6dc9ca5 Merge branch '4.0' 2016-08-09 01:52:21 -04:00
Dan Stillman
7daafd4ceb Update submodules 2016-08-08 02:22:57 -04:00
Dan Stillman
01aec4134c Update submodules 2016-07-22 00:18:02 -04:00
Dan Stillman
a343a7af6e Merge branch '4.0' 2016-06-06 16:42:39 -04:00
Dan Stillman
0a0283483e Update submodules 2016-06-06 16:14:21 -04:00
Dan Stillman
d8abfa4f67 Save all item data values as string, and convert old integers to strings
Before 5.0 we performed a regexp on new item data values to determine if
they were integers and saved them natively in SQLite if so. We no longer
do that, but setField() used strict equality when checking for changes,
so an item could be marked as changed when comparing to a new string
value (e.g., from a write response from the API, which always returns
strings). To avoid that, this converts all old values in the DB to
strings and saves all incoming values as strings automatically. (This
should also help with searching and some other things.)
2016-05-18 17:25:50 -04:00
Dan Stillman
216900094b Merge branch '4.0' 2016-05-07 13:27:56 -04:00
Dan Stillman
797f00ab7c Update translators 2016-05-02 22:41:52 -04:00
Dan Stillman
ba1f69b4d5 Merge branch '4.0' 2016-04-12 16:09:10 -04:00
Dan Stillman
9330b9cd40 Update submodules 2016-04-12 04:52:52 -04:00
Dan Stillman
560eb37d0b Schema update step to fix invalid item relations
As corrected in d0a110072
2016-04-11 16:29:48 -04:00
Dan Stillman
8a57183e0b Remove unused version table rows 2016-04-01 02:38:36 -04:00
Dan Stillman
a1ce85decb Overhaul object downloading/processing during data syncs
Previously, objects were first downloaded and saved to the sync cache,
which was then processed separately to create/update local objects. This
meant that a server bug could result in invalid data in the sync cache
that would never be processed. Now, objects are saved as they're
downloaded and only added to the sync cache after being successfully
saved. The keys of objects that fail are added to a queue, and those
objects are refetched and retried on a backoff schedule or when a new
client version is installed (in case of a client bug or a client with
outdated data model support).

An alternative would be to save to the sync cache first and evict
objects that fail and add them to the queue, but that requires more
complicated logic, and it probably makes more sense just to buffer a few
downloads ahead so that processing is never waiting for downloads to
finish.
2016-03-23 04:29:04 -04:00
Adomas Venčkauskas
12fc6cfbe8 Various feeds changes
- Hide notes, tags and related for feed items in itembox
- Add feed support for <enclosure> elements
- Add feed syncing methods for synced settings (additional work is
  needed on the sync architecture to download synced settings from the
  server)
- Change feed item clear policy to be less aggressive
- Adjust for deasyncification
- Disable translate-on-select
- Close adomasven/zotero#7, Remove context menu items from feeds
2016-03-22 06:56:36 -04:00
Adomas Venčkauskas
e206b0af5e Various feeds changes
- Change sort order for feed items to natural order
- Remove display of dates in itembox
- Trim html tags from creators in FeedReader parser
2016-03-22 06:56:33 -04:00
Dan Stillman
f4896a15ec Merge branch '4.0' 2016-03-17 05:08:06 -04:00
Dan Stillman
8830dfeff9 Update version and submodules 2016-03-15 03:31:08 -04:00
Dan Stillman
244a52ad22 Merge branch '4.0' 2016-03-06 01:20:51 -05:00
Dan Stillman
ee1e8578ce Update submodules 2016-03-01 01:25:48 -05:00
Dan Stillman
a152e35786 Don't create itemSeeAlso table (already removed via schema updates) 2016-02-17 18:04:06 -05:00
Dan Stillman
3b402c564c Closes #900, Change fields order for cases in system.sql 2016-02-06 04:12:07 -05:00
Dan Stillman
3071b8093b Merge branch '4.0' 2016-01-20 01:23:02 -05: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
0673face28 Update submodules and maxVersion 2015-12-10 16:33:51 -05:00
Dan Stillman
62aeb1da32 Full-text syncing support via API [DB reupgrade] 2015-11-12 02:54:51 -05:00
Dan Stillman
ccd765ff74 Update versions and submodules 2015-11-08 16:21:20 -05:00
Dan Stillman
7f43ca9503 Merge branch '4.0' 2015-11-01 21:22:13 -05:00
Dan Stillman
1e6c29766f Add deletion uploading to API syncing [DB reupgrade]
Tags deletions are not currently synced, and maybe don't need to be.
2015-11-01 03:58:54 -05:00
Dan Stillman
a22fe2ecda Update translators and renamed-styles.json 2015-10-02 05:05:26 -04:00
Dan Stillman
1b333be23f Add Zotero.Library.prototype.lastStorageSync 2015-09-29 04:42:13 -04:00
Dan Stillman
ec66d15a5f Update version and submodules 2015-09-24 22:13:35 -04:00
Aurimas Vinckevicius
88ab129ffb Add Feed and FeedItem
Also:
* _finalizeErase in Zotero.DataObject is now inheritable
* Call _initErase before starting a DB transaction
* removes Zotero.Libraries.add and Zotero.Libraries.remove (doesn't seem like this is used any more)
2015-09-21 17:08:21 -05:00
Dan Stillman
030f532d04 Update submodules 2015-08-27 16:00:36 +02:00
Dan Stillman
4eff7bd2d4 Update submodules 2015-08-13 18:38:59 -04:00
Dan Stillman
0aecaad761 Update conflict resolution for API syncing
This will appear much less frequently, since non-conflicting field changes on
both sides can be resolved automatically, but genuine field conflicts still
require manual conflict resolution.

The merge pane is no longer editable, since the itembox code to do that is
async and can't run in a modal window, but it's not really necessary,
particularly with conflicts happening less frequently.

TODO:

- Remote item deletions
- File conflicts
- Maybe handle some edge cases where the conflicted items fail to save
2015-08-06 04:14:49 -04:00
Dan Stillman
7b0c34a3ab Update submodules 2015-08-05 15:11:24 -04:00
Dan Stillman
fb9109e837 Update versions and submodules 2015-07-26 18:33:04 -04:00
Dan Stillman
5c523d8694 Merge branch '4.0' 2015-07-18 07:09:53 -04:00
Dan Stillman
2ad0f5ecdc Update translators 2015-07-12 23:57:58 -04:00
Dan Stillman
20f279043b Update submodules 2015-07-03 02:09:27 -04:00
Dan Stillman
4c751740b4 Update versions and translators 2015-06-30 23:41:48 -04:00
Dan Stillman
4233d2ebbd Update translators and repotime 2015-06-30 00:12:57 -04:00
Dan Stillman
99dd1c0697 Merge branch '4.0'
Since modal windows (e.g., the Create Bib window and the Quick Copy site
editor window) can't use yield, style retrieval
(Zotero.Styles.getVisible()/getAll()) is now synchronous, depending on a
previous async Zotero.Styles.init(). The translator list is generated in
the prefs window and passed into the Quick Copy site editor, but it's
possible the translators API should be changed to make getTranslators()
synchronous with a prior init() as well.
2015-06-27 16:59:58 -04:00
Dan Stillman
3a5854f49f Update versions and submodules 2015-06-26 02:40:18 -04:00
Dan Stillman
33dedd1753 Tags overhaul [DB reupgrade]
- Simplified schema
- Tags are now added without reloading entire tag selector
  - On my system, adding 400 tags to an item (separately, with the tag
    selector updating each time) went from 59 seconds to 42. (Given that
    it takes only 13 seconds with the tag selector closed, though,
    there's clearly more work to be done.)
- Tag selector now uses HTML flexbox (in identical fashion, for now, but
  with the possibility of fancier changes later, and with streamlined
  logic thanks to the flexbox 'order' property)
- Various async fixes
- Tests
2015-06-23 05:21:58 -04:00
Dan Stillman
f7216298b4 Update character set handling
Restore prepopulated charset table, but this time with just the
encodings from the WHATWG Encoding Standard. Assigning a charset to
Zotero.Item::attachmentCharset runs the value through
Zotero.CharacterSets.toCanonical() automatically.

This migrates attachment charsets to the new canonical values, clearing any
that are unsupported.

Other legacy mappings could still be added back, as disussed in #760.
2015-06-12 02:46:02 -04:00
Dan Stillman
a22c4969e6 Move editable and filesEditable props to libraries table [DB reupgrade]
And add group.fromJSON(json, userID), which sets editable and
filesEditable properties based on the group JSON (libraryReading, role
lists, etc.) and the given user
2015-06-07 15:50:07 -04:00
Dan Stillman
a740658452 Relations overhaul (requires new DB upgrade from 4.0)
Relations are now properties of collections and items rather than
first-class objects, stored in separate collectionRelations and
itemRelations tables with ids for subjects, with foreign keys to the
associated data objects.

Related items now use dc:relation relations rather than a separate table
(among other reasons, because API syncing won't necessarily sync both
items at the same time, so they can't be stored by id).

The UI assigns related-item relations bidirectionally, and checks for
related-item and linked-object relations are done unidirectionally by
default.

dc:isReplacedBy is now dc:replaces, so that the subject is an existing
object, and the predicate is now named
Zotero.Attachments.replacedItemPredicate.

Some additional work is still needed, notably around following
replaced-item relations, and migration needs to be tested more fully,
but this seems to mostly work.
2015-06-01 20:28:30 -04:00
Dan Stillman
eee0e22bf6 Add 'version' to sync cache primary key
The sync cache will have pristine copies of the existing versions of
local objects for better conflict resolution, but downloads will get
saved to the sync cache first before processing, so the cache needs to
be able to hold more than one version.
2015-05-19 01:25:31 -04:00
Dan Stillman
43a2045aec Change computerProgram 'version' to 'versionNumber'
And use 'version' instead of 'itemVersion' for object version for items

Also add deferred foreign key checking to system.sql so that DROP TABLE
commands don't fail mid-transaction
2015-05-04 02:45:53 -04:00
Dan Stillman
d8f3be4bee updateBundledStyles() asyncification and related changes
- Use async DB and OS.File for bundled file updates
- Remove support for translator/style ZIP files -- the two options are
  now non-unpacked XPIs with subfolders or unpacked source installations
- Now that we have async file access, don't store translator code in
  database cache -- just store metadata so that it's available without
  reading each translator file
- Change the (previously partially asyncified) Zotero.Styles/Translators
  APIs a bit -- while the getAll/getVisible methods are asynchronous and
  will wait for loading, the get() methods are synchronous and require
  styles/translators to be initialized before they're called. Most
  places that end up calling get() probably call getAll/getVisible first
  and should therefore be async, but if there's any way to trigger a
  get() first, that will need to be adjusted.
- Asyncify various other style/translator-related code

XPI support is untested, as is style/translator usage, so there are
almost certainly bugs. The latter depends on updated export format
support (#659), since toArray() no longer exists on this branch.

Addresses #529 and #520
2015-03-22 04:27:25 -04:00
Dan Stillman
bdd69d0a53 Merge branch '4.0' into api_syncing 2015-03-16 23:41:10 -04:00
Dan Stillman
a03772cae7 Merge branch 'master' into api_syncing
Note that this loses conflicting changes to translate_item.js from 849803473a,
so those will need to be reapplied if applicable. /cc @aurimasv, @mtd91429
2015-03-16 15:23:07 -04:00
Dan Stillman
39ecb7d916 Update translators 2015-02-10 22:52:53 -05:00
Dan Stillman
1afa1ffea6 Update submodules, repotime, and versions 2015-02-10 00:13:42 -05:00
Dan Stillman
b5b85ee589 Update submodules and repotime 2015-01-31 16:06:21 -05:00
Dan Stillman
b0e37a38a2 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/schema.js
	chrome/content/zotero/xpcom/translation/translate.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2015-01-29 19:59:47 -05:00
Dan Stillman
b785a3bfce Dynamically populate charsets table
Instead of limiting charsets to a fixed list, dynamically populate it
with any charset name of less than 50 ASCII characters. Previously,
unknown charsets were discarded.

Zotero.Item.prototype.attachmentCharset now always returns a charset
name. It can be set with either a name or a charsetID.

Also:

- Remove the unused 'originalPath' column in itemAttachments
2015-01-28 17:15:16 -05:00
Dan Stillman
b670084925 Use 'version' for groups instead of 'etag'
APIv3 uses 'version'
2015-01-28 17:05:25 -05:00
Dan Stillman
58c062dd06 Add per-library lastsync times and synced flags for sync delete logs 2015-01-28 15:56:46 -05:00
Dan Stillman
6de3fa4d47 Update translators and repotime 2015-01-14 00:09:40 -07:00
Dan Stillman
f1a3cb3577 Update versions, submodules, and repotime 2015-01-12 21:54:56 -07:00
Dan Stillman
d7d542a79c Update version, submodules, and repotime 2014-12-01 02:17:09 -05:00
Dan Stillman
12619273b5 Update submodules and repotime 2014-10-14 03:26:15 -04:00
Dan Stillman
490d24f43b Merge branch 'master' into async_db 2014-09-09 00:34:18 -04:00
Dan Stillman
3d7a35addc Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-09-08 20:24:44 -04:00
Dan Stillman
14a5643f38 Update submodules, repotime, versions 2014-09-01 14:56:01 -04:00
Dan Stillman
db0fa3c33e Async DB megacommit
Promise-based rewrite of most of the codebase, with asynchronous database and file access -- see https://github.com/zotero/zotero/issues/518 for details.

WARNING: This includes backwards-incompatible schema changes.

An incomplete list of other changes:

- Schema overhaul
  - Replace main tables with new versions with updated schema
  - Enable real foreign key support and remove previous triggers
  - Don't use NULLs for local libraryID, which broke the UNIQUE index
    preventing object key duplication. All code (Zotero and third-party)
    using NULL for the local library will need to be updated to use 0
    instead (already done for Zotero code)
  - Add 'compatibility' DB version that can be incremented manually to break DB
    compatibility with previous versions. 'userdata' upgrades will no longer
    automatically break compatibility.
  - Demote creators and tags from first-class objects to item properties
- New API syncing properties
  - 'synced'/'version' properties to data objects
  - 'etag' to groups
  - 'version' to libraries
- Create Zotero.DataObject that other objects inherit from
- Consolidate data object loading into Zotero.DataObjects
- Change object reloading so that only the loaded and changed parts of objects are reloaded, instead of reloading all data from the database (with some exceptions, including item primary data)
- Items and collections now have .parentItem and .parentKey properties, replacing item.getSource() and item.getSourceKey()
- New function Zotero.serial(fn), to wrap an async function such that all calls are run serially
- New function Zotero.Utilities.Internal.forEachChunkAsync(arr, chunkSize, func)
- Add tag selector loading message
- Various API and name changes, since everything was breaking anyway

Known broken things:

- Syncing (will be completely rewritten for API syncing)
- Translation architecture (needs promise-based rewrite)
- Duplicates view
- DB integrity check (from schema changes)
- Dragging (may be difficult to fix)

Lots of other big and little things are certainly broken, particularly with the UI, which can be affected by async code in all sorts of subtle ways.
2014-08-06 22:59:37 -04:00
Dan Stillman
36c5dceff4 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/browser.js
	chrome/content/zotero/longTagFixer.js
	chrome/content/zotero/xpcom/schema.js
	chrome/content/zotero/xpcom/utilities.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-07-15 22:17:27 -04:00
Dan Stillman
9f379c99e0 Update submodules and repotime 2014-06-24 17:48:37 -04:00
Dan Stillman
b441e2cf9e Update submodules and repotime 2014-06-18 21:12:25 -04:00