Commit Graph

7444 Commits

Author SHA1 Message Date
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
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
4fcf0c3c15 nsITreeSelection can be 0 incorrectly even if count is 0 2016-03-13 20:30:44 -04:00
Dan Stillman
d86b622c0a More daylight saving time 2016-03-13 20:28:15 -04:00
Dan Stillman
c18675801f Fix breakage in collection selection from 36db3c98 2016-03-13 04:58:53 -04:00
Dan Stillman
36db3c98b3 Fix selecting last selected collection 2016-03-12 05:03:14 -05:00
Dan Stillman
c4ca22ca62 Fix duplicate merging
Fixes #919
2016-03-11 09:27:03 -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
f310c39162 Remove Item::copy()
Instead of creating a duplicate copy of the item with the same primary
data and saving that, it's safer just to use clone() (which doesn't
preserve ids) and apply changes to the main object.
2016-03-11 07:48:24 -05:00
Dan Stillman
ae6d560a66 Fix Item::multiDiff() 2016-03-11 07:48:24 -05:00
Dan Stillman
277ddc39f8 Don't include dateAdded/dateModified in item JSON if not set 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
edcd2a16d2 Replace obsolete collectionTreeView::getLastViewedRow() call 2016-03-11 07:48:24 -05:00
Dan Stillman
b9b769db51 Trim repotime before passing to sqlToDate() 2016-03-11 07:48:24 -05:00
Dan Stillman
39f7d0f333 Don't require objects to be saved before calling toJSON() 2016-03-11 07:48:19 -05:00
Dan Stillman
ffb3823b4c Properly include creators of last item when looking for duplicates 2016-03-11 03:08:40 -05:00
Dan Stillman
2bf611ccf8 Fix shift-drag to copy citations 2016-03-10 23:04:52 -05:00
Dan Stillman
0746f520e4 Fix broken Abstract/Extra editing in Firefox 45 2016-03-10 07:03:55 -05:00
Dan Stillman
e3d03ca380 Revert "Update citeproc-js to 1.1.74"
This reverts commit 52980133b0.
2016-03-07 22:20:57 -05:00
Dan Stillman
0184101ed0 Revert "Fix broken citeproc-js file header"
This reverts commit c046949ac6.
2016-03-07 22:20:54 -05:00
Dan Stillman
c046949ac6 Fix broken citeproc-js file header 2016-03-07 22:10:30 -05:00
Dan Stillman
52980133b0 Update citeproc-js to 1.1.74 2016-03-07 19:40:27 -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
e510395210 Restore "More Columns" submenu in items list column picker
All fields were shown in the main menu due to a bug in 7d404e8d
2016-03-07 09:10:38 -05:00
Dan Stillman
92c8d8cc44 Revert "Update citeproc-js to 1.1.71"
This reverts commit cdac94f8f9.
2016-03-07 08:31:09 -05:00
Dan Stillman
d871e2540b Revert "Make citing work via right-click"
This reverts commit f95832d4a9.

No longer necessary with deasyncification.
2016-03-07 07:33:37 -05:00
Dan Stillman
285dac425c Fix proxy saving/deleting for async DB 2016-03-06 16:48:00 -05:00
Dan Stillman
244a52ad22 Merge branch '4.0' 2016-03-06 01:20:51 -05:00
Dan Stillman
cdac94f8f9 Update citeproc-js to 1.1.71 2016-03-05 22:39:44 -05:00
Simon Kornblith
f95832d4a9 Make citing work via right-click
Drag and drop and WP integration are still TODO
2016-03-05 19:29:24 -05:00
Simon Kornblith
22026e5cfb Fix sandbox permissions issue with .length on nested translators
Addresses #520
2016-03-05 17:41:15 -05:00
Dan Stillman
685954a487 Fix translation breakage in Firefox 45
"new" now required before XMLHttpRequest() in chrome code
2016-03-05 01:51:28 -05:00
Dan Stillman
3abb77d318 Add gray and 48px webpage icons for use in Chrome 2016-03-05 01:28:30 -05:00
Dan Stillman
612504f441 Properly select items created via Attachments.importFromURL() 2016-03-05 01:25:42 -05:00
Dan Stillman
4190412ee4 Allow PDF saving via connectors
If 'pdf' flag is included in object POSTed to saveSnapshot, import the
PDF directly and save as top-level item. Currently the PDF is
redownloaded -- there might be a better way to get the PDF data over
without redownloading. (It uses passed cookies, though, so gated PDFs
should still work.)
2016-03-05 01:20:42 -05:00
Dan Stillman
ee1e8578ce Update submodules 2016-03-01 01:25:48 -05:00
Dan Stillman
878011824d Update locales from Transifex 2016-03-01 01:24:01 -05:00
Dan Stillman
2b0aaf6314 Fix potential crash when dragging collection to another library
Fixes #141, Error dragging collection containing standalone note to library
where note isn't standalone
2016-03-01 01:18:52 -05:00
Dan Stillman
d102e32f7d Fix potential crash when dragging in files on some systems
This might fix https://forums.zotero.org/discussion/57031
2016-02-24 04:03:05 -05:00
Dan Stillman
72302c8e24 Make selected, onfocused tree row highlight color on Linux more distinct
By default it's very close to the alternating row color (even in Places)

https://forums.zotero.org/discussion/56942/
2016-02-20 17:33:53 -05:00
Dan Stillman
c813df84dd Show proper error message on Firefox login manager service failure
If the XPCOM service can't even be retrieved, show the same message as
when there's an error finding logins.
2016-02-15 01:47:11 -05:00
Dan Stillman
45c2265c1e Update DB query return value check in Collection::getChildItems() 2016-02-11 15:07:41 -05:00
Dan Stillman
4d85866ade Fix translation breakage after 7c41618a4 2016-02-11 15:06:17 -05:00
Dan Stillman
7c41618a42 Asyncify Zotero.Translate.ItemGetter.prototype.setCollection()/setAll()
And some of the calling functions, but there's a lot more to do.

Addresses #520 and #734
2016-02-11 04:25:44 -05:00
Dan Stillman
ad0d6765d7 Fix Zotero.Attachments.linkFromDocument() 2016-02-11 02:54:52 -05:00
Dan Stillman
e137a05201 Merge branch '4.0' 2016-02-11 02:33:16 -05:00
Dan Stillman
5f3313d132 Restore proper sizing of toolbar icons on HiDPI Windows/Linux
I guess the idea that switching to PNGs obviated the need for this was wishful
thinking (though it doesn't seem to be necessary for the single buttons anymore
on Linux, and it's no longer necessary on OS X, which has generally saner
styling in Firefox).
2016-02-10 05:21:27 -05:00
Dan Stillman
88f1636d08 Toolbar icon tweaks
- Fix spacing on Windows and Linux in latest Firefox versions
- Tweak icon colors on Windows and OS X
- Adjust Z SVG to take up full height, so Z is a full 16px instead of
  14px with slight anti-aliasing
- Use generated PNGs instead of SVG for Z toolbar icons, to remove the
  need for complicated size rules
- Add separate platform-specific .svg files that are used by a
  zotero-build script, make-z-icons, to generate the Z PNGs; the main
  SVG is still used directly in the menu panel and customization
  palette, with platform media queries to determine the coloring
2016-02-10 03:33:01 -05:00
Dan Stillman
dd334ac413 Merge locales from Transifex 2016-02-08 23:49:36 -05:00
Dan Stillman
24e8c2e8cb Closes #758, Replace tab icon
Switch to red Z alone. Only 16px for now, since that's what we have in the red
Z.
2016-02-08 02:18:48 -05:00
Dan Stillman
64e7738bd3 Fix switching into tab mode 2016-02-08 01:37:48 -05:00
Dan Stillman
092a0b5560 Log some additional Standalone startup errors 2016-02-08 00:57:09 -05:00
Dan Stillman
99007af1f9 Fix Standalone startup 2016-02-07 01:51:07 -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
892708d071 Include path in debug output when nsIFile is passed to getContentsAsync() 2016-02-06 15:20:17 -05:00
Dan Stillman
bbdfebf8f6 Avoid repeated search when clearing quick search bar 2016-02-06 15:20:02 -05:00
Dan Stillman
6f1905bcfc Merge new English strings 2016-02-06 05:09:11 -05:00
Dan Stillman
b05f1d29aa Backport better incompatible-DB-version handling from 2177a000ea
Implements #891 for 4.0
2016-02-06 04:59:15 -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
49068d1d35 Initialize styles in Cite prefpane if not yet loaded
Fixes #904
2016-02-06 03:30:54 -05:00
Dan Stillman
27de351615 Fix middle pane status messages while using quick search 2016-02-06 03:26:31 -05:00
Dan Stillman
47e9f82927 Avoid repeated file existence checks for some files in getImageSrc() 2016-02-06 03:26:01 -05:00
Dan Stillman
1855b5e1f9 A couple better error messages 2016-02-04 04:05:58 -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
d2d7f2368c Remove 'version' workaround now that field is named 'versionNumber' 2016-02-04 03:53:04 -05:00
Dan Stillman
9765d06d1d Use "new" with File constructor, which now requires it 2016-02-03 12:30:24 -05:00
Dan Stillman
7474b31e96 Don't hang if Zotero.debug() is called on a window 2016-02-03 01:19:44 -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
7c7ea6a66d Fix PDF recognition
But leave tests disabled, since they should maybe be mocked?
2016-02-02 06:47:54 -05:00
Dan Stillman
8a85114c13 Update comments to recommend Zotero.HTTP.request() instead of .promise() 2016-02-02 05:31:35 -05:00
Dan Stillman
e8046d8ad2 Use Promise.coroutine() instead of Zotero.spawn() for saveItems()
(Use -w for diff)
2016-02-02 05:30:54 -05:00
Dan Stillman
a6caa14412 Fix Add Item by Identifier (and search translation in general) 2016-02-02 05:29:02 -05:00
Dan Stillman
741ca99c10 Restore open/save dialog when cancelling MIME type intercept
Behavior from #617 apparently got lost in the transition to master
2016-02-02 02:51:52 -05:00
Dan Stillman
d0a99fc0a1 Merge branch '4.0' 2016-02-02 02:44:51 -05:00
Dan Stillman
04d957a95c Fix "Add Identifier by ID" in Fx45
const doesn't create a property on the global object in Fx45
2016-02-02 02:03:46 -05:00
Dan Stillman
ef180d190f Update submodules 2016-02-01 04:43:49 -05:00
Dan Stillman
6b93704006 Update locales from Transifex 2016-02-01 04:41:11 -05:00
Dan Stillman
950e1a5047 Don't call stop handler twice in storage stream listener
The second status code would be 0, so it could result in spurious
S3 retries.

