Commit graph

7196 commits

Author SHA1 Message Date
Dan Stillman
f4bf918f35 Remove ": a novel" from book titles
Closes #1581
2018-12-16 03:00:15 -05:00
Dan Stillman
6125d65bc2 Support duplicating saved searches
Closes #1431
2018-12-16 02:24:21 -05:00
Dan Stillman
c73e664312 Fix logged error when dragging collection to another library
"Collection ID '1234' is not an integer (string)"
2018-12-16 02:24:21 -05:00
Dan Stillman
13d55910ed Simplify cloning of collections and searches 2018-12-16 02:24:21 -05:00
Dan Stillman
5f07f36ae5 Allow Zotero.Item instance instead of itemID in Collection.hasItem() 2018-12-16 02:24:21 -05:00
Dan Stillman
80f6b857f6 Add Utilities.Internal.getNextName(name, existingNames)
Function to get the next available name when duplicating something
2018-12-16 02:24:21 -05:00
Dan Stillman
bf6f1432c5 Move Utilities.Internal.escapeSQLExpression() to Zotero.DB 2018-12-16 02:10:15 -05:00
Dan Stillman
28aa86eb79 Default to previous condition when creating new advanced search row
Fixes #1533
2018-12-15 23:52:57 -05:00
Dan Stillman
1c47d21937 Expose Zotero.Cite for translation-server/Node 2018-12-13 02:06:10 -05:00
Adomas Venčkauskas
ffbe44a159 Fix snapshot saves refetching page instead of using passed html 2018-12-12 10:59:58 +02:00
Dan Stillman
9ed8bed778 Find direct PDF from page URL if Content-Type includes invalid parameter
The 'application/pdf' Content-Type shouldn't have any parameters, but a
site was returning 'application/pdf;charset=ISO-8859-1', so instead just
look for the 'application/pdf' prefix.
2018-12-11 16:02:57 -05:00
Dan Stillman
0706430609 Add setRequestHeaders() method to Translate.Web
For use in zotero/translation-server#16 to pass Accept-Language through
to translation web requests
2018-12-04 02:50:40 -07:00
Dan Stillman
a6fb0b35c3 Update processDocuments() signature for allow passing headers
Also:

- Actually use the cookie sandbox passed to processDocuments()

For zotero/translation-server#16, we want to include Accept-Language
(and maybe other headers) from the client request in upstream requests,
which requires passing it to both non-translate processDocuments().
translation-server's non-translate processDocuments() is defined in that
repo, but it's called by the cross-repo translate processDocuments() in
utilities_translate.js, so the signature needs to be changed in both
repos.

We also apparently weren't using the cookieSandbox in client
processDocuments() calls, though I think that only would've affected
translator testing.
2018-12-04 01:42:56 -07:00
Dan Stillman
223f582aa7 Fix search error on nonexistent collection in recursive mode
And don't return results for a nonexistent parent search
2018-11-28 15:31:57 -07:00
Dan Stillman
6137aeddb8 Follow meta redirects for Find Available PDF
This fixes direct and VPN-based retrieval of PDFs for Elsevier (e.g.,
ScienceDirect) items that have a DOI but no URL, since Elsevier resolves
DOIs through an intermediate page.
2018-11-26 00:57:48 -07:00
Dan Stillman
7d9b94c79e Fix autocomplete for tags beginning with _ or %
Addresses #1598
2018-11-25 00:36:04 -07:00
Adomas Venčkauskas
b1e3195b5a Adds translatorTester nodejs compatibility code that doesn't break Scaffold 2018-11-13 13:25:01 +02:00
Dan Stillman
b80c405da4 Revert "Changes for translator tester compatibility with translation server"
This reverts commit e526a8fa89.

This is a repeat of a0ca67d879. The reverted changes break Scaffold.
This will need to be fixed in a way that allows Scaffold to continue to
work.
2018-11-12 00:40:30 -05:00
Adomas Venčkauskas
51d7959ccd Revert "Ensure the doc prefs window is smaller than screen height"
This reverts commit 0fd28959bf.
The change causes citation style listbox to fail displaying bottom
entries, a flexed listbox xul bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=413336
2018-11-05 15:14:38 +02:00
Adomas Venčkauskas
0bdebbd64c Revert "Remove old style conversion code"
We got multiple requests from users that use custom 0.8 styles
so we'll have to keep this code for now

