Commit graph

6631 commits

Author SHA1 Message Date
retorquere
32c6e1edb3 Sort items for translator
In response to https://forums.zotero.org/discussion/60375?page=1#Item_6
2016-06-27 15:12:02 +02:00
Dan Stillman
caaee87e9e Fix showing of WebDAV settings in sync prefs 2016-06-26 05:29:51 -04:00
Dan Stillman
0ea328dac5 Fix changing of linked attachment base directory 2016-06-26 02:02:22 -04:00
Dan Stillman
2f562a4fdf Fix Travis errors with OS.File.DirectoryIterator for real 2016-06-24 21:12:29 -04:00
Dan Stillman
edc996b1ed Sanity-check OS.File.DirectoryIterator entry.isDir only on Travis
Follow up from 2c2a5a378
2016-06-24 18:32:35 -04:00
Dan Stillman
2d88b07855 Set Zotero.automatedTest flag instead of .noUserInput on Travis
And don't skip alerts in Zotero.alert() during automated tests. (That
was intended to avoid long timeouts after unexpected failures, but,
e.g., PDF metadata lookups (which are currently disabled in automated
tests) should just be mocked so they don't intermittently fail.)
2016-06-24 18:28:32 -04:00
Dan Stillman
2c2a5a3787 Maybe fix zipDirectory() test failures on Travis 2016-06-24 16:50:08 -04:00
Dan Stillman
ec212119cc More zipDirectory debugging 2016-06-24 16:36:20 -04:00
Dan Stillman
62de330bef Make sure sync errors are logged
This might result in some double-logging, but that's better than no
logging.
2016-06-23 14:37:20 -04:00
Dan Stillman
df1c92b9a3 Fix "librariesToSync is undefined" when full-text syncing is disabled 2016-06-23 14:28:13 -04:00
Dan Stillman
6a523347b2 Cancel delayed quickCopy initialization when resetting DB during tests
And improve cancellation of scheduled feed checks
2016-06-23 05:38:15 -04:00
Dan Stillman
511222bcaf Skip child items when generating export format for CSL JSON
itemToCSLJSON() doesn't seem to need child items, so when a Zotero.Item
is passed to it, don't bother loading child items when calling
itemToExportFormat() to convert the item into the necessary format.
2016-06-23 04:26:24 -04:00
Dan Stillman
0238a2c13c Fix errors citing items in unloaded libraries 2016-06-23 04:17:33 -04:00
Dan Stillman
74fe2a2bdc Pass empty array to sync/finish event if no synced libraries 2016-06-23 03:08:16 -04:00
Dan Stillman
3de40256bf Restore drag-and-drop Quick Copy 2016-06-23 03:08:16 -04:00
Dan Stillman
8a0081c84e Sort translators list in Quick Copy drop-down 2016-06-23 03:08:16 -04:00
Dan Stillman
d4532f0cdf Merge pull request #1040 from rmzelle/inherit-class
Correctly inherit "class" from parent style
2016-06-23 03:05:49 -04:00
Philipp Zumstein
f6da7bb8d4 Change const to var in utilities
In order to make these mappings also available when the
script is used with `loadSubScript` from outside we
have to use `var` instead of `const`, `let`.

