Commit graph

15142 commits

Author SHA1 Message Date
abaevbog
427e8daaf9 add string for note-editor a11y link popup message (#5205)
String read out by screen readers when the link popup
appears instructing users to navigate it.

Addresses: #5199
2025-06-19 02:14:21 -04:00
abaevbog
a7e1035b77 a11y: clear aria-expanded on empty itemTree rows (#5201)
Per https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-expanded#treeitems
only treeitems that contain children should have
the aria-expanded attribute. This is instead of having
aria-expanded="false" on empty regular items or standalone
attachments, which erroneously indicates to screen readers
that the row has children but is collapsed.

Fixes: #5200
2025-06-19 02:13:58 -04:00
Dan Stillman
ec59f43a68 Mark locally missing files marked for upload for download instead
Z7 removed an `OS.File.open()` in `_checkForUpdatedFiles()` that would
throw on missing files and cause them to be marked for download in a
`catch`.

This likely caused the fix for #1753 not to work in Z7.
2025-06-19 02:13:02 -04:00
abaevbog
76b8556c16 runJS: better message if nothing is returned (#5181)
Display "===>undefined<=== (completed successfully)" instead
of current "===>undefined<=== (undefined)", which is a bit misleading.

Fixes: #5180
2025-06-19 02:05:23 -04:00
abaevbog
79feeaecb1 load all tabs items' data when restoring tab state (#5193)
This fixes the breakage in tabs menu on initial load
if one of the tab is for an item from not-loaded group.
Now, every component relying on tab items (e.g. tabs menu)
can just assume that items are all loaded.

Fixes: #5192
2025-06-19 02:05:05 -04:00
abaevbog
bfe28b5918 include mru types in main list of "New Item" menu (#5195)
Per https://forums.zotero.org/discussion/123269/bad-practice-in-new-item-drop-down-menu
2025-06-19 01:57:01 -04:00
Tom Najdek
730d3b1f34 File renaming: add support for counting creators (#5175)
Also extends the templating engine to support inequality comparisons.
2025-06-19 01:34:55 -04:00
abaevbog
9fb961fd63 transform menu: preserve cases in capitalize title (#5174)
Do not lowercase the entire title before capitalizing
the first letter of each word to preserve abbreviations
or spelling of unusual words (e.g. 3D or iPhone).

Fixes: #5165
2025-06-19 01:33:56 -04:00
Abe Jellinek
ea4f5fee60 FileHandlers: Fix unintended fallthrough in switch
May have been responsible for this:
https://forums.zotero.org/discussion/comment/483004#Comment_483004
2025-06-19 01:19:19 -04:00
Tom Najdek
e700f5ca98 Improve layout of the buttons in the locate manager (#5139) 2025-06-19 01:18:42 -04:00
Dan Stillman
ebecf0f4cc Indicate Troubleshooting Mode in error reports
And show plugins as disabled

Closes #4345
2025-06-19 01:06:47 -04:00
windingwind
9129625dd0 Fix plugin scope not loaded if plugin is disabled when starting Zotero (#5129) 2025-06-19 01:06:09 -04:00
Dan Stillman
a2b7d0674e Fix WebDAV progress updates for Zotero.HTTP.download() 2025-06-19 01:05:58 -04:00
Dan Stillman
e6f15d006f Remove hack for Issue search condition in French locale
https://forums.zotero.org/discussion/comment/473643/#Comment_473643
2025-06-19 01:02:19 -04:00
Dan Stillman
ce851ae42f "Select add-on to install" → "Select plugin to install"
https://forums.zotero.org/discussion/122235/title-in-the-plugin-selection-windows-dialog-add-on-plugin
2025-06-19 01:02:19 -04:00
abaevbog
bb79e10851 Fix unintentional title transfer between attachments on item switch (#5245)
Also added similar test for item details table

Fixes #5244
2025-06-19 01:02:19 -04:00
Dan Stillman
226ba8b489 Update builds to Firefox 115.24.0esr 2025-06-19 01:02:19 -04:00
Adomas Ven
cd856efef8
Connector attachment saving server changes for 7.0 (#5345) 2025-06-19 01:01:52 -04:00
Abe Jellinek
1dad1ae0f8 Accept length-7 sortIndexes for snapshots (#5209) 2025-06-11 09:58:55 -04:00
Abe Jellinek
3dfe2a5321 Update reader submodule 2025-06-10 14:56:02 -04:00
Abe Jellinek
c8c752663f Update reader submodule 2025-04-22 11:07:13 -04:00
Dan Stillman
bbf4692b99 Don't log entire byte array when downloading files 2025-03-15 23:07:17 -04:00
Dan Stillman
56f182f816 Fix file downloads timing out after 30 seconds
We switched file downloads to use XHR to fix downloads failing via
authenticated proxies in fx115+, but that made them subject to our
default 30-second timeout in `Zotero.HTTP.request()`. That timeout uses
the XHR `timeout` property, which applies to the whole request, even if
data is actively being downloaded. As a result, file downloads would
fail for people downloading large files or on very slow connections.

This implements manual connect and inactivity timeouts when using
`Zotero.HTTP.download()`. Currently, these both use `options.timeout`,
or the default 30 seconds, but we could probably take separate options
and have lower defaults now that they no longer apply to the whole
request.
2025-03-15 22:54:35 -04:00
Dan Stillman
6053321766 Update version 2025-03-15 22:54:27 -04:00
Dan Stillman
9828edc2e2 Update version 2025-03-12 23:25:33 -04:00
Dan Stillman
35064caddd Update translators and styles 2025-03-12 23:25:32 -04:00
Dan Stillman
601358f24b Fix very slow purging of itemDataValues at startup in large databases
When an item is erased (removed from the trash or cleaned up from a
feed), we set a flag to purge values in `itemDataValues` on the next
startup, with this query:

DELETE FROM itemDataValues WHERE valueID NOT IN (SELECT valueID FROM itemData);

For some people, that query was incredibly slow and would result in
Zotero intermittently hanging on "Loading items…" for a long time at
startup. It's possible this is mostly limited to people who subscribe to
high-volume feeds and have a lot of item churn. One affected person had
>900K values in `itemDataValues` despite having only 20K items.

It turns out the slow query is due to the foreign-key constraint on
`itemData(valueID)` that references`itemDataValues(valueID)`. SQLite is
checking every row being deleted from `itemDataValues` against
`itemData`, even though the query is specifically removing rows that
don't exist in `itemData`! For the 900K-value DB, disabling foreign-key
checks causes the `DELETE` query to take 25 seconds instead of...some
much longer time that I didn't wait for.

We already had an `executeTransaction()` flag, `disableForeignKeys`, to
temporarily disable foreign-key checks, but it didn't do so in a way
that was safe for post-initialization usage -- a write query outside of
a transaction could've run between the transaction commit and
foreign-key checks being re-enabled. This commit changes it to properly
block all other queries unless they include an `ignoreDBLock` option,
meaning that queries within the function passed to the transaction need
to include that option. (And since that's not realistic for the couple
other uses of `disableForeignKeys` -- one for a test and one in code
that almost certainly hasn't been run by anyone in 15 years -- those now
just run `PRAGMA foreign_keys=OFF|ON` explicitly, leaving this as the
only current use.)
2025-03-12 23:25:32 -04:00
PChemGuy
f4b531e657 Sort strings naturally or alphabetically (#5075)
Hidden setting. If true, use natural collection sorting matching the current behavior. If false, use conventional alphabetic sorting.
2025-03-12 23:25:32 -04:00
Abe Jellinek
c93a0e0e80 Add tests for renderItemTitle() 2025-03-12 23:25:32 -04:00
Abe Jellinek
096cc2e27b renderItemTitle(): Create <span> when inverting style
Creating an <i> with a style attribute that *removes* italics is just
too confusing.
2025-03-12 23:25:32 -04:00
Abe Jellinek
5ae1986f79 renderItemTitle(): Fix nested tag handling when rendering to string
Need to exit the loop regardless of whether we're rendering actual
nodes.

Fixes #5082
2025-03-12 23:25:32 -04:00
Dan Stillman
66d83ec4c8 Prevent DNS/TCP connections in snapshots 2025-03-12 23:25:32 -04:00
abaevbog
b250aed79d always trim editableText from itemBox on blur (#5081)
So that whitespaces are removed even if the itemBox
does not refresh.

Fixes: #5080
2025-03-12 23:25:32 -04:00
Dan Stillman
85b97f82e6 Fix /connector/saveSnapshot test for Zotero.HTTP.download() 2025-03-12 23:25:32 -04:00
Dan Stillman
64b444752a Update "Find Full Text" tests for Zotero.HTTP.download()
Downloads are now included in request() call counts
2025-03-12 23:25:32 -04:00
Dan Stillman
0542010659 Fix Zotero.HTTP.download() for fx115
Blob#bytes() was introduced in fx128.
2025-03-12 23:25:31 -04:00
Dan Stillman
4b78b2c130 Replace Zotero.Utilities.Internal.saveURI() with Zotero.HTTP.download()
Adds a new function, Zotero.HTTP.download(), that uses
Zotero.HTTP.request(). This fixes downloads via authenticated proxies in
Zotero 7 and gives us other request() functionality (e.g., 5xx retrying)
for free.

The downside is that this is probably less efficient, potentially
loading large downloads in memory. We should create a replacement for
request() based on fetch() that supports getting the body as a
ReadableStream.

Fixes #5062
2025-03-12 23:09:47 -04:00
Abe Jellinek
7f6a07b665 Advanced Search: Remove red background from condition tooltips
Fixes #5066
2025-03-12 22:59:36 -04:00
Martynas Bagdonas
fbd3fd5ceb Update reader submodule 2025-03-12 18:26:21 +02:00
Martynas Bagdonas
6ddc360145 Update reader submodule 2025-03-12 12:17:06 +02:00
Martynas Bagdonas
63b06f4346 Update reader submodule 2025-03-01 14:30:28 +02:00
Martynas Bagdonas
71375b15a5 Update reader submodule 2025-02-25 17:24:46 +02:00
Dan Stillman
c6b7829501 Update version 2025-02-21 01:37:48 -05:00
Dan Stillman
1bad050d7f Update build script for 7.0 branch 2025-02-21 01:37:48 -05:00
Dan Stillman
239530c515 CI: Build ZIP for 7.0 branch 2025-02-21 01:37:43 -05:00
Dan Stillman
828e0c942a Update Word for Mac submodule 2025-02-21 00:06:48 -05:00
Martynas Bagdonas
cf37dfb330 Update reader submodule 2025-02-20 20:13:17 +02:00
Dan Stillman
6af5a484fd Update build script for 7.0.12-hotfix branch 2025-02-19 04:08:36 -05:00
Dan Stillman
7de623accf CI: Install libdbus-glib
Needed for fx115, but apparently removed from the latest GitHub Actions
Ubuntu runner
2025-02-19 02:16:02 -05:00
Dan Stillman
10b3b5f915 Update translators 2025-02-19 02:03:27 -05:00