Commit graph

12397 commits

Author SHA1 Message Date
Dan Stillman
1e810b2a36 Disable Better BibTeX <9.0
https://forums.zotero.org/discussion/comment/508650/#Comment_508650
2026-03-06 15:34:09 -05:00
Dan Stillman
6325ec1247 Use our own blocked-plugin message that doesn't mention Mozilla 2026-03-06 15:33:56 -05:00
Adomas Venčkauskas
a6aa02e1ab Auto-recover ALL-CAPS macOS corrupted word field codes.
Closes zotero/zotero-word-for-mac-integration#38
2026-03-05 23:30:40 -05:00
Tom Najdek
fe33482ab9 Fix tag splitting for strings containing Unicode characters. Fix #5807 2026-03-05 23:30:01 -05:00
Dan Stillman
1485dc25eb HTTP.request(): Don't try to output responseText if not text response 2026-03-05 23:27:32 -05:00
Dan Stillman
10c74d33c9 WebDAV: Compute fresh Digest auth headers for each request
The previous approach of capturing and replaying the Authorization header
from an initial request worked for Basic auth but broke with Digest auth,
where the header includes the HTTP method and URI in the hash. This caused
each replayed request to be rejected with a 401, which Firefox wouldn't
retry because the request already included Authorization.

Instead, split _channelAuthorization into _basicAuthHeader and
_digestParams. For Basic auth, the header is still replayed as-is. For
Digest, the challenge parameters (realm, nonce, qop, etc.) are cached
and a fresh Authorization header is computed per request.

_getAuthorizationHeaders() now takes method and URI parameters so it can
compute the correct Digest response hash for each request.
2026-03-05 23:27:18 -05:00
Abe Jellinek
5110a15e58 Fix item type becoming 'undefined' when menu is dismissed with Escape
By adding a missing getter override. If a setter is overridden, the
corresponding getter also needs to be overridden, or it will implicitly
return undefined.

Fixes #5793
2026-03-05 23:26:57 -05:00
Dan Stillman
1205349330 Fix WebDAV verification failure on OPTIONS/PROPFIND auth type mismatch
`checkServer()` was capturing the Authorization header from OPTIONS and
explicitly setting it on PROPFIND via `setRequestHeader()`. If the auth
type didn't match what the server required for PROPFIND (e.g., Basic vs.
Digest, though maybe other things too), the explicit header could
prevent Firefox from negotiating the correct auth scheme on the 401
challenge.

To fix, move `onAuthorizationHeader()` from OPTIONS to PROPFIND and
don't pass captured auth to PROPFIND, letting Firefox handle the auth
transparently.

