Commit graph

10802 commits

Author SHA1 Message Date
Dan Stillman
0679809735 Fix invalid collection nesting in DB integrity check
It shouldn't be possible to nest two collections inside each other, but
if it happens, fix it in the integrity check.

Also detect it from CollectionTreeView::expandToCollection() (used when
showing the collections containing an item) and crash Zotero with a flag
to run an integrity check after restart. Previously, this would result
in an infinite loop.

This may be the cause of some of the collection disappearances people
have reported. If parentCollectionID never leads to a null, the
collection won't appear anywhere in the tree.

TODO:

- Figure out how this is happening
- Detect and fix it automatically for people it's happened to
2020-03-13 18:07:20 -04:00
Dan Stillman
81739c7a66 Add Zotero.crash() to show restart message in every window 2020-03-13 17:47:01 -04:00
Dan Stillman
9175f9ade8 Don't use "Create Bib" locale for Quick Copy when no explicit locale set
If you'd never set a Quick Copy locale, the option would show as using
the current locale, but Quick Copy itself would use the last locale from
"Create Bibliography from Items". That was a side effect of behavior we
put in place in 2015 so that documents created before 4.0.27 that relied
on the removed bibliographyLocale pref would continue using the migrated
locale, but now that we've had an explicit locale option for years in
the document preferences I think we can stop doing that.
2020-03-13 17:06:29 -04:00
Dan Stillman
3129f35804 Limit HTTP status override to certain invalid HTTP responses
Only NS_ERROR_INVALID_CONTENT_ENCODING for now

For example, it shouldn't swap in a 403 on
NS_ERROR_PROXY_CONNECTION_REFUSED, as it was doing previously.

https://forums.zotero.org/discussion/81864/syncing-error
2020-03-11 08:53:13 -04:00
Dan Stillman
b0de59fe89 Fix OPML import (regression from 5.0.78) 2020-03-09 22:46:03 -04:00
Dan Stillman
2acec4184a Use process id instead of bundle identifier to activate Mac app
This prevents a second copy of Zotero from being launched if you're
running the Zotero beta and click on a word processor plugin button
while a dialog is already open.
2020-03-09 20:17:09 -04:00
Dan Stillman
6e38c36804 Don't update Extra field if missing in fromJSON()
Harmless regression from recent changes
2020-03-09 01:19:52 -04:00
Dan Stillman
d389a71280 Download remotely updated files in "as needed" file sync mode
Previously, files updated remotely wouldn't be downloaded in "as needed"
mode if a copy of the file already existed locally and could only be
re-downloaded by deleting the file via Show File.

This causes remotely modified files that exist locally to be downloaded
at sync time, even in "as needed" mode, by marking them as
"force_download". While this might not be ideal for people who use "as
needed" to limit data transfer, it's better for people who use it simply
to limit local storage, and ending up with an outdated file while
offline seems worse than a little bit of extra data transfer.

In the future, we'll likely also provide ways to explicitly download and
remove files, so keeping chosen files in sync makes sense.

Files modified remotely before this change (which were marked as
"to_download" instead of "force_download") won't be downloaded as sync
time in "as needed" mode, but they'll now be re-downloaded on open.

Fixes #1322
2020-03-09 01:19:52 -04:00
Dan Stillman
76a1535a60 Full-text indexing improvements
- Use full-text cache file from syncing if available when reindexing via
  info pane or Rebuild Index → Index Unindexed Items. Only discard it for
  full index rebuild. This allows Index Unindexed Items to be used to
  force immediate processing of queued content from syncing and avoids
  unnecessary syncing back of identical content. Previously, the cache
  file was used for a manual index only when the local file didn't exist.
- When rebuilding index, don't clear indexed items with missing local
  file that are missing stats due to a pre-411180ef bug.
- indexItems() now takes an 'options' object as its second parameter
- Minor code cleanup
2020-03-09 01:19:52 -04:00
Dan Stillman
411180ef83 Full-text indexing fixes
- Don't clear item's index stats (and show "Unknown") when an item is
  reindexed remotely and the content matches the local content
- Always update an item's state and its stats in the same query, to
  avoid incorrect feedback immediately after indexing
- Clean up `setItemContent()` tests
2020-03-06 03:11:16 -05:00
Dan Stillman
2645f0de12 Fix "extra is null" error (also fixed via API) 2020-03-03 00:23:38 -05:00
Dan Stillman
da5e8c549e Convert Zotero fields in Extra to CSL fields for citeproc-js 2020-03-02 01:38:10 -05:00
Dan Stillman
83cc65eea6 Fix parsing of CSL date fields in extractExtraField() 2020-03-02 01:34:27 -05:00
Dan Stillman
78b5dbaca1 Update locales from Transifex 2020-02-29 16:38:13 -05:00
Dan Stillman
691d0ca9d1 Allow saved searches to be edited or deleted on error
E.g., "too many SQL variables"

Fixes #1734
2020-02-29 16:38:13 -05:00
Dan Stillman
6170832c44 Update version 2020-02-27 01:32:02 -05:00
Dan Stillman
8170cf09de Fix Editor sorting with >1 editor
Follow-up to eec0f00784
2020-02-26 14:45:48 -05:00
Dan Stillman
37bae44d03 Update version 2020-02-24 18:49:30 -05:00
Dan Stillman
fe9f2ebe01 Update locales from Transifex 2020-02-24 18:48:09 -05:00
Dan Stillman
1a532d3915 Update submodules 2020-02-24 13:27:58 -05:00
Dan Stillman
e51a229e54 Update locales from Transifex 2020-02-24 13:25:50 -05:00
Dan Stillman
8822982199 Fix drop-downs in timeline (regression from 5.0.78)
Fixes #1773
2020-02-24 13:16:31 -05:00
Dan Stillman
b7901ec8dc Add "English (Canada)" to locales menu
en-CA is now a valid locale after zotero-standalone-build@46f3da068
(though the use of ISO date strings is the only difference).
2020-02-23 21:35:56 -05:00
Brenton M. Wiernik
479edcb68a Change label for Computer Program to Software
https://forums.zotero.org/discussion/81522/add-video-game-as-a-source#latest
2020-02-22 13:20:27 -05:00
Dan Stillman
a9dee2f487 Item::fromJSON(): Remove invalid-for-type Type-mapped fields
"Type: [val]` in Extra means Item Type to citeproc-js, and Type values
from translators mostly aren't going to be useful if the item type
doesn't have a Type-mapped field.

