Commit graph

9879 commits

Author SHA1 Message Date
Adomas Venčkauskas
b8545590d5 HTML Tree: more fixes to find as you type 2021-08-30 09:57:28 +03:00
Adomas Venčkauskas
2ef5afdd9c Disable typing navigation with modifier keys pressed. Closes #2170 2021-08-30 09:52:13 +03:00
Dan Stillman
d723065a3d HTML tree: Don't move dragged external files by default on macOS
Fixes #2172
2021-08-30 02:40:06 -04:00
Dan Stillman
952663de73 Fix failing repo notice tests 2021-08-29 04:41:52 -04:00
Dan Stillman
2459614f04 Add mechanism for showing dialog with notice from repo
- Messages are shown once a day by default (within the same session for
  id-less messages)
- Messages with an `id` attribute include a checkbox to not show again
  for 30 days
- If an `infoURL` attribute is provided, a "More Information" button is
  shown that launches that URL
- If `title` is provided, it's used for the dialog title. Otherwise
  "Warning" is shown.
2021-08-29 04:25:49 -04:00
Dan Stillman
ba7d0a18aa Restore itemTree::saveSelection()
Deprecated for years, but used by ZotFile
2021-08-29 01:41:40 -04:00
Dan Stillman
8d3adb6f46 HTML tree: Add tree.focus()
And fix shortcut key for selecting library
2021-08-28 22:43:09 -04:00
Dan Stillman
10f2400c59 Merge new English strings 2021-08-27 17:01:33 -04:00
Dan Stillman
dba77cd332 Additional tab context menu tweaks (#2162)
- Select last reopened tab instead of opening all in background
- Rearrange Close/Close Other Tabs/Reopen Closed Tabs options
- Use proper plural for Reopen Closed Tab[s]
2021-08-27 16:52:22 -04:00
Martynas Bagdonas
50732d1479 Add tab context menu (#2162) 2021-08-27 16:52:02 -04:00
Dan Stillman
7019544b48 Add ink annotation type 2021-08-27 16:28:45 +03:00
Adomas Venčkauskas
77f726fef3 HTML Tree: improve row scrolling into row behavior upon toggling open 2021-08-27 13:54:33 +03:00
Adomas Venčkauskas
b05e22fa77 HTML Tree: Make search context rows selectable. Closes #2164
Adds special handling such that context rows are not selected only
when performing a select-all.
2021-08-27 13:36:03 +03:00
Adomas Venčkauskas
0a7aa10463 HTML Tree: Fix refresh bugs when a feed is modified. Closes #2163 2021-08-27 13:05:35 +03:00
Adomas Venčkauskas
ab9414d1a4 HTML Tree: some additional documentation 2021-08-26 16:40:41 +03:00
Adomas Venčkauskas
a71addb12a Make sure including include.js multiple times does not break monkey-patching
This is important for plugins that want to monkey-patch interfaces that
are only accessible via require() calls
2021-08-26 16:21:52 +03:00
Adomas Venčkauskas
b08f2d829f Update the HTML tree to allow extension via Zotero plugins 2021-08-26 16:16:44 +03:00
Adomas Venčkauskas
20e2f33064 HTML Tree: Optimize tree invalidation 2021-08-26 14:40:59 +03:00
Adomas Venčkauskas
bffa64bdda HTML Tree: Re-add item tree methods lost in transition 2021-08-26 10:14:35 +03:00
Adomas Venčkauskas
b91664435f HTML Tree: Fix Show Items from Subcollections. Closes #2160 2021-08-26 09:33:47 +03:00
Martynas Bagdonas
89d1899690 Add UI feedback when moving tab
Fixes #1988
2021-08-26 08:23:19 +03:00
Martynas Bagdonas
d55b80df80 Show author and year in PDF reader tab/window title
Fixes #2034
2021-08-26 08:23:19 +03:00
Martynas Bagdonas
ecd6d7ce2c Implement tab jumpback
#1985
2021-08-26 08:23:19 +03:00
Martynas Bagdonas
b6d562b0cb Allow middle button click to close a tab
Fixes #1993
2021-08-26 08:23:19 +03:00
Adomas Venčkauskas
da7527e384 Fix intro message not getting cleared when adding new item. Closes #2158 2021-08-25 18:19:30 +03:00
Dan Stillman
13f2c57196 Fix sizes of items pane messages
7ef7943a17 made "Loading items…" small again after it got big during
HTMLification but made everything else (e.g., welcome message, My
Publications intro) small as well. This adds an ugly hack to keep the
loading message small for now (without passing dedicated HTML from a
bunch of different places).
2021-08-25 03:50:12 -04:00
Dan Stillman
e14bd828ca Merge new English strings 2021-08-25 02:36:00 -04:00
Dan Stillman
3592ca9f92 Remove new and unused localized string after 462af98380 2021-08-25 02:29:24 -04:00
Dan Stillman
0bbe064245 Don't toggle libraries-to-sync row on Enter
Otherwise if you close the dialog with Enter the current row (which is
probably the row you just changed) is toggled

Regression from HTMLification
2021-08-25 02:27:45 -04:00
Dan Stillman
4d88e99e9e Increase icon column width in libraries-to-sync dialog
A bit wider than d4e3a437f, since the column header seems to not
currently be centered properly at narrow widths
2021-08-25 02:18:08 -04:00
Dan Stillman
92e6a536f1 HTML tree: Add alternating rows to all trees except collections on macOS 2021-08-25 02:16:19 -04:00
Dan Stillman
d0635e12cb
Add disableFontSizeScaling prop to HTML tree (#2155)
Removes `defaultRowHeight` prop added in adb8aa39f in favor of a prop
that disables font size scaling. A non-default row height can still be
specified with `rowHeight`.

Most of our existing trees need to disable font size scaling, but the
idea is that pretty much everything _should_ scale with font size for
accessibility, and it's a limitation of the current prefs and other UIs
that they don't currently, so it's better to default to scaling and
gradually remove uses of this prop.

This fixes a bug where the HTML trees other than the collection and item
trees would have larger rows but without larger text when font size was
increased.

Also:

- Fixes #2157 by fixing line height adjustment on macOS when at the
  default font size, applying it to all trees, and moving the explicit
  `rowHeight` override from the item tree to the collection tree, which
  should have more spacing than all other trees (rather than the item tree
  having less).
2021-08-25 01:53:22 -04:00
Adomas Venčkauskas
462af98380 Restore libraries-to-sync UX. Closes #2156 2021-08-24 17:15:17 +03:00
Adomas Venčkauskas
6010390525 HTML Tree: Fix column separators misaligned at startup. Closes #2153 2021-08-24 16:44:55 +03:00
Dan Stillman
d4e3a437fd Reduce width of icon column in libraries-to-sync dialog
Changed during HTMLification
2021-08-24 01:25:47 -04:00
Martynas Bagdonas
85b142ccb2
Restore tabs state (#2148) 2021-08-23 13:02:57 -04:00
Dan Stillman
f9035c8fda Show emoji colored tags directly in items list
We can do fun things now.

Also:

- Make colored tag swatches resize with the font size
- Increase border radius for color swatches, and adjust with size
2021-08-22 04:41:34 -04:00
Dan Stillman
cc4225db1a Restore localized date in Styles list in Cite prefs
With the new tree, this was showing the full timestamp from the style
object.
2021-08-21 06:58:12 -04:00
Dan Stillman
adb8aa39f8 Reduce item tree row spacing
This matches the previous tree on macOS.
2021-08-21 06:58:12 -04:00
Dan Stillman
7ef7943a17 Reduce item pane message font size
E.g., "Loading items…"

Maybe we want this bigger, but this is roughly what we had before and
matches the tag selector and item pane messages.
2021-08-21 06:58:12 -04:00
Dan Stillman
ec35291060 Decrease item tree indent
Roughly center child item icons between the parent item icon and text,
which looks a bit less awkward than the previous tree's positioning. An
alternative would be to align with the beginning of the parent item text
(a value of 21), but that's a bit spaced out, at least until we have
multiple levels with additional twisties.
2021-08-21 06:58:12 -04:00
Dan Stillman
c85a434eb6 Reduce collection tree indent
At least on macOS, this brings it back in line roughly with the previous
version.
2021-08-21 06:58:12 -04:00
Dan Stillman
c965e6159a Fix collection tree header indentation on macOS 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
881ab5f59e Store column prefs to a dedicated file in a profile dir instead of XPCOM prefs 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
a2062bf011 Fix selection not being maintained when collapsing/expanding rows 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
55c758c9d0 Fix header columns being misaligned with table columns in item tree
And reindent _virtualized-table.scss
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
431d7e1eaa Fix alternating-row colours switching upon child expand-collapse 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
efc009f724 Fix collection tree header alignment on macOS 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
7ec89c44ce Improve column sorting speed 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
ff627b7d3f Ensure column order and width prefs are properly retained 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
9e04250142 Do not sort a column on mouseup if mousedown occurred on a different one 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
4cea4519b8 Fix column resizing weirdness with fixed with columns 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
277503f879 Fix rows not being properly redrawn in duplicates view 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
a15fb83cc4 Fix feed sort being wrong 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
c496b5e367 Fix crash message not getting locked 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
8ebf1609b6 Item tree selection changes and fixes
- Fixes selection events always being debounced
- Fixes some failing tests
- Ensures Select All command selects search matching children of
collapsed parents. Adds tests for this case
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
6dce19d546 Expand search parents whith Select All shortcut in item tree 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
1db2eb4aea Ensure disabled item tree rows are not selectible with Select All 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
7265393be9 Fix item PDF not opening on double click in tree 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
9c7f28b126 Fix trees not properly redrawing on drag events 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
b671611b51 Fix item tree message not being centered outside of main window 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
d83ec19c23 Do not try to open/close empty collection tree rows on + and - hotkeys
Causes performance issues
2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
b5dc0e7630 Add a comment for how to open the data generator 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
87014451de Fix item tree selection issues when using + and - hotkeys 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
cc97545bd6 Fix advanced search item tree being invisible on open 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
700ac31eef Ensure \n\n in itemPaneMessage is displayed as a newline 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
82f87a0d8d Add a Restore Column Order choice in the column picker 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
2b6c7277f7 Item Tree: Do not display Title in the columnpicker 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
af597d943b Move js-tree files out from /containers subfolder 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
e68685521b Do not change selection on macOS when using PageUp/Down 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
f773f79d10 Documentation adjustments for virtualized-table 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
82914a9583 JSWindow - WindowedList 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
67d9e87c55 Icons.getDomElement() -> Icons.getDOMElement() 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
47094fc4c3 Misc new tree cleanup 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
d26eba2d2c Adjustments and documentation for Utilities.Internal.makeClassEventDispatcher 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
bcd9d777c9 Remove unused Debug._setLevel() 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
51f13412b9 Documentation for the tree selection 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
5a97f2bdd8 ReactDom -> ReactDOM 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
1e75425698 Fix highlighted collection not unhighlighting 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
2f72ed17b7 Ensure columns with different visibility group retain their config 2021-08-21 06:58:12 -04:00
Adomas Venčkauskas
cbbff600a6 XUL -> JS tree megacommit
- Just a single huge commit. This has been developed over too long a
time, required many tiny changes across too many files and has seen too
many iterations to be separated into separate commits.
The original branch with all the messy commits will be kept around for
posterity
bb220ad0f2...adomasven:feature/react-item-tree
- Replaces XUL <tree> element across the whole zotero client codebase
with a custom supermegafast virtualized-table inspired by
react-virtualized yet mimicking old XUL treeview API. The
virtualized-table sits on top on a raw-to-the-metal,
interpreted-at-runtime JS based windowing solution inspired by
react-window. React-based solutions could not be used because they were
slow and Zotero UI needs to be responsive and be able to
display thousands of rows in a treeview without any slowdowns.
- Attempts were made at making this screen-reader friendly, but yet to
be tested with something like JAWS
- RTL-friendly
- Styling and behaviour across all platforms was copied as closely as
possible to the original XUL tree
- Instead of row-based scroll snapping this has smooth-scrolling. If
you're using arrow keys to browse through the tree then it effectively
snap-scrolls. Current CSS snap scroll attributes do not seem to work in
the way we would require even on up-to-date browsers, yet alone the ESR
version of FX that Zotero is on. JS solutions are either terrible for
performance or produce inexcusable jitter.
- When dragging-and-dropping items the initial drag freezes the UI for
a fairly jarring amount of time. Does not seem to be fixable due to
the synchronous code that needs to be run in the dragstart handler.
Used to be possible to run that code async with the XUL tree.
- Item tree column picker no longer has a dedicated button. Just
right-click the columns. The column preferences (width, order, etc) are
no longer handled by XUL, which required a custom serialization and
storage solution that throws warnings in the developer console due to
the amount of data being stored. Might cause temporary freezing on HDDs
upon column resize/reorder/visibility toggling.
- Context menu handling code basically unchanged, but any UI changes
that plugins may have wanted to do (including adding new columns) will
have to be redone by them. No serious thought has gone into how plugin
developers would achieve that yet.
- Opens up the possibility for awesome alternative ways to render the
tree items, including things like multiple-row view for the item tree,
which has been requested for a long while especially by users switching
from other referencing software
2021-08-21 06:58:12 -04:00
Tom Najdek
f274323478
Mendeley import: Move temp downloaded files instead of copying #2149 (#2150)
During Mendeley api import all attachments are fetched into temporary
location and were previously copied to the storage folder. Only after
import completed, temporary files were deleted. Therefore a complete
import required storage equal to twice the final library size. Switching
to move avoids this problem.

Also:

- Fix _isTempDownloadedFile() check
2021-08-20 00:07:28 -04:00
Dan Stillman
ddc7be75c7 Use PRAGMA legacy_alter_table=ON for existing schema updates
This won't make a difference until we update Firefox and get a new
SQLite version, but at that point the existing schema update steps that
recreate tables by renaming the old table would result in broken foreign
keys.

This patch will make sure that newer SQLite versions will use the legacy
behavior for the existing steps, and going forward schema update steps
that want to recreate tables will need to create a new table, migrate
the data, delete the old table, and rename the new one into place.
2021-08-17 00:41:59 -04:00
Dan Stillman
0f96c20f3c Fix several possible DB upgrade errors from 4.0 to 5.0
- We were updating global schema before migrating userdata, but a 4 → 5
  upgrade involved a system.sql version bump, which wiped out itemTypes,
  causing 'annotation' to not exist after the upgrade. This moves global
  schema updates after userdata migration and bumps the global schema
  version to repair DBs that were already upgraded and broken.

- A system.sql bump without a global schema update would result in empty
  tables. This moves the global-schema-related tables to userdata.sql.

- The DB integrity check before userdata updates added in 5b9e6497a
  could fail when coming from an older DB, because the checks assume
  current schema. An integrity check is now done after a userdata update.
  (We were already skipping the new table/index reconciliation stuff. If
  old DBs are discovered to have problems that would cause a migration
  step to fail, we'll fix those explicitly in the steps.)

Also:

- Make sure `version` is `versionNumber` in the `fields` table. It was
  changed with a system.sql bump in 5.0, but hard-coded fields were later
  removed from system.sql in favor of schema.json, meaning that anyone who
  upgraded from 4.0 after that would never have `version` removed and so
  would have both fields (one from before and one from schema.json).
2021-08-17 00:41:59 -04:00
Dan Stillman
f50a3b0840 Merge new English strings 2021-08-13 06:32:37 -04:00
Dan Stillman
3732f97d41 Add OpenURL resolver directory
Remove the apparently obsolete [1] WorldCat `lookup?IP=requestor` search
functionality and replace with a hierarchical menu populated directly
from our directory [2].

Also switch to https://www.worldcat.org/registry/gateway as the default
resolver, which seems to be the same as
http://worldcatlibraries.org/registry/gateway but with HTTPS support

Fixes #1811
Fixes #1853

[1] https://forums.zotero.org/discussion/79312/search-for-resolvers-gives-out-of-date-information
[2] https://www.zotero.org/support/locate/openurl_resolvers
2021-08-13 06:25:16 -04:00
Adomas Venčkauskas
5118cd4164 Fix note insertion errors when note does not contain citations 2021-08-13 13:18:15 +03:00
Dan Stillman
15162c277b Update locales from Transifex and merge new English strings 2021-08-12 00:43:18 -04:00
Dan Stillman
ee2b63bf18 Update submodules 2021-08-06 16:56:31 -04:00
Dan Stillman
5ae8e819ef Update utilities submodule and add comment for MAX_TITLE_LENGTH 2021-08-06 16:06:29 -04:00
Martynas Bagdonas
9b3367f227 Allow zotero://open-pdf/ to navigate to specific annotation by key
zotero://open-pdf/library/items/AABBCCDD?annotation=[annotation-key]

Fallback to a page if annotation is missing:
zotero://open-pdf/library/items/AABBCCDD?page=123&annotation=[annotation-key]

Fixes #2125
2021-08-06 13:06:40 +03:00
Martynas Bagdonas
6472321000 Upgrade note-editor schema to v4:
- Set `annotation.attachmentURI` instead of `annotation.uri` when inserting annotations
- Migrate `annotation.uri` to `annotation.attachmentURI`
- Add `annotation.annotationKey` that references to the original annotation
2021-08-06 13:06:40 +03:00
Martynas Bagdonas
a065d477ed Add zoom options to View menu
Fixes #2138
2021-08-05 11:27:54 +03:00
Martynas Bagdonas
bd56b16247 Fix missing checkbox issue for standalone PDF reader window 2021-08-05 11:23:35 +03:00
Dan Stillman
97b381f435 Update utilities submodule (fixes #2141)
Follow-up to #2128
2021-08-04 20:40:27 -04:00
Dan Stillman
b1e63c8fe1 Update translate and utilities submodules 2021-08-04 20:02:46 -04:00
Abe Jellinek
4ebed5dee7
Update strings and add test for ADS Bibcode extraction (#2128) 2021-08-04 19:37:49 -04:00
Abe Jellinek
4475e86eac
Fix error when connector requests translators (#2135)
The call to done() resulted in a 500 response and prevented the
connector from fetching the list of available translators.
2021-08-04 04:39:43 -04:00
Martynas Bagdonas
7015c8df59 Fix missing menu checkbox issue on pdf-reader and note-editor on Windows 2021-08-02 11:45:30 +03:00
Abe Jellinek
5bfdeb36ca
Exclude unmergeable types by name, not by ID (#2137)
Excluding by ID obscured which types were being excluded. IDs drifted
and we ended up blacklisting artwork and encyclopediaArticle.
2021-07-30 16:15:10 -04:00
Adomas Venčkauskas
0e2073b251 Revert removal of Utilities.Internal.itemToExportFormat() (since c929055) 2021-07-30 14:28:14 +03:00
Adomas Venčkauskas
4d497afea0 Use Translator Tester code from shared repo for Scaffold 2021-07-28 15:46:07 +03:00
Adomas Venčkauskas
8f90cfbcfd Remove obsolete files after shared code modularization 2021-07-28 15:46:07 +03:00
Adomas Venčkauskas
7814efcfe2 Use zotero/translate and zotero/utilities for shared code 2021-07-28 15:46:07 +03:00
Adomas Venčkauskas
c929055571 Refactor utilities code in preparation to move to external repo 2021-07-28 15:46:07 +03:00
Martynas Bagdonas
e0bc873bce Improve embedded note image loading and deletion:
- Delete unused embedded images when note is closed.
- Load images as soon as they are downloaded.
- Introduce new notification for download event, and a test for it.
- Prevent simultaneous downloads of the same attachment.
2021-07-28 13:49:04 +03:00
Martynas Bagdonas
3c658fc672
Copy embedded images, downloaded when needed or show a warning (#2129) 2021-07-26 13:04:38 +03:00
Martynas Bagdonas
a40ac2907e Open PDF files over viewAttachment() to reuse its logic (download, etc.) 2021-07-22 17:54:46 +03:00
Martynas Bagdonas
415973d83c Update citations only on note edit to avoid sync loops 2021-07-21 21:30:53 +03:00
Martynas Bagdonas
aa11c36a64 Little fixes to note editor:
- Fix invalid selector
- Filter itself sent postMessage messages
2021-07-21 21:20:20 +03:00
Dan Stillman
6a6e4fa92c Don't update retractions on bundled file update notification 2021-07-21 03:45:25 -04:00
Dan Stillman
2dd16b44d6 Ignore items in target library trash for cross-library drags
Just don't consider items in the trash to be linked items in
item.getLinkedItem(). I'm not totally sure why we didn't do this many
years ago, since it's one of the biggest sources of confusion in Zotero.

This addresses #1648 and closes #1610, though not by undeleting and
overwriting the item in the trash. When deleting an item and then
re-dragging it from another library, I think most people would expect
the item in the trash to still exist (possibly with notes, etc.), rather
than having been automatically restored and overwritten with new data.
2021-07-20 23:45:40 -04:00
J. Ryan Stinnett
6b8bbaf980 Rename metaOrCtrl to cmdOrCtrl
Since we're already testing for macOS, let's go for clarity and call the meta
key Cmd here, since that's what it is.
2021-07-15 09:26:36 +01:00
Tom Najdek
ec2ad91938
Mendeley import: Add "★" tag for favourite items (#2122)
Also ensure that "★" tag is added to an existing item on re-import
where appropriate.
2021-07-13 06:28:05 -04:00
Abe Jellinek
d2db842938
Scaffold: Add action to open test URL in internal browser (#2117) 2021-07-13 03:33:57 -04:00
J. Ryan Stinnett
738d449bea Add MetaOrCtrl-1 through 9 tab navigation 2021-07-11 02:28:25 +01:00
J. Ryan Stinnett
051a84686f Add Ctrl-Tab / Ctrl-Shift-Tab tab navigation 2021-07-11 02:28:25 +01:00
J. Ryan Stinnett
3a95e2e303 Add Cmd-Shift-[ / ] tab navigation on macOS only 2021-07-11 02:28:25 +01:00
J. Ryan Stinnett
28b34bb958 Add stop propagation to existing tab navigation 2021-07-11 01:32:17 +01:00
J. Ryan Stinnett
9afc6e8f47 Tweak existing tab navigation style 2021-07-11 01:29:42 +01:00
J. Ryan Stinnett
d231a03308 Move tab navigation above from and document checks
This ensure tab navigation functions are always available throughout Zotero.
2021-07-11 01:03:10 +01:00
Abe Jellinek
f942c224f5
Scaffold: Run/delete tests with the keyboard (#2118) 2021-07-09 03:42:08 -04:00
Dan Stillman
fb01339c6b Implement library.isGroup property, which was never properly implemented
And since `Zotero.Libraries.isGroupLibrary()` just checked that
property, that hasn't worked either since `isGroup` was added in 2015.

There's no test for `.isGroup`, and the test for `isGroupLibrary()` used
`if()` instead of `it()`, so it never actually ran.

Also:

- Remove old code block in search.js that called `isGroupLibrary()`.
  Since `isGroupLibrary()` didn't work, this block was unused, and its
  logic was previously added elsewhere.
2021-07-07 01:43:22 -04:00
Dan Stillman
314f66c84a Fix comment on Zotero.Item::clone() 2021-07-07 00:17:29 -04:00
Martynas Bagdonas
9e7ab68fb4 Localize color names in pdf-reader 2021-07-06 16:57:47 +03:00
Martynas Bagdonas
28f5fed509 Increase pdf-reader default sidebar width 2021-07-06 16:52:47 +03:00
Martynas Bagdonas
3b6c31319d Tweak pdf-reader and note-editor read-only mode code 2021-07-06 16:52:46 +03:00
Martynas Bagdonas
de7ede5d9b Properly disable read-only actions in notes list context menus 2021-07-01 14:14:43 +03:00
Martynas Bagdonas
0e76c31608 Add Zotero.enablePDFBuildForGroups switch 2021-06-30 17:30:24 +03:00
Martynas Bagdonas
26d784ca0f Allow read-only note editing in a separate window in PDF build 2021-06-30 17:03:10 +03:00
Martynas Bagdonas
ee9ebc6152 Fix contextPane note regression that unpurposely enables read-only mode 2021-06-30 17:03:10 +03:00
Martynas Bagdonas
f4e7c8293b Don't allow to create/delete notes in contextPane in read-only libraries 2021-06-29 17:27:27 +03:00
Martynas Bagdonas
ab200cc60b Improve annotations insertion into notes:
- Properly transform HTML tags flavored plain-text into actual HTML
- Add support for multiline comments and highlights
- Insert newline before citation/comment when necessary
2021-06-29 16:03:54 +03:00
Martynas Bagdonas
f2a440185b Filter i, b, sub, sup tags from annotation comment when exporting to PDF 2021-06-29 13:49:36 +03:00
Dan Stillman
fdcd4e51c5 Handle additional cases of conflicting translators
And fix test failure from bde9a74f9d in CI, where the file list order is
different
2021-06-26 20:17:57 -04:00
Dan Stillman
06075a25c0 Fix regression in b8ad18e96d
We're relying on Bluebird's synchronous promise inspection for noWait
translate mode (as used in Quick Copy). We should decide if we want to
keep the Bluebird dependency or rewrite this to use native promises
(e.g., with a separate synchronous `_loadTranslator()` function for
noWait mode), but for now just restore the `Zotero.Promise.method()`.
2021-06-26 17:51:17 -04:00
Dan Stillman
ebc21742dd Update locales from Transifex and merge new English strings 2021-06-26 17:51:17 -04:00
Dan Stillman
261bb7ee91 Dictionary handling improvements
- Fix installation of dictionaries on Windows
- Use version in XPI download URL (zotero/zotero-build@c3308c7a4)
- Improve display of download errors
2021-06-26 17:09:23 -04:00
Martynas Bagdonas
425daa3622 Make pdf-reader read-only when item is in trash or read-only group 2021-06-25 19:21:39 +03:00
Dan Stillman
b8ad18e96d Fix broken detection after error loading a translator's code
The bug fixed in bde9a74f9d was triggering an error getting code for a
deleted search translator, which due to this bug caused a double
complete() call that got detection all out of sync, which caused some
search translators to be skipped, which resulted in ISBN lookup
failures.
2021-06-25 06:49:54 -04:00
Dan Stillman
bde9a74f9d Clear caches properly when deleting duplicate translator
Among other things, if the name of a translator was changed, until
restart Zotero.Translators.getAllForType() would return the old cache
entry pointing to a file that no longer existed.
2021-06-25 06:49:18 -04:00
Martynas Bagdonas
d9eb45bf0e Don't show note-editor replace bar by default, rename input to "Replace"
Fixes #2107
2021-06-24 13:53:40 +03:00
Dan Stillman
f80ba89971 Massively speed up tests
- Make a copy of the database after first initialization that can be
  swapped in when reinitializing in resetDB()
- Avoid unnecessary one-second delay on every reset

Probably more that can be done, but this should take minutes off the
test runs
2021-06-24 06:10:40 -04:00
Martynas Bagdonas
88280641ac Avoid setTimeout call on every note-editor context menu popup
Fixes #2111
2021-06-24 11:32:43 +03:00
Dan Stillman
3fc7ce8e7d Update locales from Transifex and merge new English strings 2021-06-23 22:06:31 -04:00
Martynas Bagdonas
e3758dc581 Delay popup with spell checker initialization to fix missing checkmark 2021-06-23 21:56:11 -04:00
Dan Stillman
9a7016ad64 Spell checker improvements
- Add/Remove Dictionaries window
- Better account for the (unlikely) possibility that a dictionary could
  be replaced by another more popular dictionary provided by a different
  extension id (tested)
- Better account for the (very unlikely) possibility that an extension
  could bundle multiple dictionaries (untested)
- Use toolkit version comparator for proper extension version
  comparisons
- Localize strings
- Add tests for updating
2021-06-23 21:56:11 -04:00
Dan Stillman
7f2296b1fb Tweak a couple error messages for HTTP.BrowserOfflineException 2021-06-23 21:56:11 -04:00
Dan Stillman
1e2ad01f99 Zotero.File.download(): Throw error on non-200 response 2021-06-23 21:56:07 -04:00
Martynas Bagdonas
814cbc0ee3 Introduce spell checker context menu and dictionaries managing 2021-06-23 19:25:46 -04:00
Dan Stillman
02db8e620e Update locales from Transifex and merge new English strings 2021-06-22 16:06:04 -04:00
Martynas Bagdonas
ac47578a7b Add an option to remove previously set annotation colors in note-editor
Fixes #2106
2021-06-22 12:25:45 +03:00
Martynas Bagdonas
6c16d7625a Redesign find-replace bar 2021-06-22 09:34:37 +03:00
Dan Stillman
5c5b3c8565 Updates locales from Transifex and merge new English strings 2021-06-22 01:24:09 -04:00
Dan Stillman
00a0231e4f Remove "\n" from localized string for note annotation header
Follow-up to 47f897fe8c
2021-06-22 01:13:17 -04:00
Dan Stillman
91ebbc1bc9 Changes to colored tag toggling via keyboard
- Update Date Modified when toggling tags via keyboard
  (https://forums.zotero.org/discussion/90371/bug-toggling-a-colored-tag-with-number-keys-doesnt-update-date-modified)
- If any selected items don't have the tag, add it to all items, instead
  of deciding based on the first item
  (https://forums.zotero.org/discussion/79900/minor-issue-related-to-colored-tags)
2021-06-22 01:01:51 -04:00
Dan Stillman
42b4b173f3 Store lastCompatibleVersion during schema initialization
Otherwise switching back to release from beta doesn't show the last-used
version if the beta hasn't gone through at least one
compatibility-breaking schema update.
2021-06-21 01:16:18 -04:00
Abe Jellinek
e285415451
Make resolveURL available to translators (#2101) 2021-06-18 15:18:44 -04:00
Martynas Bagdonas
47f897fe8c Use two lines for extracted annotation header and fix title extraction
Fixes #2095
2021-06-18 13:03:25 +03:00
Martynas Bagdonas
b5edc0d9c1 Reorganize note-editor toolbar 2021-06-17 14:07:09 +03:00
Dan Stillman
7a4b27e774
Merge pull request #2071 from jryans/feed-processor
Import feed processor
2021-06-17 03:27:36 -04:00
J. Ryan Stinnett
eaa01901ef Wire up new feed processor to Zotero's feed reader
This connects the new feed processor to Zotero's existing feed reader. The new
feed processor assumes a content window environment, so a sandbox in a parent
window is used to load it.
2021-06-16 20:59:57 +01:00
J. Ryan Stinnett
af6029b854 Convert feed processor to native URLs 2021-06-16 20:59:57 +01:00
J. Ryan Stinnett
be80598c6b Convert feed processor data away from XPCOM
This changes the feed processor XPCOM array and property bags to native arrays
and objects.
2021-06-16 20:59:57 +01:00
J. Ryan Stinnett
088483b776 Fix lint issues in feedReader.js 2021-06-16 20:59:57 +01:00
Tom Najdek
f1414731da
Blur active field in switchCreatorMode #2087 (#2088) 2021-06-14 17:33:55 -04:00
Abe Jellinek
f83559feb8
Correct creator fields in OpenURL (#2079)
There is no isInstitution field, so OpenURL search was producing invalid
data for items with institutional authors. Instead we use the name field
in API JSON and the isInstitution flag in internal JSON.
2021-06-14 14:49:49 -04:00
qqobb
5359db39d0
Run JavaScript: Improve await regex (#2083)
Tests: https://regex101.com/r/eQYCIp/1
2021-06-12 02:44:39 -04:00
Tom Najdek
864b135da4
Mendeley import: Simplify filename logic #2067 (#2085) 2021-06-11 13:35:09 -04:00
Martynas Bagdonas
3beb858275 Upgrade note-editor schema to v3:
- No longer store `text` property in highlight annotation
- Remove `text` property when modifying a note
2021-06-09 17:48:55 +03:00
Martynas Bagdonas
43bd1af3e9 Prepare read-only check for group library annotations 2021-06-08 10:10:21 +03:00
Martynas Bagdonas
87ef6ceacc Fix notesList more button notes count 2021-06-04 18:27:43 +03:00
Martynas Bagdonas
6d0067b806 Do not escape existing HTML entities when citing note 2021-06-04 11:49:11 +03:00
Dan Stillman
2fd46157f3 Enable Basque locale 2021-06-04 02:16:20 -04:00
Dan Stillman
3cfc31c445 Add TODO to pass libraryID in advanced search autocomplete
This will probably conflict with an open PR, but that should be fixed to
do the same.
2021-06-04 02:15:16 -04:00
Dan Stillman
07eda894f3 Don't trigger 'redraw' event on attachment download 404
There's no need to refresh the attachments column of the item row if
nothing was downloaded.

Also remove some unnecessary logging
2021-06-03 23:39:52 -04:00
Martynas Bagdonas
a5fe49b866 Remove sync buttons from PDF reader toolbar
Fixes #2045
2021-06-02 20:39:44 +03:00
Martynas Bagdonas
a418d5ae8d Fix RTL mode in pdf-reader, note-editor, contextPane 2021-06-01 11:37:07 +03:00
Dan Stillman
1bf7b1e88e Fix updating of attachment title in right-hand pane when changed
https://forums.zotero.org/discussion/88225/attached-file-name-doesnt-change-immediately-at-5-0-97-beta-2-8b1b2ee56
2021-05-31 03:26:06 -04:00
Dan Stillman
1daf4b0413 Update locales from Transifex and merge new English strings 2021-05-28 02:58:53 -04:00
Martynas Bagdonas
ded077dc8e Use Zotero.appName for localization in note-editor
Fixes #2073
2021-05-27 13:38:09 +03:00
Dan Stillman
6be797bc14 Fix additional imported Mendeley annotation color ("#000")
This is going to start redacting people's PDFs until we change the
default opacity.
2021-05-27 05:30:39 -04:00
Martynas Bagdonas
cf344335ed Use item display title for PDF reader tabs 2021-05-25 19:48:35 +03:00
Martynas Bagdonas
bb40928720 Localize formatted citations in notes
Fixes #2040
2021-05-25 13:07:24 +03:00
Martynas Bagdonas
faec1f1dee Provide filename for recognizer server 2021-05-25 10:30:54 +03:00
Martynas Bagdonas
b2acb5e339 Fix missing title in PDF reader standalone window 2021-05-21 17:20:12 +03:00
Martynas Bagdonas
eb085f2bbe Reorganize View menu, add checkmarks, introduce Go menu
Fixes #2037
Fixes #1997
2021-05-21 17:20:11 +03:00
Martynas Bagdonas
39b56a66dc Fix blank standalone PDF reader window issue 2021-05-21 15:44:38 +03:00
Martynas Bagdonas
1e0b5272a4 Add missing Page and Read-only localizations 2021-05-21 15:24:56 +03:00
Martynas Bagdonas
a7c6979e75 Add space between items in multi-item citation 2021-05-21 15:24:56 +03:00
Dan Stillman
cdf1f3c856 Mendeley import: Use bytes for path/filename limits on Windows
It's not totally clear how it's calculated, but it doesn't seem to be
just characters.

And make the path limit 255, which is the File Explorer limit, even if
the filesystem can allow up to 260.
2021-05-21 03:02:41 -04:00
Abe Jellinek
06660d04f0
Scaffold: Update year and add spacing in template (#2066) 2021-05-21 00:53:19 -04:00
Dan Stillman
bec42fe2a5 Handle multibyte characters in Zotero.File.truncateFileName()
Filesystems care about byte length, not character length, so treat
maxLength as the byte length limit and truncate accordingly.

This will also now remove entire emoji characters without corrupting
them.
2021-05-20 19:25:57 -04:00
Dan Stillman
b511e452a8 Mendeley import: Only limit paths to 260 characters on Windows 2021-05-20 19:25:15 -04:00
Tom Najdek
7582147dd5
Mendeley Import: Prevent tmp path > 260 chars 2021-05-20 12:53:34 +02:00
Tom Najdek
63205a73e8
Improve truncateFileName logic for edge cases 2021-05-20 12:41:49 +02:00
Tom Najdek
89d81cee41
Mendeley import: Sanitize names of fetched files 2021-05-20 12:41:44 +02:00
Tom Najdek
faf094f0aa
Mendeley import: shorten tmp file path 2021-05-20 11:18:23 +02:00
Martynas Bagdonas
5497598c63 Localize pdf-reader and note-editor 2021-05-20 10:49:03 +03:00
Dan Stillman
861d5787d8 Mendeley online import: Fix error if downloaded file doesn't exist
If a file attached to an item with a URL wasn't found in the temp
directory, it would trigger an error that stopped the sync. (I'm not
sure how a file wouldn't exist.)
2021-05-20 03:15:15 -04:00
J. Ryan Stinnett
d3d2212a0f Start tab title tooltips on mousemove
By changing to `mousemove` to start the tab title tooltip, the behavior matches
applications like Firefox more closely: you can always get the latest tooltip
back after changing state by nudging the mouse (without having to exit and
re-enter anything).
2021-05-18 14:43:09 +01:00
J. Ryan Stinnett
b27ac6649e Hide tab title tooltips whenever the tab bar changes
This hides tooltips (such as the tab title tooltip) whenever the tab bar state
changes, such as when adding or removing a tab, to ensure we don't leave any
tooltips behind that no longer match reality.

Fixes https://github.com/zotero/zotero/issues/2060
2021-05-18 14:42:56 +01:00
J. Ryan Stinnett
5b7e01dff6 Rename tab event handlers to clarify target 2021-05-18 13:31:32 +01:00
Dan Stillman
e7f93cb548 Fix appearance of error report text in dark mode on Linux
Closes #2021
2021-05-16 05:08:44 -04:00
Dan Stillman
3815197b92 Don't allow site-specific Quick Copy setting without domain
And remove existing blank entry in schema update step

Closes #2053
2021-05-16 05:08:44 -04:00
Dan Stillman
1b2a6c13a8
Merge pull request #2016 from Dylan-Evan/master
Fix dark theme on Item Type
2021-05-16 04:25:54 -04:00
Dan Stillman
7217cd407a
Merge pull request #2009 from WesleyFord/master
Fix background color of the dropdown menu.
2021-05-16 04:22:03 -04:00
Dan Stillman
3880687d2b
Merge pull request #2039 from HollandeP/master
Made About page text visible across default Linux themes
2021-05-16 04:15:17 -04:00
Dan Stillman
675184f7a7 Update locales from Transifex and merge new English strings 2021-05-15 15:21:21 -04:00
Dan Stillman
2799dfef5b Clarify sync-to-empty-database warning
Closes #1959
2021-05-15 15:09:33 -04:00
Dan Stillman
3aa355a8b4 Add Zotero.DB.path property 2021-05-15 15:09:33 -04:00
Dan Stillman
146e1af189 Update submodules 2021-05-14 22:44:33 -04:00
Dan Stillman
6834c6062b Fix auto-sync timeout in notes
Regression in 7ace5ea29
2021-05-14 05:13:19 -04:00
Dan Stillman
53f53779a3 Mendeley import: Don't show local import option
It's still possible to trigger a local import from a 1.18 database by
selecting the .sqlite file directly from the file option, but don't
offer it in the dialog.
2021-05-14 04:27:19 -04:00
Dan Stillman
7e23cfef96 Fix invalid imported Mendeley annotation color
After fix in 808b71832e

And require annotation colors to be 6-char hex colors going forward
2021-05-14 04:20:50 -04:00
Dan Stillman
f925f0e402 Don't cache SQL statements during initialization
From executeSQLFile()
2021-05-14 04:20:50 -04:00
Dan Stillman
d2b36c4218 Deduplicate libraryIDs passed to setSyncTimeout() for an auto-sync 2021-05-14 04:20:50 -04:00
Dan Stillman
5eb6935842 Deduplicate queued sync options
E.g., if a sync is ongoing and there are multiple item saves that would
trigger auto-sync with the same options, only queue a single sync.

7ace5ea29e fixed the main cause of this, but in case some other
saves end up happening during a sync, this will prevent them from
triggering multiple sync loops with the same options.
2021-05-14 04:20:36 -04:00
Dan Stillman
7ace5ea29e Fix unnecessary sync looping after downloading items
An extra sync loop would be performed for every object downloaded, so a
download to an empty database could result in a huge number of
unnecessary loops. This was a regression from 52932b6eb, which started
queuing auto-syncs while a sync was in progress. The fix here is to skip
auto-sync for all objects saved from a sync download.

There are two new mechanisms involved:

- Event-level notifier options that get passed to passed to notify() at
  the top level of extraData rather than being included with every
  object (e.g., because `skipAutoSync` should apply to an entire save
  transaction)
- The ability to pass event-level notifier options when initializing
  a Zotero.Notifier.Queue, such as the one used for sync downloads
2021-05-14 03:49:26 -04:00
Dan Stillman
5b0f02a12b Trigger auto-sync after item deletion
It looks like this has been broken for years.
2021-05-14 03:49:26 -04:00
Dan Stillman
9a47f74787 Specify note auto-sync timeout in save call, not in sync event listener
This will allow other operations to specify a longer timeout.
2021-05-14 03:49:26 -04:00
Tom Najdek
808b71832e Fix rgb to hex color conversion 2021-05-13 15:52:54 -04:00
Tom Najdek
833ee10516 Mendeley import: Switch to authorisation code flow via proxy 2021-05-10 14:32:02 -04:00
Dan Stillman
d3a78982f0 Add attr()/text() to search translators 2021-05-07 14:57:55 -04:00
Dan Stillman
d27b622f9f Mendeley import: Fill in Publication field on existing items if empty
It was skipped in online imports before eef0fc6fa8.
2021-05-06 15:59:46 -04:00
Dan Stillman
eef0fc6fa8 Mendeley online import: Fix "Journal" → "Publication" mapping 2021-05-06 15:46:35 -04:00
Dan Stillman
6d5b00e94c Fix descendant collections not skipping delete log
If a collection was deleted with `skipDeleteLog: true`, descendant
collections still ended up in the delete log, which could cause
constant "Reset Group and Sync" prompts.

https://forums.zotero.org/discussion/89485/warning-when-syncing-group-library
2021-05-06 03:34:09 -04:00
J. Ryan Stinnett
74b9604c7b Show full tab title on hover
Fixes https://github.com/zotero/zotero/issues/2033
2021-05-05 01:20:42 -04:00
J. Ryan Stinnett
12b100fd4b Hide tab bar for single tab case on Windows and Linux
This hides the tab bar on Windows and Linux, where it currently takes up a lot
of vertical space below the menu bar. On macOS, the tab bar remains always shown
since we don't have the menu bar and can move tabs in the window there.

Fixes https://github.com/zotero/zotero/issues/2019
2021-05-03 17:24:05 -04:00
Martynas Bagdonas
a74c012b65 Improve contextPane notes list performance 2021-05-03 21:41:41 +03:00
Dan Stillman
83a12bca89 Update locales from Transifex and merge new English strings 2021-04-30 07:34:01 -04:00
Dan Stillman
48d5ec240e Mendeley import: Tweak intro text 2021-04-30 07:14:19 -04:00
Dan Stillman
3877563abe Mendeley import: Clear cookies when closing OAuth window 2021-04-30 07:10:58 -04:00
Dan Stillman
911e1637f2 Update locales from Transifex and merge new English strings 2021-04-29 03:34:56 -04:00
Dan Stillman
57fbe61f93 Use notifier queue during Mendeley import
This dramatically speeds up Mendeley imports by avoiding UI updates.
Regular imports in fileInterface have done this for a while, but the
Mendeley importer used a fake translation object that didn't use the
passed queue.

After this change, a 10,000-item import goes from 9m30s to 2m45s, a 71%
decrease.
2021-04-29 00:46:18 -04:00
Dan Stillman
bb75fcd784 Fix support link in encrypted Mendeley database message
It started being flattened at some point.
2021-04-29 00:46:18 -04:00
Dan Stillman
3032cc6a02 Increase default basicViewer height to 700
Though this is currently persisted, so it stops being relevant as soon
as one instance of the basic viewer is resized, which maybe we don't
want.
2021-04-29 00:45:52 -04:00
Dan Stillman
d35719d0e8 Mendeley online import tweaks
- Add "(online import)" and "(local import)" next to "Mendeley Referance
  Manager" and "Mendeley Desktop", respectively
- Adjust size of OAuth window
- Use bound parameter instead of string literal for Fx78 compatibility
2021-04-29 00:45:23 -04:00
Tom Najdek
962222a5f5 Mendeley import: Import annotations from matching files in groups
All annotations in all groups are fetched and hashes are compared to
detect annotations created on the same file while it was in a group
library. Annotations created by other users are filtered out.
2021-04-29 00:40:44 -04:00
Tom Najdek
d4d2080a31 Mendeley online importer 2021-04-29 00:40:44 -04:00
Martynas Bagdonas
8799de5284 Display embedded images in item reports
Fixes #2002
2021-04-28 13:05:43 +03:00
Martynas Bagdonas
65329dbf27 Improve popup actions when read-only or multiple annotations selected
Fixes #2046
2021-04-28 12:45:53 +03:00
Martynas Bagdonas
3c3c1ba88a Add "Show in Library" option to PDF reader file menu #2032 2021-04-27 12:50:13 +03:00
Martynas Bagdonas
09125277ac Focus note-editor faster 2021-04-27 11:01:23 +03:00
Martynas Bagdonas
0b219ed8a7 Prevent opening multiple PDFs in windows when shift isn't pressed 2021-04-26 22:49:52 +03:00
Martynas Bagdonas
e7eae06d8d Optimize contextPane notes list rendering 2021-04-26 22:08:11 +03:00
Dan Stillman
76d8818bed Don't count missing annotation values as changed if empty string passed
Similar to 0d377a1c4a, this fixes an unnecessary annotation reload and
loss of unsaved typing on auto-sync immediately after an annotation is
created.
2021-04-26 03:49:59 -04:00
Dan Stillman
0d377a1c4a Clear changed state of annotation after saving color change
This was resulting in an extra 'modify' event after each sync upload.
2021-04-24 19:49:08 -04:00
Dan Stillman
ea42789206 Avoid memory leaks from caching unique DB statements
Many DB statements that were being cached included embedded ids or temp
table names, so they would permanently use memory and never get reused.
During large imports, this could result in hundreds of megabytes of
extra memory usage.

This commit marks many more statements as `noCache`, adds `noCache`
support for column and value queries, adds a log line at DB shutdown in
source builds with the number of cached statements, and adds
Zotero.DB.getCachedStatements() for auditing of cached statements.

Addresses #1531
2021-04-22 02:53:29 -04:00
Dan Stillman
12045a7cf8 Add Zotero.isSourceBuild
This should be used sparingly, since it risks missing problems in
released builds.
2021-04-21 21:37:56 -04:00
Martynas Bagdonas
1eb888d026 Fix missing itemData when creating a note from annotations 2021-04-21 16:55:44 +03:00
Martynas Bagdonas
3de7b6c5ec Trim whitespace from highlights and comments when creating a note 2021-04-21 16:52:19 +03:00
Dan Stillman
6eed0876de Update locales from Transifex and merge new English strings 2021-04-20 17:24:34 -04:00
Dan Stillman
78920f0aca Missing string changes from 7065dacee 2021-04-20 16:32:42 -04:00
Dan Stillman
7065dacee8 Move About pane strings and URLs to ZOTERO_CONFIG 2021-04-19 18:30:21 -04:00
Dan Stillman
749e28dc1f Fix alphabetical sorting of child attachments in new databases
Broken after global schema introduction
2021-04-18 01:44:39 -04:00
Martynas Bagdonas
633710c90b Improve note-editor:
- Allow to format citations inside note-editor
- Allow quickFormat dialog to display and pick already cited items, even if an item no longer exists
- Watch and automatically update citation itemData in metadata container and re-format citations in body in opened notes
- Reorganize note metadata container handling and improve resistance to accidentally breaking it in further development
- Improve performance when typing in larger notes
- Rewrite note saving mechanism to support automatic note changes and reduce complexity for further development
- Cleanup and comment some core parts or note-editor as the preparation for further development
- Prepopulate quickFormat dialog with the currently opened PDF parent #1984 (doesn't include the currently scrolled page label yet)
2021-04-16 17:55:05 +03:00
HollandeP
4ab6fe8c59 Made About page text visible across default Linux themes 2021-04-13 11:46:56 -04:00
Adomas Venčkauskas
ffab4d5243 Add an optional callback for Integration.initPipe(). Addresses #2031 2021-04-12 12:35:51 +03:00
Dan Stillman
52932b6eb0 Reduce auto-sync timeout to 3 seconds and optimize auto-sync process
Reduce timeout after an object change from 15 seconds to 3 seconds,
ecxept for individual notes. We should probably kick off an auto-sync
3 seconds after a note is blurred, but that's not implemented.

We also now skip file syncing and full-text content syncing altogether
unless an attachment has changed.

Reindexing an item now kicks off auto-sync, whereas before it didn't.
2021-04-06 05:09:42 -04:00
Adomas Venčkauskas
8bff4cff42 Fix the attempt to display the delay citation updates dialog breaking updates
Since 2b3669afd
2021-04-05 16:23:43 +03:00
Adomas Venčkauskas
a6fc2cb206 Fix embedded item citing (since 2e9e6554)
I don't know how this has not been reported yet
2021-04-05 16:23:43 +03:00
Martynas Bagdonas
bbb0f8bca4 Do not strip abstract from citation items data in notes 2021-04-05 09:00:28 +03:00
Martynas Bagdonas
c3a74a22d7 Update signature for _serializeAnnotations and return object instead 2021-04-03 11:08:57 +03:00
Martynas Bagdonas
20022a5d7c Properly check schema version in note editor tests 2021-04-02 21:57:35 +03:00
Martynas Bagdonas
415e644211 Upgrade note schema to v2:
- Automatically upgrade all editable v1 notes when note is being opened
- Pull `itemData` from existing citations and annotations into metadata container attribute `data-citation-items`
- Strip `abstract` from `itemData`
- Fill `citationItem` (in citations and annotations) with `itemData` when passing an HTML fragment for further processing in `note-editor`
- Keep only `uri`, `text`, `color`, `pageLabel`, `position`, `citationItem` annotation properties
2021-04-02 18:35:01 +03:00
Dan Stillman
26bf507fe2 Throw invalid-data error on unknown annotation type 2021-04-01 05:52:14 -04:00
Dan Stillman
40b871c2fd Updates locales from Transifex and merge new English strings 2021-03-29 02:19:04 -04:00
Dan Stillman
e5ef3affd2
Merge pull request #2017 from Elaborendum/master
Add localizable strings from connector
2021-03-29 02:18:41 -04:00
Dan Stillman
6d212b1759 Update About window
- Add Zotero logo
- Move most acknowledgements to the website, where they can be more more
easily updated and more comprehensive
- Increase font size
- Center window on screen
2021-03-29 01:41:37 -04:00
Dan Stillman
5e9636089d Fix primary item types not appearing in More menu when not in MRU list
Regression in 1c366de54
2021-03-29 01:41:37 -04:00
Elaborendum
5b17bd0a43
Update connector.json 2021-03-27 21:33:11 -05:00
Dylan
d992edcd17
Fix dark theme on Item Type 2021-03-27 15:50:23 -04:00
Martynas Bagdonas
5e98b9c533 Select library tab when navigating to item from syncRunner popup 2021-03-25 20:56:02 +02:00
Martynas Bagdonas
f6fa81fdac Strip abstract field to save note space, set new itemData on export 2021-03-25 20:56:01 +02:00
Martynas Bagdonas
3536a384a9 Ensure attachment storage dir exists when saving pdf-reader state 2021-03-24 18:51:27 +02:00
Martynas Bagdonas
ec7251fd98 Fix tab toolbar button icon scaling on HiDPI 2021-03-23 18:04:38 +02:00
Martynas Bagdonas
3d204f75e9 Focus pdf-reader on tab selection if not focused contextPane note editor 2021-03-23 18:00:07 +02:00
Dan Stillman
f690c666d4 Don't make 'engine' required in Sync.Storage.Request
Follow-up to dc12a2c95a
2021-03-23 03:49:05 -04:00
Dan Stillman
f20263a50f Fix disambiguation-related hang in citeproc-js
This reverts the fix for
https://github.com/Juris-M/citeproc-js/issues/171 to fix the hang in
https://github.com/Juris-M/citeproc-js/issues/179
2021-03-23 03:31:22 -04:00
Dan Stillman
45968375d8 Return sooner in _checkForUpdatedFile() on SYNC_STATE_TO_UPLOAD
Before file.stat() instead of after, though it probably doesn't really
matter because the file is already open, which makes the stat call much
faster
2021-03-23 03:20:33 -04:00
Dan Stillman
dc12a2c95a Stop file upload queue after low-quota errors
We weren't making actual upload requests after a quota error if the file
would exceed the quota, but we were still going through all attachments
to upload, which in some cases involves making stat() calls. We now just
stop the queue immediately after a quota error or when starting a new
background sync after a previous quota error.

Closes #1255
2021-03-23 03:20:26 -04:00
Dan Stillman
c0eea4dadd Missed annotation property from 7889cd5d3 2021-03-21 15:53:12 -04:00
Dan Stillman
06b28194da Show annotation widget in conflict resolution window
This adds a very basic reimplementation of the annotation widget for use
in the CR window. It's not pixel-perfect, but it's close enough that
most people probably won't notice. We'll want to replace this with a
real version that's shared between the PDF reader and the rest of the
codebase.

Image annotations currently show an "[image not shown]" placeholder.
Showing images is tricky: we don't have the remote cache image, so if
the remote position has changed, we could only show an image by
rendering it from the file, and only if the file itself hasn't changed.
Just for a better user experience, we could use the local image as long
as the position and file are both the same, but that would take some
rejiggering of the CR window.

Tags aren't shown because they're not shown for CR at all, though that
could be changed in the future.
2021-03-21 14:36:43 -04:00
Dan Stillman
7889cd5d39 Fix item.clone() on annotation items 2021-03-21 14:36:42 -04:00
Martynas Bagdonas
9eb4fdb9cd Return back to notes list when a note is deleted 2021-03-19 12:41:07 +02:00
Martynas Bagdonas
ac750520e7 Use browser element instead of iframe to have access to History API 2021-03-18 18:19:09 +02:00
Martynas Bagdonas
f02b3464b8 Close note editor window when the note item is deleted 2021-03-18 10:05:21 +02:00
Martynas Bagdonas
4f71c2ab09 Improve PDF reader and note editor error handling 2021-03-18 10:03:36 +02:00
Martynas Bagdonas
1ede4240e0 Close all tabs and unregister tabs observer when destroying main window
#2005
2021-03-17 17:59:04 +02:00
Martynas Bagdonas
bf84e16002 Show crash popover on annotation saving failure
#2006
2021-03-17 13:43:48 +02:00
Martynas Bagdonas
1677e957cd Properly ignore deleted PDF attachments and close pdf-reader tabs
#2006
2021-03-17 13:43:48 +02:00
Martynas Bagdonas
8013a6ce97 Do not select the closest tab when closing a tab that is not selected 2021-03-17 13:41:21 +02:00
Dan Stillman
ae98488d2b Fix selectItem() on first items row (regression from d5334dc483) 2021-03-17 00:31:42 -04:00
Dan Stillman
d5334dc483 Fix item tree breakage if annotation is added while search is active 2021-03-17 00:14:43 -04:00
Martynas Bagdonas
bb2f1ced99 Position pdf-reader color popup by element instead of coordinates 2021-03-15 20:27:24 +02:00
Dan Stillman
ed70b404ad Tweak zoom labels in PDF reader context menu
"Automatic" → "Automatically Resize"
"Page Width" → "Zoom to Page Width"
2021-03-12 06:59:53 -05:00
Dan Stillman
76d504c564 Delete child annotations when deleting attachment
And fix a FK definition that could result in orphaned `items` rows
without `itemAnnotations` rows after an attachment was deleted.
2021-03-12 06:35:21 -05:00
Dan Stillman
0bc6b2ccc6 Transfer annotations when converting linked files to stored files
Previously, any annotations on the linked file were partially deleted,
leaving broken `items` rows without `itemAnnotations` rows.
2021-03-12 06:35:21 -05:00
Martynas Bagdonas
7b0bd05865 Add PDF page context menu, update editor & reader
Fixes #1978
2021-03-11 17:24:48 +02:00
Dan Stillman
cbfaed7abf Update locales from Transifex and merge new English strings 2021-03-10 11:00:48 -05:00
Dan Stillman
98c101fd55 Notes pane: Change "Delete" to "Move to Trash" and remove confirm()
And remove unused _removeNote() function

We prompt to delete in the items list to distinguish from collection
removals, but it's arguably not necessary here, since you can always get
the item out of the trash. Undo would be nice, though.
2021-03-10 11:00:48 -05:00
Dan Stillman
24cc59cc7e Compress single-file HTML attachments and other text files
The test for ZIP uploads was having multiple files, but now snapshots
are all single files.
2021-03-10 09:37:52 -05:00
Dan Stillman
249d1aa0da Mendeley import: Add log lines for timing pdf-worker 2021-03-10 09:37:52 -05:00
WesleyFord
657832521f Fix background color of the dropdown menu. 2021-03-09 13:24:52 -05:00
Martynas Bagdonas
13cafe886e Rework note editor toolbar and related UI 2021-03-09 17:37:44 +02:00
Dan Stillman
824f67cb36 Mendeley import: Ignore empty text highlights 2021-03-08 10:58:15 -05:00
Dan Stillman
e4d7089506 Mendeley import: Fix blank PDF attachment MIME type from previous imports 2021-03-08 09:55:26 -05:00
Dan Stillman
5cdc088c49 Mendeley import: Import highlight and note annotations
Using new PDF worker functionality

If you've previously imported, you should be able to import again to get
annotations in the new PDF reader.

Details:

- Text highlights will be processed to extract text
- Rectangle highlights will turn into image annotations
- Any extracted-annotation notes created by previous improts won't be
  removed, but they're no longer created as long as the file exists.
2021-03-08 09:05:07 -05:00
Dan Stillman
c16432b217 Mendeley import: Set contentType for PDFs 2021-03-08 09:04:40 -05:00
Dan Stillman
3af4793f7f Don't log warning when opening a PDF for the first time
"Setting contains an invalid attachment page index ('null') -- discarding"

Fixes #1973
2021-03-07 02:30:21 -05:00
Martynas Bagdonas
6e49da1452 Add notes list context menu
Fixes #1979
2021-03-06 00:51:00 +02:00
Martynas Bagdonas
a1206e8901 Add Mendeley annotations processor 2021-03-05 21:26:49 +02:00
Martynas Bagdonas
8b1b2ee56a Fix ctrl+something default keyboard shortcuts 2021-03-04 17:02:10 +02:00
Dan Stillman
586a6f1ddf Fix time zone of note modification time in notes pane 2021-03-03 17:06:27 -05:00
Dan Stillman
bda52827da Reset note font size to 14 for new editor 2021-03-03 16:03:31 -05:00
Dan Stillman
49906c3fa0 Add "Export PDF" options to File menu
Quick implementation, but works on parent items or PDF attachments

Currently always includes annotations, but we'll want that to be an
option
2021-03-03 15:31:37 -05:00
Martynas Bagdonas
d893a02092 Properly check note schema version existence 2021-03-03 03:36:13 -05:00
Martynas Bagdonas
8755cf7338 Add missing schema version container 2021-03-03 03:36:13 -05:00
Dan Stillman
a7b7f5f8b4 Update locales from Transifex and merge new English strings 2021-03-03 03:36:13 -05:00
Dan Stillman
d98fabc5ab Add annotation type to schema 2021-03-03 03:33:52 -05:00
Dan Stillman
bffefe6644 Refer to PDF reader preview as a preview in the prefs 2021-03-03 00:59:27 -05:00
Dan Stillman
301c13befb Remove unused strings 2021-03-03 00:44:33 -05:00
Dan Stillman
79e52beb38 Update text of outdated doc template warning 2021-03-02 18:12:25 -05:00
Dan Stillman
2fbb7d404a Fix visual bugs in progress bar and Quick Format dialog on macOS
Fix extra whitespace and misaligned Z icon

Update to e918b430b6 after some recent changes
2021-03-02 18:12:25 -05:00
Dan Stillman
f861249fce Tweak error for Add Note when beta features are disabled
And remove from localized strings
2021-03-02 18:12:25 -05:00
Dan Stillman
03ac62e71e Tweak PDF reader checkbox label 2021-03-02 18:12:25 -05:00
Dan Stillman
5fd7f097f3 Add "Learn more" link below PDF reader checkbox 2021-03-02 18:12:25 -05:00
Dan Stillman
94871dade6 Add Cancel button to prompt for PDF reader checkbox 2021-03-02 18:12:24 -05:00
Adomas Venčkauskas
607cb733da Adds a friendly date and subsequent note line for note insertion
Closes #66
2021-03-02 18:12:24 -05:00
Adomas Venčkauskas
91ac847bab Inform connector about PDF build to enable Add Note button in Google Docs 2021-03-02 18:12:24 -05:00
Adomas Venčkauskas
02fc8bf39f Add an error message when using the Add Note button with beta disabled
Closes #67
2021-03-02 18:12:24 -05:00
Martynas Bagdonas
3aa79f40d7 Populate PDF reader tab title immediately 2021-03-02 18:12:24 -05:00
Martynas Bagdonas
17abf87bcf Improve notes list UI:
- Show both sections even on search
- Add new note creation popups with an option to create from annotations
- Hide child notes section if no parent item
2021-03-02 18:12:24 -05:00
Dan Stillman
ca15e03701 Add commas to "[x] more…" count in notes pane 2021-03-02 18:12:24 -05:00
Dan Stillman
590b6b4a34 Adjust sizing of notes pane search bar and + buttons 2021-03-02 18:12:24 -05:00
Dan Stillman
ebf45a3232 Fix tab bar initialization on macOS after isPDFBuild change 2021-03-02 18:12:24 -05:00
Adomas Venčkauskas
e166a04876 Fix outdated template warning for Mac Word 2021-03-02 18:12:24 -05:00
Dan Stillman
7cd861a9e1 Change PDF reader beta pref to a general beta pref
The PDF reader pref is now "Use Zotero PDF reader and new note editor
(beta, My Library only)". Toggling the pref prompts to restart, and
Zotero.isPDFBuild -- which currently controls the PDF reader, new note
editor, and tabs UI -- is set based on that pref at startup.
2021-03-02 18:12:24 -05:00
Dan Stillman
557a75c90f Fix quotes in invalid-field error messages 2021-03-02 18:12:24 -05:00
Dan Stillman
1e8f2b94d4 Don't show annotation fields in advanced search for now
Since annotations don't show up as items yet
2021-03-02 18:12:24 -05:00
Martynas Bagdonas
7bdd34596d Improve notes list UI:
- Always show both sections
- Do not show empty sections when searching
- Collapse notes list when all tabs are closed
- Work around search input to take full width without breaking its stuff
2021-03-02 18:12:24 -05:00
Martynas Bagdonas
83109fc076 Fix and attach image annotation renderer 2021-03-02 18:12:24 -05:00
Dan Stillman
3e4ad18b2a Show friendlier date in PDF reader notes list
Using new Zotero.Date.toFriendlyDate() function

- Time if today
- Day of week if earlier this week
- Date with two-digit year otherwise

We could consider adding 'Yesterday' as well.
2021-03-02 18:12:24 -05:00
Dan Stillman
0c17829b27 Set isPDFBuild permanently to true
While the code can technically disable various things (e.g., tab bar) to
behave like 5.0, other things (e.g., word processor plugins) would be
tricky to do conditionally.
2021-03-02 18:12:24 -05:00
Dan Stillman
afa989c3a8 Use getExportableNote() for word processor note insertion 2021-03-02 18:12:24 -05:00
Dan Stillman
eb29b69d58 Use typographic quotes around highlights in notes 2021-03-02 18:12:24 -05:00
Dan Stillman
2c66133c7e Add "Add Note from Annotations" menu option on items
Shows as a menu option when there's a single PDF attachment with
annotations and as a submenu containing titles when there are multiple
(even if there's only one attachment that actually has annotations)

Also removes "Create Note from Annotations" on attachment items for now.
(It might make sense to add that back, though "Add" would be a little
weird for creating a sibling note, while using a different label would
be confusing.)
2021-03-02 18:12:24 -05:00
Dan Stillman
3e37d31a49 Sort notes reverse chronologically in note insertion search results 2021-03-02 18:12:24 -05:00
Martynas Bagdonas
5a6424e591 Limit notes count in contextPane notes list 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
e409c8bc27 Improve navigation to specific PDF page 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
4b622f074d Add function to export note with dataURI images 2021-03-02 18:10:44 -05:00
Dan Stillman
79950ecfe5 Exclude annotations from library export
We'll want to support this eventually, but for now they would just break
translation.
2021-03-02 18:10:44 -05:00
Martynas Bagdonas
b00325942a Improve reworked context pane:
- Show child notes at top of notes list, with separate headers for "Item
  Notes" and "All Notes"
- Fix "New Child Note" option
- Add parent item title above note editor when editing child note
- Cleanup

TODO:
- Search on parent item title for child notes
2021-03-02 18:10:44 -05:00
Dan Stillman
db0bd56688 Prevent possible error if schema check occurs before schema update
Not sure if this can happen, but if there's any way for the schema
integrity check to run before the global schema is updated, use -1 for
the annotation itemTypeID.
2021-03-02 18:10:44 -05:00
Dan Stillman
2d2062a63d Block saving of annotations and embedded images in groups
Both should already be disabled via the UI, but just in case there's
some way they sneak through
2021-03-02 18:10:44 -05:00
Adomas Venčkauskas
50dae87b07 Add a warning dialog for an outdated doc template 2021-03-02 18:10:44 -05:00
Adomas Venčkauskas
0fc9037a54 Add a version of citation dialog for citing notes 2021-03-02 18:10:44 -05:00
Dan Stillman
dba841770c Rework context pane in PDF reader
- Remove item pane tabs
- Show all notes in notes pane, showing the parent title where
  appropriate
- Show drop-down menu for "New Note" button in notes pane that allows
  creating standalone or child notes
- Add some temporary styling for notes in the notes pane

TODO:

- Show child notes at top of notes list, with separate headers for "Item
  Notes" and "All Notes"
- Fix "New Child Note" option
- Add parent item title above note editor when editing child note
- Search on parent item title for child notes
2021-03-02 18:10:44 -05:00
Dan Stillman
73ba5f9ffe Auto-sync after setting change 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
f52c50f055 Use synced pageIndex 2021-03-02 18:10:44 -05:00
Dan Stillman
77ea19277d Remove embedded-image attachment under annotation in test 2021-03-02 18:10:44 -05:00
Dan Stillman
651aabc4dc Prevent setting parent item to non-regular item
Except for embedded-image attachments under notes and annotations under
attachments
2021-03-02 18:10:44 -05:00
Dan Stillman
8b57d0000b Don't orphan embedded-image attachments in schema integrity check! 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
d0bdc45b9f Fix "Add to Note" for not yet created note 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
aa836d77af Improve editor ir merge dialog 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
a225c498ec Get rid of image natural dimensions 2021-03-02 18:10:44 -05:00
Dan Stillman
eb865e2625 setAttachmentPageIndex() → setAttachmentLastPageIndex() 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
580d800286 Add support for PDF navigation to pageLabel 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
16650b4ddf Improve note creation from annotations 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
d23e0e30bb Fix annotation insertion 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
7fa68690dd Do not insert citation for parentless PDF 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
8d87eeae35 Capitalize acronyms 2021-03-02 18:10:44 -05:00
Martynas Bagdonas
1a4b2e8c7d Use isPDFBuild for editor switch, fix merge dialog 2021-03-02 18:10:44 -05:00
Dan Stillman
bb9237e82d Better comment for Zotero.Item.prototype._getPageIndexSettingKey() 2021-03-02 18:10:44 -05:00
Dan Stillman
c8ee3196cd Replace attachmentPageIndex with synced-setting-based mechanism
The page index needs to be per-person in group libraries, and it should
still work in read-only libraries, so it doesn't make sense to store it
on the item. This uses a synced setting in the user's library instead.
2021-03-02 18:10:44 -05:00
Martynas Bagdonas
8eff0bf5d4 Reverse button fragment images 2021-03-02 18:10:44 -05:00
Dan Stillman
bb79686ce8 Add unused code to switch between the tab bar and the unified toolbar 2021-03-02 18:10:44 -05:00
Dan Stillman
28c1504cdd Use old toolbar if not a PDF build 2021-03-02 18:10:44 -05:00
Dan Stillman
e1c0f6c1a0 Rename zotero-note-editor submodule to note-editor 2021-03-02 18:10:42 -05:00
Dan Stillman
88dc6638fe Add Zotero.isPDFBuild feature flag
Currently limited to PDF opening (which is then dependant on
the beta.useInternalPDFReader pref)
2021-03-02 17:58:29 -05:00
Dan Stillman
10f41547aa Search for words separately in PDF reader notes pane 2021-03-02 17:58:29 -05:00
Dan Stillman
a1655e5643 Remove colon from "[n] notes:" line at top of notes panes 2021-03-02 17:58:29 -05:00
Martynas Bagdonas
224eb6bc84 Fix navigation to specific PDF page 2021-03-02 17:58:28 -05:00
Dan Stillman
f0816cc8fb Add temporary prefs checkbox to use internal PDF reader
And use when opening PDFs in My Library from items list and
zotero://open-pdf

This also adds "Zotero" to the main PDF reader pref, which will be the
real way to set this, but that option is hidden for now so that group
library items will still open with the configured reader.
2021-03-02 17:58:28 -05:00
Martynas Bagdonas
04c64fe9fc Use old editor in group libraries 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
66bed2529c Fix various PDF reader and note editor issues 2021-03-02 17:58:28 -05:00
Dan Stillman
4a4a54da7b Clear annotation change state after save 2021-03-02 17:58:28 -05:00
Dan Stillman
9f954488c6 Delete cache image when image annotation position changes 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
a19693fa7a Improve PDF importing and introduce rendering 2021-03-02 17:58:28 -05:00
Dan Stillman
89d9efdec7 Use seconds instead of ms for attachmentLastProcessedModificationTime 2021-03-02 17:58:28 -05:00
Dan Stillman
88f886cb30 Don't delete all annotations when updating attachment item 2021-03-02 17:58:28 -05:00
Dan Stillman
857b413df1 Don't add non-syncing items to sync delete log
Currently just external annotations
2021-03-02 17:58:28 -05:00
Dan Stillman
226fc90308 Switch to cache files for image annotations
Instead of embedded-image attachments

Create with Zotero.Annotations.saveCacheImage({ libraryID, key }, blob)
2021-03-02 17:58:28 -05:00
Dan Stillman
8c464a7a8b Add options argument for Zotero.File.createDirectoryIfMissingAsync()
To allow passing 'from' argument through to OS.File.makeDir()
2021-03-02 17:58:28 -05:00
Dan Stillman
2a203afb20 Redo Zotero.File.generateDataURI() without XPCOM and type sniffing
Now async and takes a contentType parameter
2021-03-02 17:58:28 -05:00
Martynas Bagdonas
c13ac32ad2 Use new attachment fields for annotations import 2021-03-02 17:58:28 -05:00
Dan Stillman
ebc0ca2462 Add annotationIsExternal property to annotations 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
5266734ac9 Fix note editor tests 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
232ffba2ab Improve note content insertion 2021-03-02 17:58:28 -05:00
Dan Stillman
404eaf13d0 Remove obsolete line from Zotero.Reader.open() 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
a96c16a33d Fix resizing for all vertical panes on macOS 2021-03-02 17:58:28 -05:00
Adomas Venčkauskas
5bc41e250b Fix citing with automatic citation updates disabled 2021-03-02 17:58:28 -05:00
Dan Stillman
c73f51faef Always await callback in ZoteroPane.viewAttachment()
The recent change to sniff for PDFs when an attachment didn't have a
content type resulted in a ZoteroPane test failing, because a stub for
Zotero.launchFile() wouldn't be called by the time the viewAttachment()
promise resolved.
2021-03-02 17:58:28 -05:00
Dan Stillman
55c6de23ba Add "Include Annotations" checkbox to export options dialog
This changes the attachment saveFile() function in translators to be
async. In order for errors to be properly caught, translators will need
to be changed to make doExport() async and await on saveFile() calls.
(The translation architecture theoretically already allows doExport() to
be async.)
2021-03-02 17:58:28 -05:00
Dan Stillman
688298af7f Add Zotero.Item::isPDFAttachment()
Returns true for stored or linked PDFs
2021-03-02 17:58:28 -05:00
Dan Stillman
b1e324ddfb Fix marking of childItems as loaded for non-top-level items
Now that attachments and notes can have child items too
2021-03-02 17:58:28 -05:00
Dan Stillman
ea04c32c9d Fix running of tests after adding tab bar 2021-03-02 17:58:28 -05:00
Dan Stillman
5eeae576b4 Fix item pane tab appearance in PDF tab on Big Sur 2021-03-02 17:58:28 -05:00
Dan Stillman
9254bcbd03 Remove no-op line in ReaderInstance::_getAnnotation()
And clarify variable name for item vs. JSON
2021-03-02 17:58:28 -05:00
Dan Stillman
6ee3863e37 Fix clearing of annotation fields 2021-03-02 17:58:28 -05:00
Dan Stillman
69958d4356 Return Zotero.Item objects from getAnnotations() instead of ids
Returning ids mirrors getAttachments() and getNotes(), but I think we
want to move towards a world where those return actual objects, even if
we need async load calls on the returned objects.
2021-03-02 17:58:28 -05:00
Dan Stillman
60cb299f40 Fix uploading of embedded-image attachments 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
51f760fe1a Improve the new UI:
- Revert `notesList` to standalone notes mode only
- Fix splitter styling on Windows
- Fix `contextPane` performance fixes
- Add a customizable throttle function to `Zotero.Utilities`
- Fix reader tab selection issues
- Improve error handling in the new editor
- Update pdf-reader and zotero-note-editor submodules
- Fix contextPane child notes list
- Properly notify editor about new images
- Fix note title and body snippet extraction
- Persist right-hand pane state when switching tab
- Hopefully fix two panes visible at the same time
2021-03-02 17:58:28 -05:00
Martynas Bagdonas
c6a196b999 Tab bar: Improve tab close button 2021-03-02 17:58:28 -05:00
Flachware
f440b52aa5 Add xmark icon. 2021-03-02 17:58:28 -05:00
Dan Stillman
0d4ad01201 Fix attachmentSyncedHash for embedded-image attachments 2021-03-02 17:58:28 -05:00
Dan Stillman
d44ab7efbb Fix attachmentSyncedModificationTime for embedded-image attachments 2021-03-02 17:58:28 -05:00
Martynas Bagdonas
62c6f561a6 Fix missing PDF attachment MIME type on opening 2021-03-02 17:58:27 -05:00
Flachware
15a0415eba Update item and notes icons. 2021-03-02 17:58:27 -05:00
Dan Stillman
9a41dc69fe Add PDF attachment properties to Zotero.Item
- .attachmentLastProcessedModificationTime
- .attachmentPageIndex
2021-03-02 17:58:27 -05:00
Adomas Venčkauskas
901a10f0b6 Fix note citations being inserted in reverse order 2021-03-02 17:58:27 -05:00
Adomas Venčkauskas
50bef8dffe Optimization of note insertion API 2021-03-02 17:58:27 -05:00
Adomas Venčkauskas
06e1c404bd Changes to note insertion for MacWord 2021-03-02 17:58:27 -05:00
Martynas Bagdonas
45a3e96e68 Improve the new UI:
- Rollback all redundant changes made in the last few months
- Introduce `contextPane`
- Show child notes in the notes pane
- Fix splitter styling
- Various bug fixes
- Fix contextPane switching and states persistence
- Persist reader sidebar open/close state
- Fix bottom pane placeholder updating concurrency issues
- Fix toolbar placeholder width updating
- Display titles for split button
- Fix toolbar position when switching tabs
- Add PDF tab loading cover
- Improve notes and citations insertion
- Clean up and refactor code
- Fixes and cleanups to PDF reader
2021-03-02 17:54:48 -05:00
Dan Stillman
ab04468342 Item pane improvements for contextual/pinned modes
- Show item title at top of item pane in contextual mode not in a
  library tab
- Show "All Notes" at top of standalone notes pane
- Add background color when clicking notes in standalone notes list
- Clean up back buttons

Mode button is still a placeholder but uses emoji to show the mode
2021-03-02 17:43:10 -05:00
Martynas Bagdonas
bb5075e8b8 Experiment with the new item pane UI 2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
36cc18e8cf Add root html tags if not present for note insertion 2021-03-02 17:43:10 -05:00
Dan Stillman
b2b9be381e Clean up temporary note slider 2021-03-02 17:43:10 -05:00
Martynas Bagdonas
8e3dc61070 Improve menubar for reader tab and window 2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
51db52a5ea Changes for note insertion in non-GoogleDocs 2021-03-02 17:43:10 -05:00
Martynas Bagdonas
8709ddd657 Experiment with the new UI 2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
52f3945aa4 Disable switching to the classic dialog when inserting a note 2021-03-02 17:43:10 -05:00
Dan Stillman
393807f487 Don't match attachments or annotations for titleCreatorYearNote search 2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
6be2faa9c2 Fix note citation insertion breaking when citing the same item in a note 2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
1401550230 Allow citing items in notes with only property 2021-03-02 17:43:10 -05:00
Dan Stillman
787641dc17 Fix display of item pane after pinned-note changes
Stacked mode is still broken
2021-03-02 17:43:10 -05:00
Adomas Venčkauskas
2e9e655479 Add ability to cite Zotero notes.
<span class=citation data-citation=serialized-citation-data/>
elements will automatically be converted to zotero citations
2021-03-02 17:43:09 -05:00
Adomas Venčkauskas
2b3669afd8 Consolidate Integration.Fields into Integration.Session 2021-03-02 17:43:09 -05:00
Martynas Bagdonas
3701b84116 Proof of concept note view in tab mode 2021-03-02 17:43:08 -05:00
Martynas Bagdonas
783f9c50d5 Tab bar: Fix tabs on Windows & Linux 2021-03-02 17:40:24 -05:00
Martynas Bagdonas
2f505862d7 Tab bar & Reader: Rewrite and connect everything 2021-03-02 17:40:24 -05:00
Martynas Bagdonas
43c55594c1 Store PDF state in .zotero-pdf-state 2021-03-02 17:40:24 -05:00
Martynas Bagdonas
76e77d4422 Improve PDF import/export 2021-03-02 17:40:24 -05:00
Dan Stillman
e99f76b40c Tab bar: Update styling on macOS 2021-03-02 17:40:24 -05:00
Dan Stillman
b5f7255da2 Tab bar: Close current tab with Cmd/Ctrl-w
And use keydown, not keypress, for moving between tabs
2021-03-02 17:40:24 -05:00
Dan Stillman
5b947a3896 Tab bar: Add comment for tab navigation in keypress handler 2021-03-02 17:39:39 -05:00
Dan Stillman
ead8c6bb45 Fix Everything search after annotations
And replace ancient 'annotation' search condition with
'annotationText'/'annotationComment'
2021-03-02 17:39:39 -05:00
Dan Stillman
2ca1618627 Tab bar: Change tab with Ctrl-Page-Up/Page-Down 2021-03-02 17:39:39 -05:00
Dan Stillman
a47d7e4d9c Fix possible selection bug after closing tab 2021-03-02 17:39:39 -05:00
Martynas Bagdonas
a89f7e8ec7 Improve PDF reader 2021-03-02 17:39:39 -05:00
Dan Stillman
875e9f674f Initial tab bar implementation 2021-03-02 17:39:37 -05:00
Dan Stillman
199619f40e Remove .noteSchemaVersion
This leaves item.note in place, rather than reverting all the
`getNote()` → `.note` changes. We can consider which we want to keep.
2021-03-02 17:36:05 -05:00
Dan Stillman
602e4c1e1f More annotation 'position' fixes 2021-03-02 17:36:05 -05:00
Dan Stillman
2536edb6ab Fix annotation 'position' handling and update additional sortIndex tests
Item.position has to be a string. It still gets passed to/from the PDF
reader as an object.
2021-03-02 17:36:05 -05:00
Dan Stillman
a0fb7a8583 Ignore remote noteSchemaVersion: 0 for items with no local note
E.g., embedded attachment notes with no note don't have an itemNotes row
and don't output noteSchemaVersion in their JSON, but they shouldn't
trigger a conflict
2021-03-02 17:36:05 -05:00
Dan Stillman
b2aee30410 Fix fromJSON() not importing parentItem for annotations 2021-03-02 17:36:05 -05:00
Dan Stillman
7ea14aa34e Add Zotero.Item::isStoredFileAttachment()
And replace most uses of isImportedAttachment(), which doesn't include
embedded-image attachments

There might not be much reason to keep isImportedAttachment() around.
2021-03-02 17:36:05 -05:00
Dan Stillman
bdec99f103 Update DB compatibility for annotations and noteSchemaVersion 2021-03-02 17:36:05 -05:00
Dan Stillman
b8eeb3abaa Drop decimal places from annotation sortIndex 2021-03-02 17:36:05 -05:00
Dan Stillman
acc3a70083 Remove SQL sort by parentItemID in Zotero.Sync.Data.Local.getUnsynced()
Now handled by Zotero.DataObjects.sortByParent()
2021-03-02 17:36:05 -05:00
Dan Stillman
8f5662ee6a Better error logging on sync engine upload failure 2021-03-02 17:36:05 -05:00
Dan Stillman
99b959285e Send Zotero-Schema-Version header with API requests
Set to the current global schema version
2021-03-02 17:36:05 -05:00
Dan Stillman
e133aab530 Annotation support in Item::fromJSON()/toJSON()
And clean up embedded-image handling
2021-03-02 17:36:05 -05:00
Dan Stillman
3c6ae0e656 Throw on missing parentItemID in Attachments.importEmbeddedImage() 2021-03-02 17:36:05 -05:00
Dan Stillman
a94323fc15 Sort multiple levels of items when generating API JSON
Added Zotero.DataObjects.sortByParent() to sort child items immediately
after their parent items. Zotero.DataObjects.sortByLevel(), which is
used for collections, sorts each level together, but that's less
appropriate for items where, e.g., an embedded-image attachment should
immediately follow the note that depends on it.
2021-03-02 17:36:05 -05:00
Dan Stillman
427a227370 Rename 'area' annotations to 'image' annotations 2021-03-02 17:36:05 -05:00
Martynas Bagdonas
05318b3021 Improve note editor and backups 2021-03-02 17:36:05 -05:00
Martynas Bagdonas
bce50e8e9c Add old note backup and preview 2021-03-02 17:36:05 -05:00
Martynas Bagdonas
4d8a9ed753 Replace all note local URIs at the first sync time 2021-03-02 17:36:05 -05:00
Martynas Bagdonas
af57565acf Reorganize and improve notes 2021-03-02 17:36:05 -05:00
Dan Stillman
078a18f7c0 Shorten sortIndex to 22 characters 2021-03-02 17:36:05 -05:00
Dan Stillman
63a416db40 Fix display of note titles on startup (regression from noteSchemaVersion) 2021-03-02 17:36:05 -05:00
Dan Stillman
4142f4b316 Replace occurrences of .getNote() with .note 2021-03-02 17:36:05 -05:00
Dan Stillman
ebc53a2bbc Add noteSchemaVersion, and replace item.getNote() with .note
```
var noteContents = item.note; // was item.getNote()
var schemaVersion = item.noteSchemaVersion;

item.setNote(contents) // default to Zotero.Notes.schemaVersion
item.setNote(contents, schemaVersion) - explicit version
```
2021-03-02 17:36:05 -05:00
Martynas Bagdonas
2543a695e8 Introduce PDF reader and note editor 2021-03-02 17:36:05 -05:00
Dan Stillman
cbeb5881e9 Hide annotations from items list 2021-03-02 17:36:05 -05:00
Dan Stillman
1c366de546 Initial annotation support 2021-03-02 17:36:05 -05:00
Dan Stillman
92ba393488 Don't clear item type set in constructor when loading primary data
Generally, don't clear the change state for primaryData when calling
loadPrimaryData() on an item that doesn't exist. Specifically, this
fixes an issue where calling loadPrimaryData() on a nonexistent item
after setting a libraryID and key would also clear any item type set in
the constructor. The same would apply for props set in the
Collection/Search constructors.
2021-03-02 17:36:05 -05:00
Dan Stillman
8026f744c5 Remove old HTML snapshot annotation support
Any data trapped in these tables hasn't been accessible in many years.
2021-03-02 17:36:04 -05:00
Dan Stillman
b54d4e78b7 Save createdByUserID and lastModifiedByUserID for group items 2021-03-02 17:36:04 -05:00
Dan Stillman
bb0a1dab13 Don't normalize primary data values in Item.setField()
Just enforce proper data types
2021-03-02 17:36:04 -05:00
Dan Stillman
cca5dc0314 Don't send unnecessary format=json in sync download requests 2021-03-02 17:36:04 -05:00
Dan Stillman
0941a14a65 Remove 'lastsync' assignment from Zotero.Collection constructor 2021-03-02 17:36:04 -05:00
Dan Stillman
b4522535e8 Add _hasFieldChanged()/_getChangedField/_getLatestField() to DataObject
Make it easier to use the new `_changedData` approach to object
modifications (currently used only for `tags` and `deleted`) where
changed data is stored in a separate object rather than in the primary
variables. _getLatestField() can be used to return either the new
unsaved value or the current saved value.
2021-03-02 17:36:04 -05:00
Dan Stillman
c9eb661f25 Update locales from Transifex 2021-02-25 18:54:07 -05:00
Dan Stillman
b2b909b42c Update submodules 2021-02-25 18:45:28 -05:00
Dan Stillman
33528d0f36 Fix "New Collection" button when My Publications is selected
Fixes #1955
2021-02-25 18:30:33 -05:00
Dan Stillman
ba7f7e3250
Merge pull request #1962 from fletcherhaz/context-menu
Add context menu for React textboxes to Create Parent Dialog
2021-02-25 17:57:09 -05:00
Dan Stillman
3ff92e2795 Add "More Information" button to invalid-data sync error 2021-02-25 16:08:54 -05:00
Fletcher Hazlehurst
8c00510835 Remove XUL overlay, but keep functionality. 2021-02-24 16:11:19 -07:00
Fletcher Hazlehurst
60d8beece3 Add context menu for React textboxes to Create Parent Dialog 2021-02-22 20:14:07 -07:00
Dan Stillman
31478d1fba Use multi-line editor for all title fields (e.g., Case Name)
https://forums.zotero.org/discussion/87286/suggestion-multi-line-case-name-display-in-info-panel
2021-02-09 17:05:50 -05:00
Dan Stillman
843bcbb68a Show invalid-data warning in sync button tooltip for group libraries
Instead of showing warning button on toolbar

Otherwise if one person in a group upgrades to a beta with new fields,
everyone in the group will get a warning, even if they're already on the
latest release version. In a personal library, the user can upgrade to
the same version.
2021-02-09 16:36:06 -05:00
Dan Stillman
b919143630 Skip conflict resolution for remote objects that can't be saved
E.g., if a local item has been modified in a way that conflicts with a
remote item that also has a new, unknown field, don't show the CR
window -- just add the item to the sync queue and show the
some-data-could-not-be-downloaded error.
2021-02-07 16:49:01 -05:00
Dan Stillman
254695f4b3 Skip extra sync download after some conflicts
If an upload fails with a 412, and then we download, and then we go to
upload but there was nothing to upload (e.g., because the remote version
was chosen or there was an error saving it), there's no reason to do a
download again after that.
2021-02-07 16:38:14 -05:00
Dan Stillman
61e29aa8eb Don't set non-working 'tooltiptext' in React Button
Follow-up to ba9c7ae739
2021-02-06 23:51:28 -05:00
Dan Stillman
e9e434cd2e Fix tooltips for tags box icons
Addresses #1947

If we're going to need this regularly we should just create a React
Image element that does this automatically for 'title'.
2021-02-06 23:51:11 -05:00
Dan Stillman
01819d68d1 Show tag selector Actions menu on mousedown, not click 2021-02-06 23:37:56 -05:00
Dan Stillman
ba9c7ae739 Fix 'title' attribute on React Button component
E.g., Actions menu in tag selector

Neither 'title' (HTML) nor 'tooltiptext' (XUL) works on HTML elements in
XUL documents, so add a mechanism to fake tooltip behavior and use it in
our Button component. This can be triggered by other React components if
necessary.

This is (mostly) mirroring Firefox tooltip behavior, which is a bit less
sophisicated than macOS behavior. If we end up using this for
everything, we can improve the behavior (e.g., start the delay when
entering the element, not when the mouse stops).

Fixes #1947
2021-02-06 23:37:32 -05:00
Dan Stillman
cf132fdd29 Log POST request body for server requests 2021-02-05 17:51:59 -05:00
fletcherhaz
55acf9a0c0
Do not send back saveSingleFile: true if saving a PDF snapshot. (#1950) 2021-02-05 15:31:34 -05:00
Dan Stillman
293bf07c03 Temporarily increase sync upload timeout from 60 to 120 seconds
This shouldn't be necessary, but currently items with thousands of
creators can be very slow to save.
2021-02-03 16:18:30 -05:00
Dan Stillman
fd94d731d4 Update locales from Transifex and merge new English strings 2021-01-27 10:10:43 -05:00
Dan Stillman
ff9471fe2c Add English strings for Word for Mac ARM-is-supported warning 2021-01-27 00:59:18 -05:00
Dan Stillman
b3220e83b1 Don't pass nested collections to translators as top-level collections
While we need to pass all items from descendant collections to
translators, only the immediate child collections of the selected
library or collection should be returned from Zotero.nextCollection().

I'm not sure how long we've been doing this wrong, but it resulted in
duplicated subcollections when round-tripping Zotero RDF. (TEI is the
only other translator that uses nextCollection(), so its exports were
probably similarly incorrect.)

https://forums.zotero.org/discussion/87135/export-import-creates-numerous-duplicate-subcollections
2021-01-25 03:58:04 -05:00
Dan Stillman
10ca05e22e Return array instead of iterator for Collection.getChildCollections(true) 2021-01-25 03:58:04 -05:00
Diego de la Hera
05e56acf77
Fix Input component doesn't work if autoComplete=false (#1939)
The Input component doesn't work if its autoComplete prop is set to false, as described here: https://groups.google.com/g/zotero-dev/c/vKdxvZJL8UQ
2021-01-20 20:58:09 -05:00
Dan Stillman
2adf0e6d3c Encourage reporting of startup errors in the forums
We're now flagging the DB for repair on startup errors, so if that fixes
the problem (e.g., because of our undiagnosed skipped-schema-update-step
problem), we'd still like to know about it.
2021-01-17 04:19:33 -05:00
Dan Stillman
9152012368 Restore DB table reconciliation during integrity check
But skip it at startup, even if flagged on, if there are schema update
steps to perform, to avoid creating tables that aren't expected to exist
yet.

Originally added in 5b9e6497a but disabled in c4cc44528 and 7a434df53
2021-01-17 03:36:38 -05:00
Dan Stillman
a2dc7f23cd Switch to HTML progress element for main window progress bar
In an unsuccessful attempt to get an animation on macOS in indeterminate
mode, but might as well switch it anyway
2021-01-17 01:52:22 -05:00
Dan Stillman
e45ca4edad Support deleted property for collections and searches
This lays the groundwork for moving collections and searches to the
trash instead of deleting them outright. We're not doing that yet, so
the `deleted` property will never be set (except for items), but this
will allow clients from this point forward to sync collections and
searches with that property for when it's used in the future. For now,
such objects will just be hidden from the collections pane as if they
had been deleted.
2021-01-13 00:49:12 -05:00
Dan Stillman
5a4d78578b Zotero.DataObject updates for changedData fields
changedData is the new approach to updating DataObject data, storing the
new values in a separate object until save so that they don't actually
change the object unless the save goes through.

- Add DataObject._getLatestField() to return either the changed value or
  the last-saved value
- Clarify that _markFieldChange() takes different values depending on
  whether the field uses 'changed' or 'changedData'
- Fix bug calculating hasChanged() when a 'changedData' value is a
  boolean
2021-01-12 04:38:25 -05:00
Dan Stillman
22addb3afd Create logs/upgrade.log in data directory after schema updates
For debugging future problems with schema updates
2021-01-11 23:48:11 -05:00
Dan Stillman
f9c03058f1 Add Zotero.Debug.addListener() and .removeListener()
For getting all log lines during a particular period
2021-01-11 23:48:11 -05:00
Dan Stillman
5edad5f70a Update citeproc-js to 1.4.61 2021-01-11 23:48:11 -05:00
Dan Stillman
2094a6023c Restore fallback DB creation in retractions.js
Removed in 5b9e6497af, but then we reverted missing-table creation via
schema integrity check
2021-01-11 13:29:03 -05:00
Dan Stillman
4003c3d1fc Update locales from Transifex 2021-01-10 14:58:37 -05:00
Dan Stillman
80b8280e9d Update submodules 2021-01-10 14:58:37 -05:00
Dan Stillman
7b9bad1d52 Don't sync group on push notification if not selected for syncing
If a group library was deselected in the "Choose Libraries…" window, a
remote change would still trigger a sync if auto-sync was enabled. (My
Library was not affected.)
2021-01-09 14:58:51 -05:00
Dan Stillman
a1267bc68e Fix rerendering of React-based icons in HiDPI mode
With the variable in the outer scope, "@2x" keeps getting added to the
URL.
2021-01-07 04:11:15 -05:00
Fletcher Hazlehurst
4db61b8dc7 Do not modify saveOptions argument since it may be used again
If we add the notifier queue, another save function will use that queue
but not necessarily know that it needs to commit. Instead, we only use
the notifier queue for this function.
2020-12-30 11:33:07 -07:00
fletcherhaz
98a75931b0
Fix double saving snapshots (#1937)
* Fix double saving snapshots

https://forums.zotero.org/discussion/86796/duplicated-snapshots

I was able to replicate it by adding a 5 second delay here:
a72ae14816/chrome/content/zotero/xpcom/translation/translate_item.js (L196)

This was caused from a race condition and (a72ae14) did not fully
solve the problem. Now this is tested and fixed.
2020-12-27 03:31:30 -05:00
Dan Stillman
591ffcc83e
Merge pull request #1930 from fletcherhaz/ace-editor
Use Ace editor for Run JavaScript
2020-12-24 02:57:01 -05:00
Dan Stillman
c1976098e9 Run JavaScript: Hide spurious linting error 2020-12-24 02:55:33 -05:00
Dan Stillman
874c4044e5 Ace: Add commented-out language_tools lines in case we want them later
We may want this if we enable code completion, though it's a little
dumb. (It seems to show suggestions regardless of context.)
2020-12-24 02:55:00 -05:00
Dan Stillman
1040ba0b5e Run JavaScript: Detect await at the beginning of a line 2020-12-24 02:46:55 -05:00
Dan Stillman
018f04f369 Scaffold: Focus code editor when selecting tab 2020-12-24 02:46:19 -05:00
Dan Stillman
2ed4bb1c8f Ace: Config adjustments in Run JavaScript window
- Use the "Chrome" theme
- Hide the gutter
- Don't highlight the active line
- Remove default iframe borders
- Focus the editor on window open

Ace instances (e.g., Scaffold) are now responsible for setting their own
theme (to avoid a flash of Monokai before a lighter theme appears).
2020-12-24 02:45:37 -05:00
Dan Stillman
e095dbb031 Ace: Fix path to ace.html (#1930) 2020-12-24 02:41:51 -05:00
Dan Stillman
8b9d32c65b Update locales from Transifex and merge new English strings 2020-12-23 23:29:00 -05:00
Dan Stillman
0f36f9a7c3 Remove ellipsis for "Create Parent Items", since no prompt 2020-12-23 23:16:30 -05:00
Fletcher Hazlehurst
a81b494ce1 Add back in ability to create multiple empty parent items
Closes #1934
2020-12-23 15:37:08 -07:00
Dan Stillman
33abc76c88 Remove old unused (and broken) storage function 2020-12-22 23:54:34 -05:00
Adomas Venčkauskas
5798926093 Fix number inputs and adjust linux styling for the prefs pane 2020-12-21 12:20:17 +02:00
Dan Stillman
7a434df539 Disable creation of missing tables/indexes in Schema.integrityCheck()
Originally added in 5b9e6497a. We stopped running the integrity check
before userdata upgrades in c4cc44528 because this new behavior was
breaking upgrades, but it could still be run when coming from the DB
Repair Tool, which could cause problems if, say, you recovered a
database from a computer that had an older version of Zotero and ran the
DB Repair Tool on it. Disabling this for now until we have a better
solution.
2020-12-21 01:50:13 -05:00
Dan Stillman
43e6493997 Don't convert "Type: article" in Extra to Document item
CSL 1.0.2 clarified that type 'article' is meant for preprints and
working papers, so until we have a Preprint item type, just leave it in
Extra.

Discussion: https://github.com/zotero/translators/pull/2248#discussion_r492009958
2020-12-21 01:11:28 -05:00
Dan Stillman
aeceb67a07 Add Zotero.isBigSurOrLater, in case we need it later 2020-12-20 04:25:21 -05:00
Dan Stillman
e918b430b6 Fix Quick Format dialog appearance on Big Sur, and tweak on <=10.15
The Quick Format dialog's shape is based on the OS window corners, and
that changed on Big Sur, which resulted in whitespace along the bottom
edge and a misaligned search results box.

The tops of the citation bubbles were also cut off (at least for me) on
Catalina.
2020-12-20 04:23:38 -05:00
Dan Stillman
7b6b608de7 Update locales from Transifex and merge new English strings 2020-12-20 02:18:30 -05:00
Dan Stillman
44603d1ec6 Add localized strings for Word for Mac ARM warning (#26) 2020-12-20 02:07:58 -05:00
Fletcher Hazlehurst
0bb1588f22 Use Ace for Run JavaScript code editor
Closes #1928
2020-12-18 10:45:52 -07:00
Fletcher Hazlehurst
36d81e839c Use ace-builds NPM package 2020-12-18 10:45:38 -07:00
Dan Stillman
31c928a3ff Don't let invalid translators break all translation
If a translator couldn't be parsed, `_translatorInfo` wouldn't be set,
and that would somehow cause the translator info for subsequent
detections to be out of sync with the code loading, and nothing would
work. Putting a try/catch around the eval() allows subsequent
translators to continue to work normally. (There might be a better fix,
but this seems to work.)

This was happening for Better BibTeX translators that were still
installed without the extension (which they need to be parsed properly),
causing all imports to break.

https://forums.zotero.org/discussion/86613/error-id-1093166052-upload-of-ris-and-bibtex-data-failed
2020-12-10 03:58:17 -05:00
Dan Stillman
558ad20ce6 Scaffold: Improve cookie handling
- Use cookies from browser pane when running detectWeb or doWeb
- Use cookies from document when running or updating tests

This should fix various cases where translators can't be properly
developed or tested in Scaffold (e.g., [1]).

[1] https://github.com/zotero/translators/pull/2296#issuecomment-739116620
2020-12-06 03:09:13 -05:00
Dan Stillman
01646f1f8f Fix regression in 84730e610c
Only switch item types in fromJSON() if one was actually parsed out of
Extra
2020-11-27 18:04:03 -05:00
Dan Stillman
a249cd1608 Update citeproc-js to 1.4.50 2020-11-27 17:50:20 -05:00
Dan Stillman
84730e610c Don't delete valid item/CSL type from Type in Extra on sync
After a local item change, Zotero uploads the JSON and then applies the
saved JSON returned from the API to the local object using `fromJSON()`,
the same as it would apply any other remote change.

`fromJSON()` is meant to migrate Extra lines into real types and fields
after future item type/field changes. It calls
`Z.Utilities.Internal.extractExtraFields()`, which looks for valid item
type or CSL type values in Type lines in Extra, handles the rest of
parsing accordingly, and passes back the parsed item type. `fromJSON()`
wasn't handling `itemType` in the response object, so the item type
didn't get applied and the Type line was stripped. This fixes that.

Since valid type values are now parsed, if you have a Journal Article
item with a Pages field and enter "Type: song" into Extra and sync, the
item will be converted to Audio Recording and `Pages: 123` will be
placed in Extra.

https://forums.zotero.org/discussion/comment/369221/#Comment_369221
2020-11-27 17:50:20 -05:00
Adomas Venčkauskas
ddcbb47538 Fix number inputs and adjust linux styling for feed settings 2020-11-24 15:10:06 +02:00
Dan Stillman
c4cc44528c Fix error upgrading old databases after errors 5b9e6497af
Creating missing tables breaks schema update steps that assume those
tables don't exist, so we'll need another solution here. For now,
disable the automatic integrity check and make a couple recent schema
update steps more forgiving for people on the beta who already triggered
this.
2020-11-23 23:49:50 -05:00
Dan Stillman
304a38083c Update locales from Transifex and merge new English strings 2020-11-20 16:46:10 -05:00
Dan Stillman
75497e14c7 Item context menu: "Create Parent Item" → "Create Parent Item…"
Now that a dialog is displayed asking for further input

Follow-up to #1901
2020-11-20 16:35:29 -05:00
fletcherhaz
86b77cc45e
Add an option to create parent item from identifier (#1901) 2020-11-20 16:17:48 -05:00
Dan Stillman
07874d84bd
Merge pull request #1909 from fletcherhaz/snapshot
Update SingleFile for bug fixes
2020-11-17 16:02:13 -05:00
Dan Stillman
7c0cfd9420 Fix case of data dir not being created for new profile
If there was an existing ~/Zotero directory, another profile was already
pointing to it, and there was a Firefox profile pointing to a custom
data directory or with an embedded 'zotero' directory, the Firefox data
directory would be used instead of creating a new data directory named
after the new profile.

This skips the Firefox logic for new profiles when there's an existing
profile pointing at ~/Zotero and just creates the new data directory.
2020-11-17 15:57:16 -05:00
Dan Stillman
e575097e34 Missing line from 5b9e6497 to check schema integrity after crash 2020-11-17 01:26:46 -05:00
Dan Stillman
5b9e6497af Schema integrity check improvements
- Create userdata tables and indexes that are missing
- Delete tables and triggers that should no longer exist
- Run schema integrity check before user data migration
- Run schema integrity check after restart error

This is meant to address two problems:

1) Database damage, and subsequent use of the DB Repair Tool, that
   results in missing tables

2) A small number of cases of schema update steps somehow not being
   reflected in users' databases despite their having updated userdata
   numbers, which are set within the same transaction. Until we figure
   out how that's happening, we should start adding conditional versions
   of schema update steps to the integrity check.

This is currently only running the update check after a restart error,
which might not occur for all missed schema update steps, so we might
want other triggers for calling setIntegrityCheckRequired().
2020-11-16 18:13:48 -05:00
Dan Stillman
6bcc8af86b Add Zotero.DB.columnExists(table, column) 2020-11-16 17:50:52 -05:00
Dan Stillman
b0e065a4ae Don't return relative path from .attachmentFilename for linked files
https://forums.zotero.org/discussion/86139/zotero-item-attachmentfilename-should-only-return-filename
2020-11-13 11:43:00 -05:00
Dan Stillman
b43bfcaca0 Update locales from Transifex 2020-11-04 15:02:42 -05:00
Fletcher Hazlehurst
a72ae14816 Fix bug with double saving of snapshots. 2020-11-02 17:24:14 -07:00
Fletcher Hazlehurst
c0ec91f26d Fix bug for empty title when a translator does not provide one. 2020-11-02 17:24:14 -07:00
Fletcher Hazlehurst
a2620b757d Update SingleFile and fix several bugs
- Using `sandboxPrototype` properly uses window as prototype
- This commit removes the need for our patch in babel-worker.js:
3d0bc4cf9f
- We properly inject into frames in the client if we ever include frames
2020-11-02 17:24:14 -07:00
Dan Stillman
367fea1847 Zotero.File.copyDirectory(): Fix copying of subdirectories on Windows
This fixes copying of the previous extracted SingleFileZ snapshots
between libraries.
2020-11-01 18:51:55 -05:00
fletcherhaz
d16512c84f
Fix bug with async translate process never returning. (#1910)
When using `doImport` a promise is returned, but was lacking a catch a
statement to ensure completion.

This fixes #1882
2020-10-29 02:30:47 -04:00
Dan Stillman
a0aef25de1 Update locales from Transifex and merge new English strings 2020-10-27 02:40:48 -04:00
Dan Stillman
2e2a4bca7f Follow automatic tags prefs when retrieving PDF metadata by ISBN
https://forums.zotero.org/discussion/85777/retrieve-metadata-for-pdf-creates-automatic-tags-even-when-pref-is-off
2020-10-27 01:27:57 -04:00
Dan Stillman
38b997bee9 Update strings for Word Startup folder misconfiguration
Follow-up to 3a684308cd
2020-10-27 00:48:36 -04:00
Dan Stillman
9fdf82aca5 Resolve relative attachment URLs with proxy: false
4bc8fab4f5 added support for `proxy: false` on attachment URLs in
translators, but it made that flag skip `resolveURL()` altogether, which
meant that relative URLs weren't resolved, rather than just skipping
proxying.

This may fix PDF downloads for some ScienceDirect pages (though I can't
test this one):

https://forums.zotero.org/discussion/85884/problem-downloading-pdf-via-zotero
2020-10-26 23:29:40 -04:00
Dan Stillman
29f48476a9 Use UnexpectedStatusException in Zotero.HTTP.loadDocuments()
Follow-up to 76ae5d9f59, which changed loadDocuments() to pass/throw an
Error on a non-2xx response code
2020-10-24 00:04:01 -04:00
fletcherhaz
76ae5d9f59
Switch back to SingleFile from SingleFileZ (#1904)
Our SingleFileZ integration would save images inside directories following the
SingleFileZ format. However, Zotero does not support syncing sub-directories of
attachments. This commit switch back to a single HTML file with base64 encoded
resources. We think that the 33% increase in resources will be offset by the
compression of HTML and removal of JavaScript and unused CSS.

This commit does not fix past snapshots that were saved using SingleFileZ.
2020-10-23 19:39:07 -04:00
Adomas Venčkauskas
3a684308cd Add strings for Word plugin install failure 2020-10-23 13:37:58 +03:00
Dan Stillman
679a1acb90 Fix "Web Page" showing in New Item menu for new databases 2020-10-15 16:24:17 -04:00
Dan Stillman
e9afd153e9 Log HTTP error bodies when responseType is explicitly set to 'text'
Previously they were only logged if responseType wasn't set
2020-10-14 19:33:46 -04:00
Dan Stillman
828ec4010e Don't allow items to be set as their own parents, and correct existing 2020-10-14 19:33:46 -04:00
Dan Stillman
6b626ba992 Fix error in Mendeley import (regression from 8fc316f727)
"Zotero.Relations.getByPredicateAndObject(...).filter is not a function"
2020-10-13 16:45:31 -04:00
Fletcher Hazlehurst
bb0ddbd872 Fix server not handling empty body in multi-part request
An empty body is still valid. Was causing an issue for empty favicons.

https://forums.zotero.org/discussion/85600/bug-report-no-snapshot-in-zotero-beta
2020-10-12 15:06:11 -06:00
Dan Stillman
1ac79c0974
Merge pull request #1896 from fletcherhaz/snapshot
Fix CORS issues in SingleFile
2020-10-11 23:18:11 -04:00
Fletcher Hazlehurst
ed304b56e0 Remove crossorigin attributes in snapshots.
When loading a snapshot locally, same-origin of null will not load them
2020-10-11 18:19:41 -06:00
Fletcher Hazlehurst
dadc64e0d5 Extract SingleFile config so we can share with connector 2020-10-11 17:25:18 -06:00
Dan Stillman
479f01fa9c Fix in-client SingleFile saving on Windows
https://forums.zotero.org/discussion/85538/zotero-5-0-91-beta-not-saving-snapshots-d672469174
2020-10-08 18:44:50 -04:00
Dan Stillman
71550deb98 Fix URL resolving during translation in Zotero client
Regression in c0b6712923

The URL constructor isn't available in XPCOM.
2020-10-05 23:38:28 -04:00
Dan Stillman
d3c481fcf6 Fix bundled attr() when attribute doesn't exist
Regression from 4efc0af119
2020-10-05 23:36:06 -04:00
Dan Stillman
bb44841a80 Update locales from Transifex 2020-10-04 18:18:46 -04:00
Dan Stillman
987b9ce4cb Fix zotero://open-pdf links with page for PDF Expert
https://forums.zotero.org/discussion/comment/365610/#Comment_365610
2020-10-04 18:05:03 -04:00
Dan Stillman
328865299b Add SingleFileZ to about window 2020-10-03 17:57:59 -04:00
Fletcher Hazlehurst
37cdba6f40 Clean up code from SingleFile error handling fix 2020-09-28 12:00:36 -07:00
Fletcher Hazlehurst
1c5cefaffd Fix handling of network errors for SingleFile save 2020-09-28 10:43:32 -07:00
Dan Stillman
20c8cede4d
Merge pull request #1846 from fletcherhaz/snapshot
Use SingleFile to create snapshots of web pages
2020-09-24 18:08:34 -04:00
Dan Stillman
cae2aab70f Reduce startup time from retraction key caching 2020-09-23 22:58:53 -04:00
Fletcher Hazlehurst
0fba08b3c9 Use SingleFile to create snapshots of web pages 2020-09-23 09:37:09 -07:00
Dan Stillman
693cd926d5 Apply subtitle capitalization to dependent styles based on parent
If a style specifies a style like APA that wants uppercase subtitles,
the dependent style should have them too.

https://forums.zotero.org/discussion/comment/364864/#Comment_364864
2020-09-22 17:07:40 -04:00
Dan Stillman
c5f01bc2f3 Make sure item returned from getLinkedItem() has all data loaded
Follow-up to 8fc316f727
2020-09-15 01:12:56 -04:00
Dan Stillman
4efc0af119 Translator sandbox: Update attr()/text() and add innerText()
- Remove TODO comment to add a warning if a Document is passed, since a
  document will always be required when operating on something other than
  the main page (e.g., for multiples).
- Always return a string instead of null. A translator can always use
  querySelector() if it really needs to know if a node exists.
- Automatically trim the returned string
- Add innerText() function that uses .innerText instead of .textContent,
  since there are situations where that might be helpful. Some of those we
  currently address with trimInternal(), but there can be other
  cases where .innerText gives cleaner, user-centric output.

Translators won't be able to rely on these changes for a while, so we'll
need to be careful to watch for problems here, or translators will need
to include a v3 polyfill.

Addresses zotero/translators#1913
2020-09-14 23:51:12 -04:00
Dan Stillman
8fc316f727 Fix potential error dragging to library that hasn't been loaded
https://forums.zotero.org/discussion/85136/unable-to-copy-items-between-libraries

Zotero.Relations.getByPredicateAndObject() is now async.
2020-09-14 23:49:22 -04:00
Tom Najdek
eff19923ef Parse creatorIndex string value as a number #1874
Sending value as a string to "removeCreator" breaks the logic in the
loop in that method which is supposed to remove target creator and shift
remaining creators in the array. This in turn triggers undesired removal
of the last creator in the array.
2020-09-10 01:31:25 -04:00
Tom Najdek
02e4bdfdb0 Blur edited creator field prior to deletion #1874
Resolves an issue where when trying to remove creator, while it is being
edited, next creator is removed instead.
2020-09-10 01:31:25 -04:00
Dan Stillman
e40fff6a7d Limit corrupted-login-manager warning to once per minute 2020-09-10 01:18:58 -04:00
Dan Stillman
0e74a91f6b Fix parsing of SQL dates without seconds
Previously, "2020-09-09 23:33" would be treated as a multipart date,
with "23:33" left in the visible field and "d" showing in the indicator.
2020-09-09 23:37:02 -04:00
Dan Stillman
4ac35ecda3 Fix invalid HTML in note from Quick Copy
A <body> was included with the note element outside of it.
2020-09-09 23:36:18 -04:00
Dan Stillman
4838726b87 Throw invalid-data error on unknown attachment link mode in fromJSON() 2020-09-09 18:01:50 -04:00
Dan Stillman
c0b6712923 Utilities.Translate.resolveURL() tweaks
- Use `new URL()`, available in all modern environments, instead of
  various other methods. In addition to being consistent and simple,
  this allows setting the base URL explicitly, regardless of the
  environment.
- Default protocol-relative URLs to 'https' if no document location
  (though I'm not sure if that ever happens)
2020-08-11 03:55:32 -04:00
Dan Stillman
8214c85bee Remove outdated comment after 8614e73aa8 2020-08-07 19:36:34 -04:00
Dan Stillman
8614e73aa8 Throw clearer error when 'storage' is a broken symlink
Instead of '(NS_ERROR_FILE_ALREADY_EXISTS) [nsIFile.create]', throw
"Broken symlink at <path>".

Closes #1834
2020-08-07 18:23:44 -04:00
Dan Stillman
7c201f5d59 Big Sur style fixes
- Restore active <tab> label
- Fix appearance of tabs in item pane
2020-07-28 00:15:11 -04:00
Dan Stillman
b97413b963 Update locales from Transifex 2020-07-22 18:50:53 -04:00
Dan Stillman
164701450c Limit schema diagnostics to dev builds 2020-07-22 18:38:42 -04:00
Dan Stillman
7f92220ef9 Restore detection of some types of DB corruption at startup
1e0ad3aba changed the test for DB corruption to look for "database disk
image is malformed", but at least Sqlite.openConnection() can throw a
"Could not open connection" error with "2152857611"
(NS_ERROR_FILE_CORRUPTED) in it.
2020-07-22 16:14:17 -04:00
Dan Stillman
785b6dd408 Update citeproc-js to 1.4.11
This fixes the "invalid language tag" error when there are invalid
language tags in Language (beta only).

https://forums.zotero.org/discussion/84224/zotero-error-refreshing-report-id-337976002
2020-07-18 19:21:36 -04:00
Dan Stillman
ab3a5ddbd8 Scaffold: Include mimeType: text/html for attachments in test output
The connector includes this, so the new CI translator test runner in
zotero/translators was showing erroneous mismatches.
2020-07-16 17:40:48 -04:00
Dan Stillman
c1a06a5dea Add reminder to keep CSL mappings in sync with connector 2020-07-14 18:39:55 -04:00
Dan Stillman
f923af4f31 Update citeproc-js to 1.4.7
Includes fixes for https://github.com/Juris-M/citeproc-js/issues/140
and https://forums.zotero.org/discussion/83567/uppercase-letter-problem-in-turkish
2020-07-14 09:39:05 -04:00
Dan Stillman
71af747df0 Fix unnecessary style updating at startup in timezones > UTC
https://forums.zotero.org/discussion/comment/360144/#Comment_360144
2020-07-12 04:53:29 -04:00
Adomas Venčkauskas
8e4ac40174 Decrease translator test timeout 2020-07-07 13:14:20 +03:00
Adomas Venčkauskas
19880e4ded Translator tester updates for running in CI 2020-07-07 12:21:10 +03:00
Adomas Venčkauskas
419953f478 Perform integration document updates in reverse order
Fixes issues when integration plugin field appearance order
in the document is hard-linked and fields can be nested,
which breaks those links when updating a field with nested fields, in
the process removing the nested fields and upsetting document field
order.

Report: https://forums.zotero.org/discussion/83840/error-while-refreshing-a-large-document
2020-06-26 11:13:03 +03:00
Dan Stillman
381fad3681 Remove outdated comment in retraction code
We're already detecting retractions that were removed from the list, so
I don't think this applies anymore.
2020-06-25 20:53:20 -04:00
Dan Stillman
7422c50076 Fix detection of retractions for items with DOI in Extra
Affected items should be detected on the next retraction updates check
2020-06-25 20:53:20 -04:00
Adomas Venčkauskas
6bbb7ddc09 Ignore leading comma in citation dialog search. Closes #1839 2020-06-22 10:00:18 +03:00
Dan Stillman
1ec2615eee More debug info for incomplete schema upgrades
Include info on whether the data directory is in a cloud storage folder
and whether the DB passes a quick integrity check.
2020-06-21 05:24:42 -04:00
Dan Stillman
b4320fbc4c Add Zotero.DB.quickCheck(), and speed up integrityCheck()
https://www.sqlite.org/pragma.html#pragma_quick_check

And limit both checks to 1 error (e.g., integrity_check(1))
2020-06-21 05:21:48 -04:00
Dan Stillman
3e8f0af583 Schema upgrade debugging
Include flags in repo update checks indicating whether a database table
that was previously supposed to be removed was removed and whether a new
table was created. This should help us figure out whether we can safely
perform schema update steps or whether we need to figure out why some
schema update steps aren't being applied.
2020-06-21 03:08:03 -04:00
Adomas Venčkauskas
42ac976f1e Do not attempt to update bibliography when no citations are present 2020-06-18 16:13:47 +03:00
Dan Stillman
01b8b550b8 Update locales from Transifex 2020-06-14 18:04:24 -04:00
Dan Stillman
68ec841f35 Warn on "Box" in data directory path 2020-06-14 17:15:12 -04:00
Dan Stillman
482b8b6f75 Update locales from Transifex 2020-06-11 04:21:07 -04:00
Dan Stillman
bccf5ff0b2 Fix endless WebDAV loops if server has wrong mtimes but hash matches
Possibly caused by a third-party client uploading mtimes that then
aren't synced, or that differ from what get synced. When we detect this,
try to correct it by updating mtimes on WebDAV and the API to match the
local file.

https://forums.zotero.org/discussion/83554/zotero-loop-syncs-2000-items
2020-06-09 01:26:11 -04:00
Dan Stillman
a8c682bf4b Preserve linked-object and replaced-item relations when merging items
https://groups.google.com/d/msgid/zotero-dev/6f764822-ed7c-46eb-8068-ce9ed1a1538c%40googlegroups.com

Regression from 617564982c
2020-06-06 17:16:09 -04:00
Dan Stillman
bb220ad0f2 Update to citeproc-js 1.3.22 2020-06-02 17:07:31 -04:00
Dan Stillman
b2e902746a Strip HTML tags from titles when generating filenames 2020-06-02 17:06:42 -04:00
Dan Stillman
13349df380 strToDate(): More boring way of fixing 0620b16d3e 2020-05-28 06:38:39 -04:00
Dan Stillman
0620b16d3e strToDate(): Don't parse 01/01/08 as the year 8
Regression from b7dc0d8b0a (5.0.81)
2020-05-28 06:19:42 -04:00
Dan Stillman
c882488ef7 Add "(APA)" and "(ASA)" to style list in Document Preferences
Hopefully this will help people not select ASA 6th when they're looking
for APA 6th.

https://forums.zotero.org/discussion/comment/357135/#Comment_357135
2020-05-28 06:19:41 -04:00
Dan Stillman
b0fd7adcbe Ignore useDataDir pref if no dataDir pref 2020-05-28 04:35:14 -04:00
Dan Stillman
85bc5d168e strToDate(): Fix 'order' for just a number <=12
"m" instead of "m y"
2020-05-28 04:35:14 -04:00
Dan Stillman
f43df90225 Fix applying remote deletion of item in collection in read-only library
"Cannot edit item in read-only library"

I have no idea how this bug has gone undetected for so long.
2020-05-26 08:23:18 -04:00
Dan Stillman
b288a278d8 Warn if data directory is in iCloud Drive 2020-05-26 03:11:43 -04:00
Dan Stillman
11d02e6800 Update locales from Transifex 2020-05-23 03:31:39 -04:00
Dan Stillman
c65322d0a4 Clarify warnings about data removal when switching accounts
And improve styling of hardConfirmationDialog.xul

Closes #1359
2020-05-23 03:23:32 -04:00
Dan Stillman
31f26fefe7 Update locales from Transifex 2020-05-22 04:57:18 -04:00
Dan Stillman
1e0ad3aba3 Restore corrupted-database detection during SQL queries
Show a popup if DB corruption is detected with a warning to avoid
storing the data directory in cloud storage, a link to a support page
with more information, and a button to restore from the last automatic
backup.

Also show the warning about cloud storage again after restoring from the
last automatic backup.
2020-05-22 04:46:58 -04:00
Dan Stillman
30cefca18e Fix cross-library collection dragging from read-only library
This has apparently always been broken.
2020-05-20 08:45:37 -04:00
Dan Stillman
a086507167 Obey Cmd/Ctrl-W in Scaffold, Style Editor, and Run JavaScript windows 2020-05-17 04:08:43 -04:00
Dan Stillman
c9e90417ee Improve zotero://open-pdf handling
- Support Adobe Acrobat on macOS, with page number support via System
  Events. Tested with Acrobat Reader, but hopefully functional with
  non-Reader versions as well
- Use full path to configured .app via AppleScript rather than a
  hard-coded name, in case there are multiple versions on the system
- Simplify code and improve logging
2020-05-16 02:04:16 -04:00
Dan Stillman
6676ece3e4 Add 'pcloud' to dangerous data directories
It seems like pCloud can sync arbitrary directories as well, but at
least some people use "pCloud Drive".
2020-05-15 19:26:24 -04:00
Dan Stillman
c5783f093a Add missing 'www' to support URL 2020-05-15 19:24:45 -04:00
Dan Stillman
2d720b9532 Scaffold: Clarify error parsing tests 2020-05-15 19:24:20 -04:00
Dan Stillman
2e50d37ebb Translator tester: reduce defer delay from 20s to 5s
This seems like it would be sufficient for most tests that need to wait
for a page to load and is much less annoying in Scaffold. We could
adjust for automated runs if those end up using a browser again.
2020-05-15 19:21:40 -04:00
Dan Stillman
4068dffc0f Scaffold: Use loadDocuments() for tests and honor defer: true
Previously, while updating a test used loadDocuments() (for a real
browser load) and honored `defer: true`, running a test did not.

This updates Zotero_TranslatorTester to use loadDocuments() when run in
Zotero. In other environments (translation-server, connector), it will
continue to use processDocuments(), which is based on XHR.

Fixes zotero/scaffold#96
2020-05-15 19:21:40 -04:00
Dan Stillman
0341b8e99a HTTP.loadDocuments(): Create cookie sandbox automatically if not provided
This prevents use of the internal cookie store.
2020-05-15 19:21:40 -04:00