https://forums.zotero.org/discussion/129665/webdav-error-for-zotero-8-0-3
2026-03-05 23:24:07 -05:00
Dan Stillman
66bc7b70f3 Update locales from Transifex 2026-02-07 12:58:10 -05:00
Dan Stillman
9a1bac563e Update locales from Transifex 2026-02-06 15:47:39 -05:00
Dan Stillman
d31fafea98 Update CSL locales 2026-02-06 15:34:42 -05:00
abaevbog
5aa1c700cc Preference to hide context annotation rows (#5315)
hideContextAnnotationRows pref, accessible via View > Hide Non-Matching Annotations,
will hide non-matching context annotation rows.
Enabled by default.

Fixes zotero#5264
2026-02-06 15:34:32 -05:00
Dan Stillman
2d4ef19f41 Use PROPFIND instead of OPTIONS to cache WebDAV credentials
Some WebDAV servers allow unauthenticated OPTIONS requests, so the
Authorization header capturing added in 089701eca8 wouldn't work.

PROPFIND with Depth: 0 reliably requires authentication while only
returning properties of the directory itself.

https://forums.zotero.org/discussion/comment/506993/#Comment_506993
2026-02-04 09:59:56 -05:00
Abe Jellinek
dc54d82712 Scaffold: Fix repeated reload prompts 2026-02-04 09:59:56 -05:00
Dan Stillman
56cd4713f1 Clear cached WebDAV credentials if we get a 401 2026-02-01 16:42:55 -05:00
Dan Stillman
089701eca8 Fix WebDAV authentication handling in fx140
Firefox no longer seems to send a previously used Authorization header
with subsequent requests. This results in extra requests, since every
WebDAV request triggers a 401, and also results in errors, because a PUT
is sent without Authorization, causing some WebDAV servers to
immediately send a 401 and close the connection, which the HTTP layer
interprets as a connection failure (status 0). (It's also not good to
try to send a large file just to get a 401.)

There might be some way to share context between requests, but instead,
just get the used Authorization header and include that explicitly in
future requests.

To test this properly, we have to switch to using httpd.js for all
WebDAV requests, since the mocked XHR doesn't trigger the 401 retry.

https://forums.zotero.org/discussion/129194/webdav-uploads-fail-on-zotero-8-put-sent-without-authorization-server-closes-connection
2026-02-01 16:42:55 -05:00
Dan Stillman
e7d1772470 Don't show Authorization header value in HTTP.request() debug mode 2026-02-01 16:42:55 -05:00
windingwind
1347023b39
Fix note context tabNotesDeck.selectedPanel null error (#5771)
fix: #5770
2026-02-01 11:06:10 -05:00
Dan Stillman
a0758e016a Update locales from Transifex 2026-01-29 15:35:21 -05:00
Dan Stillman
0c97b6f74c Include collections in trash when generating item JSON
Any modification to an item belonging to collections in the trash would
cause those collections to be removed from the item when the item was
uploaded.

Fixes #5766
2026-01-29 15:14:02 -05:00
Dan Stillman
f3c0e4fdc2 Fix error resetting group library with unsynced embedded images
https://forums.zotero.org/discussion/129373/zotero-7-8-warning-when-syncing-group-library
2026-01-29 13:22:14 -05:00
abaevbog
22f62138a3
Fix quicksearch not finding annotations of standalone attachments (#5756)
Fix search not finding annotations of standalone attachments
when searching within a scope.

Fixes: #5751
2026-01-28 13:30:36 -05:00
windingwind
1969bde82c
Fix attachment preview discard logic (#5757)
Use keepAlive() to prevent deferred discard when the preview moves out of view but later enters the view again before the discard timeout.
2026-01-28 11:28:06 -05:00
windingwind
aef4beee89 Fix note editor iframe docShell undefined error
Regression after 37ce3c0
2026-01-28 10:49:55 +01:00
Abe Jellinek
4880674668 Remove DOI when creating bookSection from book
And book from bookSection.

Closes #5732
2026-01-27 16:20:14 -05:00
Dan Stillman
0e78eb6709 Update locales from Transifex 2026-01-27 13:45:15 -05:00
Tom Najdek
aabac2576c
Ensure automatic file renaming is enabled for group libraries (#5750) 2026-01-27 13:25:12 -05:00
abaevbog
56de1abb79
Citation dialog: localized CSL page locator in guidance panel text (#5746)
* citation dlg: local. CSL locator in guidance panel

Use localized short CSL page locator in guidance panel
text example ("p10")

Fixes: #5745

Also, fix dialog mode switch buttons not properly sizing
in locales where list/library string is longer.
2026-01-27 12:26:32 -05:00
Abe Jellinek
8b446b7fc5
Set auto attachment title when not renaming (#5748) 2026-01-27 11:44:50 -05:00
Dan Stillman
98b0a3a741 Update utilities submodule
Fixes #5744
2026-01-27 00:39:40 -05:00
abaevbog
1f9d9d2967
citation dlg: updates to locator shortcuts (#5529)
- after a new bubble is added to the citation, it is recorded
as a just-added bubble. The next locator typed without a search query
will go to that item instead of going to the item before where the locator was typed.
Same logic applies when multiple bubbles are added at once.
- the record of just-added bubbles is cleared on focusout
or keypress of an arrow key. That way, it's discarded if the user
is almost certainly not intending to immediately type a locator.
- added a special case to recognize a numeric value as a page locator
if it is typed when just-added bubble is recorded. That special locator
will be added to the just-added bubble as one is typing without
pressing Enter after debounce. Enter will immediately add the locator
without waiting for debounce.
- if a just-added bubble is recorded, cmd-z will clear
whatever numeric locator may have been typed and place
it back into the input, in case one meant to type an
actual search query

- added a special case to recognize ":<number>" as a page locator
in the same circumstances that "page <number>" is currently recognized
- do not use year extraction (SearchHandler._cleanYear)
when parsing input. It strips the first number from
a range of numbers and conflicts with the new locator
logic.
- ensure a bubble with a very long locator does not overflow
2026-01-26 20:12:44 -05:00
abaevbog
83e1a6030a
fix windowIcon logged error in titlebar.js on win (#5743)
Instead of adding listeners to the window icon unless
no-titlebar-icon is set on the window, add listeners
to the icon whenever it exists. That way, one doesn't have
to remember to add the no-titlebar-icon attribute to
every window that doesn't have an icon.

Fixes: #5733
2026-01-26 20:11:18 -05:00
abaevbog
ea1ef4492d
Citation dialog: restore first run guidance panel (#5740)
- restore guidance panel with instructions appearing on the first run
- clear firstRunGuidanceShown.quickFormat pref
- set slightly higher arrow padding on win/linux for the guidance
  panel. If the arrow is too close to the edge, it appears
  partly disconnected from the panel.

Fixes: #5738
2026-01-26 16:34:53 -05:00
Abe Jellinek
3c6ad491b5
Fix citations accumulating due to CSL.Engine caching (#5742)
* makeFormattedBibliographyOrCitationList(): Don't modify CSL.Engine state

Use previewCitationCluster(), which leaves the processor state alone,
instead of calling appendCitationCluster(), which has side effects and
isn't used anywhere else in Zotero.

* Make CSL.Engine caching opt-in

* Remove unnecessary CSL.Engine reinitialization

* Code style

* Add/update tests
2026-01-26 16:12:36 -05:00
Dan Stillman
c42f3b8174 Fix citing in Serbian locale
Fixes #5741
2026-01-26 15:14:19 -05:00
Tom Najdek
f58ca4b399
Fix missing ellipsis for styles in the style selector (#5736) 2026-01-26 11:29:11 -05:00
Adomas Ven
6697db1dba
Delete duplicate renamed styles on init (#5734)
After citation-style-language/styles#7928 renamed Vancouver styles to
NLM terminology, Zotero installations end up with both vancouver.csl
and nlm-citation-sequence.csl. To fix, on init, delete any installed style
whose ID appears in the renamed-styles mapping if the target style
also exists.

---------

Co-authored-by: Dan Stillman <dstillman@zotero.org>
2026-01-26 10:35:43 -05:00
Martynas Bagdonas
69002c122d Add string for "Black" reader theme 2026-01-26 17:06:48 +02:00
Martynas Bagdonas
6c4fde54be Add string for image color inversion option in reader themes 2026-01-26 16:44:41 +02:00
Dan Stillman
2ffd6a893b Don't load annotations or tags for items individually at startup
Load tags and annotations before itemData, since `_loadItemData()`
calls `updateDisplayTitle()`, which needs creators, tags, and
annotations to be loaded for some item types.

This should fix slow startup times in Zotero 8 in libraries with many
(e.g., tens of thousands) of annotations.

The slowdown here was introduced by #3416 loading annotations in the
`catch`, but it was already incorrect for tags to be loaded that way at
startup. Creators were loaded before itemData, but tags weren't.

The `catch` might not be necessary at all now that the loading order for
`loadAllData()` is fixed, but we'll need to test further to confirm
that.

Fixes #5724
2026-01-25 11:15:30 -05:00
Mark
b1b0d45353
Update Russian translation for reader.ftl (#5728) 2026-01-24 09:34:37 -05:00
Mark
3424ab511b
Update Russian translation for note-editor.ftl (#5727) 2026-01-24 09:34:33 -05:00
Mark
3c6c90a2a1
Update Russian translation for integration.ftl (#5726) 2026-01-24 09:34:27 -05:00
Mark
c21d8983de
Update Russian translation for zotero.ftl (#5725) 2026-01-24 09:34:21 -05:00
Dan Stillman
fef2178450 Don't load unnecessary item types for updateDisplayTitle() fallback
We don't need to try to load annotations for regular items or creators
or tags for annotations.

Every annotation item's annotation is still loaded independently, but we
can try to fix that separately. For now, just don't try to load data
that will never exist.

Addresses #5724
2026-01-23 13:07:57 -05:00
Dan Stillman
d53d760cb6 Remove obsolete call to updatePostUpgradeBanner() 2026-01-23 12:53:02 -05:00
Dan Stillman
aab4a08267 Revert disabled="disabled" to disabled="true" after #5719 2026-01-23 11:25:28 -05:00
Northword
dfca2f5862
Fix color of OK button in MS Word DocPrefs (#5719)
https://forums.zotero.org/discussion/129173/zotero-8-accent-color-of-the-ok-button-in-the-document-preferences-pane-of-ms-word-addins
2026-01-23 11:19:33 -05:00
Gemini
404667f6a9 Fix double-encoding of special characters in DOIs in word processor integrations
Disable wrap_url_and_doi for citeproc instances used in word processor
integrations to prevent brackets and other special characters in DOIs
from being double-encoded.

Fixes #5557
2026-01-23 12:58:17 +02:00
Abe Jellinek
bd89c00d37
About window: Always pass centerscreen, and pass dialog=yes on macOS (#5718) 2026-01-22 15:52:39 -05:00