Commit graph

15852 commits

Author SHA1 Message Date
Dan Stillman
d1f478fc4e Update translators, styles, and CSL locales 2025-10-14 12:03:25 -04:00
Dan Stillman
82f08cc4b8 Update note-editor and reader submodules 2025-10-14 12:01:23 -04:00
Abe Jellinek
892a4c48ce Style configurator: Log error and discard invalid locale values 2025-10-14 11:52:47 -04:00
Abe Jellinek
f621de41c7 Style configurator: Don't use string interpolation to build XUL 2025-10-14 11:52:47 -04:00
windingwind
9d91ff8df9
Improve attachments section test (#5576)
Cancel pending discard to avoid race condition
Cancel pending render/discard after tests
2025-10-13 13:18:51 -04:00
Abe Jellinek
9509c62918 Fix search test descriptions, remove outdated tests
Some descriptions weren't changed to match test behavior changes in
48fd23c, and the doesn't-match tests are no longer relevant after those
changes.
2025-10-10 12:39:26 -04:00
Abe Jellinek
e921a4bc7f Local API: Improve search debugging
Use our own method in order to debug scopes, with a new getter for
that property.
2025-10-10 12:39:26 -04:00
Abe Jellinek
7da9c0669d Local API: Match annotations (#4337)
Except in collection items responses.

And use scope searches for itemType/tag search syntax instead of
filtering in JS.
2025-10-10 12:39:26 -04:00
abaevbog
90972577af
ensure tag selector is initialized before using (#5574)
If the tag selector is not initialized in setScope,
initialize it before proceeding. This fixes
the tag selector being stuck in loading state
after expanding.

Fixes: #5573
2025-10-10 10:25:59 -04:00
Tom Najdek
18a34b938f
Remember last import settings (#5465)
Closes #5303

Also:

* Ensure the file chooser dialog opens only once
2025-10-10 10:22:57 -04:00
Dan Stillman
9d22c5406f Add special handling for general-sentence-separator string 2025-10-09 15:32:04 -04:00
Dan Stillman
6359d69ef4 Update locales from Transifex 2025-10-09 15:32:04 -04:00
Abe Jellinek
52f5ab035f Document Preferences: Add missing FTL to fix variable in title
Fixes #5570
2025-10-09 10:37:12 -04:00
Dym
05e4982245
Local API: Resolve 500 error on single item export (#5560) 2025-10-08 19:48:17 -04:00
abaevbog
2e3deb0a21
tagsbox: fix deleted tags reappearing (#5533)
https://forums.zotero.org/discussion/110655/z7-beta-tags-reappear-after-quickly-deleting-them

If a library has many tags and one quickly clicks on "-" button
to deleted multiple tags from an item, the database updates
may not keep up with UI. To address this, save item only
once after a debounce.

Fixes: #5410
2025-10-08 15:37:17 -04:00
windingwind
cc4c8cd191
Keep tabs menu focus when using up/down (#5346) 2025-10-08 15:33:45 -04:00
Abe Jellinek
46f879dcdb
Scaffold: UI tweaks and testing overhaul improvements (#5441)
- Remember diffs from test runs, show in sidebar when test is selected
- Add button to immediately update test, without a prompt
- Indicate when test has a custom defer delay set (although no tests currently do)
- Use a persistent test store as source of truth, instead of data attributes on the listbox rows
- A bit of code cleanup

Closes #5420, closes #5419
2025-10-08 15:16:49 -04:00
Abe Jellinek
e2fc3d35b8
Style editor: Simplify exposed methods, add shortcuts for refresh (#5545) 2025-10-08 14:51:42 -04:00
Abe Jellinek
da0578fc39 Remove special handling for URLs dragged from Firefox (#4649)
And the temporaryPDFHack that we used for them.
2025-10-08 14:30:21 -04:00
Abe Jellinek
dbce2b33b3 Use extension-less filenames when adding multiple attachments at once (#4649)
And use a new notifier queue in the ZP routine (like we already did in
the item tree) to prevent notifier events from firing in the middle.
2025-10-08 14:30:21 -04:00
Dan Stillman
ee9ea5d5a1 Update locales from Transifex 2025-10-08 13:48:47 -04:00
Tom Najdek
b75ebd6f41
Fix auto-rename not triggering when creators change (#5567) 2025-10-08 18:19:21 +02:00
Abe Jellinek
77420760b0 Quick Copy: Don't leak pref observers when uninitialized 2025-10-08 12:04:21 -04:00
Abe Jellinek
6131da92c4 Quick Copy: Fix init race condition
QuickCopy.init() calls Style#getCiteProc(), and a side effect of
citeproc-js locale initialization could cause a recursive call back to
QuickCopy.init(), which would again call Style#getCiteProc() (after it
had checked its cache but before it had added the new engine to it),
leading to duplicate CSL.Engine initialization. Now we correctly check
whether we've already been initialized, eliminating the race condition.

Separately, remove async keyword from init(). It never actually was
async - even before Bluebird removal, it didn't await anything or return
a promise. And we can't make it await its pre-caching work because
schemaUpdatePromise won't resolve until init() resolves/returns.
2025-10-08 12:04:21 -04:00
Abe Jellinek
e9dd050229 Item pane header: Only pre-cache CSL.Engine if set to bibEntry mode 2025-10-08 12:04:21 -04:00
Tom Najdek
5cb537274e
Fix a couple of issues with file renaming (#5562) (#5566)
* Fixed incorrect new name generation for attachments without a file extension and not present on disk
* Fixed invalid preview in certain edge cases
* Added tests covering file renaming in general and the above issues
2025-10-08 00:39:54 -04:00
abaevbog
1f04c55765
Relate converted embedded note to its attachment (#5559)
When an embedded attachment note is converted to
a standalone note, relate the standalone note to
the attachment and place it in the same collections
as the attachment.
2025-10-07 13:54:09 -04:00
abaevbog
e3926c657a
fix "Next" button not appearing in merge dialog (#5563)
On windows and linux.
Fixes: #5561
2025-10-07 12:48:22 -04:00
abaevbog
59742ccc8f
no find-as-you-type on 0 keypress in itemTree (#5564) 2025-10-06 22:32:13 -04:00
abaevbog
fefad8a9e3
Fix item sometimes not added to collection on cross-library drag-drop (#5547)
When drag-dropping items into a collection in another library,
perform the addition to collection in the same transaction
as creating a new item in the target library.

When the librariesCollectionsBox refreshes on the `modify` event
when a newly created group item is linked to the selected item,
it re-loads the data of the linked item via item.loadAllData().
This could happen after the item is added to the collection
but before this change is saved. In that case, item._changed.collections
would be cleared, and when the item is saved, there would be
no changes to collections to save.

Fixes: #5539

Also, cleanup leftover unused logic of restoring linked item
from trash on drop that was removed in 2dd16b44d6
2025-10-06 15:30:01 -04:00
Martynas Bagdonas
5a96e7c90f Fix test for Citavi annotation import 2025-10-02 17:17:37 +01:00
Dan Stillman
3089a4a534 Update locales from Transifex 2025-10-02 10:42:58 -04:00
Martynas Bagdonas
b48aed2fed Update reader, note-editor, and pdf-worker submodules 2025-10-01 17:37:48 +01:00
abaevbog
ac36b6d361
Display libraries and collections box for standalone notes and attachments (#5554)
Display Libraries and Collections box in the itemPane
for standalone notes and attachments.

Fixes: #5553
2025-09-29 14:44:18 -04:00
Dan Stillman
dd19cf58cc Hide file renaming banner if "Learn More" is clicked 2025-09-29 14:43:25 -04:00
abaevbog
b21e442c4f
maintain the size of tabs as they are being closed (#5548)
When a tab is closed via clicks on "X" button, record
and lock all tabs' widths. That way, the "X" button
of the tab that follows the one that was just deleted
will land under the mouse cursor, allowing one to
delete many tabs. In addition, preserve the scroll position
of the tab bar. If it's impossible because too many tabs
were deleted, add a spacer after the last tab.

Fixes: #5523
2025-09-29 14:28:30 -04:00
Tom Najdek
42b47c5453
Add missing Fluent strings for the reader 2025-09-29 19:59:37 +02:00
Dan Stillman
e27b58176d Update locales from Transifex and merge new English strings 2025-09-18 11:28:16 +02:00
Tom Najdek
516d230647
Fix "Rename from Parent" not visible after the parent item changes Close #5542 2025-09-15 22:56:52 +02:00
Northword
91a74ed063
Fix JSDoc return types of PluginAPIBase._unregisterByPluginID 2025-09-15 14:02:46 +02:00
windingwind
913d15632b Fix menu API async unregister and event listener 2025-09-15 10:07:46 +02:00
Dan Stillman
9ab9ccf79d Update English strings for Transifex 2025-09-13 18:27:45 -04:00
Dan Stillman
0d072f2945 Add "[one]" to localized string to make Transifex happy
Even though we would never use it, Transifex still wants both 'one' and
'other' for English
2025-09-13 18:27:45 -04:00
Dan Stillman
0125de3d06 Don't include "Settings…" link in file-renaming announcement banner 2025-09-13 02:31:41 -04:00
Dan Stillman
e3ab296a72 Updated Liquid Glass icon that fixes glitch in dark/tinted/clear modes 2025-09-13 02:29:17 -04:00
Dan Stillman
ceb32b3d8a Fix max-width on hardConfirmationDialog and reduce input font size 2025-09-13 01:31:12 -04:00
Tom Najdek
e3fc1e62a0 Display the number of items that would be deleted when replacing the online library (#5359)
And require checkbox or text challenge depending on the severity of the
action

---------

Co-authored-by: Dan Stillman <dstillman@zotero.org>
2025-09-13 01:31:10 -04:00
abaevbog
562fed6e7e
fx140: a11y fix voiceover not reading out menulist labels (#5540)
Post-fx140, menulist labels in chrome windows are not
announced by VoiceOver. Setting the menulist's role to 'combobox'
addresses this and gets VoiceOver to announce the labels again.
This is interesting because 'combobox' is supposedly
menulist's implicit role, so it's not clear why this helps.

It does slightly change the way VoiceOver announces
menulists: it announces "combobox" instead of "popup button",
but semantically combobox is still appropriate per
https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only

Fixes: #5424
2025-09-13 00:57:51 -04:00
Tom Najdek
e896fd0137
Add continuous-renaming functionality for attachment files (#3860)
Resolves #1685
2025-09-11 04:54:03 -04:00
Abe Jellinek
17bcb1e84c
Move New Group and New Feed directly under File menu (#5531) 2025-09-11 04:46:40 -04:00