Backported from master
2016-02-01 04:20:22 -05:00
Dan Stillman
ec28c5a35d Retry S3 requests on 500 or 503 in addition to interruption
And adjust S3 success/backoff counters on success
2016-02-01 03:58:45 -05:00
Dan Stillman
eb85fdc42e An invalid translator file shouldn't break all translation
For now, delete it and clear it from the cache so it's updated properly going
forward, but really we want to reinstall the correct file automatically
(#903).
2016-01-29 05:34:26 -05:00
Dan Stillman
ab9330d88e Don't show open/save dialog in addition to style installation prompt
This apparently has been happening for a year, since #617.

Might be better to show open/save on cancel, as implemented for the
RIS/BibTeX prompt in 4ecdd55 (which caused this), but that would have to
wait for the better promise handling in 5.0. Doing "Save Link As..." for
a CSL file also seems a bit more straightforward than for RIS/BibTeX,
which can be served in complicated ways.
2016-01-23 02:26:06 -05:00
Dan Stillman
31d2f6aecb Merge branch '4.0' 2016-01-22 01:10:56 -05:00
Dan Stillman
e206d70595 Fix "undefined" prefix from md5Async() 2016-01-22 01:10:08 -05:00
Dan Stillman
bf58ba6faa Fix remaining old-style array comprehensions 2016-01-20 01:26:41 -05:00
Dan Stillman
3071b8093b Merge branch '4.0' 2016-01-20 01:23:02 -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
a80f130997 Avoid temporary table when getting tags for current view
Instead, pass ids directly to SQLite. This seems to take about the same
amount of time or a little less (by avoiding the time it takes to start
a transaction) and avoids blocking other transactions when switching
views.
2016-01-18 13:50:46 -05:00
Dan Stillman
5ef89b1d0f Speed up DB methods slightly by avoiding unnecessary yields
And tidy some things up
2016-01-17 00:50:17 -05:00
Dan Stillman
0a5e31a4e1 Fix crashes due to "Parameter 4 is undefined" error
Broken in 7d404e8d4a
2016-01-14 19:42:25 -05:00
Dan Stillman
da71d6201a Fix file sync error due to Zotero.Utilities.Internal.md5() brokenness
Broken in 7d404e8d4a
2016-01-14 19:25:15 -05:00
Dan Stillman
c4d67c5b5e Don't unlink sync account in prefs when offline 2016-01-14 13:04:29 -05:00
Dan Stillman
99bba5d198 Allow Zotero.HTTP.request() for non-HTTP URLs when offline
Otherwise Zotero throws an error at startup when offline.
2016-01-14 12:47:52 -05:00
Dan Stillman
f05b98ba20 Fetch top-level items before other items when syncing 2016-01-14 01:50:13 -05:00
Dan Stillman
cd41609761 Improve debug logging for database transactions
Among other things, add an id to each DB transaction for better tracking
2016-01-13 04:24:27 -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
7d404e8d4a Closes #896, Legacy array/generator comprehension is removed in Firefox 46
Possible there are some bugs here (and it also may fix a couple existing bugs).
2016-01-12 01:58:38 -05:00
Dan Stillman
02b29ff14b Fix SQL error switching from ZFS to WebDAV 2016-01-09 17:02:13 -05:00
Dan Stillman
d53b9b993f Fix 'debug: false' option in DB.queryAsync() 2016-01-09 16:59:10 -05:00
Dan Stillman
d0d818840a Switch temp table inserts from SELECT...UNION to VALUES (x),(x)...
Supported as of SQLite 3.7.11

Also use hard-coded values instead of bound params
2016-01-09 16:58:40 -05:00
Dan Stillman
2ac27be95e Upgrade to Bluebird 3.1.1 2016-01-08 21:07:10 -05:00
Dan Stillman
a8c364d830 Remove duplicate ItemFields.isMultiline method 2016-01-08 04:31:28 -05:00
Dan Stillman
9fb42b6788 Fixes #890, Use text area for Book Title 2016-01-08 04:30:47 -05:00
Dan Stillman
08562e50cd Fixes #877, getPrimaryIDForType doesn't work due to typo 2016-01-08 03:44:38 -05:00
Dan Stillman
818ef28f88 Fixes #876, Uncaught error in getTypesForItemType with valid input 2016-01-08 03:43:10 -05:00
Dan Stillman
703cfd1fc5 Closes #521, [Async DB] Update DB integrity check for new schema
Most checks are now just foreign key checks and can be checked with
"PRAGMA foreign_key_checK".

The DB Repair Tool will need to be updated to handle the new schema (but
still accept the old one).
2016-01-08 03:09:55 -05:00
Dan Stillman
4a5de628ce Fix WebDAV test failure 2016-01-07 16:48:57 -05:00
Dan Stillman
739365fd28 Return boolean from Zotero.Library::hasItems()
Fix test breakage in 2e389de47
2016-01-07 16:27:36 -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
Adomas Venčkauskas
77a95b5e6d Closes #886, Fixes auth form showing until key info check finishes 2016-01-07 21:11:06 +00:00
Dan Stillman
1415b9fe45 Fix ZFS purgeDeletedStorageFiles() 2015-12-30 05:14:51 -05:00
Dan Stillman
2177a000ea Closes #891, Better incompatible-DB-version handling
Fixes the incompatible-version dialog and adds info on the version used
to upgrade the database, which may be helpful for troubleshooting.

Also fixes showing of the Zotero toolbar icons even in case of a startup
error.
2015-12-30 05:14:50 -05:00
Dan Stillman
0173e9084d Resize Sync prefpane after init
Otherwise things can get cut off the bottom
2015-12-30 05:14:50 -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
6844deba60 Disable foreign key checks during schema modifications
Otherwise renaming a table causes existing foreign keys to be renamed.
2015-12-29 23:44:16 -05:00
Dan Stillman
8933e3b586 Item.toJSON() should output unset mtime/md5 as null, not undefined 2015-12-22 01:49:45 -05:00
Adomas Venčkauskas
8e0e86e59c Closes #882
Hide password in debug output of key request
2015-12-20 13:46:58 +00: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
faf3b94b64 Clear existing DB user values when reinitializing Users for tests 2015-12-10 20:34:41 -05:00
Dan Stillman
0673face28 Update submodules and maxVersion 2015-12-10 16:33:51 -05: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
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
bad92a1d22 Quick update of recognizePDF from Q to Bluebird
This should be refactored further, but this is a start at swapping in
Bluebird. Unfortunately the process doesn't work correctly because of
issues in the translation framework, which will need to be addressed
separately -- right now a parent item is successfully created but the UI
still shows an error and the PDF isn't placed under the parent.
2015-12-07 17:23:10 -05:00
Dan Stillman
1d4dd9faac Fix double filename in progress popup when saving files
This appears to have started in a recent Fx version.
2015-11-28 19:12:36 -05:00
Adomas Venčkauskas
4b16210ac6 Remove tags on shift-drag
Closes #852

Currently shows a *+* icon for adding a tag and
a *link* icon for removing it.

There does not appear to be any way to have a custom mouse cursor,
which makes this interaction extremely unintuitive. It might be
possible to hack this in, but it does not really warrant the effort.
E.g. `window.setCursor` does not respond whilst dragging.
2015-11-20 16:51:48 +00: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
6d64526648 Ignore unknown fields in Zotero.Item::fromJSON() 2015-11-12 17:24:03 -05:00
Dan Stillman
3025123cb8 Merge pull request #867 from adomasven/feature/dropbox-alert
Detect when data directory is in Dropbox
2015-11-12 15:45:00 -05:00
Adomas Venčkauskas
b75cc8f9d0 Closes #437, Detect when data directory is in Dropbox
Display a warning when choosing data directory
Or on opening Zotero Pane for existing users with data dir in dropbox

Also:
Fix a bug where it won't use custom path if "Choose..." button is
pressed instead of radio button.
Change filepicker to show current data directory on display
2015-11-12 20:24:39 +00:00
Dan Stillman
cc9d1cc41d Merge pull request #871 from adomasven/fix/my-publications-linux
Fixes the finish button on my publication wizard on linux
2015-11-12 05:41:57 -05:00
Dan Stillman
62aeb1da32 Full-text syncing support via API [DB reupgrade] 2015-11-12 02:54:51 -05:00
Dan Stillman
cb81f3febd Set 'Content-Type: application/json' on object uploads 2015-11-12 02:51:48 -05:00
Dan Stillman
69e5c5ae05 Don't accept libraryVersion in syncAPIClient::getVersions()
Since /settings is always called first with If-Modified-Since-Version,
it's never necessary to include that in the versions request.
2015-11-12 02:50:24 -05:00
Dan Stillman
ae277391b6 Miscellaneous tweaks 2015-11-12 02:48:41 -05:00
Dan Stillman
614232754a Allow "Zotero.Fulltext" as "Zotero.FullText"
"Zotero.Fulltext" should be considered deprecated, though there's no
warning for it yet.
2015-11-12 02:42:20 -05:00
Dan Stillman
6d289797bf Retry API requests automatically after 5xx errors 2015-11-12 02:41:40 -05:00
Dan Stillman
790d6d3dd6 Fix "Save to Zotero" in download overlay 2015-11-10 15:52:09 -05:00
Adomas Venčkauskas
234c94be67 Fixes my publication wizard on linux, Closes #738
Also:
- Removes horizontal scrollbar in linux my publications wizard, Closes
  #740
2015-11-10 18:25:22 +00:00
Dan Stillman
32b7756898 Update locales from Transifex 2015-11-08 16:25:07 -05:00
Dan Stillman
ccd765ff74 Update versions and submodules 2015-11-08 16:21:20 -05:00
Philipp Zumstein
add3acbcd1 Relax condition in parseContextObject
Especially, allow rft.subject and rft.description in core OpenURL without Dublin Core declared as format. This fixes #851
2015-11-08 16:16:36 -05:00
Dan Stillman
8197fa4ce8 Fix LIKE binding error in Nightly loading duplicates 2015-11-08 16:16:05 -05:00
Philipp Zumstein
89a0f8910a Relax condition in parseContextObject
Especially, allow rft.subject and rft.description in core OpenURL without Dublin Core declared as format. This fixes #851
2015-11-08 11:21:45 +01:00
fbennett
4a475ff3aa Prevent duplicate items when copying citations to clipboard 2015-11-08 11:44:13 +09:00
Dan Stillman
1e6bb44e80 Show My Publications in Advanced Search and disable Save Search button
Closes #703 (unless I'm forgetting something)
2015-11-04 14:06:32 -05:00
Dan Stillman
3100f10396 Make Zotero.Libraries.getAll() return sorted Zotero.Library instances
My Library, My Publications, and then groups sorted by name
2015-11-04 14:04:21 -05:00
Dan Stillman
e8a887304e Move Zotero.CollectionTreeRow to separate file 2015-11-03 17:08:55 -05:00
Dan Stillman
41f5137e24 Update some attachmentMIMEType -> attachmentContentType 2015-11-03 17:08:55 -05:00
Dan Stillman
b8d00e2051 Fix error showing pages/modified in attachment box 2015-11-03 17:08:55 -05:00
Dan Stillman
b52cfae225 Show "Delete Permanently..." button in right-hand pane in trash 2015-11-03 17:08:54 -05:00
Dan Stillman
f2bef5998c Disable actions in My Publications and clean up trash item menu
Disallow everything other than adding a child note in My Publications,
since the wizard only shows on drag (currently, at least). Need to
disable translation separately.

Also show "Delete Item[s]..." in the trash context menu, and hide rather
than disable various menu options.

Addresses #703 -- still need to disable saved search saving
2015-11-03 17:08:10 -05:00
Dan Stillman
687ee6ba07 Fix sync error from items dragged between libraries before first sync
And fix bug in Zotero.URI.getURILibrary()
2015-11-02 20:36:47 -05:00
Dan Stillman
318528df4d Remove obsolete sync code 2015-11-02 03:23:15 -05:00
Dan Stillman
d07756d68d Store API key in login manager, and add temp field in prefs 2015-11-02 03:22:37 -05:00
Dan Stillman
e03cf637b6 Fix 412 handling 2015-11-02 03:20:29 -05:00
Dan Stillman
7f43ca9503 Merge branch '4.0' 2015-11-01 21:22:13 -05:00
Dan Stillman
e0b5111442 Update some outdated Zotero.Libraries.getType()/getName() calls 2015-11-01 18:29:02 -05:00
Dan Stillman
3ad6e78d98 "Use"->"Keep" existing rights field for clarity in My Publications 2015-11-01 18:21:48 -05:00
Dan Stillman
53478f4752 Allow 412 when uploading deletions 2015-11-01 13:28:03 -05:00
Dan Stillman
110f637d1e Don't default to Creative Commons license for My Publications
Just share on zotero.org by default, and let user choose CC if desired.
2015-11-01 03:59:01 -05:00
Dan Stillman
7e3ba7bc61 Misc. debug tweaks 2015-11-01 03:59:01 -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
6b8e5bafc6 Don't show deleted items outside of trash 2015-11-01 03:36:23 -05:00
Dan Stillman
3692536770 Fixes #862, Trash Looks Empty
Broken by 3ff1ff88a9
2015-10-31 17:13:51 -04:00
Dan Stillman
532d485793 Delete older versions of processed objects in cache
And recover from "Sync cache had later version than remote" error, which
shouldn't actually happen...
2015-10-31 15:19:50 -04:00
Dan Stillman
6ccfed2488 Don't show item context menu until it's ready
With async generation, an incorrect menu was showing first before the
correct version appeared.
2015-10-31 03:46:47 -04:00
Dan Stillman
b06d93be50 Fix error syncing items in unloaded library 2015-10-31 01:39:36 -04:00
Dan Stillman
37b6a14f17 Fix attachment pane loading 2015-10-31 01:36:49 -04:00
Dan Stillman
c2ad4ceb0a Output 'deleted' as 1 instead of true in item JSON
Good idea? Not sure, but that's what the API does.
2015-10-30 19:07:12 -04:00
Dan Stillman
6993ca252c Fix download-on-sync mode for ZFS 2015-10-30 17:08:38 -04:00
Dan Stillman
73f4d28ab2 ZFS file sync overhaul for API syncing
This mostly gets ZFS file syncing and file conflict resolution working
with the API sync process. WebDAV will need to be updated separately.

Known issues:

- File sync progress is temporarily gone
- File uploads can result in an unnecessary 412 loop on the next data
  sync
- This causes Firefox to crash on one of my computers during tests,
  which would be easier to debug if it produced a crash log.

Also:

- Adds httpd.js for use in tests when FakeXMLHttpRequest can't be used
  (e.g., saveURI()).
- Adds some additional test data files for attachment tests
2015-10-29 04:38:27 -04:00
Dan Stillman
6d46b06617 Better debugging/errors in Zotero.DataObjects 2015-10-29 03:57:09 -04:00
Dan Stillman
1ce4cda384 Don't change 0 to null in Zotero.DataObjectUtilities.checkKey()
Not totally sure this function should allow falsy values to begin with,
but it does.
2015-10-29 03:57:08 -04:00
Dan Stillman
0803bb84e3 Don't set collections: "" in PATCH JSON when changing item to child 2015-10-29 03:57:08 -04:00
Dan Stillman
62e586073d concurrent-caller.js -> concurrentCaller.js 2015-10-29 02:49:31 -04:00
Dan Stillman
2b00a53e02 Accept headers and string path in Zotero.Utilities.Internal.saveURI() 2015-10-29 02:42:44 -04:00
Dan Stillman
3ff6626c12 Zotero.Attachments tweaks
Accept a file path from some functions and skip charset detection if
item already has a charset set
2015-10-29 02:41:01 -04:00
Dan Stillman
55c1f0d508 Zotero.HTTP.request() tweaks 2015-10-29 02:37:56 -04:00
Dan Stillman
7cfa857887 Make Zotero.Item::attachmentFilename work without file
And have getFilePath() return false instead of failing on unsaved items
2015-10-29 02:33:25 -04:00
Dan Stillman
90286d2a50 Make Zotero.Item::attachmentHash getter asynchronous 2015-10-29 02:30:27 -04:00
Dan Stillman
3fca0644ee Disable debug output from Notifier 2015-10-29 02:25:02 -04:00
Dan Stillman
d70e9cf41b Add Zotero.File::zipDirectory() 2015-10-29 02:22:06 -04:00
Dan Stillman
7d8a1b2573 Make Zotero.DataObject#fromJSON() synchronous
When called on an identified object (i.e., one with an id or
library/key), loadAllData() must be called first. When called on a new
object (which is more common anyway), fromJSON() can be called
immediately.
2015-10-29 01:19:14 -04:00
Dan Stillman
5d8670db1d Fix additional causes of high CPU use from items list 2015-10-13 00:33:58 -04:00
Dan Stillman
493d37d1c7 Fix 100% CPU usage with pane open (since 9e356a7e6)
And make Zotero.Item.prototype.fileExists() check the file regardless of
whether there's a cached state.
2015-10-12 23:08:02 -04:00
Dan Stillman
8997ba06c1 Update citeproc-js to 1.1.60
Closes #854
2015-10-05 20:06:51 -04:00
Dan Stillman
488c4eb72b Fix menubar/titlebar-less Standalone window issue in El Capitan
If Standalone is closed in full-screen mode in 10.11, 'sizemode' on the main
window is persisted as 'fullscreen'. On reopen, the window doesn't go into
full-screen mode, but it still lacks menubar or titlebar. This patch forces the
window into 'normal' mode if it was left in 'fullscreen'.

(Firefox appears to ignore 'fullscreen' without actually changing the value,
but I didn't find the code that handles that.)
2015-10-02 16:46:34 -04:00
Dan Stillman
7f8cf293d0 Fix child item drag on Windows in Firefox 41 2015-10-02 03:50:01 -04:00
Dan Stillman
3703bf0423 Move lastStorageSync to shared accessor code
And fix variable spelling
2015-09-29 13:06:58 -04:00
Dan Stillman
ba3d90eaf9 Make sure Zotero.Libraries.userLibrary doesn't get out of sync
b976c84a29 (commitcomment-13492424)
2015-09-29 13:06:58 -04:00
Dan Stillman
1b333be23f Add Zotero.Library.prototype.lastStorageSync 2015-09-29 04:42:13 -04:00
Dan Stillman
b976c84a29 Add Zotero.Libraries.userLibrary 2015-09-29 04:42:13 -04:00
Dan Stillman
691819bd32 Add Zotero.Library.prototype.libraryTypeID
Get the library-type-specific id for the library (e.g., userID for user
library, groupID for group library)
2015-09-29 04:42:13 -04:00
Dan Stillman
88627adcdb Update linked attachment base directory code
- Replace nsIFile and persistent descriptors with OS.File and string paths
- Add tests for base dir settings
2015-09-29 04:42:12 -04:00
Dan Stillman
9e356a7e63 Migrate relative/persistent descriptors to string paths [DB reupgrade]
Absolute paths have been stored as strings on all platforms for a while,
but old Mac persistent descriptors (Base64-encoded opaque alias records)
could still exist in the DB. Additionally, relative paths for stored
files were stored as Mozilla-specific opaque strings rather than UTF-8
strings.

This adds a schema step to convert those to strings paths in the DB.
Since Mac persistent descriptors aren't converted if the file isn't
found, we still handle and (convert) old-style persistent descriptors if
necessary when reading paths from the DB.

This also moves path string handling -- converting a path to a prefixed
string for stored or base-dir-relative files -- to the
Zotero.Item#attachmentPath setter instead of save() so that reading it
back immediately returns the correct value. One consequence is that the
attachment link mode must now be set before setting the path.

Zotero.Item#getFile() is now deprecated in favor of getFilePath() and
getFilePathAsync() (which checks file existence).

Zotero.File.directoryContains() now takes string paths instead of files.
2015-09-29 04:42:08 -04:00
Dan Stillman
80008fd13d Pass tabIndex param to pref window to select tab within specified pane 2015-09-29 04:11:21 -04:00
Simon Kornblith
310ff1cf53 Merge branch 'connector' into 4.0 2015-09-28 20:28:38 -04:00
Dan Stillman
ce72b450bf Fix missing colored tag swatches on Windows/Linux
In Firefox 41, file: URIs can no longer be loaded (at least via Image)
from the hidden window on Windows/Linux, but chrome: URIs still work.
Not sure why I was using a file: URI to begin with.
2015-09-24 23:59:48 -04:00
Simon Kornblith
974a07bf73 Add addEditCitation command to Zotero 2015-09-24 23:44:19 -04:00
Dan Stillman
ec66d15a5f Update version and submodules 2015-09-24 22:13:35 -04:00
Dan Stillman
d79570341c Update locales from Transifex 2015-09-24 22:09:38 -04:00
Dan Stillman
e4c5d86bc6 Update citeproc-js to 1.1.58
Closes #850
2015-09-24 22:02:35 -04:00
Dan Stillman
f60ded11e8 Fix additional login manager issues (after b55e6536) 2015-09-24 18:15:12 -04:00
Dan Stillman
2c25257e2b Don't scroll to containing collection if one is already visible
If multiple collections are highlighted and none are in view, scroll to
the first one in the list.

The logic could be improved here a little more to scroll to the closest
collection instead of the first one, and also to scroll to a few rows
above or below the target.

This also fixes what was probably an incorrect highlight if there were
multiple collections and some had to be expanded first.
2015-09-24 07:11:12 -04:00
Dan Stillman
a5eb5a5af5 Scroll collection into view on collection-containing-an-item 2015-09-24 06:46:02 -04:00
Dan Stillman
b55e6536ec Fix login manager (and syncing) breakage in Firefox 41 2015-09-23 05:02:40 -04:00
Dan Stillman
d9b5e17c9c Asyncify Zotero.Attachments.getNumFiles() and add hasMultipleFiles()
Latter is probably all that's needed
2015-09-22 04:11:31 -04:00
Dan Stillman
fc1137b769 Asyncify Zotero.Attachments.getTotalFileSize() 2015-09-22 04:11:30 -04:00
Dan Stillman
2df630e83c Fix hang in sync tests from library version changes 2015-09-22 04:11:30 -04:00
Dan Stillman
0965079842 Use correct property in Zotero.Libraries.getVersion/setVersion() 2015-09-22 03:52:46 -04:00
Dan Stillman
add9481c63 Adjust error and feed tests for access error on read-only libraries 2015-09-22 03:52:31 -04:00
Aurimas Vinckevicius
0a88032715 ZU.capitalize should not throw for empty string 2015-09-21 17:08:23 -05:00
Aurimas Vinckevicius
d122323dbf Fix fullText tests on Windows 2015-09-21 17:08:22 -05: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
Aurimas Vinckevicius
74863843f4 Tweak varDump to not use object property getter unnecessarily 2015-09-21 02:28:09 -05:00
Aurimas Vinckevicius
0320b08b05 Do not return lastInsertRowID for INSERT, REPLACE, and CREATE
Unreliable for async queries
2015-09-21 02:28:09 -05:00
Aurimas Vinckevicius
6cef123662 Don't allow trashing items in read-only or "no trash" libraries 2015-09-21 02:27:53 -05:00
Aurimas Vinckevicius
e5a5a8d303 Don't allow erasing objects from read-only libraries 2015-09-21 02:27:53 -05:00
Aurimas Vinckevicius
1621f5772b Fix deleting collection with items 2015-09-18 03:34:04 -05:00
Aurimas Vinckevicius
07ca00edd5 Use _canHaveParent property to determine if object can have parent 2015-09-18 03:34:04 -05:00
Dan Stillman
a547db134e Update locales and submodules 2015-09-13 23:38:42 -04:00
Dan Stillman
2a9119801c Merge pull request #834 from Juris-M/z4.0-bib-export-fix
Fix bug in Create Bibliography from Item w/Notes
2015-09-13 23:26:41 -04:00
Dan Stillman
d3c4689973 Add a couple comments 2015-08-27 18:00:16 +01:00
fbennett
47ff4e79dc Fix bug in Create Bibliography from Item w/Notes 2015-08-27 08:18:22 +09:00
Dan Stillman
325635e8ec Update locales from Transifex 2015-08-26 01:24:05 +02:00
Dan Stillman
d8129bb473 Update message for corrupted login manager DB with current filenames 2015-08-26 01:16:04 +02:00
simpzan
6051ef09d0 make items tree column focused when select a item by running
zotero://select/items/xxx.
2015-08-18 19:31:30 +08:00
Dan Stillman
a7c2506755 Update locales from Transifex 2015-08-17 18:42:38 -04:00
Dan Stillman
4d354027b5 Fix Cmd/Ctrl-Down in Quick Format
Broken in f3daf6b4bc
2015-08-17 01:35:26 -04:00
Dan Stillman
0cef5f8b18 Tweak QuickFormat dropmarker positioning 2015-08-13 20:05:36 -04:00
Simon Kornblith
f3daf6b4bc Always capture up/down when QuickFormat reference panel is open
It was annoying if you pressed the up key too many times and the cursor
moved.
2015-08-13 19:48:23 -04:00
Simon Kornblith
21e51f771c Fix QuickFormat bubble updating when editing citation properties 2015-08-13 19:45:03 -04:00
Simon Kornblith
b62b479ae4 Silence some warnings in QuickFormat 2015-08-13 19:39:13 -04:00
Simon Kornblith
570e628679 Another non-Retina QuickFormat tweak 2015-08-13 19:25:08 -04:00
Simon Kornblith
547a5eea10 Tweak QuickFormat for non-retina 2015-08-13 19:21:07 -04:00
Simon Kornblith
8e40bde671 Make QuickFormat text bigger and border smaller on OS X 2015-08-13 19:14:53 -04:00
Dan Stillman
bb785df49f Merge pull request #828 from gracile-fr/fixedCol
Forbid "Attachments" column to be resized
2015-08-13 18:35:31 -04:00
gracile-fr
2920d9ff5e Forbid "Attachments" column to be resized 2015-08-12 21:15:18 +02:00
Dan Stillman
b53892fe54 Fix various collection-dragging UI bugs
Fixes #823, hopefully
2015-08-08 17:26:42 -04:00
Dan Stillman
9fa53439ef Update hasChildCollections() when child moved to another collection 2015-08-08 16:45:51 -04:00
Simon Kornblith
50f695f298 Disable spell checking in quickformat
It basically underlines all the names, which is not useful
2015-08-08 16:38:39 -04:00
Simon Kornblith
668ca94f9e Make quickformat non-resizable 2015-08-08 16:38:17 -04:00
Simon Kornblith
6bce6b1d30 Alter quick format dialog appearance on OS X
Firefox no longer supports transparent windows because it made them do
extra preprocessing on a file to restore the drop shadow when the
Developer Edition theme was active:
https://bugzilla.mozilla.org/show_bug.cgi?id=1162649
2015-08-07 19:45:49 -04:00
Dan Stillman
5a61ac4871 Don't try to select unselectable row on library tree row removal
(If deleting a group, don't select the header or separator before it.)
2015-08-07 16:36:53 -04:00
Dan Stillman
cbf4876173 Fix attachment renaming
Fixes #822
2015-08-07 15:36:46 -04:00
Dan Stillman
06867d886e Fix note loading 2015-08-06 22:49:21 -04:00
Dan Stillman
1ecc53b099 Merge pull request #820 from aurimasv/csl-json
Fix issues with computerProgram citations
2015-08-06 18:29:06 -04:00
Dan Stillman
536cd867d7 Fix toJSON for attachment items 2015-08-06 15:55:37 -04:00
Dan Stillman
f963413170 Handle conflict resolution for remote item deletions 2015-08-06 06:03:45 -04:00
Dan Stillman
51253fb933 Delete from sync cache when deleting object 2015-08-06 05:25:45 -04:00
Dan Stillman
b5b99672db Remove some obsolete sync code 2015-08-06 04:19:53 -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
Aurimas Vinckevicius
711b823552 Add tests for itemFromCSLJSON and make sure data round-trips 2015-08-04 15:22:35 -05:00
Aurimas Vinckevicius
c4cd7ce3e0 Fix import of computerProgram exported as CSL JSON 2015-08-04 15:19:33 -05:00
Aurimas Vinckevicius
bb15336fdb Fix season export in CSL JSON 2015-08-04 14:19:39 -05:00
Aurimas Vinckevicius
0fbae77456 Don't use for-in to iterate over arrays in itemFromCSLJSON 2015-08-03 16:15:24 -05:00
Dan Stillman
7075300a17 Fix hasChanged() bug related to 'synced' 2015-08-02 05:26:02 -04:00
Dan Stillman
f02a9aa95e Check remote delete log during full sync
If an object is marked as synced locally and doesn't exist remotely but
is in the remote delete log, delete it locally
2015-08-02 03:44:14 -04:00
Dan Stillman
67f4a467ea Consolidate object erase methods into DataObjects::erase() 2015-08-02 03:40:14 -04:00
Dan Stillman
4600318ad7 Support 'successful' property in upload response
Save uploaded data to cache, and update local object if necessary (which
it mostly shouldn't be except for invalid characters and HTML filtering
in notes)

Also add some upload and JSON tests
2015-08-01 05:28:42 -04:00
Dan Stillman
dce9ff304f Update cslpreview.dtd and csledit.dtd from Transifex
Fixed config file that was preventing these from being pulled

Addresses #796
2015-07-31 14:11:44 -04:00
Dan Stillman
70d9b9870c Fix a few small data layer bugs, and tidy up a little
I don't think these were triggered by any client code, but I found them while
porting code to the server.
2015-07-31 04:09:24 -04:00
Dan Stillman
535d3340e3 Update locales from Transifex 2015-07-30 16:02:07 -04:00
Dan Stillman
fc2574f7bf Update citeproc-js to 1.1.46 2015-07-30 15:52:26 -04:00
Aurimas Vinckevicius
fdd91affd9 Debugging code for checking manually modified citations
Re https://forums.zotero.org/discussion/50701/cant-insert-citationzotero-asks-to-modify-all-my-citations/
2015-07-28 22:59:32 -05:00
Aurimas Vinckevicius
1cbd7f71cf Parse author names in itemToCSLJSON 2015-07-27 18:37:45 -05:00
Dan Stillman
4e92b313c6 Update citeproc-js to 1.1.45 2015-07-26 19:11:04 -04:00
Dan Stillman
fb9109e837 Update versions and submodules 2015-07-26 18:33:04 -04:00
Simon Kornblith
125ad50698 Merge pull request #811 from zotero/sjk/810
Fix #810, memory leak
2015-07-26 17:59:17 -04:00
Simon Kornblith
954e60a83a Don't leak memory when showing the select dialog
Again, I'm pretty sure this shouldn't be necessary.
2015-07-26 14:07:04 -04:00
Simon Kornblith
51bcd2409d Fix #810, memory leak
I'm still not really sure what the problem was. But this seems to
eliminate the leak for me.
2015-07-25 14:38:27 -04:00
Dan Stillman
9000c9dcc7 Fix error saving PDF if Zotero pane hasn't been opened in window 2015-07-23 01:26:14 -04:00
Andrew Dunning
e6d1f31e46 Supply missing Œ/œ in diacriticsRemovalMap. 2015-07-21 18:08:16 -04:00
Dan Stillman
5fc2dd4d44 Fix a probably rare case of a file's not being uploaded
If a file existed locally but somehow ended up marked as to-download without
existing on the server, it was never uploaded. I'm not sure when this can
happen, but I saw it while messing around. Maybe switching between ZFS and
WebDAV?

This will still only check and upload if there's another computer syncing files
to the same library, but we'll check all files in 5.0.
2015-07-21 03:10:59 -04:00
Dan Stillman
33334d9c01 Fix excessive file sync mtime updates/checks, but for real this time 2015-07-21 02:59:12 -04:00
Dan Stillman
1fadf1150e Remove <=Fx24 file sync code 2015-07-21 02:53:17 -04:00
Dan Stillman
a452af6c3a Sort descendant collections alphabetically in advanced search window
https://forums.zotero.org/discussion/50679/
2015-07-21 00:45:30 -04:00
Dan Stillman
984789d304 API syncing megacommit
There's a lot more to do, and this isn't ready for actual usage, but the
basic functionality is mostly in place and has decent test coverage. It
can successfully upgrade a library last used with classic syncing and
pull down changes via the API. Uploading mostly works but is currently
disabled for safety until it has better test coverage.

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

Some of the bigger remaining to-dos:

- Tests for uploading
- Re-do the preferences to get an API key
- File sync integration
- Full-text syncing integration
- Manual conflict resolution (though this already includes much smarter
  conflict handling that automatically resolves many conflicts)
2015-07-20 18:16:57 -04:00
Dan Stillman
b4a8083f2f Throw specific errors for missing objects or unknown fields
And add a bit more debugging info to other messages
2015-07-20 17:31:27 -04:00
Dan Stillman
258b70b455 Throw an error saving an empty item with no item type 2015-07-20 04:15:27 -04:00
Dan Stillman
cd4d084dd9 Support for automatically merging collections and searches 2015-07-20 02:12:14 -04:00
Dan Stillman
9d0d79c9c2 Take a promise-returning function in Utilities.Internal.forEachChunkAsync()
Instead of a promise-yielding generator
2015-07-20 02:12:14 -04:00
Dan Stillman
4f55f28e7d Honor .synced on data objects in all cases
Previously, if .synced was already true, setting it to true and saving
would result in .synced == false unless skipSyncedUpdate was passed. Now
the value assigned to .synced is always used on the next save. If the
value hasn't changed and no other values have changed, a save will be a
no-op.
2015-07-20 02:12:14 -04:00
Dan Stillman
93b5694420 Make editable/filesEditable required in Zotero.Libraries.add() 2015-07-20 02:12:14 -04:00
Dan Stillman
6c536fc784 Don't create Quick Start Guide item for new libraries
The default items cause problems with conflict resolution for existing
users (and not syncing them or ignoring conflicts for them is kind of
weird), and they require remote changes for new databases. I do like
there not being a completely empty library, but I think it's probably
better just to display a virtual welcome message with a link to the
Quick Start Guide somewhere else, such as in the right-hand pane. (A new
installation also opens the start page on zotero.org.)
2015-07-20 02:12:13 -04:00
Dan Stillman
d868f007e9 Don't select new groups in collections pane 2015-07-20 02:12:01 -04:00
Dan Stillman
da5e1272f7 Fix updating local files with long filenames via sync on Linux
6a687e8c40 was actually only OS X
2015-07-19 22:42:44 -04:00
Dan Stillman
5c523d8694 Merge branch '4.0' 2015-07-18 07:09:53 -04:00
Dan Stillman
7c9d25dad8 Fix excessive file sync mtime updates/checks?
Same as 1c2b2575f, but this time in code we actually still run
2015-07-18 04:58:10 -04:00
Dan Stillman
6a687e8c40 Fix "filename too long" sync error for missing files on OS X/Linux 2015-07-17 18:23:59 -04:00
Dan Stillman
a97e27a9f2 Fix CSS in snapshots of Reader View
Allow saving of CSS links over chrome://. We can scope this to
chrome://global/skin/aboutReader.css if anyone thinks of a reason why
this was disabled to begin with, but I'm not sure in what other
situations CSS it would apply.
2015-07-17 16:22:15 -04:00
rmzelle
d3ab296cf5 Check single items in selection window 2015-07-15 21:21:51 -04:00
Simon Kornblith
2c5bfd5d5a Disable disabling by reverse lookup on non-Mac/Windows/Linux
If this is the case, it's probably a BSD derivative, but I can't
guarantee the code won't segfault.
2015-07-13 19:28:37 -04:00
Simon Kornblith
f856df5222 Fix #460 using OS APIs 2015-07-13 19:24:26 -04:00
Simon Kornblith
7d87d70e92 Expose more integration pipe handling code
This should eventually reduce the amount of duplicated code needed to
handle Word 2016 for Mac
2015-07-12 13:46:55 -04:00
Aurimas Vinckevicius
d3bc1703c3 Update citeproc-js to 1.1.39
Re https://github.com/zotero/zotero/pull/794#issuecomment-120564983
2015-07-11 13:35:03 -05:00
Dan Stillman
bcef4819e8 Merge pull request #794 from aurimasv/citeproc-js-update
Update citeproc-js to 1.1.25
2015-07-10 19:53:09 -04:00
Dan Stillman
c72b112afd Use export.lastLocale before UI locale if none specified
This allows existing documents created before 4.0.27 with a
bibliographyLocale set to continue to use that value by default.

More details:

https://github.com/zotero/zotero/pull/795#issuecomment-120227051
2015-07-10 17:48:44 -04:00
Dan Stillman
b40c1d7e2e Remove redundant "Suppress Author" string
Refs #796
2015-07-10 15:56:25 -04:00
Aurimas Vinckevicius
9fcb87ca93 Remember style and locale when explicitly selected by the user 2015-07-09 23:38:25 -05:00
Aurimas Vinckevicius
b6c7ba6ea2 Fix saving style locale in documents 2015-07-09 23:38:25 -05:00
Dan Stillman
507ef011d8 Restore "without snapshot" option in Fx connector
Will be supported in upcoming Standalone release
2015-07-09 19:10:32 -04:00
Simon Kornblith
e92a54966c Restore ZoteroPane.destroy() on close
Seems like a good thing to do, if only because it ensures we persist
changes
2015-07-09 18:05:08 -04:00
Simon Kornblith
b931ca37d2 Undo accidental subproject commit change from 3420b4874a 2015-07-09 18:02:11 -04:00
Simon Kornblith
3420b4874a Tweaks for application menu on OS X
- Restore About Zotero item
- Fix Quit item
- Close Standalone when Standalone window is closed (we did this before,
  but apparently having our own hidden window breaks that mechanism)
2015-07-09 18:00:15 -04:00
Aurimas Vinckevicius
bf58de7e62 Update citeproc-js to 1.1.25
And split off Zotero additions
2015-07-09 16:31:57 -05:00
Simon Kornblith
b69e6fc3ab Fix Zotero menu on OS X, part 1
Create a hidden window with a menu bar, since it loads first
2015-07-09 16:52:04 -04:00
Aurimas Vinckevicius
3ca45be2c7 Add more debug logging for Recognize PDF 2015-07-08 12:50:10 -05:00
Dan Stillman
2a5b026f65 Wait for schema update before updating save icon
Technically rather than waiting for the schema update we should wait for
translator initialization, which should wait for the schema update
itself, but the schema update also needs to initialize the translators,
so avoiding a hang is tricky, particularly with the use of Zotero.lazy()
for Zotero.Translators.init(). For now, just wait for the schema update.
2015-07-07 17:39:06 -04:00
Dan Stillman
c590aa0eb4 Fix documentation for Zotero.DataObjects.getAsync() 2015-07-07 14:40:14 -04:00
Dan Stillman
5d9d8ae953 Fix passed 'window' property in Zotero.ProgressWindow
Though not currently used anywhere
2015-07-06 19:15:11 -04:00
Dan Stillman
b19cce1963 Fix issues with toolbar icons in multiple windows
Clicking the separate buttons would trigger actions in the first window
opened, and other things might not have been updating properly across
multiple windows.
2015-07-06 15:41:28 -04:00
Dan Stillman
238183a3fa Fix collapse library ("-") for collections
Broken in f5ce2d238e
2015-07-06 04:38:53 -04:00
Dan Stillman
41b772da4d Show the save button guidance panel again, now that it doesn't hide too easily 2015-07-06 00:49:35 -04:00
Dan Stillman
e3061289a5 Clarify main button guidance panel text
"Click here to open Zotero…" -> " Click the ‘Z’ button to open Zotero…"
2015-07-06 00:48:03 -04:00
Dan Stillman
db991743cd Trigger forward action with click anywhere on guidance panel
Previously, clicking directly on a noautohide guidance panel closed it, even if
there was a forward nav button. (In the case of the main and save button
guidance panels, the save button would appear on the next Firefox restart, but
this ensures that the save guidance panel will be shown to new users even if
they click on the panel instead of the not-particularly-noticeable forward
button.)
2015-07-06 00:46:36 -04:00
Dan Stillman
41fc082f6d Fix too-large icons in secondary toolbars on Linux
Plus a few other icon tweaks
2015-07-05 15:37:11 -04:00
Dan Stillman
0ba64b5194 Show guidance panel nav buttons on Linux 2015-07-05 12:58:36 -04:00
Dan Stillman
01716183d7 Prevent erroneous hiding of hideonpagechange guidance panels on complex pages 2015-07-04 17:09:26 -04:00
Dan Stillman
ebe08836e8 A little more Quick Copy safety 2015-07-03 23:53:43 -04:00
Dan Stillman
f07fe7184d Ignore trailing period in domain for Quick Copy
From @aurimasv
2015-07-03 23:46:39 -04:00
Dan Stillman
242581a270 Fix Quick Copy in tab mode, but for real 2015-07-03 22:06:12 -04:00
Dan Stillman
20f279043b Update submodules 2015-07-03 02:09:27 -04:00
Dan Stillman
208b4daf6e Update locales from Transifex 2015-07-03 02:06:59 -04:00
Dan Stillman
9d2b097605 Fix toolbar icons in non-nav-bar toolbars on OS X and Windows
...which only required redoing the entire styling.

Not yet done on Linux
2015-07-02 05:50:57 -04:00
Simon Kornblith
50ee61545a Kill code to ensure that our pipe is open before we write to the other
In practice, this appears to be both unnecessary and harmful. Although
the first write happens effectively instantaneously, we can take
several hundred milliseconds to read the second write, and Standalone
can decide we are dead.

This apparently fixes #783 for @dstillman, although I was never able to
reproduce locally.
2015-07-01 20:40:28 -04:00
Simon Kornblith
d104e4b106 More debugging for #783 2015-07-01 20:01:00 -04:00
Dan Stillman
15a0a33ac1 Fix Quick Copy in tab mode 2015-07-01 19:36:16 -04:00
Simon Kornblith
9574de752d Debugging for #783 2015-07-01 14:46:06 -04:00
Dan Stillman
7ccc48b4ae Don't show "without snapshot" save option in Fx connector for now
Option requires a new Standalone build with ba53f256d
2015-07-01 02:38:15 -04:00
Dan Stillman
ba53f256d6 Quick hack to fix "without snapshot" save option in Z4Fx via Standalone
(I don't see any obvious reason I can't do this. We should probably clean this
up later, not call the endpoint "saveSnapshot", etc. Also, is there a reason it
doesn't follow the snapshot pref by default?)
2015-07-01 01:03:04 -04:00
Dan Stillman
3cf1c3ccda Merge locales from Transifex 2015-06-30 23:41:48 -04:00
Dan Stillman
39f2021576 Include web page save option in toolbar menu on every page
Closes #644 and #775
2015-06-30 23:41:47 -04:00
Simon Kornblith
43e1c5c123 Fix setCookiesThenSaveItems in Firefox connector 2015-06-30 19:20:16 -04:00
Dan Stillman
796fb87a9b Fix some toolbar icon issues on HiDPI Linux 2015-06-30 17:58:32 -04:00
Dan Stillman
6841be09a1 Fix large save icon on HiDPI Windows, hopefully 2015-06-30 17:08:45 -04:00
Aurimas Vinckevicius
5334a09ee0 Fix institutional author export to CiteProcJS 2015-06-29 23:22:09 -05:00
Simon Kornblith
48e6eb93de Merge pull request #779 from aurimasv/proper-to-proxy
Fix properToProxy converter functions
2015-06-29 22:27:15 -04:00
Aurimas Vinckevicius
b03dcd3686 Fix properToProxy converter functions
Regression from 82998e986e and 9450d0797f
2015-06-29 17:55:10 -05:00
Simon Kornblith
64ff0e8b4e Fix #774 2015-06-29 18:03:09 -04:00
Dan Stillman
5545ea7847 Merge locales from Transifex 2015-06-29 07:12:55 -04:00
Dan Stillman
6c416e7ad2 Get rid of middle border radius in combo button on Windows 2015-06-29 07:06:20 -04:00
Dan Stillman
a9c6feb380 Additional toolbar overflow tweaks for Linux
Follow-up from 1d6483e68
2015-06-29 06:35:23 -04:00
Dan Stillman
1d6483e68a Fix #773, Zotero combo icons dispersed under more tools
And fix save button hover height on Windows, which somehow got out of
whack again.

Might need further tweaking on Linux

Need to find a better way to do these buttons...
2015-06-29 05:59:19 -04:00
Dan Stillman
ddf3ff9ba9 Don't try to set lastLocale pref in doc prefs unless locale was changed 2015-06-28 17:16:33 -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
dd146557b7 Merge non-English strings 2015-06-26 02:13:24 -04:00
Dan Stillman
4868095820 Guidance panel for new save icon
For new installations, a panel will show for the Z icon with a ">"
button to go to a second panel for the save icon. For existing
installations, a panel will show just for the save icon. In both cases,
the panels are non-auto-hiding but are dismissed if clicked on or when a
new content page is loaded.

There's also a new close button, but it's not enabled currently. Might
be useful for panels with embedded links where an accidental click on
the panel alone shouldn't close the panel (like the Firefox customize
mode wizard).
2015-06-25 22:51:05 -04:00
Dan Stillman
a909951106 Merge locales from Transifex 2015-06-24 14:41:43 -04:00
Dan Stillman
233b9991f5 Merge pull request #623 from rmzelle/locale-selector
Add drop-down menu for bibliographyLocale
2015-06-24 14:34:47 -04:00
Aurimas Vinckevicius
6ac0403049 Reorganize and improve locale drop-down code 2015-06-24 14:10:33 -04:00
Dan Stillman
42673cb0a2 Merge non-English strings 2015-06-24 06:24:25 -04:00
Dan Stillman
dfb28ff3f6 File Issues: Greatest Hits, 2006-2015
- When relinking a missing stored file, copy it into the attachment's
  storage directory automatically
  - Previously, selecting a file outside the attachment subdir would
    just result in a missing attachment, since it only looks for stored
    files within the subdir
- Display an error message if a Windows shortcut (.lnk) is added via
  drag-and-drop or via a file dialog on non-Windows systems, until we
  can figure out how to determine the original file
  - Shortcuts can cause errors during syncing, for unclear reasons
  - Neither nsIFile::copyToFollowingLinks() nor nsIFile::target work for
    me to get the original file, even when nsIFile::isSymlink() returns
    true
  - Windows file dialogs seem to automatically resolve shortcuts, so
    it's only an issue there for drag-and-drop
- Disallow hidden files from being selected in relink dialog
  - I think some people on Windows with hidden files shown relink the
    .zotero* files that show up when they click Locate, which causes
    file sync errors. Which brings us to...
- Fix file sync errors for *.lnk and .zotero* files
- Ignore existing .zotero* attachment files, treating the files as
  missing instead to encourage relinking
- Strip leading period in getValidFileName() to prevent added files from
  being hidden
    - This allows hidden files to be added explicitly; they just won't
      stay that way in the storage directory

(These things should have tests, but that will have to happen on the 5.0
branch.)
2015-06-24 06:10:48 -04:00
Dan Stillman
0d1d4ee5cb Don't change selection unnecessarily when creating trashed item 2015-06-23 16:56:10 -04:00
Dan Stillman
27f6f018d3 Remove Zotero.suppressUIUpdates
Now handled by notifier flags
2015-06-23 16:31:40 -04:00
Dan Stillman
12bea4b7ea Notifier observer time logging 2015-06-23 16:03:05 -04:00
Dan Stillman
3ff1ff88a9 A couple search query optimizations
...which make very little difference, but they look better in the SQLite
query plan view.
2015-06-23 15:07:57 -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
0511d37b07 Replace multiple spaces in platform names for full-text searches
Closes #770
2015-06-22 11:51:20 -04:00
Dan Stillman
a5403b7499 Always include 'note' property in item JSON for notes in 'new' mode 2015-06-19 16:00:51 -04:00
Dan Stillman
3f475f25b6 Include remotely added properties in relations diffs 2015-06-19 04:07:46 -04:00
Dan Stillman
2e76fd6584 Add Zotero.DataObjectUtilities.getTypes() 2015-06-19 04:04:56 -04:00
Dan Stillman
7ba54886a6 Add toJSON() for searches and make Collection::toJSON() async 2015-06-19 04:04:33 -04:00
Dan Stillman
79733c75f1 Throw error in Item::fromJSON() if itemType not provided and not set 2015-06-17 01:57:57 -04:00
Dan Stillman
e45aabd03c Special handling of objects class for SyncedSettings
(Though maybe it should just be renamed Zotero.Settings, since
non-synced settings aren't used much and are just handled via DB
queries.)
2015-06-17 01:57:42 -04:00
Dan Stillman
78d62b5c7c '@params' -> '@param' in comment 2015-06-17 01:57:41 -04:00
Dan Stillman
b491ea6516 Additional async updates to colored tag handling 2015-06-17 01:57:32 -04:00
Dan Stillman
b3067ac5c0 Add skipDeleteLog option when erasing objects
To be used by updated deletion listener in new sync code

Also adds explicit Zotero.SyncedSettings.clear() in place of
Zotero.SyncSettings.set() without a value
2015-06-17 01:57:31 -04:00
Dan Stillman
0d59bde186 Clean up DataObject erasing, and fix search unloading 2015-06-16 19:51:21 -04:00
Dan Stillman
4f155e3432 Fix group.fromJSON() with no 'admins' or 'members' arrays 2015-06-16 19:51:21 -04:00
Simon Kornblith
5cbb8de96b Re-enable import progress indicator 2015-06-12 17:06:07 -04:00
Simon Kornblith
6db380b132 Fix importing files and add a basic test
Still need to make the progress indicator work again. Also there may be
some performance to be gained by pooling item saves into a transaction
if one is already open.
2015-06-12 16:58:57 -04:00
Dan Stillman
526c5f8112 Don't break Dan Cohen's library
(Though if you think about it, all of our publications may indeed become
Dan Cohen's eventually.)
2015-06-12 03:30:08 -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
Aurimas Vinckevicius
5817a2d654 Store UTF-8 as charset for all snapshots 2015-06-11 18:30:57 -05:00
Aurimas Vinckevicius
1374cc911a Always save snapshots in UTF-8 encoding
Re https://forums.zotero.org/discussion/49897/thecreate-web-page-item-from-current-pageis-sometimes-not-working-correctly/
There is something wrong with the way nsIScriptableUnicodeConverter converts to gbk (maybe other formats too). The HTML of http://www.cmiw.cn/forum.php is truncated in the middle of an em tag. In general, ConvertFromUnicode is supposed to return an ACString (not AString), which is not something that JavaScript can handle well.
2015-06-11 18:27:13 -05:00
Aurimas Vinckevicius
16ab576a1c Add toCanonical and toLabel for Zotero.CharacterSets 2015-06-11 17:17:28 -05:00
Dan Stillman
c407675d6a Fix more Travis timeouts, hopefully 2015-06-11 16:06:00 -04:00
Dan Stillman
f8684cc9d8 Fix tag purging and Zotero.Tags.getName() 2015-06-09 16:47:04 -04:00
Dan Stillman
ac440b2b38 Don't reload collections list when sources are modified
Just update the row that changed, moving it if necessary.
2015-06-09 16:47:04 -04:00
Dan Stillman
1d45c6c882 Reselect the same row when an item is removed 2015-06-09 03:27:45 -04:00
Dan Stillman
33c19715a8 Avoid error when dragging over header row 2015-06-08 04:29:16 -04:00
Dan Stillman
9a45fa94bd Move transaction wait debug output to level 6, and strip Bluebird lines
This output is basically only useful when something hangs, so it can
stay off all other times.

For now, 6 can be the new only-use-when-something-is-actively-broken
level. At some point we may want to move DB activity to 4 and make this
sort of thing 5, because we don't have much that's 4 right now.
2015-06-08 04:14:47 -04:00
Dan Stillman
2d6143dce1 Clean up notifier debug output 2015-06-08 04:14:46 -04:00
Dan Stillman
f93e6706fa Don't refresh collections view when removing groups
Remove rows one by one
2015-06-08 04:14:46 -04:00
Dan Stillman
b43a735b93 Include libraryID in group.erase() notifier data 2015-06-08 04:05:47 -04:00
Dan Stillman
ec89a98f9d Add group.eraseTx() 2015-06-08 04:05:47 -04:00
Simon Kornblith
70f021f945 Use ISO 8601 accessDates everywhere
This uses ISO 8601 dates for generateAllTypesAndFieldsData (and
changes populateDBWithSampleData to use Item#fromJSON), and makes
translators expect ISO 8601 accessDates, although SQL accessDates are
still supported with a deprecation warning. Canonicalization happens in
Zotero.Translate, so I need to remember to update connectors as well.
2015-06-07 18:50:57 -04:00
Dan Stillman
8448203583 Expect ISO 8601 access dates in Zotero.Item::fromJSON()
This causes translator tests to fail, because the sample data currently
has SQL access dates instead.
2015-06-07 17:54:44 -04:00
Simon Kornblith
3fc38d750b Use Zotero.Item.fromJSON() for saving from translators
Also:
  - Move some canonicalization of items returned by translators to
    Zotero.Translate
  - Make Zotero.Translate#translate return a promise
  - Add tests
2015-06-07 17:30:41 -04:00
Simon Kornblith
ec5e20659b Improve error handling for attachment saving 2015-06-07 17:22:57 -04:00
Simon Kornblith
e27d907973 Throw an error if HTTP request yields non-OK in importFromURL() 2015-06-07 16:06:59 -04:00
Dan Stillman
6935310c75 Fix Zotero.Users.setCurrentUsername() 2015-06-07 15:50:07 -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
53706d633a Make Zotero.HTTP exceptions instances of Error 2015-06-07 15:43:09 -04:00
Dan Stillman
16706ba481 Allow Zotero.HTTP.request() to be mocked
sinon.useFakeXMLHttpRequest() doesn't work in our case, but if
Zotero.HTTP.mock is set, Zotero.HTTP.request() will create new instances of
that object instead of the built-in XMLHttpRequest, so it can be set to
FakeXMLHttpRequest:

Zotero.HTTP.mock = sinon.FakeXMLHttpRequest;
var server = sinon.fakeServer.create();
server.autoRespond = true;
server.respondWith("GET", "/users/1",
  [200, {"Content-Type": "application/json"}, '{"userID": 1}']);
var userInfo = yield getUser();
Zotero.HTTP.mock = null;
server.restore(); // probably not necessary
2015-06-07 15:23:12 -04:00
Simon Kornblith
38eeab06a3 Some snapshot-related fixes 2015-06-07 14:02:20 -04:00
Aurimas Vinckevicius
3d4926923a Resolve relative URLs to absolute before trying to proxify them
Besides adding some debug logging, this currently makes no difference, but it will when we add support for de-proxifying URLs in #578.
2015-06-05 15:51:42 -05:00
Aurimas Vinckevicius
9450d0797f Don't double-proxy in properToProxy
Surfaced due to changes in 7f7fe90ad5
2015-06-05 15:51:42 -05:00
Dan Stillman
aa2e0a8582 Update Zotero.Relations.updateUser() for new relations schema
Also adds Zotero.DataObjects::getLoaded(), which returns an array of all
loaded objects of the given type. This is useful for selective
reloading, for example with item.reload(['relations'], true).
2015-06-04 20:38:49 -04:00
Dan Stillman
195a737049 Allow item.addRelatedItem() to work on unsaved item without libraryID
Production code should just assign a libraryID, but this is useful for
tests, and addCollection() does it.
2015-06-04 20:38:41 -04:00
Simon Kornblith
582799e428 Fix Zotero.Attachments.importSnapshotFromFile 2015-06-04 20:22:54 -04:00
Simon Kornblith
7253a2dd8c Map base fields to item-specific fields in Item#fromJSON() 2015-06-03 23:42:08 -04:00
Dan Stillman
20ca8edf87 Fix getContentsAsync() with invalid characters 2015-06-02 20:32:31 -04:00
Dan Stillman
424cae173b Fix getField/setField behavior/tests with regard to falsy values
In particular, 0 is kept as a value, and passing undefined to setField
now throws an error.

I'm not sure if we actually want to return an empty string in all cases
for missing/invalid fields, but that's what we do currently.
2015-06-02 19:09:58 -04:00
Dan Stillman
3ad15f7b59 Use Zotero.Utilities.Internal.exec() for PDF tool calls 2015-06-02 14:58:44 -04:00
Dan Stillman
77f12527aa Fix NS_BASE_STREAM_CLOSED error, for real
The input stream produced by asyncFetch is closed automatically at EOL,
so the available() call throws this for an empty file.
2015-06-02 14:58:43 -04:00
Dan Stillman
ef3bf8d596 Fix a few test failures/warnings
And simplify tree view load event handling, which may or may not have
been contributing to intermittent test failures, but is cleaner this way
regardless.
2015-06-02 03:51:09 -04:00
Dan Stillman
4f12c71e3e Fix intermittent NS_BASE_STREAM_CLOSED error? 2015-06-02 03:51:09 -04:00
Dan Stillman
dca29a06e3 Include params in DB error messages 2015-06-02 03:51:09 -04:00
Dan Stillman
1f643c1baa Fix skipNotifier option with DataObject::erase() 2015-06-02 03:51:09 -04:00
Dan Stillman
c5cfb6adfd Ignore 'synced' in Zotero.Item.fromJSON() 2015-06-01 22:45:13 -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
b59fa1eed9 Store copy of changed object in _markFieldChange()
Otherwise a splice() on a stored array affects the calculation of what's
new.
2015-06-01 20:23:20 -04:00
Dan Stillman
5fc524bcb2 Generalize Zotero.CachedTypes.add(), and tweak item charset handling
.attachmentCharset on an item now requires a string, not a charsetID.
(It accepted a charset before but didn't quite work right.)
2015-06-01 20:23:20 -04:00
Dan Stillman
bf0d2a1bf4 Fix collectionTreeView::expandToCollection() 2015-06-01 15:31:57 -04:00
Simon Kornblith
9bb01d737c Merge branch '4.0' into sjk/659 2015-06-01 00:03:20 -04:00
Dan Stillman
5ba344516e Update PDF tool handling in tests
The test runner now downloads and caches the PDF tools for the current
platform within the test data directory and only redownloads them when
out of date, and it updates the download URL so that the full-text code
pulls from the cache directory via a file:// URL.

The installPDFTools() support function now installs the files directly
instead of going through the prefs, and a new uninstallPDFTools()
function removes the tools. Since the presence of the PDF tools can
affect other tests, tests that need the tools should install them in a
before() and uninstall them in an after(), leaving most tests to run
without PDF indexing.

This also adds a callback to the waitForWindow() support function. If a
modal dialog is opened, it blocks the next promise handler from running,
so a callback has to be used to interact with and close the dialog
immediately.
2015-05-31 23:50:26 -04:00
Dan Stillman
55d27273fb TextEncoder is no longer required for OS.File.writeAtomic() 2015-05-31 23:01:34 -04:00
Dan Stillman
4fd65fec4c Fix charset handling in Zotero.File.getContentsAsync()
Character sets are now populated on demand, so they can't be run through
Zotero.CharacterSets.getName() in getContentsAsync(), since they might
not exist. (I'm also not sure why this was being done anyway.)
2015-05-31 22:58:11 -04:00
Dan Stillman
1979efd8ce Fix Zotero.Fulltext.getTotalPagesFromFile() call 2015-05-31 22:57:34 -04:00
Simon Kornblith
e868c758b6 Fix library/locator engine lookup
Fixes #744, closes #747. Thanks to @zuphilip for tracking down the bug
2015-05-31 18:23:11 -04:00
Dan Stillman
b8d9504a4f Missed lines from 420985661 2015-05-31 17:07:59 -04:00
Simon Kornblith
673168ea7b Don't adjust accessDate for UTC and set version to 0 in Item#toJSON
Ref discussions:
https://github.com/zotero/zotero/pull/746/files#r31394225
https://github.com/zotero/zotero/pull/746#commitcomment-11445605
2015-05-31 17:02:20 -04:00
Dan Stillman
cc3d81da93 Add Zotero.DataObjectUtilities.generateKey()
For now, this just calls Zotero.Utilities.generateObjectKey(), but this
function makes more sense in DataObjectUtilities. It does need to be
accessible to the connectors, but if it's possible to add an alias in
Zotero.Utilities just for the connectors, it'd probably be better to do
that and use Zotero.DataObjectUtilities.generateKey() elsewhere.
2015-05-31 16:59:10 -04:00
Dan Stillman
420985661b Default to user library when assigning unsaved item to collection
And fix some issues setting the libraryID property on unsaved objects

Also return .deleted as false, not an empty string
2015-05-31 02:03:53 -04:00
Dan Stillman
ed1c0a4637 Fix updating of cached child collections/items, and make more efficient 2015-05-30 19:03:42 -04:00
Dan Stillman
807c40859f Missed lines from 2154673dd 2015-05-29 21:55:47 -04:00
Dan Stillman
2154673dd3 Return a Zotero.Item from all Zotero.Attachments methods
These previously returned an itemID, but now that new saved items can be edited
without a refetch, they should just return the new item.

(Possible I missed a few spots where these are called.)
2015-05-29 05:33:54 -04:00
Dan Stillman
5a2ec43de1 Add Notifier.queue()
Notifier.trigger() needs to be async, since if it actually runs it waits for
promises returned from observers. But the vast majority of trigger() calls are
in transactions where they just queue and can therefore be synchronous. This
replaces all such calls with Notifier.queue().

This should fix a race condition that was causing the emptyTrash() test to fail
intermittently.
2015-05-29 05:03:05 -04:00
Dan Stillman
15252623d7 Log the actual number of Notifier observers for a type 2015-05-29 03:37:29 -04:00
Dan Stillman
72e0124e4e Fix tag purging with stricter DB parameter checks
Should have failed without libraryID being passed
2015-05-29 01:15:04 -04:00
Dan Stillman
4e1dd6f5b6 Restore DB parameter checking and add tests
Some parameter situations also weren't being properly handled
2015-05-29 01:15:04 -04:00
Dan Stillman
1e7c822ab0 Fix linked file creation 2015-05-29 01:09:24 -04:00
Dan Stillman
a804efce67 Fix getAttachments()/getNotes() with no child items after save 2015-05-27 22:18:40 -04:00
Dan Stillman
7eaa57562f Fix Zotero.ItemFields.getBaseIDFromTypeAndField()
Closes #741
2015-05-27 05:01:48 -04:00
Dan Stillman
80d5b74cf3 Merge 4.0 up to 28301ea45f
Conflicts:
	chrome/content/zotero/preferences/preferences_export.js
	chrome/content/zotero/xpcom/proxy.js
2015-05-26 17:48:22 -04:00
Dan Stillman
8c64d8b410 Fixes #739, Item added to "My Publications" despite choosing cancel 2015-05-26 17:20:42 -04:00
Aurimas Vinckevicius
ec786bf15c For now, use Zotero item DB ids when passing items to citeproc
citeproc-js relies on this in several locations. Seems that Zotero passes these IDs to citeproc from the item picker. We also need to consider existing embedded items in Word/LO documents, but they do have embedded URIs, so it shouldn't be a problem.
CC @fbennett
2015-05-26 16:11:44 -05:00
Aurimas Vinckevicius
c84a16984b Map note excerpt to title in itemToCSLJSON
This way notes have some sort of user-friendly way of being traced from Word documents to Zotero items in the library
2015-05-26 16:11:44 -05:00
Aurimas Vinckevicius
de0b7ba181 ItemGetter shouldn't break with an empty DB 2015-05-26 16:11:42 -05:00
Aurimas Vinckevicius
9d5d8b525a Access date in Zotero.Item::toJSON should be in ISO-8601 format 2015-05-26 16:03:35 -05:00
Aurimas Vinckevicius
47bf9c38e9 Transition item Export Format to Zotero web API item JSON
* Enable legacy mode for export translators compatible with pre-4.0.27:
   * Add compatibility mappings, so that current translators don't break if they specify minVersion lower than 4.0.27. This does introduce non-compatible changes, specifically, "version" field in legacy mode is "versionNumber" in the new format. "version" in the new format corresponds to the "version" as specified for Zotero API JSON format. New translators should expect Zotero web API JSON format and should specify minVersion 4.0.27.
* Update CSL mappings to comply with new itemToExportFormat
* CSL JSON export translator needs to be updated to be compatible with 4.0.27 to export correct CSL JSON
* Use item URI for id in CSL JSON instead of item ID
* Fix note and attachment handling in itemToCSLJSON
2015-05-26 15:48:43 -05:00
Aurimas Vinckevicius
12db2e6c51 Don't throw if checking invalid field in ItemFields.isValidForType 2015-05-26 15:39:44 -05:00
Aurimas Vinckevicius
c6151f959d Fix relations serialization in Zotero.Item::toJSON() 2015-05-26 15:39:44 -05:00
Aurimas Vinckevicius
21cd15b068 Port Zotero.Item.toJSON from api_syncing branch
* Modified to use synchronous DB access
* Take patchBase argument as an option
* Update to conform to v3 API
2015-05-26 15:32:33 -05:00
Aurimas Vinckevicius
7445f81042 Port Zotero.Date.sqlToISO8601 from 755ead2119
Copy-pasted, no modifications
2015-05-26 15:32:33 -05:00
Dan Stillman
f71140da64 Remove Zotero.Item.prototype.addTags
Can use addTag() or setTags()

Addresses #735
2015-05-26 12:13:27 -04:00
Dan Stillman
8a0b4d92a6 Fix PDF tools installation on Linux 2015-05-26 04:44:02 -04:00
Dan Stillman
3d3b817724 Allow data to be set after save() on a new object without load() calls
After saving a new object and reloading primary data and any changed
data (which we can maybe reconsider at some point), mark all other data
types as loaded, since there's no other data we don't have. For example,
this allows for item.save() to be followed by item.setField() without
needing to call item.loadItemData() first.
2015-05-26 04:08:47 -04:00
Dan Stillman
5d530e4173 Don't load item data and collections for all items in the middle pane 2015-05-26 03:19:44 -04:00
Dan Stillman
41a68af1ae Remove debug line when loading collections 2015-05-26 03:19:44 -04:00
Dan Stillman
ea1573e1c3 Don't log warning when localized string for search condition not found
Falls back to item field strings, so not sure why I added logging for
this.
2015-05-26 03:19:30 -04:00
Dan Stillman
9f4b128c14 Remove header and footer from stack trace display 2015-05-26 03:15:04 -04:00
rmzelle
06e6168cb4 Implement locale drop-down menus 2015-05-26 00:12:04 -04:00
Dan Stillman
28301ea45f Center the site-specific Quick Copy and proxy editing windows
On OS X these show up as sheets, but on Windows without this flag they
appear in the top-left of the screen.
2015-05-25 23:36:24 -04:00
Dan Stillman
c152e81bed Merge pull request #732 from rmzelle/edit-button-quickcopy
Add Edit button for site-specific Quick Copy settings
2015-05-25 23:31:44 -04:00
rmzelle
5833d87169 Add Edit button for site-specific Quick Copy settings 2015-05-25 23:21:50 -04:00
Dan Stillman
ab3b0367ef Merge locales from Transifex 2015-05-25 22:26:50 -04:00
Dan Stillman
6e4eb61694 Merge pull request #673 from sendecomp/optional-proxy-redirect-notification
Add an option to not show the proxy redirection notification
2015-05-25 21:57:16 -04:00
Dan Stillman
96f5bab3a1 Cancel relatedbox loading if binding disappears 2015-05-25 21:48:47 -04:00
Dan Stillman
31af26af08 Fix selection of new items 2015-05-25 21:48:47 -04:00
Dan Stillman
2bd246e2ea Fixes #728, Tag selector refreshing 2015-05-25 21:48:46 -04:00
LinuxMercedes
34c0e746f5 Add an option to not show the proxy redirection notification 2015-05-25 17:38:24 -05:00
Dan Stillman
cbbdebc5b7 Fix hang in collectionsTreeView::selectWait() if row is already selected 2015-05-25 01:43:07 -04:00
Dan Stillman
43762248a4 Fix trash emptying, and do it in batches of 50 2015-05-25 00:14:49 -04:00
Dan Stillman
87fa51849f Accept promise-yielding generators directly in forEachChunkAsync() 2015-05-24 22:56:44 -04:00
Dan Stillman
6933f64616 Fix reselection of trash after restart 2015-05-24 22:04:40 -04:00
Dan Stillman
dd52206b37 Don't show "Loading item data" when data is cached 2015-05-24 21:34:11 -04:00
Dan Stillman
e35575e6fd If last viewed collection is set but not found, default to My Library 2015-05-24 20:00:10 -04:00
Dan Stillman
2ed04eca26 Speed up translator initialization in source installs
updateBundledStyles() already has the contents of a new/updated
translator when it copies it into the data dir, so there's no need for
Zotero.Translators.reinit() to read it again from the just-copied file.
This passes the metadata from updateBundledStyles() to reinit() to avoid
the extra file read.

(Alas, this appears to make essentially zero difference on an OS X
system with an SSD, but maybe it will help elsewhere.)
2015-05-24 20:00:10 -04:00
Dan Stillman
bd9c53b29c Fix tag selector loading (broken by 6b87c641) 2015-05-24 20:00:10 -04:00
Dan Stillman
8a93250ca1 Fix "comment.split is not a function" in item box 2015-05-24 04:56:19 -04:00
Dan Stillman
19b8db590f Fixes #727, Duplicated items lose their creators 2015-05-24 04:55:54 -04:00
Dan Stillman
ff7919553c Collections data layer cleanup
Get rid of data_access.js, at long last. Existing calls to
Zotero.getCollections() will need to be replaced with
Zotero.Collections.getByLibrary() or .getByParent().

Also removes Zotero.Collection::getCollections(), which is redundant
with Zotero.Collections.getByLibrary(), and Zotero.Collections.add().
The latter didn't didn't include a libraryID anyway, so code might as
well just use 'new Zotero.Collection' instead.
2015-05-24 04:37:34 -04:00
Dan Stillman
ef57b4e016 Relations fixes and cleanup
Relations need a complete overhaul, but this makes them generally work
again.
2015-05-24 03:08:22 -04:00
Dan Stillman
b21e07d700 Fix group saving and copying attachments between libraries 2015-05-23 21:10:07 -04:00
Dan Stillman
5e1c25f4b5 Async Zotero.File.copyDirectory() 2015-05-23 21:08:11 -04:00
Dan Stillman
e1355cef2f Show only "Export Files..." in context menu for My Publications 2015-05-23 19:07:14 -04:00
Dan Stillman
0f519dc757 Post-merge cleanup in fileInterface.js
(Though not enough to actually get it working)
2015-05-23 18:35:28 -04:00
Dan Stillman
aa730bb3bd Merge branch '4.0'
Conflicts:
	chrome/content/zotero/fileInterface.js
	chrome/content/zotero/xpcom/translation/translate_item.js
	chrome/content/zotero/xpcom/utilities_internal.js
	chrome/content/zotero/zoteroPane.js
2015-05-23 18:26:32 -04:00
Dan Stillman
ebe41ac51a Fixes #724, PDF indexing binaries not downloading
And adds Zotero.File.download(uri, path)
2015-05-23 18:03:25 -04:00
Dan Stillman
6b87c641d9 Experimental approach to cancelling unnecessary promises
If a view or other resources are destroyed while a promise is being
resolved, subsequent code can fail. This is generally harmless, but it
results in unnecessary errors being logged to the console.

To address this, promises can use a new function,
Zotero.Promise.check(), to test whether a value is truthy or 0 and
automatically throw a specific error that's ignored by the unhandled
rejection handler if not.

Example usage:

getAsync().tap(() => Zotero.Promise.check(this.win));

If this.win is cleaned up while getAsync() is being resolved, subsequent
lines won't be run, and nothing will be logged to the console.
2015-05-23 04:43:37 -04:00
Dan Stillman
3fc09add3a Attachment fixes
Change all attachment functions to take parameter objects, including a
'collections' property to assign collections. (Previously, calling code
assigned collections separately, which required a nested transaction,
which is no longer possible.)

Fixes #723, Can't attach files by dragging
2015-05-23 04:43:37 -04:00
Simon Kornblith
6e2d1f683a Get translation at least partly working
I'm pretty sure I've only scratched the surface here, but at least
basic things work.
2015-05-22 22:24:46 -04:00
Dan Stillman
61cb01b7c2 Collection/item tree selection improvements
Wait for the pane's collectionSelected() to finish before returning from
collectionTreeView select methods (e.g., selectLibrary()), and wait for
previous items view to finish loading before creating a new one in
collectionSelected(). This ensures that the items view has been created (though
not loaded) before returning from a select. The tree can still get a bit
confused switching between collections, but I think we're getting closer to
fixing that.

Also switch the items tree to use the same pattern.

This also fixes dragging items to collections (#731).
2015-05-22 19:22:00 -04:00
Dan Stillman
23e4e54c29 Add extra newline between lines in error reports 2015-05-22 16:03:06 -04:00
Dan Stillman
f164fef3d2 Skip Quick Copy until #520 is done 2015-05-22 16:00:22 -04:00
Dan Stillman
22e0ba3a22 Fix hangs related to data object purging 2015-05-22 15:59:15 -04:00
Dan Stillman
cf010d7748 Fix collection collapse/expand issues
Fixes #722, Everything disappears
2015-05-22 14:43:09 -04:00
Dan Stillman
432d89af24 Group data layer fixes 2015-05-22 14:41:59 -04:00
Dan Stillman
32abbe7c25 Load groups at startup, and make Zotero.Groups functions synchronous
Groups were already being loaded for the collections list, so we might
as well just store them initially and let Zotero.Libraries.getName() be
a synchronous call.
2015-05-22 04:52:05 -04:00
Dan Stillman
f4446e268d Use more concise 1-line format for SQL logging
SELECT * FROM foo WHERE bar=? AND qux=? ['foo', 1]

Not sure why I didn't do this years ago...
2015-05-21 23:44:10 -04:00
Dan Stillman
ada657fcb8 Functions to modify 'version'/'synced' efficiently, plus some other fixes 2015-05-21 23:44:10 -04:00
Dan Stillman
a3f4fe181f More data layer changes
- Moved ::_get() and _set() from Collection/Search into DataObject, and
  disabled in Item
- Don't disable new items after save. We now put new objects into the
  DataObjects cache from save() so that changes made post-save are
  picked up by other code using .get().
- Added 'skipCache' save() option to avoid reloading data on new objects
  and adding them to the cache. (This will be used in syncing, where
  objects might be in another library where they're not needed right
  away.) Objects created with this option are instead disabled to
  prevent reuse.
- Modified some tests to try to make sure we're reloading everything properly
  after a save.
- Documented save() options
2015-05-21 23:39:00 -04:00
Dan Stillman
8352934009 Merge pull request #671 from gracile-fr/localize-locators-labels
Add localized locator labels
2015-05-21 02:19:16 -04:00
Dan Stillman
4792b7cd48 Data layer fixes
- Fixes some saving and erasing issues with collections and searches
- Adds Zotero.DataObject::eraseTx() to automatically start transaction,
  and have .erase() log a warning like .save()
- Adds createUnsavedDataObject() and createDataObject() helper functions
  for tests
2015-05-20 23:16:18 -04:00
Dan Stillman
e8a04dffd0 Relations support for Z.DataObjectUtilities.diff() and applyChanges() 2015-05-20 23:16:18 -04:00
Dan Stillman
c9aed60acd Rename error/warning icons 2015-05-19 22:42:43 -04:00
Dan Stillman
0e73b1cc61 Remove code to check for changes after note reselection
No longer necessary, since items aren't reselected on change, and the
dateModified check was insufficient
2015-05-19 22:34:49 -04:00
Dan Stillman
3ac22b6242 Merge locales from Transifex 2015-05-19 17:28:40 -04:00
Dan Stillman
8cfca53b48 Register itembox and noteeditor with notifier and refresh on update
Since selected items are no longer reselected, the boxes now need to
refresh themselves.
2015-05-19 17:08:45 -04:00
rmzelle
4bdef75074 Add DOI-field context-menu 2015-05-19 16:25:02 -04:00
Aurimas Vinckevicius
f7868be884 Consolidate _saveAttachment error and callback handling 2015-05-19 03:12:37 -05:00
Aurimas Vinckevicius
ed734bfdf3 Merge 849803473a into api_syncing
Fixes #677
2015-05-19 02:41:03 -05: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
ab4320df07 Add Zotero.Libraries.getAll() 2015-05-19 01:20:12 -04:00
Dan Stillman
e0ea3ca99b Don't show "[object Object]" in varDump() output 2015-05-19 01:17:12 -04:00
Dan Stillman
3b0b2c59b7 Always show HTTP request resolution, even without debug flag 2015-05-19 01:17:12 -04:00
Dan Stillman
abaa4da5ab Much better data object change detection
Replace Z.DataObjects::diff() with Z.DataObjectUtilities.diff(). Instead
of just returning two objects with the differing fields, the new diff()
generates a changeset with operations to apply with applyChanges(),
including at the array member level for collections and tags. This,
combined with cached pristine copies of objects, will allow for vastly
better conflict resolution, with automatic merging of non-conflicting
changes.

Creators currently don't show granular changes, and ordering might make
it too tough to do so. Relations diffing isn't yet implemented.
2015-05-19 01:17:12 -04:00
Dan Stillman
f727b224e7 Fix tag diffing 2015-05-15 01:47:20 -04:00
Dan Stillman
7a93b132b3 Merge pull request #715 from rmzelle/proxylist-editbutton
Add Edit button to proxy list
2015-05-14 13:10:20 -04:00
rmzelle
bd8db988f3 Add Edit button to proxy list 2015-05-14 09:26:38 -04:00
Dan Stillman
3f4eebe51c Set 'synced' to false automatically on save, unless value is changed
And add 'skipSyncedUpdate' option to leave untouched

Also move some save logic into Zotero.DataObject.prototype._saveData(),
and call that first.
2015-05-13 19:32:53 -04:00
Dan Stillman
fa039971e6 Fixes #714, Zotero.defineProperty() lazy mode doesn't work
Patch from @aurimasv
2015-05-13 13:43:55 -04:00
Dan Stillman
f376db0705 Remove duplicate Zotero.defineProperty() function
Ended up in two places somehow
2015-05-13 12:35:26 -04:00
Dan Stillman
27ab9869be Fix DB upgrading (broken in 14d435b8d) 2015-05-13 11:20:12 -04:00
Dan Stillman
3eed76698c clearUserPref no longer throws on an invalid pref 2015-05-13 11:20:12 -04:00
Dan Stillman
1f8b6fad61 Don't include collections in child item JSON export
But handle it in Zotero.Items.diff() if it's there for one item
2015-05-13 11:20:11 -04:00
Dan Stillman
24022623a1 Move patchBase into options in Zotero.Item.prototype.toJSON()
Also:

- Make .mode == 'patch' optional if .patchBase is provided.
- Remove requirement for item to be unchanged, which hopefully wasn't there for
  a good reason
- Add a few tests, though more are needed
2015-05-12 20:12:10 -04:00
Dan Stillman
1578675ace Change 'finite' param to 'maxTime' in delayGenerator
Allows delaying up to a specified amount of time before yielding false
2015-05-12 20:12:05 -04:00
Dan Stillman
27899c85b5 Add setter and tests for dateAdded
Setting dateAdded is necessary for syncing
2015-05-12 19:55:14 -04:00
Dan Stillman
1558ed8a27 Update Zotero.DataObjects.prototype.diff() to handle API JSON 2015-05-12 19:51:02 -04:00
Dan Stillman
50f627c0cd Replace CollectionTreeView::getLastViewedRow() with selectByID() 2015-05-12 19:45:14 -04:00
retorquere
47ffa1188a export groups, unify library export 2015-05-12 17:52:35 +02:00
Dan Stillman
4d37b3d4c9 Temporary debugging of ItemTreeView::notify() yielding 2015-05-10 18:33:44 -04:00
Dan Stillman
c83bc1b01d Don't reload skipped data types 2015-05-10 18:32:11 -04:00
Dan Stillman
14d435b8d8 Closes #711, Remove support for nested transactions 2015-05-10 18:32:10 -04:00
Dan Stillman
e584dbf5dd Wait for items list to refresh before handling notifications
This fixes an error if New Item is used before the items list has
loaded.
2015-05-10 18:30:07 -04:00
Dan Stillman
6faa2caff8 Add queryTx() to a run a single query in a transaction
Otherwise a write statement could run in the middle of an unrelated open
transaction.
2015-05-10 18:30:06 -04:00
Dan Stillman
03da4a9d52 Restore unselecting of last row in tree if removed
If no other rows are selected, select the row before the removed row
2015-05-10 18:30:06 -04:00
Dan Stillman
af7da366c9 Get connection without yielding if available in executeTransaction 2015-05-10 18:30:05 -04:00
Dan Stillman
a39a42546f Add missing yield in restoreSelectedItems() 2015-05-10 18:30:05 -04:00
Dan Stillman
a64282118b Fix items-count updating in right-hand pane
And some other tweaks to ZoteroPane.itemSelected()
2015-05-10 18:30:05 -04:00
Dan Stillman
e2b62580d1 Fix errorHandler check in DataObject.save() 2015-05-08 13:35:04 -04:00
Dan Stillman
3349930483 Allow fromJSON to be called on unsaved items 2015-05-08 13:35:04 -04:00
Dan Stillman
5635fec4e3 Various creator-saving fixes 2015-05-08 13:35:01 -04:00
Dan Stillman
9f8510c821 Throw ZoteroUnknownTypeError on unknown item type in getItemTypeFields
This needs to be done in additional places as well.
2015-05-08 03:38:28 -04:00
Dan Stillman
3214e37d92 Ignore empty 'filename' property in Item.fromJSON() 2015-05-08 03:38:27 -04:00
Dan Stillman
e3da547c81 Avoid error if item tree disappeared during refresh 2015-05-08 03:38:27 -04:00
Dan Stillman
2a69885b11 Fix placement of saved searches in collections tree
And unify row add/remove handling between collections tree and items
tree
2015-05-07 18:20:26 -04:00
Dan Stillman
67abbc8c4a Add errorHandler option to DataObject.prototype.save()
This allows calling code to do something other than call Zotero.debug()
on errors (like, say, nothing, in order to avoid logging certain
expected errors) before throwing.
2015-05-07 18:20:26 -04:00
Dan Stillman
47f3c1efe6 Don't reselect items unnecessarily
Store and check the last selected items in ZoteroPane.itemSelected() to
see if it's necessary to refresh the item pane. This prevents loss of
textbox focus if another write occurs while editing a field.

Also optimize row adding/removing in itemTreeView.js
2015-05-07 15:09:41 -04:00
Dan Stillman
afface4fba Fix Zotero.Utilities.arrayEquals() for nested array comparisons 2015-05-07 15:09:41 -04:00
Dan Stillman
37f5669319 Fix making an item a child item if it's in any collections 2015-05-07 15:09:40 -04:00
Dan Stillman
2525f8e532 Fix dragging items to collections 2015-05-07 15:09:40 -04:00
Dan Stillman
45b3cd8a53 Replace non-breaking spaces in tested lines in recognizePDF
Fixes "PDF does not contain OCRed text" message for
http://pdfserver.amlaw.com/nlj/NSA_ca2_20150507.pdf
2015-05-07 13:41:13 -04:00
Dan Stillman
3587bb0f6b Fix error if a synced filename begins with a dot (".pdf") 2015-05-07 13:40:05 -04:00
Dan Stillman
3a995d64a4 Fix saving of tags 2015-05-06 04:23:31 -04:00
Dan Stillman
26e1372f46 Throw an error if item type isn't set when saving
And add a test for throwing from setField(), which already happens.
2015-05-06 04:20:47 -04:00
Dan Stillman
7879e5432a Fix new attachment charset saving, which I definitely didn't test before 2015-05-06 04:20:45 -04:00
Dan Stillman
33eaaffd83 Fix Date Modified handling when saving items 2015-05-06 04:19:20 -04:00
Dan Stillman
e5cbfb71a6 Throw ZoteroMissingObjectError for missing item errors
And don't log in DataObject.saveData() before rethrowing, since the
calling code will probably take care of it
2015-05-06 04:19:20 -04:00
Dan Stillman
d67fd9fda2 Don't send add notifications for collections if skipNotifier is passed 2015-05-05 15:57:37 -04:00
Dan Stillman
01f04802f0 Fix loadAllData() on regular items without notes
Set a flag when setting the item type that instructs loadAllData()
whether to attempt to call loadNote()
2015-05-05 15:57:37 -04:00
Dan Stillman
beb17436f8 Don't mark parentKey as changed when set to false for an unsaved item
And return undefined for search objects
2015-05-05 15:57:37 -04:00
Dan Stillman
b0f52a0f07 Allow attachmentLinkMode to be specified as a string ('linked_url') 2015-05-05 15:57:36 -04:00
Dan Stillman
93a6a4ffdb Don't mark an empty field set to an empty string as changed
And some tests
2015-05-05 15:57:36 -04:00
Dan Stillman
18714a4fcb Default to user library for saved searches
For consistency with collections and items
2015-05-05 03:17:51 -04:00
Dan Stillman
bb760707d4 Get id values directly in Zotero.DataObject.prototype.loadPrimaryData 2015-05-05 02:56:56 -04:00
Dan Stillman
02a36eab9b Fix various issues with rapid UI/data changes due to asyncification 2015-05-05 02:53:06 -04:00
Dan Stillman
fc428f8e1b Insert new saved search rows without refreshing collections list
And some other selection-related tweaks
2015-05-05 02:52:26 -04:00
Dan Stillman
2ca53677f8 Don't resave collection with no parent after .parentKey = false 2015-05-05 02:52:26 -04:00
Dan Stillman
aa512f0f8d Miscellaneous data layer fixes and tweaks 2015-05-04 03:19:58 -04:00
Dan Stillman
53e40bb0f4 Miscellaneous tweaks 2015-05-04 02:46:40 -04:00
Dan Stillman
ef91299951 Asyncify Zotero.CollectionTreeCache.clear() 2015-05-04 02:46:39 -04:00
Dan Stillman
8ec248f7ec Remove some unnecessary asyncness in tree views
E.g., closing a container doesn't need to yield
2015-05-04 02:46:39 -04:00
Dan Stillman
d22f762bb6 Add new collection rows without reloading the collections list 2015-05-04 02:46:34 -04:00
Dan Stillman
6328d1f39b CollectionTreeView::selectLibrary() doesn't need to be async 2015-05-04 02:45:56 -04:00
Dan Stillman
8fec5ace3a Fix post-save textbox focusing bugs in right-hand pane
Fix a couple cases of lost text field focus after an edit, including
focusing of the Title field after using New Item when a field is already
being edited and has a changed value.

Also, in tests, select My Library and wait for items to load when using
the loadZoteroPane() support function. We could add a parameter to skip
that or move it to a separate function, but the code to detect it is a
bit convoluted and it's a prerequisite for many tests, so it's handy to
have a function for it.
2015-05-04 02:45:55 -04:00
Dan Stillman
590649fd49 Ignore blur events from html:textarea
If a new item is created manually when a text field is already open, the
hideEditor is run first on the html:textarea before bubbling up to the
textbox. During a normal blur, the event only happens on the textbox,
though I haven't looked into the reason for the difference.
2015-05-04 02:45:55 -04:00
Dan Stillman
bdd44e9a44 DB isolation changes and item selection tweaks
- Add an 'exclusive' option to transactions that causes them to block other
  transactions and wait for other transactions to finish before starting,
  instead of nesting
- Resolve Zotero.DB.waitForTransaction() promise before returning from
  executeTransaction()
- A side effect of the above: wait for a newly created item to be selected in
  the middle pane and rendered in the right-hand pane before returning from
  executeTransaction()
- Don't save items multiple times when adding/removing a non-final creator in
  the Info pane
- Use a simpler, non-recursive method for focusing the next field in the Info
  pane; this prevents "too much recursion" errors if something causes the
  right-hand pane not to be rendered when expected
2015-05-04 02:45:55 -04:00
Dan Stillman
4a0018ec63 Fix transaction detection
This fixes an issue where two transactions started around the same time
could run separately instead of nesting, causing the statements from one
to end up running not within a transaction
2015-05-04 02:45:55 -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
5070c04af6 Ignore invalid fields in Zotero.ItemFields.isValidForType() 2015-05-04 02:45:28 -04:00
Dan Stillman
805df39869 Remove extra debugging in Zotero.ItemFields.getLocalizedString() 2015-05-04 02:45:28 -04:00
Dan Stillman
285995807d fromJSON() methods for data objects
Tests needed
2015-05-04 02:45:25 -04:00
Dan Stillman
afe0412c58 Collection/item tree view updates
- Pass .skipSelect option to data object .save() to prevent new objects
  from being selected
- Fix miscellaneous bugs
- Selection-related tests
2015-05-04 02:43:32 -04:00
Dan Stillman
322339876e Add Zotero.Date.isISODate() and Zotero.Date.isoToSQL() 2015-05-04 02:41:14 -04:00
Dan Stillman
e8d4b3e840 Add Zotero.Item.prototype.attachmentFilename 2015-05-04 02:41:14 -04:00
Dan Stillman
40e86147a4 Allow loadChildItems() to be called on note/attachment items
Otherwise loadAllData() doesn't work
2015-05-04 02:41:14 -04:00
Dan Stillman
453e7bd090 Fix size of 2x icons in progress window 2015-05-02 19:00:42 -04:00
Dan Stillman
fbef911cb7 Add wizard for My Publications
Show a wizard after items are dragged to My Publications choosing
whether to include files and notes and choosing sharing settings for the
items. Sharing options are Creative Commons licenses, CC0, "All rights
reserved", or keeping the existing Rights field if available.

Also blocks collections, searches, linked file attachments, and
top-level attachments/notes from My Publications at the data layer, but
not yet from the UI in all places (so it can crash if you try).

Todo:

- Block certain UI actions with nice messages
- Show a nice scrollable list of items in the wizard to allow selecting
  specific files/notes, instead of just having checkboxes for files and
  notes that apply to all dragged items
- Show an explanation of My Publications in the right-hand pane when no
  items are selected
- Maybe adjust handling when no attached files/notes, since it might be
  a bit alarming at the moment to see sharing options for metadata
  entries
2015-04-26 19:41:45 -04:00
Dan Stillman
944d298af7 Make retrieving transactionDate with no transaction fatal
I think the places where we retrieve it are always within transactions,
and this helps catch promises that aren't waited for.
2015-04-26 19:36:08 -04:00
Dan Stillman
0471a393eb Always return promise from Zotero.Attachments._postProcessFile() 2015-04-26 18:08:26 -04:00
Dan Stillman
1179d4c142 Fix Zotero.File.getBinaryContentsAsync() with no maxLength
And properly reject promise on failure
2015-04-26 18:08:25 -04:00
Dan Stillman
311ed7a71d Fix some old-style generators passed to executeTransaction()
And some missing yields
2015-04-26 18:08:25 -04:00
Dan Stillman
99dfc72a18 Fix collection saving 2015-04-26 18:08:25 -04:00
Dan Stillman
694896273a Properly detect group in Zotero.CollectionTreeRow::isWithinGroup()
More follow-up from 1c8abf384
2015-04-26 17:51:30 -04:00
Dan Stillman
1f00e99e71 Fix 'this' binding in ZoteroPane.selectItem(), but this time for real 2015-04-26 17:51:30 -04:00
Dan Stillman
a2b572665d Make libraryID optional for DataObjects, defaulting to user library 2015-04-26 17:51:29 -04:00
Dan Stillman
30535653a6 Fix error saving single attachment files from document 2015-04-26 17:51:29 -04:00
Dan Stillman
8ff258fe03 Don't require parent item to be loaded when setting item parent 2015-04-25 03:17:41 -04:00
Dan Stillman
6126a49fea Don't require non-identified items to have loaded data in getField()
This allows getField() on an unsaved item to work properly without a pointless
loadItemData() call.
2015-04-25 03:17:41 -04:00
Dan Stillman
5c8209da5c Fix 'this' binding in ZoteroPane.selectItem() 2015-04-25 03:17:41 -04:00
Dan Stillman
2f556d0da1 Adjust identifier registration on object save
Previously, object identifiers were registered in a commit callback, but that
meant that they wouldn't be available to getLibraryAndKeyFromID/
getIDFromLibraryAndKey within a transaction. Instead, register them before
saving and clear them in a tranasction rollback if necessary.

This changes Zotero.DataObject to call its own _finalizeSave() in addition to a
descendent one.
2015-04-25 03:17:41 -04:00
Dan Stillman
f8ac21d891 Return object instead of array from Zotero.DataObjects.getLibraryAndKeyFromID()
Object contains 'libraryID' and 'key' properties

This is due to changed array destructuring behavior in Firefox. Previously,
`var [foo, bar] = maybeArrayMaybeFalse()` always worked, leaving foo and bar
undefined if the function returned false. Now (with ES6, I assume), if the
function returns false it results in a "false[Symbol.iterator] is not a
function" error. But `var {libraryID, key} = false` works as expected, leaving
both values undefined, so instead we can just return an object with those
properties from getLibraryAndKeyFromID(). To assign to different variables, use
`var {libraryID, key: parentItemKey} = ...`.
2015-04-25 03:17:41 -04:00
Dan Stillman
9e3e680be8 Rework DB transaction handling
Rollback callbacks weren't being properly called, and some other things were in
the wrong place, particularly with nested transactions.
2015-04-25 03:17:41 -04:00
Dan Stillman
4cb5e7e4d5 Remove check for ES5 generators in Zotero.DB.executeTransaction()
This doesn't work properly in some contexts and can break things. There might
be a better test, but we probably don't need this anymore.
2015-04-25 03:17:40 -04:00
Dan Stillman
0e800f350c Throw errors instead of logging for some item load calls
Reverts a change in b83bc404, and changes one debug line introduced
there into an error
2015-04-25 03:17:40 -04:00
Dan Stillman
f68a595a2b Remove Zotero.DataObject._eraseRecoverFromFailure() 2015-04-25 03:17:40 -04:00
Dan Stillman
4b040c78a7 Fix various saved search bugs, and add tests
Search condition ids are now indexed from 0, and always saved
contiguously (no more 'fixGaps' option), since they're just in an array
in the API. (They're still returned as an object from
Zotero.Search.prototype.getConditions() because it's easier for the
advanced search window to not have to deal with shifting ids between
saves.)
2015-04-17 19:29:37 -04:00
Dan Stillman
d9c32a8e90 Fix search saving, and add some unit tests
Also:

- Return an object from `Zotero.Search.prototype.getConditions()`
  instead of an array.
- Add support function `getPromiseError(promise)` to return the error
  thrown from a chain of promises, or false if none. (We could make an
  `assert.throwsAsync()`, but this allows testing of various properties
  such as `.name`, which even the built-in `assert.throws()` can't
  test.)
- Clarify some search save errors
2015-04-17 00:25:09 -04:00
Dan Stillman
59773f3f6d Zotero.Search.getSearchCondition(s) -> getCondition(s) 2015-04-17 00:25:09 -04:00
Dan Stillman
1952fbccd4 Wait for Zotero.Searches initialization 2015-04-16 20:50:15 -04:00
Dan Stillman
51c7ae6e5c Add -b option to skip translator/style installation in tests
'b' for *b*undled files

Translators and styles take a long time to install and initialize in
source installations, and they're unnecessary for many tests.

This shaves about 10 seconds off each test run for me on one system (and
that's with some help from filesystem caching).
2015-04-16 20:50:15 -04:00
Dan Stillman
0154e44c2f Mark all data as loaded when loading primary data for nonexistent object 2015-04-16 20:49:18 -04:00
Dan Stillman
293f7c6dd4 Zotero.Search.prototype.addCondition() doesn't need to be async 2015-04-16 20:48:59 -04:00
Dan Stillman
a2b6df1014 Include both DB version numbers in "newer than SQL file" dialog 2015-04-15 16:03:47 -04:00
Dan Stillman
384a547693 Merge branch '4.0' into api_syncing
Conflicts:
	chrome/content/zotero/lookup.js
2015-04-15 00:56:25 -04:00
Dan Stillman
a8d1080cd6 Unpromisify a couple Zotero.Translator.get() calls
More to be done to fix translation
2015-04-15 00:50:22 -04:00
Dan Stillman
e8b7b38290 Remove some obsolete synchronous DB code 2015-04-15 00:45:59 -04:00
Dan Stillman
4f9366749c Add Zotero.alert() method
This is just a wrapper around nsIPromptService.alert() that takes
Zotero.noUserInput into consideration, which avoids long timeouts during
testing (e.g., for lookup failures).
2015-04-14 16:09:55 -04:00
Dan Stillman
7b72d47070 Zotero.File.putContentsAsync() fixes
Breakage from e6ccca3230
2015-04-13 03:45:25 -04:00
Dan Stillman
915542e696 Throw Error, not Exception 2015-04-13 03:45:25 -04:00
Dan Stillman
2a3af13ddf Automatically return local user URI from Zotero.URI.getLibraryURI()
Previously, getItemURI and getCollectionURI had to check the libraryID
to determine whether to return a local URI, and were doing so using an
obsolete check.
2015-04-13 03:45:25 -04:00
Dan Stillman
a91151756b Fix test running after schema updates
Tests still need to be updated for Bluebird/promisification
2015-04-13 02:25:34 -04:00
Dan Stillman
fec43f1f62 Merge branch '4.0' into api_syncing 2015-04-13 02:01:43 -04:00
Dan Stillman
1c2b2575f7 Fix excessive file sync mtime updates/checks (probably?) 2015-04-09 03:47:43 -04:00
Dan Stillman
f5ce2d238e Fixes #546, Advanced search : match "any" is broken 2015-04-09 02:57:29 -04:00
Dan Stillman
c1a581168a Merge locales from Transifex 2015-04-09 00:26:12 -04:00
Dan Stillman
1e2346eba1 Revert to modified 3.02 binaries on Windows
To deal with issues running .vbs scripts on some systems. If the 3.02
binaries haven't been reinstalled since this version, reinstall them as
3.02a automatically or on manual upgrade to fix corrupted binaries from
previous gzip issue.

Other platforms unchanged
2015-04-09 00:22:32 -04:00
Dan Stillman
b2d5612526 Fix sync and debug output submission in Nightly
(sendAsBinary() removal)
2015-04-07 16:59:33 -04:00
Dan Stillman
2afebc79d0 Set tree image height to 16px everywhere
Windows maybe also doesn't handle HiDPI tree images correctly otherwise
2015-04-07 14:37:13 -04:00
Dan Stillman
c398353d5d Remove obsolete CSS include 2015-04-07 14:26:49 -04:00
Dan Stillman
fe79954b96 Fix HiDPI icons in trees on Linux 2015-04-07 14:25:24 -04:00
Dan Stillman
152b1c0d83 Merge pull request #692 from aurimasv/test-beta_build
Add Firefox Beta for Travis-CI testing
2015-04-07 03:13:19 -04:00
Dan Stillman
61e11f9afa Fix main toolbar icons in 2x mode on Win/Linux 2015-04-07 03:06:25 -04:00
Dan Stillman
adadc9e03a Accept a string path in Zotero.Utilities.Internal.exec() 2015-04-07 01:16:17 -04:00
Dan Stillman
31941c0798 Fix flashing console window for Retrieve Metadata on Windows 2015-04-07 01:14:18 -04:00
Aurimas Vinckevicius
f6510419cb Skip test for "recognizePDF without DOI" on Travis-CI
Breaks due to CAPTCHA when tests are run frequently
2015-04-06 23:17:41 -05:00
Dan Stillman
796a1a2898 Use firstCreator instead of creators[0] for QuickFormat sort
Previously, if an editor was entered before an author, it would sort by
the editor. Now, as long as there's an author, it will sort by that
first (and, with 2f3d865f, favor left-bound matches).

Addresses the second issue on
https://forums.zotero.org/discussion/48047/
2015-04-06 23:32:15 -04:00
Dan Stillman
2f3d865f11 Favor left-bound name matches in QuickFormat bar
https://forums.zotero.org/discussion/48047/
2015-04-06 23:14:32 -04:00
Dan Stillman
bfbf3d871c Fix display of sync error icon (2x and spacing) 2015-04-06 17:39:21 -04:00
Dan Stillman
af871a3fd5 Add 2x versions of many icons
Courtesy of Pastel SVG (2x famfamfam)

I didn't add 2x versions for any composite icons or any Fugue icons.

Also:

- Removed some unused/redundant images
- Switched to shadowless versions for a couple Fugue icons
2015-04-06 17:24:55 -04:00
Dan Stillman
58b56abbc7 Fix file sync errors with symlinked files/directories
nsIFile seems to have figured out symlinks since Firefox 3.0.1
2015-04-04 00:09:24 -04:00
Dan Stillman
788f92bc8b Fix sync error panel positioning (at least on OS X)
After 88be88661
2015-04-03 23:54:37 -04:00
Dan Stillman
4613f9593c Don't update pdfinfo unnecesarily 2015-04-01 16:43:37 -04:00
Dan Stillman
e567ad25aa More PDF tools tweaks
- If one tool is missing, reinstall it automatically during translator
  update check
- Account for pdfinfo 3.02pl1 on Linux
2015-04-01 16:35:13 -04:00
Dan Stillman
1a47d79716 Restore support for modified pdfinfo 3.02 2015-04-01 13:20:34 -04:00
Dan Stillman
a9ca6e0857 Support unmodified Xpdf binaries
Use stdout redirection scripts for pdfinfo and, on Windows, a script to
run pdftotext hidden, which together allow for all unmodified binaries
(including, probably, symlinked system ones, though I didn't test that).

On Windows, using a .vbs does cause a brief wait cursor. The stock
pdfinfo needs the redirection script anyway, so that's unavoidable, but
on the async branch I think we'll be able to switch to pdf.js for the
page count, at which point maybe I'll try to remember how I modified the
Windows binaries to be hidden and use a modified version of pdftotext to
avoid VBScript. (We use the stock pdftotext elsewhere already.)
2015-04-01 04:36:21 -04:00
Aurimas Vinckevicius
49a0b02b06 Log a list of translators that were found during detect* 2015-03-31 14:29:32 -05:00
Aurimas Vinckevicius
c05025f4b1 Log translatorID and lastUpdated timestamp when parsing translators 2015-03-31 14:29:32 -05:00
Dan Stillman
e1c1803ce2 Add DB version info to newer-DB-version error 2015-03-30 14:45:53 -04:00
Dan Stillman
aab21f68ad Blacklist "bad script XDR magic number" message 2015-03-29 15:22:07 -04:00
Dan Stillman
d6e19a9f25 Automatic PDF tool upgrading
If automatic translator/style updates are enabled, at least one of the
PDF tools is installed, and the repo returns a more recent version
number than what's installed, automatically upgrade the tools. (Version
3.02 counts as lower, since Poppler's version numbers are lower.)

If an error occurs, wait increasing amounts of time to try the downloads
again, up to one week.
2015-03-28 18:50:06 -04:00
Dan Stillman
40b349edca Handle gzip encoding via saveURI() 2015-03-27 18:43:39 -04:00
Dan Stillman
c9a787c7bd Maybe show some sync errors that weren't being shown
(This might end up showing some twice, but better than not at all.)
2015-03-26 20:34:31 -04:00
Dan Stillman
52e735b035 Merge locales from Transifex 2015-03-26 20:34:23 -04:00
Dan Stillman
4625b7081e Add checkbox to use one side for all remaining conflicts
This should be rewritten in a way that allows it to be unit tested, but
it seems to work.
2015-03-26 20:34:23 -04:00
Dan Stillman
21ad09112c Merge pull request #683 from aurimasv/setValue-base_fields
Allow setting item field value via base field
2015-03-26 20:33:54 -04:00
Aurimas Vinckevicius
48810f23e0 Tweak cleanISBN, cleanISSN, toISBN13 to match tests
Fixes regression from 37921b0910
cleanISBN/ISSN now return first valid ISBN/ISSN from a list of valid/invalid ISBNs/ISSNs, even if invalid ISBN/ISSN comes first
toISBN13 now corrects the check digit for ISBN13 input
2015-03-25 21:25:38 -05:00
Dan Stillman
d1ca5e2729 Restore use of dump() on Windows if debug pref is enabled
It turns out that the Cygwin console, unlike -console, is actually
usable, so developers on Windows can use that. Since we sometimes need
real-time debug output from end users (who won't have Cygwin installed),
keep logging to the Browser Console if only the -ZoteroDebug flag is
passed.
2015-03-24 03:44:16 -04:00
Aurimas Vinckevicius
e732d6350b Allow setting item field value via base field 2015-03-24 02:16:32 -05:00
Dan Stillman
b042973751 Merge branch '4.0' into api_syncing 2015-03-22 19:51:29 -04:00
Dan Stillman
b8fe15ed63 Properly reinitialize styles after repo update 2015-03-22 16:20:53 -04:00
Dan Stillman
a2d7dfd206 More bundled files fixes 2015-03-22 16:05:17 -04:00
Dan Stillman
e6ccca3230 Take either nsIFile or string path in Zotero.File.putContentsAsync()
And throw an OS.File.Error directly instead of catching it
2015-03-22 16:04:56 -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
842082f818 Simplify options checking in Zotero.HTTP.request() 2015-03-22 02:49:19 -04:00
Dan Stillman
b437826bd0 Include HTTP headers in output in Zotero.HTTP.request() debug mode 2015-03-22 02:44:24 -04:00
Dan Stillman
32a4604481 Rename Zotero.HTTP.promise() to Zotero.HTTP.request() 2015-03-22 02:42:21 -04:00
Dan Stillman
9c0dc327e0 Fix library upgrade with trashed user library items (from 1c8abf384) 2015-03-21 22:56:31 -04:00
rmzelle
0df26d1d2d No prompt for remove if no top-level items are selected
As requested at
https://github.com/zotero/zotero/pull/668#issuecomment-84090670
2015-03-21 20:28:29 -04:00
Dan Stillman
ab25a306fd Add libraries table support to Zotero.ID.getNext() 2015-03-18 22:58:06 -04:00
Dan Stillman
304f46c8cc Update Zotero.Sync.Storage.QueueManager.start() for async item.clone()
Via _reconcileConflicts()
2015-03-18 22:58:06 -04:00
Dan Stillman
44a9b84891 Additional safety check when checking for persisted item pane state
I don't think there's any way for this to happen short of manual
preference editing, and the pane width would have to be exactly 250px,
and it's pretty harmless anyway, but might as well be safe.
2015-03-18 19:07:45 -04:00
Dan Stillman
935fb90bed Reopen collapsed item pane on restart, for now
Until we find a solution that confuses people less (#678), don't persist the
collapsed state across restarts.
2015-03-18 16:13:19 -04:00
Dan Stillman
68b0fb0368 Merge locales from Transifex 2015-03-17 18:35:21 -04:00
Dan Stillman
faed7cd7dd Replace some 'for each..in' instances
There are hundreds more, but these are all the ones that generate warnings in
the console at startup. XPCOM/XBL ones don't seem to do so, so we can ignore
those for now (and hopefully not bother with them on 4.0). Instances in
translators do generate warnings.

Addresses #656
2015-03-17 15:19:45 -04:00
Dan Stillman
4d8471afac Merge pull request #674 from gracile-fr/localize-wordproc-prefs
Localize Word Processors tab in Preferences
2015-03-17 01:12:27 -04:00
Dan Stillman
bb3496dfa8 Fix item duplication 2015-03-17 01:08:18 -04:00
Dan Stillman
828f3f5024 Fix report generation 2015-03-17 00:05:08 -04:00
Dan Stillman
417335baf2 Some libraryID follow-ups 2015-03-17 00:04:41 -04:00
Dan Stillman
d50b6667f0 Fix moving items to trash (from bf36a988e4) 2015-03-16 23:50:24 -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
bf36a988e4 Initial My Publications support
Adds a "My Publications" source after "My Library", implemented as a
separate library. Top-level items can be dragged in and removed.

(This doesn't currently work without disabling Quick Copy.)

Also:

- Make "Group Libraries" an unselectable header instead of a container,
  and don't indent group libraries
- Fix relation purging, which maybe never worked
- Pass only libraryID/key on deletes (which should speed them up)
- Fix async item cloning/copying
- Fix miscellaneous other bugs

To-do:

- Confirmation dialog on drag
- API support
2015-03-16 12:18:54 -04:00
Dan Stillman
a9f010d547 Update Quick Start Guide URL to HTTPS 2015-03-16 12:17:51 -04:00
Dan Stillman
94accba8a0 Fix error creating new item with tags 2015-03-16 12:17:50 -04:00
Dan Stillman
1c8abf3841 Change user library from 0 to 1
0 allowed for some accidental behavior due to old code expecting NULL,
and it prevented easy checks (``if (!libraryID)``) for a passed
libraryID. Code now uses Zotero.Libraries.userLibraryID instead of a
hard-coded value (except in schema.js). Functions can still make
libraryID optional, but they should then use
Zotero.Libraries.userLibraryID if that's to mean the user library.

There might be some code that still expects 0 that I missed.
2015-03-16 12:16:05 -04:00
Dan Stillman
072ced347c Merge locales from Transifex 2015-03-16 12:11:33 -04:00
Simon Kornblith
d881d4a647 Fix a bug saving attachments to items with notes via the server 2015-03-14 18:54:25 -04:00
Simon Kornblith
b4142342a5 Merge remote-tracking branch 'origin/connector' into 4.0 2015-03-14 18:32:54 -04:00
Simon Kornblith
48f6de7ad1 Move Safari items to root images directory, part 1 2015-03-14 18:28:05 -04:00
gracile-fr
5e9f6ff502 Localize Word Processors tab in Preferences
Fixes #426: this allows the localization of the Word Processors Add-in
button and messages displayed in the Prefs, under the "Word Processors"
tab. These strings were previously hardcoded in the integration plugins.
2015-03-12 21:25:50 +01:00
Dan Stillman
532c95e13e Fix placeholder in word processor document version message
Noted in #426
2015-03-12 15:31:45 -04:00
gracile-fr
7fb8f162c5 Add localized locator labels
Fixes #557
2015-03-12 15:30:05 +01:00
Simon Kornblith
3583793571 Wait for bundled file updates to complete before running tests 2015-03-11 13:32:25 -04:00
Simon Kornblith
608da632f3 E4X is gone 2015-03-11 12:04:54 -04:00
Dan Stillman
3672d2a895 Merge pull request #668 from rmzelle/confirm-remove-from-collection
Add prompt for Remove Item(s) from Collection
2015-03-09 22:27:12 -04:00
rmzelle
c5a40d503b Add prompt for Remove Item(s) from Collection 2015-03-09 21:45:39 -04:00
Simon Kornblith
d5f3e6d8f7 Merge pull request #580 from aurimasv/relative-urls
Resolve protocol-relative URLs outside of document context
2015-03-09 20:41:18 -04:00
Simon Kornblith
f2fb6e2e9c Merge pull request #640 from aurimasv/trans-tester-redundant-tags
Discard redundant tags in translator tester
2015-03-09 20:25:03 -04:00
Simon Kornblith
3415cefa71 Merge pull request #601 from aurimasv/defer
Allow meta redirects when running web translator tests
2015-03-09 20:10:19 -04:00
Simon Kornblith
181d852b72 Merge pull request #665 from zotero/unit-testing
Unit testing infrastructure
2015-03-09 19:13:25 -04:00
Dan Stillman
0aaa0540d9 Delete syncedSettings for deleted libraries on sync error
Not sure how this is possible, but fix it for now. It'll be prevented with a FK
check in 5.0.
2015-03-09 19:11:36 -04:00
Dan Stillman
cd358977f3 Update locales from Transifex
(Unfortunately this wipes out "Shortcuts" in all locales, but pushing
non-English locales to Transifex scares me too much. Sorry, localizers!
I think Transifex makes it easy to use previously used translations, at
least.)
2015-03-09 18:58:01 -04:00
Dan Stillman
2681a508b4 Merge pull request #664 from gracile-fr/prefs-pane
Move shortcut keys prefpane to tab of Advanced (#646)
2015-03-09 18:54:39 -04:00
Simon Kornblith
c2d32c2e27 Just give up on trying to automate the panel itself 2015-03-09 16:49:50 -04:00
Simon Kornblith
c7c58f8343 Add support function to reset the DB and a test that it works. 2015-03-09 14:25:49 -04:00
gracile-fr
0a4fcc90ac Move shortcut keys prefpane to tab of Advanced
[and delete unused "#zotero-prefpane-keys checkbox" (there used to be a checkbox to "Try to override conflicting shortcuts", which has been definely removed by 5b34dce40f )]
2015-03-09 12:08:31 +01:00
gracile-fr
1ac54c4b13 Move "#styleManager-updated" under "Cite Pane" code
It was lost under "Shortcut Keys pane" code.
2015-03-09 12:06:55 +01:00
Dan Stillman
3194f4629f Fix size of separate Z toolbar icon on Windows and Linux
Fixes #667
2015-03-09 03:37:40 -04:00
Dan Stillman
98263fb485 Fix padding of single save button in palette
(At least on OS X. This might need to be added back for Windows/Linux.)
2015-03-08 01:43:12 -07:00
Dan Stillman
806259d187 When dropping combo buttons into panel, add two separate buttons instead
And move combo button to customization palette
2015-03-08 00:13:19 -07:00
Philipp Zumstein
e9e9527e60 Add stopPropagation to menuitem of new icon
This should solve 658
2015-03-03 00:00:36 +01:00
Aurimas Vinckevicius
efa269d382 Regression from f0bd1e77ff
Re https://forums.zotero.org/discussion/47176/beta-item-fields-mapping-to-weird-csl-variables/
2015-02-28 15:57:27 -06:00
Dan Stillman
9d353b4e25 Use Zotero.DB.MAX_BOUND_PARAMETERS instead of hard-coded number 2015-02-27 23:58:49 -05:00
Dan Stillman
126d55b3c3 Remove extra overlay.css import
(Though possibly we just want to merge zotero.css and overlay.css, since
the distinction has been mostly lost.)
2015-02-27 03:39:35 -05:00
Dan Stillman
a1bed8b5ad More icon tweaks
- New dedicated Zotero button, available in the Customize palette
- Remove "16px" Z SVG and just render "32px" one at the smaller size
  (there's a slight difference at the edges, but we should probably redo
  it anyway so that dark lines reach all the way to the bottom)
- Change "Open Zotero" back to just "Zotero", since 1) it's for closing
  too, 2) it can also just bring Standalone to the front, and 3) "Open
  Zotero" looks weird and inconsistent in the menu panel next to things
  like "Preferences"
- For now, show single large Z for combo buttons in customization
  palette with "Zotero (Combo)", though we can probably do something
  better.
- Fix some HiDPI bugs when moving items between areas

Still need a layout for the panel for the combo buttons
2015-02-27 03:35:18 -05:00
Klaus Flittner
1990240733 Restore settings to server
If the local data is to be resotres to the zotero server,
the settings like tag colors also need to be synced again.
2015-02-26 21:57:16 +01:00
Aurimas Vinckevicius
3918adf21a Hyphenate ISBN when writing to DB
Only hyphenate if we're very confident that it's a list of unhyphenated ISBNs
2015-02-24 22:42:41 -06:00
Aurimas Vinckevicius
68e7849fcf Add Zotero.Utilities.Internal.hyphenateISBN
Hyphenates ISBN-10 or ISBN-13 according to data from https://www.isbn-international.org
2015-02-24 22:42:29 -06:00
Aurimas Vinckevicius
37921b0910 Add dontValidate parameter to ZU.cleanISBN
Don't validate check digit
2015-02-24 22:40:40 -06:00
Aurimas Vinckevicius
c809dfcbc4 Use only the first ISBN for CSL JSON 2015-02-24 22:40:40 -06:00
Aurimas Vinckevicius
f0bd1e77ff Use Zotero.Utilities.itemToCSLJSON when sending items to citeproc 2015-02-24 22:40:39 -06:00
Aurimas Vinckevicius
7f52e00341 Cleanup ISBNs when importing from web/search translators
Validate, convert to ISBN-13, and list in a space-separated format
2015-02-24 22:40:39 -06:00
Dan Stillman
b478d8f204 Fix some errors if pane is opened during initialization 2015-02-24 22:07:30 -05:00
Dan Stillman
93e3f68be8 Center align and pad error paragraphs on center pane crash 2015-02-24 22:07:30 -05:00
Dan Stillman
395d596105 Don't try to add child items to collections dragging cross-library
Previously, if you dragged a standalone attachment to a collection in another
library where the item already existed as a child item, it would crash Zotero
on a collection-item constraint.
2015-02-24 15:54:34 -05:00
Dan Stillman
0ab38f1d43 Add borders to collapsed collections/items splitters
We can think about making them more wider, etc., but this makes them ever so
slightly more visible.
2015-02-23 19:48:28 -05:00
Dan Stillman
b80d4cd369 Update locales from Transifex 2015-02-23 03:43:35 -05:00
Dan Stillman
a61157f8e3 Change "Zotero" button tooltip to "Open Zotero" 2015-02-23 03:33:34 -05:00
Dan Stillman
8371749bd1 Add Zotero.clientName, set to "Zotero" by default
We should eventually replace all hard-coded uses of "Zotero" with this
for use by unofficial versions (which legally can't be called "Zotero").
2015-02-23 03:31:52 -05:00
Dan Stillman
003db7c894 Toolbar icon tweaks on OS X 2015-02-23 02:38:48 -05:00
Dan Stillman
46bed210a1 Toolbar icon tweaks on Windows 2015-02-22 19:30:16 -05:00
Dan Stillman
0f402295be Toolbar icon tweaks on Linux 2015-02-22 18:56:39 -05:00
Dan Stillman
00d9bd41b3 Fix HiDPI save icon on Linux, maybe 2015-02-22 14:11:54 -05:00
Dan Stillman
7607e49ae7 Don't color gray webpage on hover 2015-02-22 06:46:07 -05:00
Dan Stillman
1abee72233 Fix toolbar buttons on Windows
Known issues:

- Hover doesn't work on the dropmarker alone, so instead of showing the
  hover effect for each segment individually, the menu-button parts are
  highlighted together, which at least looks like a choice
- When the menu-button is disabled, it still has some hover/active
  effects.
- Tested only on Windows 7
2015-02-22 06:46:07 -05:00
Dan Stillman
a85a9a632e Decrease right-padding of middle button by 1px on OS X 2015-02-22 06:46:07 -05:00
Dan Stillman
1069b483cc Fix toolbar buttons on Linux
Known issues:

- The dropmarker segment doesn't get a background highlight color on
  hover. And now you'll notice. Sorry.
2015-02-22 06:46:07 -05:00
Aurimas Vinckevicius
7e67a34444 [WebPageDump] Fix regression from 5f8b56ef86 2015-02-21 21:51:01 -05:00
Aurimas Vinckevicius
7d70cc5886 [WebPageDump] Fix regression from 5f8b56ef86 2015-02-21 20:35:39 -06:00
Aurimas Vinckevicius
66eb40da32 [WebPageDump] More verbose log messages
Log full error stack
2015-02-21 20:32:45 -06:00
Dan Stillman
3089685b33 Fix display of some startup errors in toolbar icon tooltip 2015-02-21 20:34:25 -05:00
Dan Stillman
9a87f15956 Toolbar button overhaul
The address bar icon now lives in a new combo buttonset containing the main Z, "Save to Zotero", and a dropmarker for the former save-icon right-click menu (which we could conceivably use more heavily going forward now that it's more accessible). There's also a separate dedicated Save to Zotero (+ dropmarker) button, not shown by default, that can be swapped in for people who don't want the Z.

The tooltip for the save icon also now shows the keyboard shortcut (though that unfortunately makes for a lot of parentheses).

Known issues:

- Untested on ESR
- Untested on Linux
- Might need refinement on Windows
- Weird 1px horizontal area at bottom of save button that highlights dropmarker (at least on OS X)
- Probably needs a third button option with just the Z icon so that the main button and the save button can be placed separately (e.g., save button in toolbar, Z in panel)
- Combo buttonset needs an inactive single-icon state for the palette and either needs a state for the panel (which might need to span all three columns?) or if possible should just move the other two icons in and put itself back in the palette
- The absurd amount of time and CSS it took to get the toolbar icons looking right on OS X, since apparently no one has put a menu-button inside a combined toolbar button before
2015-02-21 04:16:34 -05:00
Dan Stillman
20d4ab2d0a Merge locales from Transifex 2015-02-19 18:08:13 -05:00
Dan Stillman
ba2a16531b Add "Show Item in Library" button to note-too-long window
TODO: other too-long errors
2015-02-19 17:44:35 -05:00
Dan Stillman
110bf42e5f Click a button in the sync error panel should close the panel 2015-02-19 17:07:48 -05:00
Dan Stillman
629f4b3cc5 Make Zotero.Error instanceof Error, and give a less ugly name 2015-02-19 17:06:59 -05:00
Dan Stillman
88be886612 Sync error icon is too close to sync icon (at least on OS X)
Might need to restore this on Windows/Linux where the button styles are
different
2015-02-19 15:42:36 -05:00
Dan Stillman
88d22601d7 Fix error saving from translator context menu (from aaeb2cec) 2015-02-19 01:29:06 -05:00
Aurimas Vinckevicius
f5cd54620b Discard redundant tags in translator tester
Zotero would discard these anyway when writing to DB. So this makes for more appropriate test cases
2015-02-18 22:39:04 -06:00
Dan Stillman
424ee72f58 Additional icon changes
- Add high-res webpage icon
- Show webpage icon in grayscale when no translator (except on hover, for fun)
- Remove pre-Australis icons
- Switch to CustomizableUI API for toolbar icon
- Move icon generation code to separate file
- Add Zotero.hiRes flag for Retina/etc. displays (available only after a window
  has loaded)

Known issues:

- While the gray is mostly to be less distracting, the gray/color distinction
  will probably be lost on most people. A separate guidance panel for the gray
  icon might help.
- On pages with frames, the webpage icon appears first and then is replaced
  with a translator icon.
2015-02-18 17:10:19 -05:00
Dan Stillman
0eefd24d92 Fix color of Z icon on OS X for current Firefox theme
The Firefox theme changed at some point since Australis to use darker,
non-gradient icons. (Sorry ESR users.)

Not sure if this needs to change on Win/Linux too.
2015-02-18 05:39:29 -05:00
Aurimas Vinckevicius
7b621420f7 Fix possible infinite loops 2015-02-17 22:12:52 -06:00
Dan Stillman
aaeb2cec9d Show address bar icon on all web pages in Firefox
The icon now will save using a translator if possible and otherwise fall back
to creating a web page item. This also removes the "Create Web Page Item from
Current Page" button.

Let's see how this feels. (Pushing it to the beta so more people can try it.) I
think we ultimately should do this, but my main concern with this
implementation is that it's just too distracting, since the icon disappears and
reappears on every page. A persistent, possibly monochrome icon that was just
sometimes disabled (as is the case for the Firefox bookmark toolbar icon) might
be better.

Regardless of the approach, there are some follow-up tweaks that should be made:

- The same thing in the connectors
- Context-menu options
- Different icons and descriptions for different file types (PDF, image)?
- Adjust guidance text? Have separate guidance panels for web vs. translation?
2015-02-17 03:43:45 -05:00
Dan Stillman
47a062c9a8 Fix potential infinite loop dragging large HTML notes 2015-02-17 01:39:40 -05:00
Dan Stillman
42c55ee5f3 Fix file sync error with filenames containing slashes
These shouldn't exist, but something either didn't used to or still isn't
protecting against them, so strip them in getFile().
2015-02-16 17:26:51 -05:00
Simon Kornblith
64f7710877 Merge pull request #409 from aurimasv/cookies
Manage cookies received from other hosts.
2015-02-14 13:24:58 -05:00
Dan Stillman
161733b207 Merge pull request #630 from aurimasv/attach-url
Don't try to parse path if it looks like a web URL
2015-02-11 01:22:39 -05:00
Dan Stillman
884132ac8b Merge pull request #629 from aurimasv/varDump-exception
Handle XPCOM Exceptions in varDump
2015-02-11 01:18:48 -05:00
Dan Stillman
62aa5acc0d Fix NO_INTERFACE console error after itembox/tagsbox edit in Fx36
In Fx36+, QIing the scrollbox to nsIScrollBoxObject throws NO_INTERFACE,
presumably because https://bugzilla.mozilla.org/show_bug.cgi?id=364612
was implemented in some other ticket.
2015-02-10 22:45:51 -05:00
Aurimas Vinckevicius
cae9a89b9d Fix syntax error in varDump 2015-02-10 21:26:50 -06:00
Simon Kornblith
aeada8032c Fix XML-based import, export, and search translators on Firefox 36 2015-02-10 22:01:52 -05:00
Aurimas Vinckevicius
264e1f8835 Don't try to parse path if it looks like a web URL
Also, cleaner parsing messages
2015-02-10 20:50:08 -06:00
Aurimas Vinckevicius
8e25a4bdf3 Handle XPCOM Exceptions in varDump 2015-02-10 20:49:16 -06:00
Dan Stillman
1afa1ffea6 Update submodules, repotime, and versions 2015-02-10 00:13:42 -05:00
Dan Stillman
a98e6ab4fb Merge pull request #627 from aurimasv/connector-double-proxy
Don't proxify proxied hosts
2015-02-09 04:57:47 -05:00
Dan Stillman
f7a2ef6698 Merge pull request #614 from aurimasv/file-attachments
Allow file paths to be specified in attachment.url
2015-02-09 04:49:42 -05:00
Aurimas Vinckevicius
82998e986e Don't proxify proxied hosts 2015-02-09 00:57:56 -06:00
Dan Stillman
f04ae4ce47 Update "Swap First/Last Names" case, in preparation for #605 2015-02-07 05:31:51 -05:00
Aurimas Vinckevicius
ed2b6ccec3 Don't promote attachment.url to attachment.path
...but allow demoting from path to url if necessary.
2015-02-04 03:20:11 -06:00
Aurimas Vinckevicius
cf9ec26eb4 Disallow attachment.path in web/search translators 2015-02-04 02:54:13 -06:00
Dan Stillman
424af025b3 Merge pull request #608 from COV-Steve/4.0
Fix for OpenURL 0.1 resolver detection
2015-02-03 22:28:17 -05:00
Aurimas Vinckevicius
27502a60b2 Disable expand/collapse shortcuts in coll. tree when in-line editing 2015-02-03 14:43:52 -06:00
Dan Stillman
3aaf9e341c Fix NO_INTERFACE error after entering tag in tags box 2015-02-03 15:36:01 -05:00
Dan Stillman
6f811cbbd0 Update submodules 2015-02-03 00:51:46 -05:00
Simon Kornblith
449086672c Fix #619, Retrieve metadata via Google Scholar broken in Firefox 31-34 2015-02-02 23:28:59 -05:00
Dan Stillman
496d4c5e77 Properly show saveURI errors in Zotero.Attachments.importFromURL() 2015-02-01 21:09:13 -05:00
Dan Stillman
f5c173b1e5 Fix saving files from translators
(More breakage from 5f8b56ef8)
2015-02-01 21:07:24 -05:00
Dan Stillman
fb8149e6db Clarify icon comment 2015-01-31 16:01:53 -05:00
Dan Stillman
bcacb79489 Fix remote file saving
5f8b56ef8 was so many different kinds of broken
2015-01-31 15:23:58 -05:00
Frank Bennett
5cfe4db098 Use nav-bar as target ID for Zotero nav bar icon
The statusBarIcon pref is retained to maintain state across
starts.
2015-01-30 22:42:34 +09:00
Dan Stillman
9232dd5247 Merge locales from Transifex, though it's all Greek to me 2015-01-30 04:45:41 -05:00
Dan Stillman
7aff743da6 Remove trailing space 2015-01-30 04:45:40 -05:00
Dan Stillman
f04b641f3c Merge pull request #617 from aurimasv/content-handler
Content handlers
2015-01-30 04:09:03 -05:00
Dan Stillman
d8f2d4b268 Merge branch 'fx36-saveURI' into 4.0 2015-01-30 03:56:58 -05:00
mizu
5f8b56ef86 Fix saveURI() in Firefox 36+ 2015-01-30 03:55:35 -05:00
Dan Stillman
783ba4a0b7 Merge pull request #618 from aurimasv/prefs-unicode
Retrieve unmangled unicode strings from preferences
2015-01-30 03:42:34 -05:00
Aurimas Vinckevicius
ab7fc1614d Fix bug in collectionTreeView that caused tree row loss
...when collapsing/expanding group libraries
2015-01-29 19:31:55 -06:00
Aurimas Vinckevicius
d98a79c33f Fix typo in item field caching code 2015-01-29 19:31:54 -06:00
Aurimas Vinckevicius
9574e56ad6 Convert itemType to itemTypeID in itemTreeView.js, not items.js
itemType comes from the column name in the tree view, so it makes most sense to do it there. Otherwise, Zotero was complaining about invalid field somewhere
2015-01-29 19:31:54 -06: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
f2ffc30728 Merge pull request #607 from rmzelle/rename-style-panes
Localize Style Editor and Preview and other improvements
2015-01-28 22:57:10 -05:00
rmzelle
0be9e73b51 Further improvements to Style Editor and Preview
* Clean up code (remove some pre-CSL 0.8.1 code, see also e32e6aa2f5 )
* Complete localization
* Save vertical space. Editor: remove "pre-wrap" wrapping, use smaller headers, add grippy to collapse CSL code. Preview: remove groupbox
2015-01-28 22:20:20 -05:00
rmzelle
eec1ba4c73 Put JavaScript code from Style Editor and Preview into separate files 2015-01-28 22:20:20 -05:00
rmzelle
6fd3b298de Rename Reference Test and Preview panes
* Also start localization of Zotero Style Preview
2015-01-28 22:07:39 -05:00
Dan Stillman
276cd82fe4 Fix NO_INTERFACE error tabbing between fields
Not sure why this is throwing, but I'm also not sure why it was
necessary in the first place
2015-01-28 18:28:44 -05:00
Dan Stillman
8499ec6211 Allow extra data for single-object notifications to be passed directly
Previous it had to be keyed by id (and still can be, but if there's only
a single id the notifier will now key it automatically)
2015-01-28 17:25:17 -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
6199742986 Make attempt to read from an invalid DB column a fatal error 2015-01-28 15:56:46 -05:00
Aurimas Vinckevicius
5db52ac1c3 Add 'year' as a gettable field for Zotero.Item 2015-01-26 15:46:56 -06:00
Aurimas Vinckevicius
a0a656eac0 Allow setting a specific dateModified on item
To be used in feed items to set the last _remote_ modification date
2015-01-26 15:46:49 -06:00
Aurimas Vinckevicius
7f5555aab6 Inheritance-based Zotero.DataObjects 2015-01-26 15:46:49 -06:00
Aurimas Vinckevicius
707a65c63e Remove deprecated Zotero.Items.add 2015-01-26 15:46:49 -06:00
Dan Stillman
55d84bcbf3 Merge pull request #609 from aurimasv/retrieve-meta-max-pages
Allow MAX_PAGES (for retrieving metadata) to be user-adjustable
2015-01-21 01:01:47 -05:00
Aurimas Vinckevicius
e8e0f5e831 Bump MAX_PAGES to 15
Re https://forums.zotero.org/discussion/45641/error-getting-metadata/#Item_10
2015-01-20 23:58:41 -06:00
Aurimas Vinckevicius
11017b650c Retrieve unmangled unicode strings from preferences 2015-01-20 23:28:22 -06:00
Aurimas Vinckevicius
f7893ef400 Don't require Zotero restart to change RIS/BibTeX handling preference 2015-01-20 22:46:30 -06:00
Aurimas Vinckevicius
3f3666c972 Add Zotero.Prefs.registerObserver
* Easier monitoring of preference changes
* Takes a preference name and a handler function that will be passed the new value of the preference
* Unregister observer via Zotero.Prefs.unregisterObserver with the same parameters
2015-01-20 22:45:28 -06:00
Aurimas Vinckevicius
4ecdd55717 Continue with default if declining Zotero to handle RIS/BibTex/etc. 2015-01-20 21:54:05 -06:00
Aurimas Vinckevicius
8be83cedec Allow file paths to be specified in attachment.url
In translators, it may not always be clear whether the given URI is a URL or a local file path.
Regression from 849803473a (that piece of code was introduced by me)
Re https://forums.zotero.org/discussion/45710/ris-import-from-endnote-mac-yosemite-to-zotero-standalone/
2015-01-19 15:13:49 -06:00
Aurimas Vinckevicius
20444eceb7 Sanitize primary fields in setField before comparing to current value 2015-01-19 11:16:17 -06:00
Aurimas Vinckevicius
f0aae549c5 Allow bypassing library edit check when saving data objects
Pass {skipEditCheck: true} option to .save()
2015-01-19 11:16:17 -06:00
Aurimas Vinckevicius
efdc6f1230 Add loadAllData to Zotero.dataObject
Useful when trying to duplicate items, which requires access to all data
2015-01-19 11:16:17 -06:00
Aurimas Vinckevicius
84d8c17d6e Move erase to DataObject and make it modular 2015-01-19 11:16:16 -06:00
Aurimas Vinckevicius
cb56b9607d Move loadPrimaryData to Zotero.DataObject 2015-01-19 11:16:16 -06:00
Aurimas Vinckevicius
b83bc40426 Various fixes for Zotero.Item 2015-01-19 11:16:16 -06:00
Aurimas Vinckevicius
83187eaa35 Validate numeric field IDs 2015-01-19 11:16:16 -06:00
Aurimas Vinckevicius
adab8e45a7 Additional tweaks to DataObject & descendents to support inheritance 2015-01-19 11:16:15 -06:00
Aurimas Vinckevicius
442388304b Add Zotero.Libraries.isGroupLibrary 2015-01-19 10:37:22 -06:00
Aurimas Vinckevicius
9f535e0e91 Use Zotero.extendClass for inheritance 2015-01-19 10:37:22 -06:00
Aurimas Vinckevicius
a56e800d7c Add Zotero.localeCompare
Can be used directly in Array.sort() as the sorting function.
Uses LocaleCollateion.compareString internally
2015-01-19 10:37:21 -06:00
Aurimas Vinckevicius
9700cdde38 Add Zotero.extendClass 2015-01-19 10:37:21 -06:00
Aurimas Vinckevicius
f7220378dd Pass fixGaps to Zotero.Search.save() in an options object 2015-01-19 10:36:42 -06:00
Aurimas Vinckevicius
e02945b591 Add a centralized, modular .save() method to DataObject
.save calls ._initSave(), _saveData(), _finalizeSave() internally passing `env` object to each to act as an environment for passing around variables
* _initSave should determine if the save is possible and return a promise for either `true` or `false`. It should also set up the environment, e.g. determine if this `isNew`
* _saveData performs the actual saving to the database, but should not do any terminal steps in the save process so that any extending classes could extend this method to write additional data to the database
* _finalizeSave should perform any finalization before the data is committed to the database.

_recoverFromSaveError is called with `env` and an error that occurred. This method should perform any recovery steps, e.g. discarding the save and reloading the item from the database into the cache.
2015-01-19 10:36:42 -06:00
Aurimas Vinckevicius
56f244a4bb Add id and libraryID getters for all data objects 2015-01-19 10:36:42 -06:00
Aurimas Vinckevicius
4657c46d4b getClassForObjectType => getObjectsClassForObjectType 2015-01-19 10:36:41 -06:00
Aurimas Vinckevicius
c222a3248a Transition __defineGetter/Setter__ to Zotero.defineProperty 2015-01-19 10:36:41 -06:00
Aurimas Vinckevicius
f7d5ebc357 Default to "configurable: true" in defineProperty 2015-01-19 10:36:41 -06:00
Aurimas Vinckevicius
29e9946123 Allow to define properties for late initialization via defineProperty 2015-01-19 10:35:33 -06:00
Aurimas Vinckevicius
d4bd0ee811 Move defineProperty from ZU.Internal to Zotero 2015-01-19 10:31:39 -06:00
Aurimas Vinckevicius
869fdf61ae Make sure that there's always a title for a given URL
E.g. https://read.amazon.co.uk/?asin=XXXXXXXXX was resulting in a blank title
2015-01-18 10:41:17 -06:00
Aurimas Vinckevicius
79a79bb47a Fix typo in attachLink.xul 2015-01-18 10:40:12 -06:00
Simon Kornblith
06615f738f Tweak method for parsing XML without a window to handle UTF-8 properly
Fixes issue reported at https://forums.zotero.org/discussion/45556
2015-01-14 01:56:09 -05:00
Steve Jamieson
0d2a205110 Fix for OpenURL 0.1 resolver detection
The discoverResolvers function was looking for the wrong XML tag name representing OpenURL version 0.1 in the response from the WorldCat Registry
2015-01-13 14:20:57 -06:00
Simon Kornblith
7d19e17bb9 Ensure that we pass WebPageDump an XPCNativeWrapper
Fixes some CSS issues in snapshots
2015-01-13 01:51:03 -05:00
Dan Stillman
f1a3cb3577 Update versions, submodules, and repotime 2015-01-12 21:54:56 -07:00
Simon Kornblith
90625e8a05 Fix translators callback from translators on Fx 35 (affects COinS) 2015-01-12 19:33:12 -05:00
Simon Kornblith
5c76347674 Improve translation on Nightly (with e10s disabled)
I haven't fully tested, but this fixes Google Scholar
2015-01-12 11:27:39 -05:00
Simon Kornblith
e082a4fc28 Fix PDF metadata retrieval on Fx 35 2015-01-12 02:44:09 -05:00
Simon Kornblith
da7ee2ba26 Tweak sandboxing for Firefox 35
Now we have to wrap cross-origin objects with a wrapper on the sandbox
side. Also, Function.prototype.apply.apply...
2015-01-12 01:41:01 -05:00
Simon Kornblith
fa75beeefd Fix bookmarklet under Chrome
checkIsOnline isn't called before the connector gets used except in IE.

The mixed content blocker in modern IE combined with the https
redirect breaks communication with ZSA on all pages anyway, so we may
just want to give up on making the bookmarklet talk to ZSA.
2015-01-08 01:46:20 -05:00
Simon Kornblith
541ebd1f22 Merge pull request #596 from aurimasv/conn-reg
Fix regression from 0cd183613f
2015-01-07 20:10:34 -05:00
Philipp Zumstein
d5b4c31575 Right pane (item-pane) can be collapsed
This belongs to issue #509 and was asked several times in the forum.

 * Add attribute `collapse="after"` to the splitter and add a grippy element.
 * To remember its state after restart I copied `zotero-persist="state"`.
 * Handle zotero-items-splitter the same as zotero-collections-splitter in zotero-platform/mac/overlay.css
 * Change min-width to 250px for #zotero-item-pane in zotero/overlay.css.
 * Update the function `updateToolbarPosition` in zotero/zoteroPane.js:
   * The width of the items-toolbar is corrected if the left pane is collapsed (and the icons are grouped on the left margin together).
   * If the right pane is collapsed, then the items-toolbar is made flexible while making the item-toolbar unflexible. As a result the search box and locate icon are flushed right to the other icons.
2015-01-07 10:41:18 +01:00
Aurimas Vinckevicius
e530c3a001 Remove unnecessary newline in TranslatorTester log output 2014-12-29 05:28:44 -06:00
Aurimas Vinckevicius
08c3effe6e Allow meta redirects when running tests and account for new document 2014-12-29 05:28:01 -06:00
Dan Stillman
3792e94c10 Merge non-English strings from Transifex 2014-12-27 14:14:31 -05:00
Aurimas Vinckevicius
8d7db5a63e Remove safeDebug 2014-12-27 01:43:33 -06:00
Aurimas Vinckevicius
20a50d1aaa Refactor Zotero.Utilities.varDump. Add handling for Error and XPCOM objects 2014-12-27 01:43:33 -06:00
Dan Stillman
0b3b296e28 Keep active item pane editing field open when window loses focus
Closes #153
2014-12-26 14:16:41 -05:00
Dan Stillman
d82f8e91dc Update locales from Transifex 2014-12-19 14:23:46 -05:00
Dan Stillman
3024162bfe Merge pull request #510 from mtd91429/linkURI
Link URI re: issue #486
2014-12-16 12:01:22 -05:00
MTD
849803473a Address silent failure of unrecognized URIs in Attach Link to URI
Generated files for a more robust attached-link-dialog and localized strings
* AttachLink.js
* AttachLink.xul

zotero/xpcom/attachments.js
* created function cleanAttachmentURI
* in function linkFromURL, removed the regex constraints and the comment list of valid protocols
* removed outdated function declaration from beginning of script
* Improved automatic title generation mechanism
2014-12-16 11:20:55 -05:00
Dan Stillman
950302d8ee Merge pull request #507 from f-mb/quick-search-for-civil-law-case
Allow QuickSearch to search for civil law cases
2014-12-15 19:43:58 -05:00
Aurimas Vinckevicius
bb53e7beb2 Fix regression from 0cd183613f
Was breaking connectors
2014-12-11 15:00:50 -06:00
Aurimas Vinckevicius
2f79cb221f Fix duplicate matching when ISBN is non-sensical
Re https://forums.zotero.org/discussion/43046/items-mistakenly-identified-as-duplicates/
2014-12-10 15:59:26 -06:00
Dan Stillman
ee389f106e Merge pull request #593 from rmzelle/update-csl-preview
Update cslpreview.xul
2014-12-10 14:30:02 -05:00
rmzelle
e2f1f354f3 Update Zotero Preview pane
* Remove splitter
* Add explanation of how Zotero Preview pane works
* Limit filtering to citation format
  Also add support for “citation-format” attribute of CSL 1.0
* Remove redundant warning
  (already happens on this.refresh)
* Use "items" instead of "references"
* Clean up HTML a little
* Fix some JSHint warnings
2014-12-10 07:42:05 -05:00
Dan Stillman
09638cbd2c Merge pull request #585 from aurimasv/nfc
Normalize all user and translator input to NFC
2014-12-09 19:21:04 -05:00
Dan Stillman
20dd8c89d8 Remove "CSL" column in Cite -> Styles preferences 2014-12-09 19:19:40 -05:00
Dan Stillman
3a058c68ed Use config URL for all repo requests, and move config to separate file 2014-12-09 18:53:53 -05:00
Dan Stillman
c28ef6f2d6 Use HTTPS for proxy auth check 2014-12-09 18:36:06 -05:00
Dan Stillman
2a27cd506d Remove DB_REBUILD config option
I don't think anyone has used this in many years.
2014-12-09 18:35:03 -05:00
Dan Stillman
4f7e5446e8 Remove unused block 2014-12-09 17:49:15 -05:00
Aurimas Vinckevicius
9ee67ca291 Disable ZSA ping from bookmarklet in non-IE browsers
This means that bookmarklet will only save to server.
2014-12-09 13:12:05 -06:00
Dan Stillman
e3d7101923 Update version 2014-12-02 00:26:41 -05:00
Dan Stillman
d894fdb1d4 Fix citation list generation via right-click and quick copy
Broken by 523724185

Not sure if cslEngine.opt.class is a safe way to get the class. @fbennett?
2014-12-01 17:12:07 -05:00
Dan Stillman
0fd0da2903 Fix "getItemAtRow(...) is undefined" error for some item modifications
Since 67c63a29
2014-12-01 16:51:11 -05:00
Simon Kornblith
01c80610b4 Maybe fix for Firefox 31
Still need to test more comprehensively
2014-12-01 03:17:03 -05:00
Simon Kornblith
0cd183613f Fix for Firefox 34
Passing sandboxes between translators became difficult. This change
loads all translators in the same sandbox, using the same ugly hack as
in the connectors to get us close enough to being able to load
translators into separate scopes for things to work.

Conflicts:
	chrome/content/zotero/xpcom/translation/translate.js
2014-12-01 02:48:53 -05:00
Dan Stillman
524a71cfe8 Fix sync error with missing base directory set
Fixes #376
2014-12-01 02:32:44 -05:00
Dan Stillman
43c03c6aca Update another version 2014-12-01 02:18:04 -05:00
Dan Stillman
d7d542a79c Update version, submodules, and repotime 2014-12-01 02:17:09 -05:00
Dan Stillman
67c63a2968 Remove child items from view when removing parent
https://forums.zotero.org/discussion/42218/
2014-11-28 16:37:40 -05:00
Dan Stillman
55068a0059 Use the whole firstCreator string in sortCreatorAsString mode
And in the default mode, use the whole string up through 'and' or 'et al.'
before falling back to full creator sorting, which could speed things up
slightly.
2014-11-26 20:12:07 -05:00
Aurimas Vinckevicius
bd87bd3f56 Normalize all user and translator input to NFC
This includes storing values into DB and performing searches. Note that export/display of existing data is not normalized. We can try to capture all access points to the database and normalize on output, but that seems like a lot of unnecessary normalization happening all the time. Would probably be best to just normalize existing data.
2014-11-23 13:55:01 -06:00
Aurimas Vinckevicius
ff28b24389 Don't use let inside translate.js. Breaks connectors 2014-11-20 08:42:27 -06:00
Aurimas Vinckevicius
325f0618d6 Resolve protocol-relative URLs outside of document context
by defaulting to HTTP
2014-11-20 06:55:22 -06:00
Dan Stillman
6e43942385 Fix UI issues with Cyrillic mime types, hopefully 2014-11-17 23:20:11 -05:00
Aurimas Vinckevicius
aca15c0d2d Fix deleting saved searches 2014-11-14 01:50:02 -06:00
Aurimas Vinckevicius
0e31e7ca01 Wait for the item pane to initialize before focusing first field 2014-11-14 01:50:02 -06:00
Dan Stillman
828bcd9a11 Merge pull request #577 from fbennett/csl-once-on-drag
Instantate CSL processor once on drag, changing output mode on the fly
2014-11-13 17:15:55 -05:00
Dan Stillman
7ac1ba5242 Fix file sync error with Hola extension enabled
With Hola enabled, uploads were failing with NS_BASE_STREAM CLOSED -- it
seems to do something that causes the stream to be read more than once.
Adding REOPEN_ON_REWIND fixes this.
2014-11-12 20:09:39 -05:00
Simon Kornblith
9017aa69db Fix typo 2014-11-12 14:45:15 -05:00
Dan Stillman
cefab23888 Add tooltip to Zotero toolbar button 2014-11-10 18:06:17 -05:00
Frank Bennett
523724185c Instantate CSL processor once on drag, changing output mode on the fly 2014-11-09 06:46:37 +09:00
Dan Stillman
e4451d9002 Merge pull request #575 from aurimasv/async_db-av
Async DB tweaks (attempt 2)
2014-10-30 01:47:49 -04:00
Dan Stillman
efa8346d37 Create user library row in libraries table when initializing DB 2014-10-30 01:22:58 -04:00
Aurimas Vinckevicius
3f85ee73b3 Don't count on 0 being the user libraryID in Zotero.Libraries
Some other minor tweaks
2014-10-29 23:52:21 -05:00
Aurimas Vinckevicius
bc8a340c30 Virtualize data objects 2014-10-29 23:51:43 -05:00
Aurimas Vinckevicius
5ee40f6601 Add ZU.dom2text and Zotero.Utilities.Internal.getDOMDocument
* getDomDocument: returns a detached DOMDocument object
* dom2text (TODO): Currently just returns Node.textContent, but is intended to return Zotero-formatted string based on text formatting in the DOM and the Zotero.Item field that the text is meant for
2014-10-29 22:16:21 -05:00
Dan Stillman
5bfc1e4199 Fix comment - force-delete on Win/Linux is Shift, not Ctrl 2014-10-28 13:45:55 -04:00
Aurimas Vinckevicius
3b4c502ca9 [RecognizePDF] Attempt to search by ISBN even if we found a DOI
(but only if DOI search failed)
2014-10-24 14:18:26 -05:00
Aurimas Vinckevicius
15722e5022 Allow calling Zotero.Translate.*.translate without setting translator first.
This simply means that detection code will be run first.
Attempting this with Export translators will fail, because trying to detect a translator does not make sense in this case.
2014-10-24 14:18:26 -05:00
Dan Stillman
f635d82ea6 Merge pull request #553 from aurimasv/async_db_if_exists
To be safe, DROP things only IF EXISTS for database upgrade.
2014-10-23 19:38:35 -04:00
Aurimas Vinckevicius
20564dd13a To be safe, DROP INDEX only _IF EXISTS_ for database upgrade.
Triggered by DROP INDEX fulltextItems_version, which apparently doesn't always exist.
2014-10-23 13:18:00 -05:00
Aurimas Vinckevicius
151e95075a Allow dependent styles to override parent style locale
Re https://forums.zotero.org/discussion/36595/defaultlocale-of-dependent-doesnt-override-that-of-its-parent/
2014-10-23 13:00:36 -05:00
Dan Stillman
a737f2c2aa Treat 260-character paths as too long on Windows
I understood the path limit to mean >260, but a user is seeing the error
with a 260-character path [1], so let's try this.

[1] https://forums.zotero.org/discussion/41410
2014-10-21 13:03:52 -04:00
Dan Stillman
226928f1e9 Debugging for "types[i] is undefined" error 2014-10-21 00:45:48 -04:00
Dan Stillman
6c814e2fa2 Update version 2014-10-14 22:55:07 -04:00
Simon Kornblith
4984e87ade Reinstate __exposedProps__
This is ignored in Firefox 33, but seemingly still necessary in
Firefox 32
2014-10-14 22:44:04 -04:00
Dan Stillman
12619273b5 Update submodules and repotime 2014-10-14 03:26:15 -04:00
Dan Stillman
aab3276276 Use old-style searchbox in Yosemite pre-Fx34
Yosemite introduces a new search textbox shape, but Firefox still uses
the old focus ring shape until 34, so we fake the old searchbox shape
for earlier versions.
2014-10-14 02:22:44 -04:00
Simon Kornblith
1f41253256 Update citeproc-js to 1.0.543 2014-10-13 23:25:24 -04:00
Dan Stillman
94060e113f Remove debugging for download overlay issue 2014-10-10 19:23:52 -04:00
Dan Stillman
39b01b80e0 Additional debugging for download overlay issue 2014-10-10 19:18:09 -04:00
Simon Kornblith
d3a69be997 Fix translation under Firefox 33
Our strategy: put arguments into a property of the function, and then
get them out unwrapped. This avoids security checks on arguments passed
to the function.
2014-10-10 18:31:10 -04:00
Dan Stillman
fc0f541ad8 Additional debugging for saving from download overlay 2014-10-10 18:03:13 -04:00
Dan Stillman
8359db1426 Better debugging for saving from download overlay 2014-10-10 17:36:49 -04:00
Dan Stillman
9c9b8b835d Fix crash when dragging items to collections from advanced search window
(Dragging to the items list is still disabled.)
2014-10-10 16:01:09 -04:00
Dan Stillman
5c94119c70 Fixes duplicates view for async DB
It's way too slow, though, since the whole list is regenerated after
merging.

Fixes #519

Also:

- The arguments to Zotero.Item.prototype.clone() have changed, and it no
  longer takes an existing item or copies primary data. To create an
  in-memory copy of an item, use the new Zotero.Item.prototype.copy().

- Zotero.Item.prototype.getUsedFields() now gets in-memory fields rather
  than the fields in the database
2014-10-10 04:49:39 -04:00
Dan Stillman
15d28014ed Fix creator type assignment in item box 2014-10-10 04:46:10 -04:00
Dan Stillman
7fa931425a Rename Zotero.Item.prototype.getCreatorsAPIData() to getCreatorsJSON
And add Zotero.Item.prototype.setCreators()
2014-10-10 04:46:09 -04:00
Dan Stillman
3c81067961 Use DB libraryID for check in Zotero.Libraries.getType()
Before, 'user' wouldn't be returned if the real libraryID was given for
the personal library.
2014-10-10 04:44:16 -04:00
Dan Stillman
7541106641 Update Bluebird to 2.3.5
Our modifications no longer include a custom yield handler to
automatically call all() on yielded arrays (which maintained Bluebird
1.x behavior). It's now necessary to call all() or similar explicitly.

Also fixed a few incorrect yields hidden by that behavior.
2014-10-09 14:21:10 -04:00
Dan Stillman
e34c0db060 Make 'https' the default in WebDAV prefs drop-down 2014-10-08 13:49:41 -04:00
Dan Stillman
eba296a45f Closes #554, Sync settings pane should point to new TOS 2014-10-08 13:11:30 -04:00
Dan Stillman
497939bb28 Fix "Open Account Settings" button in quota dialog in Standalone
(Untested, but this should work.)
2014-10-08 13:04:56 -04:00
Dan Stillman
71bd1a7f99 Fix state check errors (middle-pane restart messages) during syncing
The state check errors were caused by 4812ab6f, which was a fix for
"Q.async(...)(...) is undefined" errors caused by ad8b81f4c, which was a
fix for "too much recursion" errors related to Task.spawn() on Windows
with JIT enabled.
2014-10-05 12:03:50 -04:00
Dan Stillman
72bb8acfd1 Fix previous commit 2014-10-03 16:06:01 -04:00
Dan Stillman
0f2e24dc5c Log state check errors (and other logError calls) to debug output 2014-10-03 16:05:14 -04:00
Dan Stillman
27804bb47c Fix database backup on userdata upgrade
Also uncomment standard backup age tests
2014-09-30 23:15:34 -04:00
Dan Stillman
e2d3cc3f0d Update zotero://select to use new URLs and wait for items list load
Closes #541
2014-09-23 01:13:38 -04:00
Dan Stillman
cb707a55c8 Fix breakage from 10ba5e31d 2014-09-20 16:34:36 -04:00
Dan Stillman
b0550273ae Update another version 2014-09-19 20:43:50 -04:00
Dan Stillman
f09871a1ee Convert additional for..in loops to for loops in getDisplayTitle() 2014-09-19 20:39:23 -04:00
Dan Stillman
10ba5e31d6 Fix error from letter items with more than 10 recipients
https://forums.zotero.org/discussion/40218/
2014-09-19 20:37:59 -04:00
Dan Stillman
ce6cba7974 Don't log stack trace for getString() failure unless unexpected 2014-09-19 15:52:53 -04:00
Dan Stillman
fd31e41e2f Add localization todos 2014-09-18 17:41:46 -04:00
Dan Stillman
57ec10dfd4 Remove unnecessary var 2014-09-18 17:35:25 -04:00
Dan Stillman
48955c8983 Check ext length explicitly in createShortened when checking path length 2014-09-18 17:34:10 -04:00
Dan Stillman
2a986c8635 Don't match extension in createShortened() for dot-files (.hidden) 2014-09-18 17:23:57 -04:00
Dan Stillman
5a8de7054c Ignore case when extracting extension in Zotero.File.createShortened() 2014-09-18 16:54:05 -04:00
Dan Stillman
f5b5617885 Improve long-filename handling during syncing
This will hopefully fix some remaining issues with long filenames during
syncing, particularly on Linux with encrypted filenames (which have a
filename length of 143).

(This may have reintroduced some edge case bugs, so it needs some
testing.)
2014-09-18 16:23:49 -04:00
Dan Stillman
4464e8ed9e Additional debugging for formatStringFromName error 2014-09-16 15:46:13 -04:00
Dan Stillman
61d7bd852b Debugging for strange Zotero.getString() error 2014-09-11 21:07:19 -04:00
Dan Stillman
c917d9e30e Use only keys for collections and saved searches in search conditions
Previously, 'collection' and 'savedSearch' conditions used
"[libraryID]_[key]" format. Now, the condition should contain only a
key, and the libraryID will be drawn from either the search itself or a
libraryID search condition. Old-style conditions are still parsed if
provided.
2014-09-09 02:50:56 -04:00
Dan Stillman
985a5db0da Throw error if NULL libraryID is passed to DataObjects.getByLibraryAndKey() 2014-09-09 02:31:17 -04:00
Dan Stillman
755ead2119 Update zotero:// extensions (report, timeline, etc.) for async DB, and more
- Protocol handler extensions can now handle promises and can also make
  data available as it's ready instead of all at once (e.g., reports now
  output one entry at a time)
- zotero:// URL syntaxes are now more consistent and closer to the web
  API (old URLs should work, but some may currently be broken)

Also:

- Code to generate server API, currently available for testing via
  zotero://data URLs but eventually moving to HTTP -- zotero://data URLs match
  web API URLs, with a different prefix for the personal library (/library vs.
  /users/12345)
- Miscellaneous fixes to data objects

Under the hood:

- Extensions now return an AsyncChannel, which is an nsIChannel implementation
  that takes a promise-yielding generator that returns a string,
  nsIAsyncInputStream, or file that will be used for the channel's data
- New function Zotero.Utilities.Internal.getAsyncInputStream() takes a
  generator that yields either promises or strings and returns an async input
  stream filled with the yielded strings
- Zotero.Router parsers URLs and extract parameters
- Zotero.Item.toResponseJSON()
2014-09-09 00:36:29 -04:00
Dan Stillman
ff5007fdea Fix error fetching empty file via File.getContentsAsync() 2014-09-09 00:35:35 -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
Simon Kornblith
55f86f4295 Fix error handling for saveItems 2014-09-05 00:28:34 -04:00
Dan Stillman
9cd7423dd7 Change cert error message URL to https:// 2014-09-02 23:28:20 -04:00
Simon Kornblith
431185cc3a Merge pull request #531 from aurimasv/high-contrast
Use Mozilla's colors for itembox and tagbox background
2014-09-01 23:30:35 -04:00
Simon Kornblith
57da88ac3d Fix == use 2014-09-01 23:19:12 -04:00
Simon Kornblith
9146fb03d9 Merge pull request #536 from adam3smith/coinsfix
test for presence of author's firstName before using it
2014-09-01 23:18:39 -04:00
adam3smith
17c0f44e66 fix indenting 2014-09-01 19:25:10 -05:00
Simon Kornblith
9c3ec6f0be Fix DataCite under Fx 32 2014-09-01 20:00:31 -04:00
Simon Kornblith
79ed7e503e Fix MODS under Fx 32 2014-09-01 19:29:45 -04:00
Simon Kornblith
a09ff9c9ec Don't unwrap objects passed to chrome
Unwrapping objects also waives the Xray wrappers for contained objects,
which we need.
2014-09-01 18:42:24 -04:00
adam3smith
f973897d76 test for presence of author's firstName before using it 2014-09-01 14:31:51 -05:00
Simon Kornblith
5857368131 Update citeproc-js to 1.0.539 2014-09-01 15:04:52 -04:00
Dan Stillman
14a5643f38 Update submodules, repotime, versions 2014-09-01 14:56:01 -04:00
Simon Kornblith
ee35f7df41 Small fix to copyObject 2014-09-01 12:26:36 -04:00
Aurimas Vinckevicius
dc5ccffe43 Use Mozilla's colors for itembox and tagbox background
This way, the colors play nicely with Windows themes (e.g. high contrast)
Re https://forums.zotero.org/discussion/38870/make-zotero-fully-recognize-windowsff-high-contrast-themes/ and https://twitter.com/stuffilike2know/status/504167872567189504
2014-08-26 03:11:24 -05:00
Dan Stillman
9db4927f78 Scroll to new collections, and stay on same row when deleting collections 2014-08-12 22:19:59 -04:00
Dan Stillman
6dbcdb95f4 Fix variable name 2014-08-12 22:16:53 -04:00
Dan Stillman
38531ab172 Fix "Copy as HTML" checkbox disabling in Quick Copy site editor window 2014-08-12 21:49:38 -04:00
Dan Stillman
c729dc8a54 Fixes #522, [Async DB] Quick Copy is broken
Export depends on #520 (but still with a synchronous interface, somehow)
2014-08-12 21:49:30 -04:00
Dan Stillman
a67521e9dd Closes #500, Remove DOM_VK_ENTER 2014-08-12 19:18:29 -04:00
Dan Stillman
df67de125e Remove (non-async-compatible) REGEXP UDF in Zotero.DB.getNextName()
And remove UDF setup code

Duplicates view also used REGEXP, so we'll need to figure out another approach
for the async rewrite of that (#519). There are no other current UDF consumers,
so this closes #528.
2014-08-12 03:13:00 -04:00
Dan Stillman
2856b71f0b Remove some remaining synchronous queries in data objects
Fixes collection and search saving
2014-08-12 03:11:49 -04:00
Dan Stillman
78a8e6b622 Fix breakage from 278e06e58 - Zotero.DataObject signature changed 2014-08-12 02:09:45 -04:00
Aurimas Vinckevicius
278e06e588 Document Zotero.DataObject. Minor tweaks. 2014-08-12 00:26:27 -05:00
Aurimas Vinckevicius
dcd65d087c Add object key/ID validation. Centralize key generation/checking. 2014-08-12 00:26:26 -05:00
Aurimas Vinckevicius
e1f59482c4 Add Zotero.Utilities.defineProperty convenience method
Use this to create enumerable properties in object prototypes.
2014-08-12 00:24:02 -05:00
Aurimas Vinckevicius
c5a532c789 Add option to print stack with debug messages 2014-08-12 00:24:01 -05:00
Dan Stillman
15d10d18a7 Use async DB queries for schema integrity check
Addresses #521
2014-08-11 02:23:00 -04:00
Dan Stillman
ae8f871f20 Fix flash of "No items in this view" when switching collections 2014-08-11 00:40:43 -04:00
Dan Stillman
40f111832c Fix error double-clicking on unopened regular items 2014-08-11 00:40:35 -04:00
Dan Stillman
f358975153 Closes #526, Asyncify database backup
When a database backup is in progress, all other DB operations are paused until
it's done.
2014-08-10 20:21:40 -04:00
Dan Stillman
f1ed5f1f03 Remove obsolete file (Zotero.Tag no longer exists) 2014-08-10 15:00:08 -04:00
Dan Stillman
9441627e74 Allow StopIteration in queryAsync() to cancel query
And catch other errors and throw StopIteration so that they stop the
search. (Non-StopIteration errors in onRow don't stop Sqlite.jsm
queries. We were logging them but then re-throwing them, which didn't do
anything.)
2014-08-10 14:15:46 -04:00
Dan Stillman
31502de08f Zotero.DB updates
- Fix ES5 generator in executeFile()
- Remove deferred in executeAsyncStatement()
- Remove obsolete properties and wait level check
2014-08-10 02:10:03 -04:00
Dan Stillman
f5896dbb8d Remove synchronous database methods
This required doing additional caching at startup (e.g., item types and fields)
so that various methods can remain synchronous.

This lets us switch back to using the current Sqlite.jsm. Previously we were
bundling the Fx24 version, which avoided freezes with locking_mode=EXCLUSIVE
with both sync and async queries.

Known broken things:

  - Autocomplete
  - Database backup
  - UDFs (e.g., REGEXP function used in Zotero.DB.getNextName())
2014-08-09 18:10:32 -04:00
Dan Stillman
86bc20c4e9 Remove unnecessary conditionals in Zotero.DataObject constructor 2014-08-08 17:44:19 -04:00
Dan Stillman
380668cc60 Changes to item and file retrieval methods
- Zotero.Item.prototype.getFilePath() is now synchronous, with a separate async getFilePathAsync()

- getFile() no longer takes a skipExistsCheck parameter, since that shouldn't happen synchronously

- Zotero.Items.getByLibraryAndKey() is now synchronous again, with a
  separate Zotero.Items.getByLibraryAndKeyAsync() - I haven't fully
  tested this, so I'm not sure if there will need to be any async
  calls.

- Some of the full-text indexing functions now take file paths instead of nsIFile objects

- Zotero.File.getContentsAsync() can now take a string path as well
2014-08-08 17:43:26 -04:00
Dan Stillman
e33dc815a0 Log the error for file launch() failure, in case it's relevant 2014-08-07 18:29:32 -04:00
Dan Stillman
cb6fae694c Fix attachment file mtime in right pane 2014-08-07 16:03:17 -04:00
Dan Stillman
ab36dda6e7 Restore loading of renamed styles
Didn't end up on this branch somehow
2014-08-07 15:01:59 -04:00
Dan Stillman
1ca2100cf0 Add timing to tag selector 2014-08-07 15:01:32 -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
4ea5e2d426 Update code to use 0 instead of NULL for libraryID 2014-08-06 22:14:59 -04:00
Dan Stillman
368e568fe1 Don't load saved search list for every collection row 2014-08-06 22:14:59 -04:00
Dan Stillman
7c958f4bd3 Show "Loading items list..." in middle pane on window load
Otherwise with async loading the pane appears blank before the message appears
2014-08-06 22:14:58 -04:00
Dan Stillman
b20a2e153b Fix Services.wm call 2014-08-06 22:14:58 -04:00
Dan Stillman
84882c8ecf Include actual error in "There was an error starting Zotero." dialog
And use a proper title
2014-08-06 22:14:58 -04:00
Dan Stillman
fe83d4db72 Document options.headers property for Zotero.HTTP.promise() 2014-08-06 22:14:58 -04:00
Dan Stillman
16e4aa0516 Remove Zotero.join() 2014-08-06 22:14:58 -04:00
Dan Stillman
3a7042e527 Zotero.Utilities.forEachChunk(arr, chunkSize, func)
Run a function on chunks of a given size of an array's elements and
return an array with the return values from the successive runs.
2014-08-06 22:14:58 -04:00
Dan Stillman
feb47caa6b Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/translation/translate.js
2014-08-06 22:13:05 -04:00
Aurimas Vinckevicius
0998b15fac Improved cookie handling when translating from connectors
* Accept detailed cookie information (including host, path, secureOnly, and hostOnly) from connectors so we can send correct cookies when fetching pages from different hosts. This way we also don't have to worry about exposing cookies to different hosts.
* Don't drop cookies that we receive from other hosts. Some pages (e.g. PDF URLs) result in redirects to other hosts (and even domains) that then set cookies, which are required to retrieve the PDF. (e.g. Cell Press stores PDFs on ScienceDirect, but their PDF links initially point to cell.com).
* Send detailed cookies where possible. Currently that's only for Chrome/Opera and Firefox in Connector mode. Does not seem to be possible in Safari.
2014-07-28 15:39:07 -05:00
Simon Kornblith
9219100901 Another Fx 32 translation fix 2014-07-23 18:05:56 -04:00
Aurimas Vinckevicius
638d29972c Don't ignore initial punctuation when sorting
Also, change sorting sensitivity to "base"
Closes #514
2014-07-23 00:18:48 -05:00
Dan Stillman
15108eea3f Fix intermittent source file deletion when dragging files in on Windows
(at least, if this is caused by what I think it was caused by)

https://forums.zotero.org/discussion/38486/
2014-07-20 15:56:55 -04:00
Dan Stillman
3b5bd45433 Further Windows drag-and-drop comment rewriting 2014-07-20 13:16:56 -04:00
Dan Stillman
717a440156 Clarify comment for Windows drag-and-drop mess 2014-07-20 02:50:00 -04:00
Dan Stillman
b8f69d6281 Fix Quick Copy drag to Chrome textareas on Windows
Possibly to other places as well (but not Notepad, which doesn't work
from Firefox or Chrome either)

Unfortunately this requires going back to 'copy' cursor feedback when
dragging, even when Shift is used. We can only choose one on Windows (as
far as I can tell), and we were previously using the unadorned 'move'.
2014-07-20 02:16:25 -04:00
Dan Stillman
7d74344b7d Restore highlighting of collection row during drag on Windows 2014-07-20 02:16:20 -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
813f55d024 Natural sorting of numbers ("1" < "2" < "10")
This needs testing to see if it has any other unwanted effects.

Closes Trac ticket 1031
2014-07-08 09:47:03 -04:00
Simon Kornblith
87a0df43d8 Fix some more Fx 32 issues
Ref https://forums.zotero.org/discussion/37885/
2014-07-06 14:07:00 -04:00
Simon Kornblith
d9720f18a9 Update to citeproc-js 1.0.536 2014-07-06 08:50:13 -04:00
Dan Stillman
532ebc5239 Fix for startup error w/weird locale language tags ("de-CH@currency=EUR")
https://forums.zotero.org/discussion/37901

And just return a noop sorter on failure instead of breaking
2014-06-27 09:36:11 -04:00
Dan Stillman
4a677240d3 Don't use Intl until Fx30, since it's missing in Iceweasel 29
And nsICollation isn't broken on OS X until 30
2014-06-27 01:12:25 -04:00
Dan Stillman
d66a6f6680 Ignore punctuation when sorting
This sorts "St. A" before "St B". I don't know if we want this.
2014-06-25 12:24:31 -04:00
Dan Stillman
979e62714c Fix startup errors in some non-English locales in Fx30 on OS X
nsICollation broke for some locales. (Testing requires changing the
language setting in Language & Region and then restarting the computer.
The change seems to not fully go into effect until then, even though the
UI changes.) This is fixed in Nightly, but we can work around it by
using the new Intl.Collator.
2014-06-25 12:22:04 -04:00
Florian Martin-Bariteau
dbe7640f18 Allow QuickSearch to search for civil law cases 2014-06-24 22:55:56 -04:00
Dan Stillman
be49010783 Use 11 instead of 6 on invalid note font size
Also don't validate font size until after pref field is blurred, to allow
numbers to be typed in properly
2014-06-23 23:36:36 -04:00
Simon Kornblith
bcc7a4ae86 Missing word in comment from 8cb081a4e1 2014-06-23 22:56:08 -04:00
Simon Kornblith
8cb081a4e1 Disable argument unwrapping on Fx < 32
This apparently breaks on Fx 24
2014-06-23 22:55:02 -04:00
Simon Kornblith
dd5160cc73 Partially revert 76e8ea835f
Apparently this doesn't work on Firefox 24. Sigh.
2014-06-23 22:29:32 -04:00
Dan Stillman
f45b219792 Fix inline collection editing when clicking to another collection
https://forums.zotero.org/discussion/37739
2014-06-21 13:37:55 -04:00
Simon Kornblith
41e50ef669 Fix check from fc91deb69e 2014-06-21 13:27:49 -04:00
Simon Kornblith
fc91deb69e Fix more Firefox 32 issues 2014-06-21 13:25:33 -04:00
Simon Kornblith
76e8ea835f Slightly cleaner fix for #504 2014-06-21 13:16:39 -04:00
Simon Kornblith
a71f3bbdd8 Fix #504
Determine whether to copy objects by their constructor names, since the
prototypes do not necessarily match
2014-06-21 12:51:41 -04:00
Dan Stillman
4812ab6f93 Fixes (cosmetic) "Q.async(...)(...) is undefined" sync error
Yield immediately so that a generator is always passed to Q.async()
2014-06-20 03:47:04 -04:00
Dan Stillman
09e53d85d5 Revert "Revert "Use Q instead of Task.spawn to run processUpdatedXML()""
This reverts commit 4334260865.
2014-06-20 03:47:01 -04:00
Dan Stillman
4334260865 Revert "Use Q instead of Task.spawn to run processUpdatedXML()"
Fixes "Q.async(...)(...) is undefined" sync error

This reverts commit ad8b81f4c7 (which
tried to fix Fx32+ compatibility).
2014-06-20 03:17:03 -04:00
Simon Kornblith
3a8c77e983 Fix search translation bug from 7950d3a7e2 2014-06-19 21:31:17 -04:00
Simon Kornblith
37f4e61ef2 Remove debug line 2014-06-19 20:11:46 -04:00
Simon Kornblith
7950d3a7e2 Attempt to fix #502, translation broken on Firefox 32 2014-06-19 20:07:31 -04:00
Simon Kornblith
f6dfeee210 Remove more uses of charsetDTD 2014-06-19 19:03:58 -04:00
Simon Kornblith
014c7b5b46 Fix tab mode in Aurora
Ref https://forums.zotero.org/discussion/37608/
2014-06-19 19:02:52 -04:00
Dan Stillman
75bdf08131 Fix event handling (e.g., Undo) in notes in Fx32
Addresses #503
2014-06-19 17:54:21 -04:00
Dan Stillman
c32144ddfd Fixes #503, Notes broken on Firefox 32
Unwrap the editor object if it's wrapped
2014-06-19 17:47:56 -04:00
Simon Kornblith
954f8bd001 Fix #496, Remove uses of nsICharsetConverterManager
We should confirm that the manually added charsets still work on
Firefox 32 once we #502
2014-06-19 17:31:27 -04:00
Simon Kornblith
e576416831 Remove old isFxN constants 2014-06-19 16:36:37 -04:00
Dan Stillman
e76cc07371 Merge locales from Transifex 2014-06-19 02:05:29 -04:00
Dan Stillman
b441e2cf9e Update submodules and repotime 2014-06-18 21:12:25 -04:00
Dan Stillman
ad8b81f4c7 Use Q instead of Task.spawn to run processUpdatedXML()
With Task.spawn, regular expressions in Zotero.DB were causing "too much
recursion" errors on Windows with JIT enabled.

This requires a change to Q to allow async() to take a generator instead
of a generator-maker (which is the reason it was using Task.spawn to
begin with).
2014-06-18 05:03:06 -04:00
Dan Stillman
fad6174e39 Fix download retrying
Follow-up from 238a972a
2014-06-10 03:50:41 -04:00
Dan Stillman
238a972ace Retry failed ZFS uploads and downloads automatically
S3 upload timeouts were retried already with an exponential backoff, but
this adds retrying for other kinds of upload failures as well as failed
downloads.  If 5 consecutive failures occur a file sync error is
thrown.

Failed file sync requests to the Zotero API are not currently retried,
but S3 accounts for the majority.

The download portion of this still needs further testing.
2014-06-09 06:47:07 -04:00
Dan Stillman
3d27c2c6a7 Merge locales from Transifex 2014-06-07 17:16:40 -04:00
Dan Stillman
1b6dc5d681 Restore minimize/maximize buttons in note windows on Windows
From db6ec2b160
2014-06-05 00:54:22 -04:00
Simon Kornblith
7b7b4e6e9e Merge pull request #495 from aurimasv/Fx-connector
Fix race condition when starting in Connector mode
2014-06-04 17:02:28 +02:00
Aurimas Vinckevicius
e4dd38fc84 Fix race condition when starting in Connector mode
When starting in Connector mode (i.e. Standalone is open), Zotero first starts in Full mode, looks for Standalone, then "shuts down" and restarts in Connector mode. `Zotero.shutdown()` returns a promise which is then followed up by a `Zotero.init` call. Thus, when starting in Connector mode, Zotero initialization is asynchronous and makes it possible for `Zotero_Browser.init()` to be called before `Zotero.initialized` is true, which prevents `Zotero_Browser` from initializing. Additionally, even if `Zotero_Browser.init()` is called after Zotero is initialized in Connector mode, it is possible that `Zotero_Browser.init()` will be called _after_ the "load" event for browser.xul has already fired, so `chromeLoad` is never called. This patch ensures that both of these race conditions are taken into account.
2014-06-04 03:16:29 -05:00
Aurimas Vinckevicius
59fe54da01 Release server port when shutting down (e.g. switching to Connector mode) 2014-06-04 03:14:01 -05:00
Dan Stillman
825cea47fb Fix "<" in translator error popup in French locale
ba89dbf0ae (commitcomment-6535838)
2014-06-03 17:27:24 -04:00
Dan Stillman
a59f3c50ed Hack to fix "Numéro" search condition in French locale
https://forums.zotero.org/discussion/14942/
2014-06-03 14:17:54 -04:00
Dan Stillman
cbdc75df9a Fix search condition handling when two conditions have same translation
This prevented one "Numéro" from working in the French locale.

Also do a proper collation sort
2014-06-03 14:17:54 -04:00
Aurimas Vinckevicius
85c5c614ea Fix CSL-JSON date import 2014-06-02 17:25:16 -05:00
Dan Stillman
ba89dbf0ae Link translator errors to troubleshooting page instead of known issues 2014-06-02 17:00:57 -04:00
Dan Stillman
c0d6648b9e Allow inline editing of collection names
Can be triggered by double-clicking or Return and also by F2 on
Windows/Linux

This does mean double-clicking no longer toggles the collection open and
closed. If we wanted to preserve that we could probably capture the
double-click.

Closes Trac ticket 231, only 8 years later
2014-05-31 14:24:52 -04:00
Dan Stillman
326d2bc1e3 Enforce minimum note font size of 6px
https://forums.zotero.org/discussion/37147/
2014-05-31 01:42:31 -04:00
Dan Stillman
db6ec2b160 Persist single position/size for all note windows
Previously, position/size was persisted for each item's note
individually, but that meant that there was no default position/size for
the note window and an entry was created in localstore.rdf for
every note opened in a new window. There's also a good chance people had
no idea what was going on.
2014-05-28 14:35:05 -04:00
Dan Stillman
370fa78048 Merge pull request #489 from f-mb/csl-mapping
Update csl mapping
2014-05-28 02:15:47 -04:00
Dan Stillman
227fe74a1e Merge new English strings 2014-05-26 20:15:54 -04:00
Dan Stillman
c986e6106b Blacklist additional errors 2014-05-26 20:09:27 -04:00
Dan Stillman
59f534d56f Error report improvements
- Always allow "Report Errors...", even when no errors

- Show submitted diagnostic info in report

- Use white background and unitalicized text for report

- Make window larger by default
2014-05-26 20:07:41 -04:00
Dan Stillman
072ae245d9 Use base-mapped dates for sorting (broken in dd477e15) 2014-05-26 19:13:21 -04:00
Dan Stillman
95bf52baf5 Check for NS_ERROR_STORAGE_CONSTRAINT in tag constraint error 2014-05-23 14:51:21 -04:00
Florian Martin-Bariteau
982dbeb962 Update utilities.js 2014-05-22 23:37:17 -04:00
Dan Stillman
6f06b39cb3 Merge branch '4.0' 2014-05-19 03:38:35 -04:00
Florian Martin-Bariteau
7b40ae2a46 Update utilities.js 2014-05-18 18:57:28 -04:00
Dan Stillman
472892b4f0 Closes #482, Include active info pane tab in tab cycle on OS X
That was easy. (@simonster, since you disabled this originally, any reason not
to do this, other than the extra tab stop? At least in current Firefox
versions, this is the default behavior.)
2014-05-17 04:10:37 -04:00
Dan Stillman
4305aa1356 Debugging for sync error 2014-05-16 17:57:35 -04:00
Dan Stillman
77842f7dc6 Add Ukrainian locale 2014-05-16 14:51:49 -04:00
Dan Stillman
eaff0fa419 Merge locales from Transifex 2014-05-16 14:50:19 -04:00
Dan Stillman
fef20d39a8 Merge English string 2014-05-15 21:41:22 -04:00
Dan Stillman
9f91d240b0 Library switcher in advanced search window
When opening the advanced search window, the current library is
selected, and a different library can be selected to change the search
scope. If a library is read-only, the saved search button is disabled.
For saved searches, the appropriate library is selected and the
drop-down is disabled.

Also:

- Close the advanced search window after a search is saved
- The default name for saved searches ("Untitled 2", etc.) was based on
  collections rather than searches
- Once an initial search has been performed, the drop-downs and
  checkboxes now update the results
- More consistent spacing in advanced search window
- (dev) Zotero.DB.getNextName() now takes a libraryID as its first
  parameter instead of always using My Library; the old parameters are
  deprecated but still work
2014-05-15 21:41:22 -04:00
Dan Stillman
f8798fe996 Set maximum with and chars on Name field when editing saved search 2014-05-15 21:41:22 -04:00
Dan Stillman
aaa259f77c Fix font size of "any"/"all" line in advanced search window
It was previously larger than the default and didn't obey the font size
pref.
2014-05-15 21:41:21 -04:00
Dan Stillman
66ca236876 Use XUL xmlns instead of prefix in zoterosearch.xml 2014-05-15 21:41:21 -04:00
Dan Stillman
3552fe92b6 Merge pull request #479 from fbennett/preselect-csledit-style
Preselect default Export style in csledit.xul
2014-05-15 00:05:01 -04:00
Simon Kornblith
2a292faeaf Merge pull request #481 from aurimasv/import-network-shares
Recognize Windows network shares on file attachment import
2014-05-14 23:54:45 -04:00
Frank Bennett
c31a3c263b Preselect default Export style in csledit.xul 2014-05-15 12:43:50 +09:00
Dan Stillman
7ac35363e3 Clear guidance panel before adding text
This is probably only necessary if the pref is reset manually, but this
prevents duplicate text in that situation.
2014-05-14 17:18:54 -04:00
Dan Stillman
3ee09e8d38 Fix gray bar below Zotero pane when resizing Firebug down
Follow-up from c1c0b42a12
2014-05-14 17:14:45 -04:00
Aurimas Vinckevicius
e861c3e298 Fix slash direction on Windows for absolute paths
E.g. Mendeley exports something like `C:/some/path/test.pdf`
2014-05-13 13:30:30 -05:00
Aurimas Vinckevicius
f2a887fd24 Recognize Windows network shares on file attachment import
Related to zotero/translators#735
2014-05-13 12:53:38 -05:00
Dan Stillman
6cf597a08f Merge pull request #478 from fbennett/fix-csl-export-creators
Fix dropping of creators in CSL JSON export
2014-05-10 02:59:56 -04:00
Frank Bennett
6605486354 Use ID rather than name on getPrimaryIDForType()
Use creator name for comparison (creatorTypeID does not exist on array-form creators)
2014-05-09 22:29:45 +09:00
Dan Stillman
57116fa892 Merge branch '4.0'
Conflicts:
	chrome/content/zotero/xpcom/collectionTreeView.js
	chrome/content/zotero/xpcom/libraryTreeView.js
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
2014-05-08 15:52:31 -04:00
Dan Stillman
fd9452adbc Fix error when sorting by Item Type column (since dd477e15b8) 2014-05-07 13:45:20 -04:00
Dan Stillman
ebb112890d 'throw' -> 'throw new Error' in a couple places 2014-05-07 05:16:25 -04:00
Dan Stillman
faad761491 Merge new English strings 2014-05-07 05:16:24 -04:00
Dan Stillman
dd477e15b8 Configurable secondary sorting and other improvements
- Each column in the middle pane can now have its own persistent
  secondary sort column, configurable from a new submenu in the column
  picker menu (top right of items list). The settings are stored in
  extensions.zotero.secondarySort.[primaryField]. The submenu title
  includes the current primary field (e.g., "Secondary Sort (Creator)"),
  which is pretty weird, and I'm not sure I want to keep it, but it does
  convey that the setting is specific to the selected column.

- The fallback sort fields (firstCreator, date, title, dateAdded) are
  now configurable via the extensions.zotero.fallbackSort. Setting that
  pref to an empty string avoids all fallback sorts, which
  allows reverse-order clicking to set the order, as requested by
  @aurimasv in #275.

- The previous behavior of sorting based on the exact Creator string
  (rather than the actual creators) can now be restored with the
  extensions.zotero.sortCreatorAsString pref. (It simply circumvents all
  the newer code, so it's pretty safe.) This setting should result in
  faster sorting in large libraries that have many items with the same
  Creator string.

- Some of the lesser fields in the column picker menu are now in the
  More Columns submenu (which is now alphabetical)

- The "Type" column is now the less-ambiguous "Item Type".

- This uses a different method to modify the column picker menu that is
  simultaneously less and more hacky. (It no longer has to duplicate
  Mozilla code in a custom XBL binding that wouldn't reflect future
  upstream changes, and instead it bushwhacks its way through various
  boxObject properties to get to the underlying menupopup.)
2014-05-07 05:15:07 -04:00
Dan Stillman
d65ee27592 Switch to array uniquing function that keeps the first instance
The previous version would keep only the last instance.

This version requires the array to contain only primitives of a single
data type, but I think that's OK for all of our uses. (This version
should also be faster.)
2014-05-07 03:10:39 -04:00
Dan Stillman
42c02526ef Fix parsing of January dates in Zotero.Date.strToISO()
https://forums.zotero.org/discussion/36550/#Item_6
2014-05-06 14:50:13 -04:00
Simon Kornblith
6a58d3b2ff Revert "Use var in place of let"
This reverts commit 9b67d60197.

(I totally bungled this commit)
2014-05-04 19:07:19 -04:00
Simon Kornblith
b6c04a1653 Use var instead of let
This code gets included into the bookmarklet, so uglifyjs has to like it
2014-05-04 19:05:41 -04:00
Simon Kornblith
3bfe5949d7 Merge branch '4.0' of github.com:zotero/zotero into 4.0 2014-05-04 19:05:24 -04:00
Simon Kornblith
9b67d60197 Use var in place of let
This makes uglifyjs happier
2014-05-04 19:04:48 -04:00