This reverts commit a59ce2c343.
2018-10-31 14:01:11 +02:00
Adomas Venčkauskas
e526a8fa89 Changes for translator tester compatibility with translation server 2018-10-31 11:32:33 +02:00
Philipp Zumstein
8fdccb828f Fix comment in ItemProgress.prototype.setIcon (#1591) 2018-10-27 03:26:16 -04:00
Adomas Venčkauskas
8d61e30a93 Update translatorTester for use in translation server 2018-10-26 16:30:08 +03:00
Dan Stillman
91bac0e052 Add 2x icons for attachment-snapshot and conferencePaper 2018-10-26 00:54:40 -04:00
Dan Stillman
6abfd3b5b0 Fix 'req is undefined' error after consecutive S3 failures 2018-10-22 05:30:20 -04:00
Dan Stillman
053599993b Add successCodes argument to translator doGet/doPost
In 2652fac24 we started failing the translator if doGet/doPost returned
a >=400 status code, but at least one translator (Primo) relied on doGet
continuing after a 404. This allows translators to specify the status
codes that are allowed, similar to the same argument in
Zotero.HTTP.request().

(We'll clean up the signature at some point or just get rid of these
functions, but this is a quick fix for Primo.)
2018-10-21 06:01:06 -04:00
Dan Stillman
a0ca67d879 Revert part of 5b3b1f0f1 to fix Scaffold breakage
I didn't look into the details, but `this` isn't defined when this file
is loaded within Scaffold, so this line caused an error and the
translator tester was broken.
2018-10-21 05:37:03 -04:00
Dan Stillman
28e1d7dfb6 Update submodules 2018-10-21 02:17:57 -04:00
Dan Stillman
c7915e5bc2 Don't add four spaces when tabbing to indent list in note
Fixes #1236
2018-10-20 03:39:26 -04:00
Adomas Venčkauskas
206b4d7005 Catch translation select callback errors 2018-10-19 14:59:16 +03:00
Adomas Venčkauskas
5b3b1f0f1b Update translatorTester for translation server support 2018-10-19 13:47:44 +03:00
Adomas Venčkauskas
9d98f765b2 Point doc help to general word processor help page. Closes #1585 2018-10-18 13:34:26 +03:00
Dan Stillman
fc1f737986 Throw proper error for "key must be an 8-character string" error 2018-10-18 04:35:18 -04:00
Dan Stillman
4aaec5f091 Fix note being read-only after viewing note in trash 2018-10-14 23:35:05 -04:00
Adomas Venčkauskas
f7e9067660 Fix imports with missing attachments not closing progress window. Closes #1583 2018-10-12 13:48:20 +03:00
Dan Stillman
1e3608e82e Add zotero://select support for collections
zotero://select/(library|groups/:groupID)/collections/:collectionKey
2018-10-10 21:38:10 -04:00
Dan Stillman
2d38a0102c Show "Find Available PDFs" even if non-regular items are selected 2018-10-10 21:38:10 -04:00
Dan Stillman
33a7cc57ea Fix popup when no items are eligible for "Find Available PDFs" 2018-10-10 21:38:10 -04:00
Adomas Venčkauskas
1beab1d3a7 Don't attempt to fetch daySuffixes in Connector/Bookmarklet 2018-10-10 14:25:24 +03:00
Dan Stillman
bd5fca3c23 Skip empty tags from connector 2018-10-10 06:03:41 -04:00
Adomas Venčkauskas
c65ca34afe Permit /connector/delaySync for the bookmarklet 2018-10-10 12:41:16 +03:00
Dan Stillman
ab27dd154e Fix status indicator for successful PDF retrieval in progress window 2018-10-09 18:24:53 -04:00
Dan Stillman
f6448c5de4 Update locales from Transifex 2018-10-09 17:51:05 -04:00
Dan Stillman
be8db4fc50 Don't show progress window for PDF recognition if only one file 2018-10-08 02:46:13 -04:00
Dan Stillman
1b9811c31d Fix test failures after 18f79f9796 2018-10-06 01:38:32 -04:00
Dan Stillman
18f79f9796 Use progress dialog for PDF retrieval 2018-10-06 00:22:57 -04:00
Dan Stillman
a2f13c9043 Allow setting custom status line and hiding Minimize in progress dialog 2018-10-06 00:16:15 -04:00
Dan Stillman
4a6501c198 Update comments for PDF retrieval functions 2018-10-05 01:57:13 -04:00
Martynas Bagdonas
ae7ef109b7 Add universal progress queues (#1573) 2018-10-05 01:56:46 -04:00
Adomas Ven
b6065a7af6 Changes for bookmarklet update to current codebase (#1579) 2018-10-04 04:16:31 -04:00
Martynas Bagdonas
ec5424d5ae Follow meta redirects and use the final URL when processing documents (#1568) 2018-10-03 22:24:39 -04:00
Adomas Venčkauskas
a59ce2c343 Remove old style conversion code 2018-10-03 15:48:27 +03:00
Dan Stillman
e57e297156 Update submodules 2018-09-26 19:00:05 -04:00
Dan Stillman
3a8fd4d942 Fix additional translatorCache problems at startup 2018-09-25 06:24:17 -04:00
Dan Stillman
d899134e7c Automatically delay between PDF retrieval requests to the same domain
Delay requests to the same domain by 1 second, respect a Retry-After
header if present for 429 and 503, and delay for 10 seconds on 429 or
5xx otherwise.
2018-09-22 04:03:25 -04:00
Dan Stillman
536c07e9f4 Pass URL to Zotero.HTTP.UnexpectedStatusException
This allows the URL to be retrieved at .url in the thrown error.
2018-09-22 04:03:25 -04:00
Dan Stillman
b25d2d9c56 Update Zotero.HTTP.request() documentation 2018-09-22 04:03:25 -04:00
Dan Stillman
b782120840 Add followRedirects: false option to Zotero.HTTP.request()
Currently only .status and .getResponseHeader() (for getting 'Location')
are available in the returned object, but we could make the body
available if necessary.
2018-09-22 04:03:25 -04:00
Dan Stillman
b8db83af08 Split out a couple helper functions for PDF retrieval 2018-09-21 21:12:15 -04:00
Dan Stillman
c6a2af7ab5 Use 'load' instead of 'pageshow' in Zotero.HTTP.loadDocuments()
This seems to fix snapshots in Twitter, which need to wait for a
JS-based self-redirect [1].

[1] https://blog.twitter.com/engineering/en_us/topics/insights/2018/twitter_silhouette.html
2018-09-21 21:12:15 -04:00
Philipp Zumstein
2957db2aa1 Delete two duplicate switch cases (#1569) 2018-09-14 17:01:47 -04:00
Dan Stillman
f4ac511b50 Copy items across libraries in batches of 100
This will hopefully fix failures when copying huge numbers of items.
2018-09-14 04:14:08 -04:00
Adomas Venčkauskas
0cb683ab18 Ensure we don't maintain document sessions across different doc processors 2018-09-10 08:40:48 +03:00
Maecenas Li
dd9ee66212 Add support for marginnoteapp:// URI protocol (#1567)
https://forums.zotero.org/discussion/comment/316070/#Comment_316070
2018-09-08 06:01:02 -04:00
Dan Stillman
d8b2d24524 Better fix for invalid file localUrl in Mendeley DB 2018-09-07 01:22:09 -04:00
Dan Stillman
3f2ee35d59 Tweak debug line 2018-09-06 17:22:03 -04:00
Dan Stillman
7cf466a0b6 Save OA PDFs when the DOI resolves directly to the file 2018-09-06 16:44:11 -04:00
Dan Stillman
18821984e0 Accept a Blob as input in Zotero.File.putContentsAsync() 2018-09-06 16:44:11 -04:00
Dan Stillman
36afb34cf6 Show warning if Zotero is started from Mac disk image
Doing so can cause the Word for Mac extension not to load, and possibly
other problems.

https://forums.zotero.org/discussion/73470/word-could-not-communicate-with-zotero-with-three-full-uninstalls-and-reinstalls
2018-09-06 00:53:50 -04:00
Dan Stillman
4b64cc312c Handle possible null file URL in Mendeley import 2018-09-05 14:41:13 -04:00
Dan Stillman
03a15d47af Remove redundant OA PDF search in Add Item by Identifier 2018-09-04 14:15:25 -04:00
Adomas Venčkauskas
66ed33b9fb Fix must insert citation prompt in new doc with copied fields. Closes #1564 2018-09-04 16:37:46 +03:00
Dan Stillman
05d8e7a8a3 Check Extra field for DOIs for PDF retrieval
E.g., a book with a DOI in Extra

Closes #1551
2018-08-30 16:52:24 -04:00
Adomas Venčkauskas
944188fa63 Fix RTF dontUpdate=true citations updating on LO. Closes #1561 2018-08-30 10:55:54 +03:00
Dan Stillman
5a008cf861 Don't save collections from Scaffold
Fixes zotero/scaffold#60
2018-08-27 17:45:42 -04:00
Dan Stillman
4eb4490723 Don't limit PDF retrieval to dev builds 2018-08-25 17:00:53 -04:00
Dan Stillman
862ac5ab40 Handle missing 'attachments' array in /connector/saveItems 2018-08-25 16:55:13 -04:00
Dan Stillman
e7e681c113 Set retrieved OA PDF title to reflect version
"Full Text", "Accepted Version", or "Submitted Version"
2018-08-25 16:48:17 -04:00
Dan Stillman
abc4cd9dfe Clear translatorCache table when resetting translators 2018-08-21 22:36:20 -04:00
Dan Stillman
91a3c27235 Fail schemaUpdatePromise and show alert on initialization failure
This will also cause the word processor plugin to throw an error isntead
of hanging if there was a problem loading translators or styles.

Closes #1557
2018-08-21 22:36:20 -04:00
Dan Stillman
475bd17b71 Fix 'title is null' error
Not sure why item.title would ever be null, but this was in a user's
error report and seemed to be causing a restart error.
2018-08-21 22:36:20 -04:00
Adomas Venčkauskas
0fd28959bf Ensure the doc prefs window is smaller than screen height
Dynamically resizes the style picker up to the window height of 700px
2018-08-20 12:42:45 +03:00
Dan Stillman
8d5338db2d Additional debug output for setting base directory 2018-08-19 22:49:09 -04:00
Dan Stillman
4f98ad9567 Vacuum database automatically after clearing full-text index 2018-08-19 04:06:04 -04:00
Dan Stillman
926e2f7317 Reduce memory consumption of full-text index clear 2018-08-19 04:05:38 -04:00
Dan Stillman
18021d1aeb Disable rebuild/clear buttons in Search prefs while in progress 2018-08-19 03:51:00 -04:00
Dan Stillman
c9e80319bb Support "Show File" on evicted iCloud Drive files 2018-08-19 02:41:45 -04:00
Dan Stillman
ec76575645 Trigger downloading and opening of evicted iCloud Drive files 2018-08-19 01:44:49 -04:00
Dan Stillman
e48a1a2abb Remove lots of old Zotero for Firefox code
We still run tests in Firefox, so not everything can be removed.
2018-08-17 03:17:08 -04:00
Dan Stillman
c2ca70055c Merge branch 'electron' 2018-08-16 19:16:46 -04:00
Dan Stillman
6d898e4774 Add extra debug logging for file merging 2018-08-16 17:09:14 -04:00
Martynas Bagdonas
7a3dc61892 Add an utility to fix author name capitalization (#1550) 2018-08-16 05:22:39 -04:00
Dan Stillman
1ffc34a8ac Don't try to retrieve PDFs when importing from a file 2018-08-16 05:21:00 -04:00
Dan Stillman
6d5abb55f0 Fix regression from 9fec063f4e 2018-08-16 05:20:03 -04:00
Adomas Venčkauskas
50a4bae945 Remove unused ZP.addItemFromPage() 2018-08-16 11:48:48 +03:00
Adomas Venčkauskas
044b08c9af Fix broken DataDirectory.removeSubdirectory() (regression 7f2d83a6) 2018-08-16 11:48:48 +03:00
Adomas Venčkauskas
2cf940763f Remove usage of HTTP.loadDocuments() in electron shared code 2018-08-16 11:48:48 +03:00
Dan Stillman
9fec063f4e Tweak display of attachment status lines in connector for PDF retrieval
Generally speaking, don't show a status line unless we have reason to
believe we'll be saving something.
2018-08-16 04:04:20 -04:00
Dan Stillman
ce5be0bc75 Automatically download open-access PDFs when saving via the connector
If there's no translated PDF or the translated PDF fails and the item
has a DOI, check Zotero's Unpaywall mirror for possible sources and try
to download one of those.

Unlike with "Add Item by Identifier" and "Find Available PDF" in the
item context menu, this does not try the DOI/URL page, since it would
result in more data leakage and most of the time you'd be saving from
the DOI page already. We could consider offering it as an option, but
for it to be useful, you'd have to have an institutional subscription,
be on-campus or connected via VPN (for now), and be saving from
somewhere other than the main page.

A new connector endpoint, sessionProgress, takes the place of
attachmentProgress. Unlike attachmentProgress, sessionProgress can show
new attachments that have been added to the save, and with a little more
work should also be able to show when a parent item has been recognized
for a directly saved PDF.

This also adds support for custom PDF resolvers, available to all PDF
retrieval methods. I'll document those separately.

Closes #1542
2018-08-16 00:57:22 -04:00
Dan Stillman
7a646a292b Pass response data to Zotero.WebProgressFinishListener callback
Pass an object with 'status' and 'contentType' if available
2018-08-16 00:57:22 -04:00
Dan Stillman
bcf94942f9 Don't include "Zotero" in User-Agent sent to non-Zotero sites 2018-08-16 00:57:22 -04:00
Dan Stillman
65bdef42a1 Fix double PDF when adding arXiv paper with Add Item by Identifier 2018-08-16 00:57:22 -04:00
Dan Stillman
e38725cf65 Localize new PDF retrieval strings
Closes #1541
2018-08-15 21:32:12 -04:00
Adomas Venčkauskas
850d2d2977 Expose private Attachments functions for electron 2018-08-15 17:11:30 +03:00
Adomas Venčkauskas
01f3159b2f Ensure all failing integration tests are fixed (8d8410ff). Closes #1546 2018-08-14 11:40:19 +03:00
Dan Stillman
11f8bd20d6 Fix title display when installing style via connector (broken in 0f1687f1c7) 2018-08-13 18:17:35 -04:00
Martynas Bagdonas
51996b537d Force description when submitting a recognizer report (#1547) 2018-08-13 11:14:18 -04:00
Dan Stillman
5ad2a83b61 Fix possible restart error with invalid Quick Copy setting
If you had Quick Copy set to a missing translator, had a site-specific
Quick Copy setting, and loaded a page in the browser, the next click on
an item would result in a restart error.
2018-08-12 19:06:28 -04:00
Dan Stillman
6112002003 Fix breakage from ea8b15a44a 2018-08-12 04:09:26 -04:00
Dan Stillman
ff8df06c75 Improve error messages on certificate and connection errors
- Show a clearer message on a certificate error that includes the
  underlying error, which should make debugging much simpler. (No more
  checking in a browser and hoping it's the same connection.)
- Mention proxy server in message on startup proxy-check failure
- Include link to connection-error KB page on sync connection failure

Closes #1191
Closes #1513
2018-08-12 02:38:44 -04:00
Philipp Zumstein
ea8b15a44a Replace getTargets with getStatementsMatching (#768)
As suggested in the same file `getTargets` is deprecated since 2.1
2018-08-11 14:36:43 -04:00
Dan Stillman
a97abed533 Extra logging for restart error 2018-08-11 06:29:09 -04:00
Dan Stillman
d278437a81 Only try 6 URLs from Unpaywall for a given DOI
Hard to imagine needing more than that many tries, and some DOIs appear
to have a huge number of URLs by mistake.
2018-08-11 06:17:28 -04:00
Dan Stillman
7cf6634764 Fix progress window hang if Find Available PDF fails 2018-08-10 17:36:04 -04:00
Adomas Venčkauskas
0f1687f1c7 Fix invalid document citation style recovery. Closes #1543 2018-08-10 11:00:07 +03:00
Dan Stillman
c5890a2479 Remove unused WebDAV methods 2018-08-09 15:45:15 -04:00
Dan Stillman
276bb99fc9 Don't percent-encode periods in usernames in WebDAV requests
For some reason nsIURL encodes periods in usernames, even though RFC3986
says not to [1]. (It also says servers should normalize them, and most
seem to, but apparently not all [2].)

[1] https://tools.ietf.org/html/rfc3986#section-2.3
[2] https://forums.zotero.org/discussion/73127/zotero-will-convert-the-into-2e-in-the-name-of-the-webdav
2018-08-09 15:45:15 -04:00
Dan Stillman
168bc78f1a Show error icon at startup if proxy check fails
If a proxy is required and we can't connect to S3, show the (sync) error
icon. For SSL certificate errors, which are the most common cause of
this, the panel includes a link to the SSL cert troubleshooting page.
2018-08-09 15:45:15 -04:00
Dan Stillman
0f19872a8d Show 'https://' in SSL certificate error message 2018-08-09 06:10:55 -04:00
Dan Stillman
2b6d24bc75 Only show "Find Available PDF" in dev builds 2018-08-09 04:39:28 -04:00
Dan Stillman
c7076ab935 Add Zotero.isDevBuild 2018-08-09 04:36:36 -04:00
Dan Stillman
bb46d72fd1 Add DB integrity check repair step for TEXT userID
Follow-up to 26056c87f1
2018-08-09 04:18:30 -04:00
Dan Stillman
c45c9cc23b Fix error backing up database
Broken since f7e411d561. This affected automatic backups and DB
integrity check repairs (which do a backup first).
2018-08-09 04:17:45 -04:00
Dan Stillman
63d8d57f83 Add userID fix to earlier schema update
Since the userID is used in relations updates moving from Zotero 4 to 5
2018-08-09 03:42:28 -04:00
Dan Stillman
26056c87f1 Fix non-integer userID in settings table
A submitted database had a text userID with a trailing "A0. Not sure how
that happened -- it doesn't appear to be possible in current code -- but
it caused group permissions not to be properly synced.
2018-08-09 03:30:47 -04:00
Dan Stillman
8d8109dbac Rename/move some of the PDF retrieval functions 2018-08-07 15:40:52 -04:00
Dan Stillman
679a6d5cc7 PDF retrieval improvements
- Add the ability to extract a PDF URL from a given webpage using the
  translation framework
- Add the ability to get open-access PDFs from landing pages from
  Unpaywall data in addition to direct PDF URLs
- Use the above functionality to improve PDF retrieval for "Add Item by
  Identifier"
- Add "Find Available PDFs" option to the item context menu to retrieve
  PDFs for existing items from the DOI or URL page or using Unpaywall
  data. The option appears for single items with a DOI or URL and no PDF,
  and it always appears when selecting multiple top-level items (but
  skips ineligible items).

PDF extraction from DOI/URL pages will currently only work with
unauthenticated access (i.e., on-campus or VPN, but not via a web-based
proxy).

Supersedes and closes #948
2018-08-07 04:58:15 -04:00
Adomas Venčkauskas
51e181cb81 Fix some XPCOM Zotero breakage from previous commits 2018-08-06 12:24:17 +03:00
Sylvester Keil
a8dce25cef
Deprecate Z.File.getBinaryContents 2018-08-03 22:37:09 +02:00
Sylvester Keil
fa7a330b0e
Use Services.wm getter 2018-08-03 13:29:08 +02:00
Sylvester Keil
ad0c8aad53
Use Z.File.getResourceAsync to load local resources 2018-08-03 13:22:22 +02:00
Sylvester Keil
b0fe7d546d
Make Z.Styles.validate more portable 2018-08-03 13:21:12 +02:00
Sylvester Keil
07464d5c84
Make File.getResource expect full URLs
This change makes is easier to support different URL schemes
when overriding on other platforms.
2018-08-03 10:49:15 +02:00
Sylvester Keil
6fd25419a9
Use Services.io getter 2018-08-02 23:05:17 +02:00
Sylvester Keil
dc688a876f
Keep returning nsIFile from old directory getters 2018-08-02 17:56:57 +02:00
Sylvester Keil
91ddec5bd9
Move lazy, spawn, and serial to Utilities.Internal 2018-08-02 17:20:09 +02:00
Sylvester Keil
95559a0c62
Use Services.io getter 2018-08-02 13:11:15 +02:00
Sylvester Keil
7f2d83a602
Move data dire getters to Z.DataDirectory
Add Z.DataDirectory.getSubdirectory which, optionally, creates
the directory.

Add async Z.DataDirectory.removeSubdirectory and use it for
Z.removeTempDirectory (was sync call before!).
2018-08-02 13:02:28 +02:00
Sylvester Keil
fc8037a83b
Accept strings in File.createDirectoryIfNecessary 2018-08-02 12:52:04 +02:00
Sylvester Keil
e9e6a8313d
Move prviliged public methods to Utilities.Internal
Moving flattenArguments, setFontSize and getAncestorByTagName
2018-08-02 11:59:58 +02:00
Sylvester Keil
caaaed0af1
Move privileged public functions to Z.Utilities 2018-08-01 23:57:02 +02:00
Adomas Venčkauskas
e6d5be755a Move some Utility functions from Zotero to Z.U.Internals 2018-08-01 16:30:17 +03:00
Sylvester Keil
887913de09
Fix use of bluebird's .delay 2018-08-01 11:49:00 +02:00
Sylvester Keil
cc47a3aab5
Use hard-coded list for default script direction 2018-07-30 13:23:54 +02:00
Sylvester Keil
94539ceac5
Do not bind to Zotero.Intl before it has been imported 2018-07-30 13:22:20 +02:00
Sylvester Keil
4a97529b66
Move getLocaleCollation and localeCompare to Zotero.Intl 2018-07-30 12:35:11 +02:00
Sylvester Keil
3a8d04f467
Remove Zotero.localeJoin 2018-07-30 12:33:08 +02:00
Sylvester Keil
143fdd5f2b
Revert "Remove legacy iterator protocol use in Zotero.DB"
Reverting this until we can use Fx60 for testing.

This reverts commit dfe412d448.
2018-07-30 10:18:11 +02:00
Sylvester Keil
2dce5f4842
Import PluralForm.jsm in Zotero.Intl.
PluralForm is not used directly anywhere else.
2018-07-30 10:04:14 +02:00
Sylvester Keil
e24f3414b8
Zotero.intl -> Zotero.Intl
Use upper-case namespace for consitency.
2018-07-30 10:00:53 +02:00
Sylvester Keil
38166d4e05
Add Zotero.intl namespace
Move `Zotero.getString()` and intl init code to `Zotero.intl` to make
it easier to re-use.

Link `Zotero.getString()` to `Zotero.intl.getString()`.

Do not expose `getStringFromBundle`, `pluralFormGet`, and
`pluralFormNumForms` because they are not used.
2018-07-28 21:31:20 +02:00
Sylvester Keil
e8cd4c9338
Use Services.io to access IOService 2018-07-27 16:44:28 +02:00
Sylvester Keil
3f2dd94752
Load schema resources via Zotero.File.getResourceAsync 2018-07-27 15:56:34 +02:00
Sylvester Keil
aa1adc8817
Add Zotero.File.getResourceAsync 2018-07-27 15:56:00 +02:00
Dan Stillman
cdda572728 Support additional data from OA PDF lookup service
Handle an array of objects with 'url' and 'version' rather than just an
array of URLs.

Also:

- Don't throw an error from addOpenAccessPDF() if there's an error from
  getOpenAccessPDFURLs()
- Make addPDFFromURLs() a separate function so URL lookup can be done
  separately from download
2018-07-27 00:55:19 -04:00
Adomas Venčkauskas
c3bdf72f35 Misc nodejs environment compatibility 2018-07-25 17:45:06 +03:00
Adomas Venčkauskas
b62b1968cf Change string throws to Error throws (no stack trace with former) 2018-07-25 17:45:06 +03:00
Dan Stillman
2652fac24b Throw translation error on >=400 status code for doGet()/doPost()
Previously the handler would be called even on error pages, which often
meant that an import translator (e.g., BibTeX) would fail to find
anything on the page and the save popup would just close silently. The
popup will now show an error message as soon as the error occurs.
2018-07-23 07:05:44 -04:00
Sylvester Keil
dfe412d448
Remove legacy iterator protocol use in Zotero.DB 2018-07-19 12:21:01 +02:00
Dan Stillman
1f8cf22a35 Delete group files when deleting group
Fixes #1532
2018-07-15 23:09:34 -04:00
Dan Stillman
8390f30be9 Update citeproc-js to 1.1.210 2018-07-15 09:09:23 -04:00
Sylvester Keil
9737a4d974
Initialize Dates in Electron 2018-07-13 14:03:23 +02:00
Adomas Venčkauskas
28535ac64d Throw proper error in Prefs.get(). Use double-quotes in default prefs 2018-07-11 19:35:14 +03:00
Adomas Venčkauskas
856bbf49ab Remove redundant QueryInterface for PrefBranch2 2018-07-11 16:44:04 +03:00
Adomas Venčkauskas
cb8280f0ff Move Zotero.Prefs into its own file 2018-07-11 15:53:46 +03:00
Sylvester Keil
53522c2cbe Add Zotero.File.getResource for local resources
Use `getResource` in Zotero.Date.init (this turns it into a
synchronous function). Zotero.File.getResource makes it easier
to load local files on platforms that do not support the
`resource://` URLs.
2018-07-11 14:08:45 +03:00
Sylvester Keil
06cb9aff98 Prefer use of Services.appinfo 2018-07-11 13:58:41 +03:00
Sylvester Keil
b2a1977d5a Gecko 16 and later sets topic to 'active' 2018-07-11 13:58:41 +03:00
Sylvester Keil
e406ddc54b Prefer Services.jsm getters for common services 2018-07-11 13:58:41 +03:00
Sylvester Keil
3f026239f1 Remove unused methods
`.getAsyncStatement()` and `.executeAsyncStatement()` are not used
anywhere.
2018-07-11 13:58:41 +03:00
Dan Stillman
99a1ac62c7 Fix a couple cases of open item box field changes not being saved
When clicking directly from an open field to the creator delete button
or a creator type in the creator type menu
2018-07-09 14:54:50 +02:00
Dan Stillman
62e403bc55 Limit OA PDF lookup to dev builds 2018-07-07 13:12:33 +02:00
Brenton M. Wiernik
baafd49b8c Update link to import formats documentation (#1525)
The existing destination has never really been the appropriate page for this dialogue, as it has never actual listed the supported formats.
2018-07-04 21:09:45 +02:00
Dan Stillman
da9537c5e4 Mendeley import: Properly handle "Mendeley Ltd." folder with period
At some point Mendeley seems to have changed the default path to the
data directory on Windows to remove the period, and for people with the
old directory we were linking rather than storing attachment files from
"Downloaded".
2018-07-02 01:06:17 +02:00
Adomas Venčkauskas
c1a9735081 Fix citations updating even after user asks for them not to be updated 2018-07-01 14:23:49 +03:00
Dan Stillman
99584dc918 Import base-directory-relative linked files
Zotero RDF contained 'attachments:' paths when files weren't included
but they weren't imported properly
2018-06-30 09:19:09 +02:00
Brenton M. Wiernik
b4ee2fbd98 Add support for bear:// URI protocol (#1520)
https://forums.zotero.org/discussion/comment/310717#Comment_310717
2018-06-29 02:27:19 +02:00
Adomas Venčkauskas
5425c272b2 Update translation-server-v2 dependent files to be commonJS compatible
Also some minor misc changes to translate.js
2018-06-27 17:31:10 +03:00
Dan Stillman
3aefcdf2d9 Mendeley import: Import folders with parentId of 0 instead of -1
Top-level folders should have a parentId of -1, but at least in one user
report there's a folder with 0.
2018-06-27 02:19:00 +02:00
Dan Stillman
f715c02a66 Throw proper error when collection is moved into one of its descendents 2018-06-26 21:06:11 +02:00
Dan Stillman
3c1cdd57d2 Fix error with nested saved searches containing post-search filters
Addresses #1518
2018-06-26 00:48:08 +02:00
Dan Stillman
cbf63f4e72 Skip blank tags when importing from Mendeley 2018-06-24 20:04:37 +02:00
Dan Stillman
7785b8df14 Restore open-access PDF retrieval for Add Item by Identifier
This reverts commit faa310e0f0.
2018-06-20 17:19:39 -04:00
Dan Stillman
faa310e0f0 Temporarily disable Add Item by Identifier open-access PDF retrieval
Not going out in 5.0.52
2018-06-20 17:07:11 -04:00
Dan Stillman
a9cd47dc3f Avoid hang on invalid attachment during import
E.g., if a .pdf is really an HTML file, we try to load it in a hidden
browser (because we properly detect the content type), but then the .pdf
extension causes the hidden browser to launch it via the OS and the
hidden browser never finishes loading it. This adds a 5-second timeout
to abort the process.
2018-06-19 18:26:34 -04:00
Dan Stillman
2d6332212c Make attachment post-process failures non-fatal
This is generally just detecting the character set and/or indexing, so
it's not the end of the world if it fails.
2018-06-19 18:25:53 -04:00
Dan Stillman
2a7f31813e Disable JS in hidden browser when indexing HTML files without a charset
This could cause imports that linked to HTML files to hang, possibly
from network requests that failed.
2018-06-18 20:19:02 -04:00
Dan Stillman
9b9fe098d9 Fix display of error on corrupted DB 2018-06-17 18:08:33 -04:00
Dan Stillman
4554998798 Add Zotero.File.moveToUnique(), replacing Zotero.moveToUnique()
New function takes string paths instead of nsIFile instances
2018-06-17 18:08:03 -04:00
Dan Stillman
f3a62f5a63 Automatically download open-access PDFs via Add Item by Identifier
When the associated-files pref is enabled, Add Item by Identifier uses a
Zotero Unpaywall mirror to find available open-access PDFs. No details
about the contents of searches are logged.
2018-06-16 14:35:44 -04:00
Dan Stillman
72481b072e Clean up extra files from Mendeley imports
Follow-up to cdee741a6
2018-06-16 03:07:46 -04:00
Dan Stillman
cdee741a6d Mendeley import: Fix duplicate PDF copying for PDFs in Downloaded
For each PDF with an associated URL in the Downloaded directory, we were
copying all files in the directory (!) to the attachment's storage
directory. (Zotero imports always have files in separate directories,
and this was a function used to save both single files and HTML
snapshots.)

We'll clean up the extra files in a separate step.
2018-06-16 01:51:37 -04:00
Dan Stillman
0383f104dd Fix "Import into new collection" option when handling importable file 2018-06-14 16:41:33 -04:00
Dan Stillman
d38d55e2b4 Mendeley import: Don't use single transaction 2018-06-13 10:27:26 -04:00
Dan Stillman
5ddbe433b9 Fix Backoff and Retry-After header parsing 2018-06-12 15:17:46 -04:00
Dan Stillman
d4c201fbc0 Correct Mendeley data dir path on Windows 2018-06-12 07:04:32 -04:00
Dan Stillman
e67db436c6 Mendeley import: Add link to support page on encrypted DB
Also localize the name of the collection created during import
2018-06-12 06:16:59 -04:00
Dan Stillman
cfbb3d3d47 Mendeley import: Fix "Collection undefined not found" error
If a folder appeared in the DocumentFolders table but not in
Folders/RemoteFolders, it caused an error.
2018-06-11 12:16:09 -04:00
Dan Stillman
bd5f2525dc Add star tag for favorite items 2018-06-11 09:44:01 -04:00
Dan Stillman
2831e8be3e Mendeley import: Fix "keys is undefined" error
An error would occur if a document existed in RemoteDocuments but not
Documents.
2018-06-10 02:50:52 -04:00
Dan Stillman
8547dedca9 Add debug output for unrecognized Mendeley DB issue 2018-06-09 02:26:12 -04:00
Dan Stillman
46fc28dc16 Remove unused conditional 2018-06-09 02:13:00 -04:00
Dan Stillman
06a819bf34 Fix Import from Clipboard breakage 2018-06-09 02:09:46 -04:00
Dan Stillman
3c70dee5c1 Create import collection by default if there are non-trash items
Follow-up to 7494e4d88c, which only checked for collections
2018-06-08 05:57:20 -04:00
Dan Stillman
337144a5eb Mendeley import: Reuse existing collections
If "Place imported collections and items into new collection" is
unchecked, previously imported collections will be reused when they're
in the right place in the hierarchy rather than creating new ones.
2018-06-08 04:52:18 -04:00
Dan Stillman
7494e4d88c Don't create import collection by default if no collections in library
If the selected library doesn't have collections, "Place imported
collections and items into new collection" will be unchecked in the
import wizard.
2018-06-08 02:44:13 -04:00
Dan Stillman
2b49e94a61 Fix sync breakage from 78e87a351 2018-06-07 17:18:28 -04:00
Dan Stillman
854cb05883 Mendeley import: Support repeated imports without duplicating items
Existing items are overwritten with new data (or skipped in the case of
file attachments).

Addresses #1451
2018-06-07 06:37:50 -04:00
Dan Stillman
d98e89cf26 Add import option for creating a new collection
Use the new wizard for all imports (even if no Mendeley DB), and add a
page with a "Place imported collections and items into new collection"
option. If deselected, collections are added to the library root.
2018-06-05 22:39:23 -04:00
Dan Stillman
4008848c64 Mendeley import: Create imported_url attachments when possible
If there's a single PDF file and a single PDF URL and the file exists,
make an imported_url attachment instead of separate file and linked_url
attachments.

Addresses #1451
2018-06-05 19:57:28 -04:00
Dan Stillman
024b428fe6 Mendeley import: Add "Other…" button for selecting another DB
E.g., for selecting a DB from a backup

Addresses #1451
2018-06-05 19:57:20 -04:00
Dan Stillman
17f2025c53 Fix import into selected library from wizard 2018-06-05 08:39:17 -04:00
Dan Stillman
6ac65373a3 Mendeley import: Look for Downloaded files relative to DB if not found
Addresses #1451
2018-06-05 08:30:14 -04:00
Dan Stillman
2939b3ae95 Merge branch 'mendeley-import' (#1451) 2018-06-05 07:52:12 -04:00
Dan Stillman
0f4e5ef508 Mendeley import
Accept Mendeley SQLite databases via File → Import… and perform a
direct import, including collections, timestamps, notes, attachments,
and extracted annotations.

When a Mendeley database is present, File → Import… shows a wizard that
lets you choose between a file and Mendeley for the source, and choosing
the latter shows a list of available databases in the Mendeley data
directory.

Known fields that aren't valid for a type are stored in Extra.

Files in the Mendeley 'Downloaded' folder are stored. Files elsewhere
are linked.
2018-06-05 07:52:01 -04:00
Dan Stillman
c5ba2e55f3 Add a debug line before submitting output
This will help clarify whether the person waited to submit or just
submitted while stuff was happening.
2018-06-04 19:58:10 -04:00
Dan Stillman
f7e411d561 Add support for databases in other directories
Previously you could use Zotero.DBConnection to open another database in
the data directory, but not one stored elsewhere in the filesystem. This
allows an absolute path to be passed instead. Various operations
(backups, corrupt DB recovery, pragma commands) are disabled for
external databases.
2018-06-02 04:10:39 -04:00
Dan Stillman
603388c79d Add missing quote to error 2018-06-02 02:27:24 -04:00
Adomas Venčkauskas
547f1c29e3 Integration: Fix non-existent session errors preventing displayError from working 2018-06-01 23:26:24 +03:00
Dan Stillman
9220b2d9c2 Fix inconsequential bug in Zotero.MIME.sniffForMIMEType()
`undefined` was being passed as an argument to slice(), but 0 is the
only offset that's used anyway, and that's what happens if you pass
`undefined`.
2018-05-27 21:23:38 -04:00
Dan Stillman
7271fdf6b7 Add Zotero.Sync.Runner.delayIndefinite()
Delays syncing until the returned function is run
2018-05-27 21:23:38 -04:00
Dan Stillman
86b94ae713 Add optional 'db' parameter to Zotero.DB.tableExists()
To check attached databases
2018-05-27 21:23:38 -04:00
Dan Stillman
52737ec694 Set locking_mode=EXCLUSIVE only for main database in Zotero.DBConnection
Otherwise attached databases are also exclusive
2018-05-27 21:23:38 -04:00
Dan Stillman
6ff51103f5 Make Zotero.ItemFields.getFieldIDFromTypeAndBase() work on non-base fields
This previously returned false if a non-base-mapped field was passed,
even if the field was valid for the given item type. It now returns the
passed field as long as the field is valid for the type, which matches
the behavior for base fields.
2018-05-27 21:23:38 -04:00
Dan Stillman
44fd598699 Load creators if needed to update display title in Items._loadItemData() 2018-05-27 21:23:38 -04:00
Dan Stillman
a714f06670 Use Zotero.warn() for item.setCreator() warning 2018-05-27 21:23:38 -04:00
Dan Stillman
78e87a351c Handle relations property in collection fromJSON() 2018-05-27 21:23:38 -04:00
Dan Stillman
3241faf503 Fix tag saving for intercepted imports from connector
Save tags in intercepted files as automatic tags
2018-05-23 21:16:18 -04:00
Adomas Venčkauskas
2f620c5f91 Fix corrupt bibliography handling. Closes #1503 2018-05-22 13:28:13 +03:00
Dan Stillman
763d7dec75 Allow Link header for translation-server responses via CORS 2018-05-15 21:17:45 -04:00
Dan Stillman
4acd178819 Fix user-agent handling for faked UAs from connector 2018-05-15 20:18:41 -04:00
Adomas Venčkauskas
6960b7f86e Fixes the refresh error after style reinstall. Closes #1500 2018-05-15 14:14:07 +03:00
Dan Stillman
81ab8f7b20 Allow header object instead of just content type in server responses 2018-05-13 04:27:27 -04:00
Dan Stillman
05843bb093 Fix base fields in connectorTypeSchemaData.js 2018-05-10 02:26:44 -04:00
Dan Stillman
5751838a3d Update submodules 2018-05-09 04:20:41 -04:00
Dan Stillman
4a7aad03c4 Fix text() brokenness, and remove change warning fo attr()/text()
1) text() wasn't handling the index property.

2) This removes the warning that attr()/text() no longer no require a
document as the first argument, because there's no reason to prevent
translators from being able to pass an element. It would require
rewriting various translators unnecessarily and make certain patterns
more verbose (because you'd need to match based on global scope in each
selector).

It won't be necessary to pass a Document once we remove 4.0 support and
the global attr()/text() are always available, so we can add a warning
for that then.

Fixes zotero/translators#1647
2018-05-08 20:33:13 -04:00
Adomas Venčkauskas
23224f6093 Fix 'idx is undefined' error in integration missing item handler 2018-05-07 15:23:07 +03:00
Martynas Bagdonas
9165a0247f Fix PMID and arXiv identifiers extraction (#1498) 2018-05-07 06:04:11 -04:00
Dan Stillman
e6dbd1ed92 Add PDF Expert support to zotero://open-pdf
Requested here: https://github.com/jlegewie/zotfile/issues/352#issuecomment-386896327
2018-05-06 14:07:23 -04:00
Dan Stillman
5a85d1ac9e Update citeproc-js to 1.1.206 2018-05-05 03:28:59 -04:00
Dan Stillman
7dbfd5ce29 Remove some extraneous lines in Zotero.OpenPDF 2018-05-05 01:54:49 -04:00
Dan Stillman
609657a8e4 Add zotero://open-pdf handler to open PDF at a given page
This is loosely based on the same functionality in ZotFile, but it tries
to do the right thing based on existing Zotero settings: either the new
PDF handler setting in the prefs or the system-default app. The latter
can only reliably be determined on Windows (and this uses ZotFile's
function to read that from the registry), but this tries to figure it
out on macOS and Linux too using the Mozilla handler service. (The
handler service only gets you an app name, not a path, so on Linux we
can try reading mimetypes.list and the like in case someone is using a
system-default okular or evince not in /usr/bin, but that's not yet
implemented.)

This uses the new 5.0 URL format, and a 'page' query parameter instead
of a path component:

zotero://open-pdf/library/items/[itemKey]?page=[page]
zotero://open-pdf/groups/[groupID]/items/[itemKey]?page=[page]

It also accepts ZotFile-style URLs, though, so if you uninstall ZotFile
you should still be able to open those links. ZotFile will need to
accept the new format for new links to work when ZotFile is installed,
since it will override this handler.

This functionality will be necessary for annotation extraction (#1018)
and for imported annotations from Mendeley (#1451).
2018-05-05 00:55:22 -04:00
Adomas Venčkauskas
5b595122b7 Fix inproper cleanup of legacy API word processor plugins 2018-05-02 09:39:08 +03:00
Dan Stillman
81b876a5b2 Don't prompt to upgrade source version of connector 2018-04-29 20:29:01 -04:00
Dan Stillman
17b4c2e98e Show upgrade prompt for connector pings from below a certain version
Shows a prompt once per restart or once per day, whichever is longer,
with an option to not show again for a month. Can be disabled completely
by setting extensions.zotero.showConnectorVersionWarning to false.

Currently prompts for connector versions below 5.0.35.

This is a temporary solution for #1489 until the connector checks and
warns on its own when it's outdated and most people are on a version
that does that (particularly Safari users, who don't auto-upgrade).
2018-04-29 04:53:00 -04:00
Dan Stillman
41590741ba Add level: 0 for libraries in target list for connector 2018-04-27 18:59:11 -04:00
Dan Stillman
a0d85c0673 Don't switch libraries when uneditable in /getSelectedCollection
Follow-up to d0e42a1186
2018-04-27 18:58:12 -04:00
Dan Stillman
d0e42a1186 Automatically switch to My Library on connector save in noneditable view 2018-04-27 18:27:06 -04:00
Dan Stillman
c55b355548 Add "Firefox/[version]" to user agent
Some sites didn't render properly, both in snapshots and in Scaffold,
due to browser sniffing.
2018-04-27 01:38:41 -04:00
Dan Stillman
a4cd45ceb4 Exclude note prefix and suffix when searching
This avoids having "1" match all notes (though really we should be
searching on a plain-text string stored in a separate column).
2018-04-26 02:15:13 -04:00
Dan Stillman
6fb99d2d90 Filter logged server responses
- Limit size to 1500 characters
- Remove collection names in /getSelectedCollection response
2018-04-25 16:02:11 -04:00
Adomas Venčkauskas
6cf11f083b Add a sendToBack connector endpoint for macOS integration window management 2018-04-25 15:42:41 +03:00
Adomas Venčkauskas
ac24ffe636 Always center the integration progress window 2018-04-25 15:42:41 +03:00
Adomas Venčkauskas
aad29a5469 Use XPCOM DOMParser in http integration client to avoid addon conflicts 2018-04-25 15:42:41 +03:00
Adomas Venčkauskas
f69c7d2e2d Fix a http integration client conflict with zotero addons 2018-04-25 14:07:55 +03:00
Adomas Venčkauskas
8b36f33513 Ensure the progress bar is hidden if session initialisation fails 2018-04-24 12:54:08 +03:00
Dan Stillman
e31d706ee4 Date.strToDate: Only check for date.* localized strings in client
Zotero.getString() now exists in the connector, but the expected strings
aren't defined (or needed), so an error is logged.
2018-04-24 05:08:27 -04:00
Dan Stillman
d573a5b639 Merge pull request #1476 from adomasven:feature/connector-doc-integration
Doc Integration Endpoint for the Connector
2018-04-24 01:37:48 -04:00
Adomas Venčkauskas
390b8b2c86 Fix quickformat early dismisal error 2018-04-24 01:37:10 -04:00
Adomas Venčkauskas
387109c1da Don't needlessly regenerate citation IDs 2018-04-24 01:37:10 -04:00
Adomas Venčkauskas
593153eebe Adds a progress bar for non quick-format integration actions
The progress percentage is based on the most recent transaction
(or undeterminate if this is the first session transaction)

Fix undefined function call error
2018-04-24 01:37:10 -04:00
Dan Stillman
33f8fcfafb Fix syncing of saved search changes
Condition changes were only uploaded after every other change + sync
2018-04-22 17:27:33 -04:00
Adomas Venčkauskas
5e5b567782 Add a connector document integration endpoint
Specifically for google docs via the connector, but could potentially be
used for any integration via HTTP or connector.
2018-04-20 13:08:34 +03:00
Martynas Bagdonas
00efd01aaf Ask for description when reporting metadata (#1488) 2018-04-19 04:35:03 -04:00
Dan Stillman
6450d39933 Throw async error from _loadTranslator() 2018-04-19 02:59:41 -04:00
Dan Stillman
3bc08ba10c Change overwritten translator message from error to warning 2018-04-19 02:59:41 -04:00
Martynas Bagdonas
0b4e1f9360 Use the extracted arXiv identifier when recognizing PDF (#1487) 2018-04-19 02:35:20 -04:00
Dan Stillman
b22e496b05 Allow setting CORS allowed origins for translation-server 2018-04-18 16:15:26 -04:00
Martynas Bagdonas
fa0576a4dd Add arXiv identifier support (#1486) 2018-04-18 13:03:10 -04:00
Dan Stillman
bf26c230be Update submodules 2018-04-16 14:58:37 -04:00
Dan Stillman
3835bc9110 Assign merge-tracking relations properly when merging >2 items
https://forums.zotero.org/discussion/71459/incorrect-document-refresh-after-three-item-merge
2018-04-15 17:05:55 -04:00
Dan Stillman
8853f8ca47 Allow higher local object version during full sync
Local object versions can be higher than remote versions, because we
upload in batches and only record the version from the last batch.

This could cause trouble if an object failed to upload during a Restore
to Online Library, causing it to be retried later with version 0 (unlike
during a restore when the version is omitted), causing the library to be
reset, causing any local objects with higher local versions to be
redownloaded.
2018-04-14 16:50:41 -04:00
Dan Stillman
794d3880e7 Set 'control' attribute for item box fields
Set 'control' to the id of either the value label or the textbox,
depending on whether the field is being edited. This causes NVDA to read
the label associated with the textbox, but seemingly only the first time
it's selected.

Unfortunately NVDA also does some other unpleasant things, like reading
a description from the duplicate-merging pane, which isn't the active
element in the deck, and reading the entire text, including all field
labels, of the item box) I'm not sure how much we can improve this until
we're on Electron.

VoiceOver doesn't read the textbox's label either, even though it does
so in the bookmarks window in Firefox. Maybe things have improved since
Firefox 52, so we can text again after upgrading to Firefox 60.

Addresses #1411
2018-04-14 13:25:31 -04:00
Dan Stillman
0cc3e64b8a Restore proper incompatible DB message
Fixes #1446
2018-04-14 11:38:54 -04:00
Dan Stillman
0e3071576b Show "Export Collection…" if there are items in subcollections
And generate collection context menu asynchronously

Closes #1482
2018-04-14 11:33:16 -04:00
Dan Stillman
460a423df3 Don't let an progress window block shutdown
Closes #1485
2018-04-14 10:28:00 -04:00
Dan Stillman
71f7ec5207 Avoid invalid-field warning for parentItem in fromJSON() after 6f1833f936 2018-04-14 10:27:40 -04:00
Dan Stillman
ce834fc5f3 Don't focus previous row when choosing autocompleted creator
https://forums.zotero.org/discussion/71310/
2018-04-14 10:27:40 -04:00
Frank Bennett
94271325d7 Asyncify Zotero.Relations.getByObject(), called only from item merge. (#1480)
Use getAsync() to acquire subject in Zotero.Relations.getByObject()
2018-04-14 10:26:16 -04:00
Dan Stillman
ceb9749937 Avoid invalid-field warning in Item::fromJSON() after 6f1833f936 2018-04-14 00:06:27 -04:00
Dan Stillman
6f1833f936 Remove items from trash and My Publications when removed via sync
Zotero.Item::fromJSON() wasn't properly accounting for missing 'deleted'
or 'inPublications' properties.
2018-04-13 23:36:59 -04:00
Dan Stillman
4248e59eeb Add log line when trying to drag already-linked collection 2018-04-13 16:12:24 -04:00
Adomas Venčkauskas
029c9fc251 Don't refresh citations when citation delaying is enabled via doc prefs 2018-04-12 14:00:28 +03:00
Adomas Venčkauskas
ea8003c541 Fix an invalid variable reference 2018-04-12 14:00:28 +03:00
Dan Stillman
9a304b6699 Better handling of remotely changed items in locally missing collections 2018-04-07 17:04:35 -04:00
Dan Stillman
17f7bcbbad Target selector: Increase recents to 7 2018-04-06 07:36:13 -04:00
Dan Stillman
eeadeaa1b1 Target selector: Fix recents handling 2018-04-06 07:32:24 -04:00
Dan Stillman
222bb5bad4 Target selector: Don't lose recent targets when saving to same target
A target could fill up the list from different sessions, pushing other
recents out.
2018-04-06 04:27:58 -04:00
Adomas Venčkauskas
7d424f6d12 Return notes from /saveItems connector endpoint 2018-04-05 15:27:02 +03:00
Dan Stillman
bddb5ed243 Target selector: Fix moving translated items between certain libraries
Moving a translated item from a non-filesEditable library to a
filesEditable library would fail (because the endpoint handler was named
"SaveItem" instead of "SaveItems").

Fixes zotero/zotero-connectors#235
2018-04-05 05:41:45 -04:00
Adomas Venčkauskas
ac180c2324 Fix initial integration action requiring a slow citeproc (re)load
(Regression 9c7271c6)
2018-04-04 13:52:33 +03:00
Dan Stillman
d4fce3c855 Update citeproc-js to 1.1.201 2018-04-04 03:34:24 -04:00
Dan Stillman
3b17681db3 Update citeproc-js to 1.1.200 2018-04-03 18:41:40 -04:00
Dan Stillman
4f9847da04 Save parent item to correct library when recognizing PDF without DOI 2018-04-02 15:34:22 -04:00
Dan Stillman
a8d199967e Fix crash if item field invalid for new type is open on type change
https://forums.zotero.org/discussion/71200/bug-when-changing-item-type-report-id-607330517
2018-04-01 15:34:44 -04:00
Dan Stillman
8d0dc359b4 Move prefs.js parsing to Zotero.Profile.readPrefsFromFile(prefsFile) 2018-04-01 13:44:10 -04:00
Dan Stillman
7f81e62bc8 Automatically create new data directories for additional profiles
E.g., if you have a main profile using ~/Zotero and create a second
"Work" profile, a "~/Zotero Work" data directory will be created
automatically and set as a custom data directory
2018-04-01 13:36:00 -04:00
Dan Stillman
0b384abe66 Fix DST display bug in Accessed and a few other date fields
If you entered a date that was in DST (including the current date at
00:00:00) but you were in standard time, the previous day was displayed.

Since access dates for saved items include explicit timestamps and most
people don't work between the hours of midnight and 3 a.m., this didn't
come up very often, and it was easy to miss when it did, since you'd be
unlikely to notice it for previously entered dates. (Someone noticed it
today because DST ended in Australia.)

This only affected the item pane, so citations were unaffected.
2018-04-01 08:17:06 -04:00
Dan Stillman
350b47364e Allow library switching in target selector
If switching from a filesEditable library to a non-filesEditable
library, files are removed. If going the other direction (including if
the original save was to a non-filesEditable library), the save is
performed again from the beginning in order to include attachments. If
switching between two filesEditable libraries, the storage directory is
just moved.

Addresses zotero/zotero-connectors#220
2018-03-31 08:26:40 -04:00
Dan Stillman
9e955bde99 Add Zotero.Item.prototype.moveToLibrary()
Move an item and its attachments to another library. Attachments are
removed as necessary if linked files or all files aren't supported in
the target library.
2018-03-31 08:26:36 -04:00