See https://github.com/aurimasv/z2csl/issues/6
2016-06-23 00:38:48 +02:00
Dan Stillman
4d516c68bf More zipDirectory() test debugging 2016-06-22 06:52:41 -04:00
Dan Stillman
94e0e8b752 Debugging for zipDirectory() test failure on Travis 2016-06-22 06:42:30 -04:00
Dan Stillman
b5344119bb Don't warn if a modified library property is accessed before save
getCellText() can be called between when a property (e.g., .name) is
changed and when ._changed is reset after the save, making this warning
unavoidable
2016-06-22 06:26:02 -04:00
Dan Stillman
48a072d254 Update library version after settings upload 2016-06-22 05:58:12 -04:00
Adomas Venčkauskas
834597c8bb Fix test failures introduced after #1044 2016-06-22 05:47:24 -04:00
Adomas Ven
dd8fd2b1ac Feed syncing (#1044)
Closes #1036

Also:

- Store sync info for feeds more compactly. Address #1037
2016-06-22 03:24:22 -04:00
Dan Stillman
451c12513e Remove unused toResponseJSON() overrides for Collection/Search 2016-06-20 01:21:24 -05:00
Dan Stillman
8e0e69332e Fix syncing of search conditions 2016-06-20 01:08:25 -05:00
rmzelle
e49c09f4a1 Correctly inherit "class" from parent style 2016-06-18 20:28:28 -04:00
Dan Stillman
2225f459b7 Fix breakage after certain Notifier events with My Publications selected 2016-06-14 15:24:47 -04:00
Dan Stillman
87abfdf64d Merge pull request #1032 from adomasven/fix/feed-dates
Changes date parsing and handling for feeds. Closes #1024, #1025
2016-06-14 13:38:38 -04:00
Adomas Venčkauskas
137290b97f Changes date parsing and handling for feeds. Closes #1024, #1025 2016-06-14 13:22:04 +03:00
Dan Stillman
099b45438d Merge branch '4.0' 2016-06-13 23:02:22 -04:00
Dan Stillman
954677636e Fix hang if another key is pressed after Enter in Quick Format dialog 2016-06-13 23:00:08 -04:00
Dan Stillman
c312576d02 Fix indicated return value in comment for itemToExportFormat() 2016-06-13 04:57:26 -04:00
Adomas Ven
f9449b1749 Fixes hidden columns showing on restart. Closes #1030 (#1031) 2016-06-13 04:56:39 -04:00
Philipp Zumstein
a200f6cfc5 Fix more for-each-in (#1029) 2016-06-12 01:23:45 -04:00
Dan Stillman
7dda5a2f69 Fix saving to collection from fallback search translators
Fixes #1028
2016-06-11 14:54:06 -04:00
Dan Stillman
0b75b75b96 When merging items, add master item to all collections
Also changes Zotero.Item.prototype.clone() to take an `options` object for its
second parameter instead of a boolean `skipTags`. The object includes
`skipTags` as well as a new `includeCollections` property to add the new item
to the same collections.
2016-06-10 23:26:32 -04:00
Dan Stillman
e66954a6f7 Correct comment for Zotero.Date.isoToDate()
isoToDate() does handle non-UTC time zones
2016-06-10 20:37:53 -04:00
Dan Stillman
3179a2f0e7 Fix various issues with note pane tags box 2016-06-10 20:35:14 -04:00
Dan Stillman
3de5ed1332 Don't show "false" for empty notes after restart 2016-06-10 19:44:33 -04:00
Dan Stillman
41fe8365a9 Fix #1027, 5.0: Not possible anymore to add tags to notes
Still a little weirdness in the tags popup that I'll clean up, but it should
work now.
2016-06-10 19:21:54 -04:00
Dan Stillman
fdd90b04d3 Save to My Library via connector when read-only library is selected
(Or My Publications, which is editable but shouldn't allow direct saving)

Also switches to My Library
2016-06-09 02:47:29 -04:00
Dan Stillman
de19d2fee5 Update locales from Transifex 2016-06-09 02:43:37 -04:00
Dan Stillman
0cf102b0e6 Fix missing word in string 2016-06-07 12:36:27 -04:00
Dan Stillman
b59edceec2 Fix some title casing of UI labels 2016-06-06 21:30:32 -04:00
Dan Stillman
cf2a673e2b Don't split out "Items First" in feed prefs 2016-06-06 17:58:51 -04:00
Dan Stillman
80f31abc30 Merge new English strings for 5.0 2016-06-06 16:43: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
2928e1fda1 Update locales from Transifex 2016-06-06 16:10:30 -04:00
Dan Stillman
8be22b84d1 Merge pull request #1012 from adomasven/fix/hide-list-cols-for-feeds
Closes #1008. Omit certain item list columns in feed views
2016-06-06 15:48:59 -04:00
Dan Stillman
a2fbf04682 Fix handling of unexpected status code for repository update request 2016-06-05 19:08:08 -04:00
Adomas Venčkauskas
60c4262d1e Closes #1008. Omit certain item list columns in feed views 2016-06-03 15:48:46 +01:00
Dan Stillman
19714d5b9b Avoid logged error after server_connector saveSnapshot tests
Indexing currently happens a second after the 201 is returned to the
connector, so we have to wait for that before continuing tests, or else
a DB clear in a later test (e.g., storageLocal) will cause an error to
be logged when the indexing kicks off.
2016-06-02 16:47:27 -04:00
Dan Stillman
7f339af104 Remove debug output during file sync 2016-06-02 16:14:30 -04:00
Dan Stillman
b0b9e84650 Clarify debug output for Zotero.DataObjects.prototype._loadDataTypeInLibrary() 2016-06-02 16:14:30 -04:00
Dan Stillman
3fb2dfe9ac Log error from NetUtil.asyncFetch in Zotero.File.putContentsAsync() 2016-06-02 16:14:30 -04:00
Dan Stillman
0d008b4704 Use OS.File.removeDir() to delete existing attachment files during sync 2016-06-02 16:14:30 -04:00
Dan Stillman
88a43fea31 Handle subdirectories when extracting attachment ZIP files 2016-06-02 16:14:30 -04:00
Dan Stillman
fc4d7fa4bf Fix infinite loop in Zotero.File.zipDirectory() on subdirectory
But subdirectories shouldn't actually be used yet, because they won't
extract properly on 4.0.
2016-06-02 16:14:30 -04:00
Dan Stillman
37063f639f Be sure to clean up temp attachment storage dir in importFromDocument() 2016-06-02 16:14:29 -04:00
Dan Stillman
fcb6e0c068 Save snapshots via nsIWebBrowserPersist instead of WebPageDump
WPD code hasn't been updated in many years, and there was an issue with
document permissions in 5.0. We'll need to replace nsIWBP in Electron,
but this will do for now.

Attachments are opened using file:// URIs instead of
zotero://attachment, which is what Standalone does anyway. Ancient HTML
annotations and highlights won't be displayed anymore, but I'm not sure
they worked anyway, and it hasn't been possible to create them in years.
We might be able to write out existing annotations to notes.

iframes are skipped during saving, in an attempt to reduce the number of
junk ad files. JS can still cause problems with viewing, so we might
still want to either disable scripts or force the viewed page offline
(if such a thing is possible).

There might be issues with auxiliary filename length/characters during
cross-platform file syncing. (We modified the WPD code to shorten/clean
them.)
2016-06-02 16:14:29 -04:00
Joscha Legewie
00497eda3b Allow string path as argument to Zotero.launchFile()
Not sure whether this is desired but it helps to reduce the use of nsIFile to a minimum. `file.launch()` and `file.reveal()` are two of the few things that are not possible with OS.File/OS.Path. When that changes, Zotero.launchFile is the only function that needs to be modified if it works with string paths.
2016-05-30 09:02:40 -04:00
LinuxMercedes
6bff554976 Add a second horizontal layout to Zotero for small screens (#1010) 2016-05-27 20:57:29 -04:00
Dan Stillman
849d206f87 Fix error running tests in translation-server 2016-05-27 04:37:48 -04:00
LinuxMercedes
aeb0d7599a Thread skipNotify through addItem 2016-05-26 23:28:10 -05:00
LinuxMercedes
5c9fce9a9d Add items from RecognizePDF in a DB transaction 2016-05-26 23:28:10 -05:00
Dan Stillman
34208f92f7 Fix startup error in translation-server 2016-05-26 22:44:22 -04:00
Dan Stillman
d7e38d960e Fix error in console on feed update before pane open 2016-05-26 00:35:04 -04:00
Dan Stillman
e4bc4c028d Don't fail if processDocuments() processor returns undefined
Follow up to 157b8deda9
2016-05-26 00:35:04 -04:00
Dan Stillman
2f47eae3ff Allow string path to be passed to Zotero.File.getExtension() 2016-05-26 00:35:04 -04:00
Dan Stillman
47b934f67e Fix direct saving of PDFs via connector 2016-05-25 17:34:26 -04:00
Dan Stillman
3905c98f93 Don't save note if it hasn't been changed by user
After uploading a note to the API, the local version may be overwritten with
the sanitized version in the API write response. This commit prevents the note
from being resaved when the note is clicked, reformatted by TinyMCE, and
clicked away from, which would result in an endless resync cycle. Instead, the
note is only resaved (and marked for syncing) when the user manually makes a
change.

 Please enter the commit message for your changes. Lines starting
2016-05-22 23:09:41 -04:00
Joscha Legewie
0ae070970a Support String for options.file in Zotero.Attachments.linkFromFile (#1005) 2016-05-22 13:42:39 -04:00
Dan Stillman
e21a914a1f Clarify comment for local object version updating behavior 2016-05-21 16:52:27 -04:00
Dan Stillman
4c46ebcf96 loadAllData() no longer necessary before fromJSON()
Post-deasyncification
2016-05-21 16:33:46 -04:00
Dan Stillman
f8716fbe88 Don't change Date Modified when updating local item after upload
If the API returns a modified item after an upload (e.g., to strip invalid
characters), don't update the Date Modified field when saving those changes to
the local version (though it would still be good to avoid API-side changes as
much as possible).
2016-05-21 16:33:46 -04:00
Dan Stillman
8b4a5936a3 Fix checking for file sync downloads at sync time 2016-05-21 16:33:45 -04:00
Dan Stillman
99eb39e288 Always include 'contentType'/'charset'/'filename' in attachment JSON
And omit in ZFS file sync requests

The API previously didn't allow these properties to be set for group items,
because they were set atomically during the file upload process, but 1) that's
not really necessary (makes a little sense for 'filename', but not really a big
deal if an old file is renamed on another computer before the new file is
synced down) and 2) skipping them results in the properties getting erased
after items are uploaded and the empty values returned by the server overwrite
the local values.
2016-05-21 16:33:35 -04:00
Dan Stillman
f5812852cb Default to My Library if pane not yet open saving snapshot from connector 2016-05-20 16:22:28 -04:00
Dan Stillman
0be2796500 Fix webpage/snapshot saving from connector 2016-05-20 15:51:54 -04:00
Dan Stillman
157b8deda9 Allow processor passed to Zotero.HTTP.processDocuments to return a promise
If a promise is returned, it's waited for before continuing with the next
document.
2016-05-20 15:51:01 -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
b9bbf007f0 Don't bother opening browser window for syncLocal::checkUser() tests
The window is passed to nsIPromptService, which handles finding a parent window
(hidden or otherwise) automatically if necessary.
2016-05-18 02:31:41 -04:00
Dan Stillman
2c18968c3a Fix Quick Format dialog for search results in unloaded libraries
Since the search might return items in libraries that haven't yet been loaded,
we have to get those items asynchronously and load their data explicitly. Need
to test this with a large document to make sure it still properly populates the
list with search results and then adds matching cited items.
2016-05-17 13:43:11 -04:00
Dan Stillman
7192929ac3 Add Zotero.DataObjects.prototype.loadDataTypes(objects, dataTypes)
Bulk-loads data for objects that are potentially in different libraries. This
would generally be used to load necessary data for cross-library search
results, since those results might include objects in libraries that haven't
yet been loaded.
2016-05-17 13:43:11 -04:00
Dan Stillman
dd9cc40c16 Cancel pending feed update check on Zotero shutdown
This avoids errors for a missing 'feeds' table during tests, when the callback
started in Zotero.Feeds.init() runs but the Zotero object has been torn down
and the database hasn't yet been reinitialized.
2016-05-17 13:43:11 -04:00
Dan Stillman
6907af86fd Add XPCOM clearTimeout() and remove Zotero.wait()
Properly emulate setTimeout() with support for cancelling timers.
2016-05-17 13:43:11 -04:00
Dan Stillman
a285e97815 Remove pumpGenerator/promiseGenerator
And update integration code to use ES6 generators and Bluebird's .each()
instead.
2016-05-17 13:43:11 -04:00
Dan Stillman
d8025be676 Ignore sanitization changes when comparing notes in conflict
Until we have a consistent way of sanitizing HTML on client and server, account
for differences manually. More differences between HTMLPurifier and TinyMCE
should be added as necessary.
2016-05-17 02:33:53 -04:00
Dan Stillman
6f04b34d59 Close #945, Optimize bulk reload on multi-item changes 2016-05-16 18:25:35 -04:00
Dan Stillman
56dcd6da26 Add file sync info/link to File Not Found dialog 2016-05-15 04:24:00 -04:00
Dan Stillman
427234917d Properly test whether file syncing is enabled for a library 2016-05-15 04:22:24 -04:00
Dan Stillman
a8ea8656d2 Fix sync error after changing child item to top-level 2016-05-15 03:34:06 -04:00
Dan Stillman
a7ea92fd52 Mark items with missing full-text cache files as unsynced for full text
Fixes #954, Full-text content processor tries to process missing cache
files on every idle
2016-05-15 01:30:35 -04:00
Dan Stillman
82d00a4e7a Change some instances of attachmentMIMEType to attachmentContentType 2016-05-13 15:56:35 -04:00
Dan Stillman
eb400587e8 Fix various bugs saving from connector and add test 2016-05-13 15:00:54 -04:00
Dan Stillman
55c60a69ac Delay feed fetching 5 seconds at startup
Would be better not to start until after the initial library's items had
been loaded, but that's a little awkward to do from non-window code.
Might make more sense when there's only Standalone.
2016-05-13 02:26:46 -04:00
Dan Stillman
ed312b2c89 Tweak text in empty-library sync warning dialog 2016-05-12 17:00:28 -04:00
Dan Stillman
59c0c7fcad Don't include file properties for ZFS-synced libraries
They're disallowed by the API in group libraries and not necessary in personal
libraries, because they're set atomically with the file upload.
2016-05-12 17:00:28 -04:00
Dan Stillman
0f45569ccd Default to NC for My Publications CC license, and reorder SA option 2016-05-12 14:31:57 -04:00
Dan Stillman
62ef910631 Better debug output for full sync 2016-05-12 03:02:50 -04:00
Dan Stillman
92ec1324dc Add a debug flag to prompt or throw on an attempted sync upload
extensions.zotero.sync.debugUploadPolicy = {1, 2}

1 to prompt, 2 to throw

This can be used to test sync functionality without altering the server
state unexpectedly. When prompting, the request body, if any, is logged
to debug output.
2016-05-12 03:02:50 -04:00
Dan Stillman
98cd96eb01 Make DELETE a write method in Zotero.HTTP.isWriteMethod() 2016-05-12 03:02:26 -04:00
Dan Stillman
8bbde63284 Update menu for non-collections when right-clicking on unselected row
Previously, item-dependent menu options in the context menu of
collectionsTreeRow types other than 'collection' weren't updated after
the asynchronous loading of the items. The menu is now updated for all
types, so, e.g., "Empty Trash" is now updated properly after items in
the trash have been loaded.
2016-05-12 02:12:22 -04:00
Dan Stillman
16a58c03be Save scroll position across non-selected changes for collections view 2016-05-09 13:58:33 -04:00
Dan Stillman
9345452601 Don't restore items tree scroll position if selecting new items 2016-05-09 13:58:23 -04:00
Dan Stillman
0bab038925 Fix #984, 5.0: Avoid scrolling items list when adding items via sync 2016-05-09 13:26:33 -04:00
Dan Stillman
53e1e1a9b7 .collectionTreeViewID -> .treeViewID, and add it to Zotero.Item too
Also .collectionTreeViewImage -> .treeViewImage
2016-05-09 12:34:03 -04:00
Dan Stillman
cb8b2bda1b Windows file path fixes
- Fix upgrading of Mozilla-style attachments/storage file paths on upgrade
  (requires re-upgrade)
- Save relative paths using forward slashes for consistency, and convert
  to platform-appropriate slashes on use
2016-05-09 02:30:00 -04:00
Dan Stillman
317b1dfa0f Disable connector switching for 5.0 beta
Don't start the connector pipe (Mac/Linux), don't listen for IPC on the
command-line (Windows), and don't try to release Standalone's lock if DB is
busy when Firefox starts.
2016-05-08 22:38:58 -04:00
Dan Stillman
216900094b Merge branch '4.0' 2016-05-07 13:27:56 -04:00
Dan Stillman
e5edd12371 RTF Scan fixes
- Firefox 46 compatibility
- Stretched progress meters

Partial backport of c5716a395f
2016-05-07 13:18:22 -04:00
Dan Stillman
c7c271f2c4 Fix CSL editor in Firefox 46 2016-05-07 13:17:57 -04:00
Dan Stillman
e1706e15e2 Expand/collapse library fixes
- Fixes #994, 5.0: "+" doesn't expand all collections within a library
- If a container (library, collection) is closed directly, the open state of
  all containers below it are now restored when it's reopened. Previously all
  collections would be closed on a manual reopen (though they might have been
  restored on the next Zotero restart).
- If "-" is pressed, all containers are closed, and reopening the library will
  show only top-level collections.
2016-05-07 04:02:42 -04:00
Dan Stillman
458d110269 Add file for custom sync exceptions 2016-05-06 05:18:09 -04:00
Dan Stillman
950b583e3b Remove obsolete code 2016-05-06 05:00:36 -04:00
Dan Stillman
52ca6d4713 Handle browser-offline error from anywhere in sync code
And don't throw from ConcurrentCaller, because it results in an
unhandled rejection
2016-05-06 05:00:17 -04:00
Dan Stillman
2894e4f462 Fix search by collection 2016-05-06 04:31:49 -04:00
Dan Stillman
8ba9fe7b80 Remove redundant failure delay handling in sync engine
The API client now automatically retries 5xx errors with a backoff schedule, so
the engine doesn't need to do it.
2016-05-06 04:31:49 -04:00
Dan Stillman
a78f923a72 Sync engine cleanup
- Use custom exception for user-initiated sync cancellations, which can bubble
  up to the sync runner -- this should help with a sync stop button (#915)
- Separate out deletions-downloading code
- Refactor delay generator handling on library version mismatch
- Clearer variable names
2016-05-06 04:31:49 -04:00
Dan Stillman
ab4138cf26 Don't throw in Zotero.DataObjects::get() for nonexistent objects
Return false for single ids or skip for multiple ids. This is the original
behavior, but at some point it started throwing an UnloadedDataException. IDs
are always loaded at initialization, though, so we know whether the objects
actually exist.
2016-05-05 06:36:24 -04:00
Dan Stillman
bf3ad6a2a4 Fix test breakage from 3ab335a0 and 09c3a95a 2016-05-05 06:36:24 -04:00
Dan Stillman
b7ad582d99 Merge pull request #991 from adomasven/fix/feed-import-test
Fixes feed-import (and possibly other feed) test unhandled rejections
2016-05-05 06:08:33 -04:00
Adomas Venčkauskas
d4a799b5cb Closes #981. Fixes feed-import (and possibly other feed) test unhandled rejections 2016-05-05 11:07:27 +01:00
Dan Stillman
09c3a95a7e Improve downloaded object processing
- Use an increasing notifier batch size, so objects initially appear one by one
  but then start showing up in batches, up to 50. (UI updates are expensive, so
  for larger syncs we don't want to update after each object.)
- Avoid separate save to update attachment file sync state, which was also
  happening outside of notifier batches (causing individual updates regardless
  of the batch size)
- Add a 10ms delay after processing each object, which keeps the UI responsive
  during downloads. #989 could reduce this to 1 during idle, to save a few
  minutes when downloading very large libraries.
2016-05-05 04:47:01 -04:00
Dan Stillman
4ac2da42d1 Zotero.Items.getAsync() -> get() in itemTreeView::notify() 2016-05-05 02:16:09 -04:00
Dan Stillman
3ab335a078 Don't clear search field when updating items list during sync
Fixes #985
2016-05-05 02:16:08 -04:00
Dan Stillman
8c98abe9dc Fix #988, 5.0: Tab skips Abstract and Extra fields 2016-05-04 21:10:08 -04:00
Dan Stillman
cd5e805b9e Sync logic improvements
- Cancel sync when cancelling conflict resolution window
- Don't try to upload unsynced objects if present in sync queue
2016-05-04 01:39:24 -04:00
Dan Stillman
391f525a75 Close #975, Process conflicts for all batches together 2016-05-03 23:18:42 -04:00
Dan Stillman
f8a0f9ad1d Use synchronous object getters during sync
Since objects should always already be loaded
2016-05-03 18:27:08 -04:00
Dan Stillman
f751495ce8 Remove debug output hover over sync icon 2016-05-03 18:27:08 -04:00
Philipp Zumstein
aef8453924 Fix some for each ... in cases (#978) 2016-05-03 17:51:12 -04:00
Dan Stillman
096ebb188b Try to log a better error for some instances of Zotero.debug(e); 2016-05-03 13:47:37 -04:00
Dan Stillman
72c8711cd3 String::contains() -> indexOf() for Firefox 48 (and 38) compatibility
.contains() was removed in Firefox 48, but .includes() wasn't available until
40, so use indexOf() for now. We can start using .contains() once we no longer
need to support 38 ESR.
2016-05-03 12:08:38 -04:00
Dan Stillman
315100e5ef Remove obsolete style code 2016-05-03 12:06:29 -04:00
Dan Stillman
e8aec31715 Fix various cases of sync errors with read-only libraries
Addresses #983
2016-05-03 02:55:26 -04:00
Dan Stillman
f844d9e46d Skip full-text content download if main library version hasn't changed
Since a data sync always happens first, the main library version will
always be higher if there's any full-text content to download.
2016-05-03 01:17:53 -04:00
Dan Stillman
e0e744f9b1 Use multi-item requests for full-text writes
This is necessary to get a library version after the write instead of an
item version. Otherwise after a full-text write, the main library
version is behind, so the next sync checks all object types for that
library instead of getting a 304.

Full text is batched up to 500K characters or 10 items, whichever is
less.

This also switches to using ?format=versions for /fulltext requests,
which isn't currently necessary but reflects what it's actually doing.
2016-05-03 01:17:52 -04:00
Dan Stillman
a0c7cf9bee Remove redundant error handling in Z.Sync.Data.Engine::_uploadObjects()
makeRequest() now retries 5xx errors automatically, so it's not
necessary higher up.
2016-05-02 05:53:07 -04:00
Dan Stillman
4cc6408105 Use object destructuring in Zotero.Sync.Data.Engine::_uploadObjects() 2016-05-02 05:52:42 -04:00
Dan Stillman
862b371b49 Refactor some API response handling code 2016-05-02 01:28:37 -04:00
Dan Stillman
14ce455483 Fix #982, 5.0: File dots not showing up for child attachments 2016-04-30 19:18:59 -04:00
Dan Stillman
6afce0cf22 Fix "treeRow is undefined" error dragging to bottom of collections list
If you drag past the collections list the row is -1.

Fixes #958
2016-04-30 17:15:13 -04:00
Dan Stillman
10181f7f56 Fix sync error on missing full-text
If a version is returned for an item's full-text content but a 404 is returned
for the content itself (because it's missing in Elasticsearch for some reason),
don't throw an error.

Also remove legacy array comprehensions in fulltext and syncFullTextEngine test
files, which apparently weren't being run.
2016-04-30 01:24:33 -04:00
Dan Stillman
750d691712 Throw errors instead of strings in FeedReader rejections 2016-04-29 23:32:49 -04:00
Dan Stillman
13c4bbebfa Save master item when merging 2016-04-29 20:29:44 -04:00
Dan Stillman
877063e73d Merge branch '4.0' 2016-04-29 20:29:31 -04:00
Dan Stillman
b4ac43fd77 Fix startup error on Firefox 48
Addresses #980. There are a couple other uses of the old API, but I'm not sure
how they're triggered, and we might be gone from Firefox before this is
relevant.
2016-04-29 17:28:24 -04:00
Dan Stillman
ef71d3f729 Revert "Try disabling gzip compression of uploads, in case it fixes sync error"
This reverts commit adec007df0.

Doesn't seem to make a difference.
2016-04-29 11:57:11 -04:00
Dan Stillman
adec007df0 Try disabling gzip compression of uploads, in case it fixes sync error
Just to see if it fixes the "Error connecting to server" errors some people are
seeing after upgrading to Firefox 46.
2016-04-29 00:38:19 -04:00
Adomas Venčkauskas
477a1fb5bc Fixes sync error when transfering credentials from legacy to API key 2016-04-28 15:18:09 +01:00
Dan Stillman
186561f320 Merge pull request #950 from adomasven/feature/import-feeds-from-opml
Close adomasven/zotero#11. Add support for feed imports from OPML files
2016-04-28 01:09:47 -04:00
Adomas Venčkauskas
3b758e562b Close adomasven/zotero#11. Add support for feed imports from OPML files 2016-04-27 20:32:20 +01:00
Dan Stillman
bb522868ad Merge pull request #977 from adomasven/fix/feed-remove-after-setting
Closes #961. Fixes feed dialogue remove read articles value not saving
2016-04-27 13:29:36 -04:00
Adomas Venčkauskas
98a3c4aeaa Closes #961. Fixes feed dialogue remove read articles value not saving 2016-04-27 16:38:28 +01:00
Adomas Venčkauskas
1892f7b5b0 Closes #951. Bypasses cache when retrieving feeds 2016-04-27 15:27:09 +01:00
Dan Stillman
295e9f3ecf Don't retry cancelled conflicts immediately
If other items were saved in the same batch, the conflict resolution
window could reappear immediately after cancelling it.
2016-04-27 05:45:35 -04:00
Dan Stillman
c146adce38 Hide sync error panel after custom button is clicked 2016-04-27 03:15:29 -04:00
Dan Stillman
e5bf7eff21 Open account settings in new tab from quota message 2016-04-27 03:15:10 -04:00
Dan Stillman
6d6afdd706 Show correct quota message for personal library 2016-04-27 03:14:51 -04:00
Dan Stillman
0ebf49849a Log counts of storage requests that succeeded and failed 2016-04-27 02:35:24 -04:00
Dan Stillman
1c90a77298 Fix handling of 413 for over-quota errors
And fix handling of custom error dialog button text/callbacks in
general.
2016-04-26 18:59:23 -04:00
Dan Stillman
098655d913 Prompt about username change at sync time, not just in prefs
This is necessary because you can copy a database synced with a
different account into the data directory without affecting the stored
pref.

Also tweak the text to use proper quotes and remove quaint references to
"the server".
2016-04-26 18:12:20 -04:00
Dan Stillman
758af2be9e Align "Set Up Syncing" button in prefs 2016-04-26 16:27:26 -04:00
Dan Stillman
a62e7e46bf Remove some unreachable code
Addresses #974
2016-04-26 02:00:51 -04:00
Dan Stillman
95ba68a757 Don't skip uploads of more than 25 items…
Fixes #965
2016-04-26 01:35:01 -04:00
Dan Stillman
55688a8104 Load item data in feed libraries before refreshing feeds 2016-04-26 00:00:12 -04:00
Dan Stillman
a8e94a8cba Extra debug logging for #965 2016-04-25 23:41:49 -04:00
Dan Stillman
f82fb89e1c Sort parent collections and items first in uploads
Closes #972
2016-04-25 20:16:31 -04:00
Dan Stillman
12e369b2b6 Show the invalid login prompt for an invalid API key
Addresses #953, but the message should still be updated to be more
precise now that passwords aren't used directly.
2016-04-25 03:12:11 -04:00
Dan Stillman
4eee369b66 Use /keys/current for key requests
Possible after https://github.com/zotero/dataserver/commit/beb38579ca1
2016-04-25 02:51:35 -04:00
Dan Stillman
ebb2f1667d Log feed errors to console 2016-04-25 00:50:28 -04:00
Dan Stillman
a05134e903 Fix search by file type
Fixes #966
2016-04-25 00:50:27 -04:00
Dan Stillman
010249e49b Fix support for old type-forcing object syntax for DB query parameters 2016-04-25 00:50:19 -04:00
Dan Stillman
a605fe1cff Don't try to access itemsView until loaded in citation dialogs 2016-04-25 00:33:57 -04:00
Dan Stillman
7bc80d1f32 Don't allow citing from feeds in classic dialog
And allow feeds to be hidden from collectionTreeView with hideSources

Fixes #964
2016-04-25 00:32:32 -04:00
Dan Stillman
174405defb Fix feed refresh interval calculation 2016-04-25 00:05:05 -04:00
Dan Stillman
7d4aa521ac Update citeproc-js to 1.1.101 2016-04-24 20:06:22 -04:00
Dan Stillman
bee32d1a51 Remove merged items from duplicates view without regenerating list 2016-04-24 19:58:44 -04:00
Dan Stillman
7cf0ff2683 Update citeproc-js to 1.1.100 2016-04-24 06:50:45 -04:00
Dan Stillman
a218da859c Fix COinS generation outside of translators
Fixes #963, 5.0: CrossRef lookup is not working
2016-04-24 04:50:29 -04:00
Dan Stillman
6a47d1dc44 Fix #962, 5.0: Add item by identifier in collection
Also adds a test for this, but lookup tests are disabled
until #699 is resolved.
2016-04-24 04:28:56 -04:00
Dan Stillman
425c86ca5e Fix #957, 5.0: Drag collections creates error messages 2016-04-24 04:07:23 -04:00
Dan Stillman
87a2eece3a Fix #959, 5.0: Submit to Zotero Server is not working 2016-04-24 04:04:40 -04:00
Dan Stillman
9f100cd011 Add 'logBodyLength' flag to Zotero.HTTP.request()
Can be used to limit how much of the request body is shown in debug
output, defaulting to 1024 chars.
2016-04-24 04:01:14 -04:00
Dan Stillman
a91957c588 Fix #956, 5.0: Merging of duplicate items is not working 2016-04-24 02:44:21 -04:00
Dan Stillman
c6444c29de Merge branch '4.0' 2016-04-23 04:07:51 -04:00
Dan Stillman
385e36a746 Show invalid-login prompt if no API key
This can be improved further in #953.
2016-04-23 03:33:01 -04:00
Dan Stillman
352eff2f04 Allow typing of usernames with spaces in the middle 2016-04-23 03:19:16 -04:00
Dan Stillman
f633db1f01 Miscellaneous tweaks 2016-04-23 00:59:20 -04:00
Dan Stillman
b66a6b9518 Remove old sync throttle code (replaced by Backoff header) 2016-04-23 00:58:52 -04:00
Dan Stillman
121a2f79a8 Check for closed database and cancel sync
This can prevent a long hang if there's a shutdown during sync.
2016-04-22 22:48:58 -04:00
Dan Stillman
d3fc4eb554 Mark browser-offline exception as fatal during syncing 2016-04-22 22:48:58 -04:00
Dan Stillman
9c7663979e Fix dragging of URLs into items list 2016-04-22 22:48:58 -04:00
Dan Stillman
f1af54236e Add Zotero.Notifier.Queue to keep event groups separate, and use for sync
A queue can be created and passed as an option to data layer methods, which
will then queue events on that queue instead of the main internal queue. A
queue or an array of queues can then be passed to Zotero.Notifier.commit() to
commit those events.

Some auxiliary functions don't yet take a queue, so those events will still get
run on DB transaction commit.

Sync data processing now processes notifier events in batches to reduce
repaints, even though individual objects are processed within their own
transactions (so that failures don't roll back other objects' data).

Also remove some unused notifier code
2016-04-22 22:48:58 -04:00
Dan Stillman
1e5090579b Fix ordering of notifier events
I'm not sure this matters -- since it was broken, itemTreeView notify()
code probably accounts for situations where, say, a 'modify' comes in
before an 'add' -- but it might avoid some edge cases in the future.
2016-04-22 22:48:57 -04:00
Dan Stillman
d974206d65 Add Zotero.warn()
Similar to Zotero.logError()
2016-04-22 22:48:46 -04:00
Dan Stillman
a726699b27 Update citeproc-js to 1.1.99 2016-04-22 00:01:37 -04:00
Dan Stillman
8a6402a744 Remove extra map refresh in itemTreeView::sort() 2016-04-22 00:00:37 -04:00
Dan Stillman
0539aa244a Another Zotero.Tags.getID() fix after e2cbfbd0fe 2016-04-21 16:40:45 -04:00
Dan Stillman
10806c0a2d Add id to Zotero.Tags notifier registration 2016-04-21 16:17:13 -04:00
Dan Stillman
39973abfa4 Update additional Zotero.ID.getID() calls after e2cbfbd0f 2016-04-21 16:15:41 -04:00
Dan Stillman
e7d27ee0f3 Close #931, [Async DB] Update long tag fixer 2016-04-21 11:46:23 -04:00
Dan Stillman
e2cbfbd0fe Deasyncify Zotero.Tags.getID()/getAsync(), and add Zotero.Tags.create() 2016-04-21 11:07:16 -04:00
Dan Stillman
bf416e56c2 Tweak sync error logging 2016-04-20 02:32:12 -04:00
Dan Stillman
3dabd63a0a Close #930, [API Syncing] Sync synced settings 2016-04-19 05:22:16 -04:00
Dan Stillman
97f3854662 Include 400 response in logged sync errors 2016-04-19 05:21:45 -04:00
Dan Stillman
716ba66032 Replace deprecated function call in sync code 2016-04-19 05:20:53 -04:00
Dan Stillman
2ee6886cf1 Update citeproc-js to 1.1.98 2016-04-17 04:16:25 -04:00
Dan Stillman
67f358df4b Fix error trying to load old snapshot annotations 2016-04-16 16:49:48 -04:00
Dan Stillman
d8850b25c2 Fix buttons in proxy redirect notification box 2016-04-16 14:22:11 -04:00
Dan Stillman
5e6b763623 Update citeproc-js to 1.1.96 2016-04-16 02:44:33 -04:00
Dan Stillman
c5716a395f Various RTF Scan fixes
- Firefox 46 compatibility
- Async DB
- Stretched progress meters
2016-04-15 04:45:50 -04:00
Dan Stillman
08b3eed7da Zotero.DataObject._loadDataType() -> .loadDataType()
It's generally not necessary to call this, but it can be useful if
specific data needs to be loaded in an unloaded library (e.g., an item's
creators for RTF Scan)
2016-04-15 04:45:50 -04:00
Dan Stillman
8e932ce73f Remove debugging lines 2016-04-15 04:23:03 -04:00
Dan Stillman
62f4586eb0 Properly disable download-mode menulist for groups in Sync pref pane 2016-04-15 01:33:28 -04:00
Dan Stillman
045554dd8e Fix #926 again with async DB 2016-04-13 01:59:27 -04:00
Dan Stillman
79504df5f8 Remove "/report.html" in report URLs
Firefox saves as Zotero Report.html (localized) without it, which is
fine.
2016-04-12 18:59:46 -04:00
Dan Stillman
ba1f69b4d5 Merge branch '4.0' 2016-04-12 16:09:10 -04:00
Joscha Legewie
f4e4f27279 Bug fix progressWindow.js: nArcs undefined
`nArcs` is undefined in `this.ItemProgress.prototype.setProgress()`. This has been the case for a long time but never came up because the progress indicator isn't used in Zotero, I believe. I think it's a nice UI element though and could be used for non-disruptive progress indicators.
2016-04-12 14:23:59 -05: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
d0a110072b Fix relation migration
The schema update step was generating invalid relations for related
items, resulting in sync errors on upload.
2016-04-11 14:48:26 -04:00
Dan Stillman
49d85dbe0f My Publications wizard changes
- Only show first pane (without Sharing pane) if no files or files
  aren't included
- Update authorship checkbox to reflect file include setting to avoid
  confusion
- Clarify in intro text that license applies to files, not notes --
  notes here are no different than notes in any public library, so it's
  sort of up to the user to clarify those if they're substantial enough
  for it to matter
- Adjust alignment of authorship checkbox if more than one line
2016-04-11 03:41:32 -04:00
Dan Stillman
aee214ed44 Update collection context menu once items have loaded
Otherwise, when right-clicking on a collection that's not currently
selected, some of the menu items appear gray at first, and a second
right-click is necessary after the items have loaded. This way the menu
items turn black once the items have loaded.
2016-04-11 02:52:09 -04:00
Dan Stillman
bb4db297c4 Fix "this.selection is undefined" switching away from loading collection 2016-04-11 02:29:25 -04:00
Dan Stillman
7c3a134107 Show loading message in middle pane if items loaded after startup 2016-04-11 02:29:08 -04:00
Dan Stillman
5e614e2787 Fix a few protocol handler bugs 2016-04-11 02:22:13 -04:00
Dan Stillman
46997bd3e4 Fix "cannot access dead object" error at startup
This could happen if a second page was loaded quickly at startup, before
translators finished loading and detection ran on the first page.
2016-04-11 02:20:10 -04:00
Dan Stillman
a1ef16a0a6 Add .library to Zotero.DataObject
This should replace uses of Zotero.Libraries.get(item.libraryID).
2016-04-10 19:46:10 -04:00
Dan Stillman
0469d6506a Show toolbar icon and collections pane while items are loading
Items in a library are now loaded only when a library is clicked on and
at sync time. There might be some other areas where they need to be
loaded or where this causes problems (e.g., drag and drop, word
processor integration).
2016-04-10 19:01:36 -04:00
Dan Stillman
be335acc65 "Loading items list…" -> "Loading items…" 2016-04-10 18:43:09 -04:00
Dan Stillman
2bdb818988 Fix large toolbar icons on HiDPI Linux
Fixes #943
2016-04-10 16:05:33 -04:00
Dan Stillman
85c0c086d5 Disable Restore to/from Zotero Server and add back Full Sync
Restore to/from will need to be reimplemented for API syncing (#914)

Closes #916
2016-04-10 05:19:51 -04:00
Dan Stillman
c9c5e40e95 Don't log relations-upgrade messages as errors 2016-04-10 04:32:23 -04:00
Dan Stillman
23e01fcefd Fix saving to My Library if Zotero pane hasn't been opened 2016-04-09 18:34:54 -04:00
Dan Stillman
9c53fe893c Skip collectionTreeView::notify() actions if no selection
I think this only happens if the Zotero pane hasn't yet been opened, which also
means an initial refresh() hasn't been done, which means that updates aren't
necessary.
2016-04-09 18:30:45 -04:00
Dan Stillman
1c19fe8d81 Use proper on-detect handler rather than pageshow in browser tests
Otherwise the test could run scrapeThisPage() before translators were ready. It
would be good to make scrapeThisPage wait for detection to complete so that an
early press still uses a translator for saving, but this way tests can also
test for the proper icon (though they don't now).
2016-04-09 18:26:13 -04:00
Dan Stillman
b650263d66 "Sync with Zotero Server" -> "Sync with zotero.org" 2016-04-08 17:03:29 -04:00
Dan Stillman
d2a5181637 Clarify/correct a couple Zotero.Item file method comments 2016-04-07 21:18:44 -04:00
Dan Stillman
14341ca16c Clear item creators when calling setCreators() with an empty array 2016-04-07 21:10:11 -04:00
Dan Stillman
79748b9132 Fix #940, UI not updating when dragging child item between parents 2016-04-07 21:10:11 -04:00
Dan Stillman
d78089d4b9 Properly update parent isOpen flag when removing child item at end of list 2016-04-07 21:10:10 -04:00
Dan Stillman
afaaf20c90 Allow click on menu title to select feed item add target
Instead of requiring a click on the menuitem at the top of the submenu, allow
a click on the menu itself.

This is a hack that, among other things, replicates the flash effect on
menuitems on OS X. Unfortunately, <menu> elements can't have checkboxes, so
only the menuitem in the submenu will be checked. (Otherwise I'd remove the
redundant menuitem in the submenu.)
2016-04-07 06:16:06 -04:00
Dan Stillman
a360494724 Backport Zotero.ID changes (fabc2ba6a) to 4.0 2016-04-07 04:43:54 -04:00
Dan Stillman
4bc4acb923 Hide empty fields in item pane when not editable (e.g., feeds)
A stopgap measure until we have a better design for the item pane
2016-04-06 05:14:29 -04:00
Dan Stillman
df1cdb9754 Abstract field tweaks
- Allow clicking on non-editable abstract field to expand/collapse it
- Change cursor when hovering over abstract to show it can be toggled
- Default abstracts to expanded
2016-04-06 02:04:06 -04:00
Dan Stillman
0f5b277c91 Fix error on missing files when searching full-text content 2016-04-06 01:10:42 -04:00
Dan Stillman
d7309ca64e Use hi-res attachment file bullets 2016-04-06 01:10:01 -04:00
Dan Stillman
d6064cfeba Add Zotero.hiDPISuffix to avoid "@2x" logic each time
Can use Zotero.hiDPISuffix directly in URLs to automatically substitute
"@2x" on HiDPI displays.
2016-04-06 01:09:14 -04:00
Dan Stillman
71d79e1f08 Make sure info pane is selected for feed items 2016-04-05 15:08:11 -04:00
Dan Stillman
1e8b74d9b9 Tweak item pane padding
The item pane scrollbox was actually padded on the outside. This removes
that padding, which slightly increases the viewable content in the pane.
2016-04-05 15:07:49 -04:00
Dan Stillman
f70c2bfa0a Feed item button tweaks
- Fix persistence of last translation target
- Add checkbox to menuitem of selected target
- Remove unnecessary flex attributes

Also:

- Move collectionTreeView row id (e.g., "L1", "C123") and image
  generation to Zotero.Library and Zotero.Collection properaties,
  .collectionTreeViewID and .collectionTreeViewImage -- currently used
  only for the feed add-to button, but could be expanded for use in
  collectionTreeView
2016-04-05 02:24:58 -04:00
Dan Stillman
8714816cec Fix feed item add-to button appearance on OS X 2016-04-05 02:24:36 -04:00
Dan Stillman
aa266c11f4 Add quotes around feed button target 2016-04-04 23:24:19 -04:00
Dan Stillman
cf212e2b70 Initialize feed button only when necessary
And without extra init() call

This fixes the button being initialized before Zotero.hiDPI is set, resulting
in a low-res icon until the target is changed.
2016-04-04 23:18:29 -04:00
Adomas Venčkauskas
5b8d3c178f Add a menu option to add feeds found on a page
Closes #adomasven/zotero/10
2016-04-04 17:36:51 -04:00
Dan Stillman
0f7d1c7061 Fix various connector-mode issues for 5.0
Still more to fix
2016-04-04 06:33:15 -04:00
Dan Stillman
7a449e8deb Clearer parameter name for autocomplete select handler
Refs #926
2016-04-02 04:16:35 -04:00
Dan Stillman
eecd625298 Populate both creator fields on Tab autocomplete select
Closes #926
2016-04-02 04:11:35 -04:00
fbennett
55bfe54af2 Bugfixes for new styled-textbox code 2016-04-02 12:02:53 +09:00
Dan Stillman
cdedbaccac Add some missing empty platform-specific CSS files 2016-04-01 06:05:59 -04:00
Dan Stillman
6ec8e7800f Fix double-size height of feed add buttons on HiDPI 2016-04-01 05:54:05 -04:00
Dan Stillman
c8affb49ee Add empty Mac/Windows itemPane.css to avoid CSS load error 2016-04-01 05:51:49 -04:00
Dan Stillman
943b2c1ddf Don't auto-sync on feed library changes, and add Zotero.Library::syncable 2016-04-01 05:47:43 -04:00
Dan Stillman
7aa6d98f35 Use library icon for New Library button, and add more HiDPI icons
Includes HiDPI icons for feed rows, which weren't showing up before
2016-04-01 05:37:25 -04:00
Dan Stillman
129b8113b9 Don't try to show secondary sort menu in feeds
(Feeds don't have a visible primary sort column.)
2016-04-01 05:33:14 -04:00
Dan Stillman
842dea973b Remove references to removed Zotero.Items.cacheFields() 2016-04-01 05:33:14 -04:00
Dan Stillman
4cccf27bb1 A few debug message tweaks 2016-04-01 05:33:14 -04:00
Adomas Venčkauskas
3dc0ad3745 Add feed menu buttons. Close adomasven/zotero#9. 2016-04-01 12:25:37 +03:00
Dan Stillman
8a57183e0b Remove unused version table rows 2016-04-01 02:38:36 -04:00
Dan Stillman
514547ab3b Reinstate auto-sync, and remove lots of old sync code
The on-change auto-sync now syncs only the modified library, and does so
quite efficiently (and should be able to be made more efficient), so we
might be able to reduce the timeout below 15 seconds.
2016-04-01 02:30:17 -04:00
Dan Stillman
9b231169b2 Return the new item from ZoteroPane.duplicateSelectedItem() 2016-04-01 02:00:30 -04:00
fbennett
9431e0de53 HTML/RTF and RTF/HTML conversion for styled textbox 2016-04-01 09:24:02 +09:00
Adomas Venčkauskas
2b41f7af1d Close #934. Remove feed item read state syncing 2016-03-31 12:37:01 +03:00
Dan Stillman
70c41e8a51 Update citeproc-js to 1.1.91 2016-03-30 23:24:34 -04:00
Dan Stillman
fabc2ba6a2 Always start at MAX() + 1 for Zotero.ID.get(), and deasyncify
Instead of getting batches of unused primary key ids, even if they're lower
than other ids, which for some reason seemed like a good idea in 2008, just do
a `MAX()` on the table at startup and return the next available id on each call
to `Zotero.ID.get()`. This is much simpler, and not reusing ids allows them to
be used as a chronological sort field.

While SQLite's `SELECT last_insert_rowid()` could return auto-increment values,
it's unsafe with async DB access, since a second `INSERT` can come in before
the first `last_insert_rowid()` is called. This is true even in a transaction
unless a function that calls it is never called in parallel (e.g., with
`Zotero.Promise.all()`, which can be faster than sequential `yield`s).

Note that the next id is always initialized as MAX() + 1, so if an object is
added and then deleted, after a restart the same id will be given. (This is
equivalent to (though unrelated to) SQLite's `INTEGER PRIMARY KEY` behavior,
as opposed to its `INTEGER PRIMARY KEY AUTOINCREMENT` behavior.)

Closes #993, Feed items out of order
2016-03-30 01:39:43 -04:00
Dan Stillman
87acdce81b Pass query options to logQuery for DB.(value/column)Query
Allows, e.g., `debug: false` to work for those methods.
2016-03-28 17:53:03 -04:00
Dan Stillman
cebf2a3125 Throw an error from queryAsync() if onRow throws an error
If onRow throws StopIteration, the query will stop gracefully.
2016-03-28 17:47:25 -04:00
Dan Stillman
0c5eacbd0f Follow existing pref for gzip-compressed uploads 2016-03-28 05:19:32 -04:00
Dan Stillman
f906b4226d Fix loading of Edit Bibliography window in Firefox 45
Edit textbox is still broken, at least for some items.
2016-03-28 03:14:09 -04:00
Dan Stillman
35530af1fb Gzip-compress API uploads larger than 1000 characters 2016-03-28 02:38:28 -04:00
Dan Stillman
92f2e38325 Remove Zotero.UnresponsiveScriptIndicator
If import/export can still trigger the warning (which hopefully they
can't), we should just asyncify those further.
2016-03-27 03:34:40 -04:00
Dan Stillman
8b1f10aee0 Properly delete library version for full-text sync on library delete 2016-03-27 03:19:39 -04:00
Dan Stillman
b5adb084f2 Don't reload last folder on items pane crash, in case it's the problem
Otherwise you have to edit the prefs to continue using Zotero if, say, a saved
search causes a crash.
2016-03-26 04:16:23 -04:00
Dan Stillman
b7b246e741 Saved search fixes
- Fix saved search editing
- Refresh items list on search change
- Generate correct conditions array for search JSON
2016-03-26 04:14:56 -04:00
Dan Stillman
62f3177d36 Speed up expanding of items in items tree 2016-03-26 01:33:26 -04:00
Dan Stillman
6e0ef7b625 Don't send notification for 'user' library change 2016-03-25 18:46:13 -04:00
Dan Stillman
15a9fd5494 Make various collection methods synchronous
- Collection::getDescendents()
- Collections.getByLibrary()
- Collections.getByParent()

And various things that depend on those. (View with -w.)
2016-03-25 18:44:24 -04:00
Dan Stillman
234127e65a Update toolbar icons on group editability change
And trigger 'group' 'modify' notifier event for inherited Zotero.Library
properties
2016-03-25 16:49:26 -04:00
Dan Stillman
a61c99843b Fix error switching to COinS in export dialog
Or other export translators without options
2016-03-25 02:33:55 -04:00
Dan Stillman
afee1d16ad Fix saving an item with a child note into a collection 2016-03-25 02:24:22 -04:00
Dan Stillman
c5702abb7b Don't include 'filename' in linked_file attachment JSON 2016-03-24 22:26:50 -04:00
Dan Stillman
fc6c113f25 Show intro text for My Publications in middle pane when no items
ZoteroPane.setItemsPaneMessage() and setItemPaneMessage() can now
optionally take a DOM node instead of a string.

Closes #705
2016-03-24 09:03:59 -04:00
Dan Stillman
db33163a99 Fix Advanced Search window 2016-03-23 20:45:02 -04:00
Dan Stillman
0d343458a3 Normalize Unicode in new filenames 2016-03-23 04:29:38 -04:00
Dan Stillman
002dd66e03 Restore proper error for Show File on missing file 2016-03-23 04:29:38 -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
Dan Stillman
6ac35c75c1 Fix display of sync error icon on error 2016-03-22 22:44:02 -04:00
Dan Stillman
aab4fca3ad Don't override 'options' objects going through syncAPIClient 2016-03-22 22:44:02 -04:00
Dan Stillman
dcb7c88ebd Misc. debug output cleanup 2016-03-22 22:44:02 -04:00
Dan Stillman
63e169c139 Only show empty-response-from-server error for 0 or 200 status codes 2016-03-22 22:44:02 -04:00
Dan Stillman
af8865f3f3 Fix behavior of Zotero.Utilities.Internal.delayGenerator and add tests
Also convert to an ES6 generator
2016-03-22 22:44:02 -04:00
Dan Stillman
c099bd432a Handle multi-collection/search add in collectionTreeView::notify() 2016-03-22 22:44:00 -04:00
Dan Stillman
6c43e75d26 Merge pull request #902 from adomasven/feature/feed-reader-UI
Feed Reader UI

(I squashed a bunch of commits from the PR.)
2016-03-22 07:31:03 -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
0d4025e9fb Add preferences for feed sorting and toggle read hotkey 2016-03-22 06:56:36 -04:00
Adomas Venčkauskas
05c0f1f3fc Closes #905, Move library creation buttons into menu 2016-03-22 06:56:35 -04:00
Adomas Venčkauskas
39aca505e0 Add right-click menu read state choices for feeds 2016-03-22 06:56:35 -04:00
Adomas Venčkauskas
9e88969f3d Refactor ProgressWindow translation messages show for feed items 2016-03-22 06:56:35 -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
Adomas Venčkauskas
5e706c31ad Translate and add items to library on drag 2016-03-22 06:56:33 -04:00
Adomas Venčkauskas
6da0845f4b Add feedItem translation 2016-03-22 06:56:32 -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
Aurimas Vinckevicius
2d46e3d59b Various feeds changes 2016-03-22 06:55:48 -04:00
Aurimas Vinckevicius
e7f568d56c Automatically start feed update when adding new feed 2016-03-22 06:14:16 -04:00
Aurimas Vinckevicius
2c3eb205ab Implement read/unread functionality in feeds 2016-03-22 06:14:16 -04:00
Aurimas Vinckevicius
9686758c7d Add feeds to collections tree view and items tree view 2016-03-22 06:14:15 -04:00
Aurimas Vinckevicius
2e56e2f659 Add feed button and Add Feed dialog 2016-03-22 06:14:15 -04:00
Aurimas Vinckevicius
4c94b05023 New feed data methods 2016-03-22 05:13:55 -04:00
Aurimas Vinckevicius
ca36096bcf Add FeedReader 2016-03-22 03:38:49 -04:00
Dan Stillman
74cf2a3c22 Fix hang on import that includes an HTML attachment
Closes #734, for the moment
2016-03-22 01:31:20 -04:00
Dan Stillman
42968949b6 Fix collection export
Closes #734, maybe?
2016-03-21 18:11:30 -04:00
Dan Stillman
5de18a007d Fix typo 2016-03-21 02:06:14 -04:00
Dan Stillman
20ece48a57 Fix saving of single files to library root via save button 2016-03-21 01:30:16 -04:00
Dan Stillman
ea1486f62f Merge branch '4.0' 2016-03-21 00:46:28 -04:00
Dan Stillman
220cf2c29b Fix export of attachment linkMode/contentType and standalone note text
Closes #889

Needs better tests, but that will have to happen on 5.0 in #923.
2016-03-21 00:18:11 -04:00
Dan Stillman
51b286528c Fix export translation
This reverts Zotero.Translate.ItemGetter.prototype.nextItem() to being
synchronous post-deasyncification. This will need to be made to work
asynchronously in the future if _attachmentToArray(), which is called by
nextItem, is changed to use async file access (which might be required
at some point).

Addresses #734, [Async DB] Import/export fails
2016-03-20 23:39:12 -04:00
Dan Stillman
b1eb2b6de5 Cleaner debug message when getting contents from input stream 2016-03-20 22:17:30 -04:00
Dan Stillman
7010742527 Update bundled file installation from XPI
- Use JSON translator index
- Use original translator filename instead of label
- Fix style installation error
2016-03-20 22:14:56 -04:00
Dan Stillman
c5aa935b16 Fix invalid copyright header in citeproc.js 2016-03-19 04:36:40 -04:00
Dan Stillman
14ed5cf2cb Update locales from Transifex 2016-03-19 02:59:32 -04:00
Dan Stillman
81e2e926a1 Update citeproc-js to 1.1.81 2016-03-19 02:57:10 -04:00
Dan Stillman
da18408070 Fix proxy redirection in Firefox 46 (non-e10s)
notificationCallbacks no longer QIs to webNavigation in Firefox 46, so
this gets the relevant browser object by getting the content window id
from channel.loadInfo and finding the window via nsIWindowMediator.
Unfortunately the window id provided under e10s is invalid (or something
-- it's a very high number that can't be found via nsIWindowMediator),
so something else will need to be done for that.
2016-03-19 02:46:29 -04:00
Dan Stillman
400411515d Tweak My Publications wizard intro text 2016-03-18 05:24:33 -04:00
Dan Stillman
f1aa6c5c80 Fix indexing of PDFs imported from current document 2016-03-18 04:51:32 -04:00
Dan Stillman
c02baa639d Fix word processor integration 2016-03-18 04:31:37 -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
f4896a15ec Merge branch '4.0' 2016-03-17 05:08:06 -04:00
Dan Stillman
11e3603a73 Fix creator search in Quick Format dialog
Broken by 7d404e8d4a
2016-03-17 02:07:45 -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
8df6b4bbd3 Don't modify Date Modified when updating downloaded attachment state 2016-03-16 01:36:59 -04:00
Dan Stillman
8830dfeff9 Update version and submodules 2016-03-15 03:31:08 -04:00
Dan Stillman
322852ff67 Fix display of tag colorpicker in Firefox 44
(And make the colorpicker work in high-contrast mode, according to the
Mozilla bug that broke this [1].)

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1047595
2016-03-15 03:06:48 -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
9ffcd89303 Fix error selecting from creator autocomplete 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