https://forums.zotero.org/discussion/comment/348864/#Comment_348864
2020-02-17 11:39:35 -05:00
Dan Stillman
b2bf60e1d7 Item.fromJSON(): Dedupe invalid-for-type fields when storing in Extra
3de54455f6 removed redundant base-mapped fields when a valid-for-type
field was also set, but that still left duplicate fields in Extra when a
valid field wasn't set. This will happen until translators (most notably
Embedded Metadata) are fixed to stop setting redundant fields.

https://forums.zotero.org/discussion/81262/translator-error-sage-lots-of-extra-data-in-extra
2020-02-17 00:22:34 -05:00
Dan Stillman
11caa1b719 Group strict-mode and non-strict-mode tests for Item::fromJSON() 2020-02-16 18:05:45 -05:00
Dan Stillman
b41734924d Further fixing of "Too many sync requests" error
Follow-up to 804a898c98

Addresses #1788
2020-02-16 18:05:45 -05:00
Tom Najdek
8f1acad2d8 Allow session history in a hidden browser
Allows loaded pages to use window.history object without triggering
NS_ERROR_FAILURE
2020-02-16 13:33:09 -05:00
Dan Stillman
804a898c98 Hopefully fix "Too many sync requests" after file upload 412
Addresses #1788
2020-02-16 13:06:49 -05:00
Dan Stillman
5c95d4e0ba Additional logging for "Item collection not found" error in toJSON() 2020-02-16 12:43:46 -05:00
Dan Stillman
a53f363b8d Additional fix for search crash with includeParentsAndChildren
Follow-up to 76081ab05
2020-02-11 13:09:54 -05:00
Adomas Venčkauskas
1db3fc0b49 Fix a benign citation dialog error when pressing ESC to quit 2020-02-11 15:24:41 +02:00
Adomas Venčkauskas
43a38d31a7 Fix locator strings (p123) not working when editing a citation with items present 2020-02-11 15:24:41 +02:00
Dan Stillman
76081ab05f Fix crash when search uses no-op condition and includeParentsAndChildren
E.g., a nonexistent saved search
2020-02-11 00:23:45 -05:00
Dan Stillman
9e2ea008f4 Don't try to include jquery.js in tests HTML page 2020-02-11 00:23:45 -05:00
Dan Stillman
61684d8899 Fix missing bottom border of toolbar on Windows 2020-02-10 22:24:27 -05:00
Dan Stillman
2a804d5d4a Fix zotero://open-pdf links on Windows if no handler is set in registry 2020-02-09 14:07:11 -05:00
Dan Stillman
c81ac1f642 Update global schema to fix "undefined" in Advanced Search "More" menu 2020-02-06 20:08:29 -05:00
Dan Stillman
4290f26d7c Don't search child items in "Title, Creator, Year" mode
They can't match, so there's no need to include them. This should speed
up "Title, Creator, Year" searches.
2020-02-05 09:27:06 -05:00
Adomas Venčkauskas
8fd83795e8 Remove MacWord plugin IPC pipe initialization
Moved to MacWord plugin codebase:
zotero/zotero-word-for-mac-integration#6adf8a7
2020-02-05 16:23:14 +02:00
Dan Stillman
86a5c46b1e Find Available PDF: Don't mark URLs that redirect as tried
https://forums.zotero.org/discussion/81182
2020-02-02 23:47:40 -05:00
Dan Stillman
b4b33c07de Add a delay after the first browser initialization during tests
The window-loading process is different in Firefox, and running a test
that creates items while the window is still loading can cause things to
fail.
2020-02-02 23:47:40 -05:00
Dan Stillman
eec0f00784 Fix sorting by editor in Creator column (since 5.0.78) 2020-01-29 13:39:59 -05:00
Dan Stillman
851af7f45b Don't save library catalog from translation if not valid for item type
Fixes #1781
2020-01-28 20:20:07 -05:00
Dan Stillman
4e11c7927d Don't skip creator lines in Extra in fromJSON
Regression in 3de54455f6
2020-01-27 22:01:25 -05:00
Adomas Venčkauskas
39d7f22981 Fix some drag and drop issue in the citation dialog
See https://forums.zotero.org/discussion/81063/beta-rearranging-citations-in-quick-citation-window
2020-01-27 11:54:22 +02:00
Dan Stillman
8cac7f63f4 Update locales from Transifex, including new connector files 2020-01-26 03:29:23 -05:00
Dan Stillman
48741100a5 Don't try to pull retractions list from server at startup during tests
This causes problems with filtered test runs, since the request is
cancelled and the long response gets dumped to the console, making the
test result hard to find.
2020-01-26 03:29:23 -05:00
Dan Stillman
3de54455f6 Automatically save unknown/invalid fields to Extra in non-strict mode
This is a prerequisite for starting to use new fields in translators,
since otherwise switching from, say, storing originalDate in Extra to
using an originalDate field would cause the value to be lost in clients
without the newer schema.

Closes #1504
2020-01-26 03:29:23 -05:00