Commit graph

12158 commits

Author SHA1 Message Date
Dan Stillman
bf59a1e2f8 Revert "Fix relations to erased items reappearing after sync (#5486)"
I think this might cause problems and needs to be tested further.

This reverts commit 07066fd8c1.
2025-08-15 02:09:18 -04:00
abaevbog
07066fd8c1
Fix relations to erased items reappearing after sync (#5486)
Fix ghost relations to erased items reappearing after
sync. The dataserver ensures that related relations are
bidirectional. If a related item is erased, syncing
would first upload the update to the remaining related item
(where the relation is removed), followed by the deletions.
While handling update upload, the dataserver would return
the old, should-be-removed, "dc:relation" entry for that item
because it does not know that the other item is erased.

To handle this, swap the order of operations during sync:
upload deletion first and then upload updates after.
Then, when the dataserver handles the update of the non-erased item,
there is no related item to enforce bidirectional relations to.

Fixes: #5481
2025-08-15 02:00:43 -04:00
abaevbog
8b0f8d7c20
avoid relation to self after merging related items (#5488)
When copying over relations during merge of items
that are related to one another, avoid relating the
chosen main item to itself.

Fixes: #5487
2025-08-15 01:40:01 -04:00
windingwind
20f738ba0d
Remove timeline related code (#5484) 2025-08-15 01:30:42 -04:00
Abe Jellinek
86f9dd7400
Handle invalid path when launching/revealing on macOS (#5485) 2025-08-15 01:29:05 -04:00
Abe Jellinek
a993ac74f1
Ensure read-only fields don't save on blur (#5468)
Fixes tabbing out of Scaffold's abstract box causing the test item to be
added to the user's library.

And use same format as itemPaneHeader.js in abstractBox.js.
2025-08-13 23:59:26 -04:00
abaevbog
f3227275b1
filter out trashed items in relatedBox (#5482)
If the item itself is trashed, all related items are displayed
(trashed or not).

Fixes: #1780
2025-08-13 23:56:40 -04:00
Abe Jellinek
3e17928547 Fix hiddenDOMWindow comment 2025-08-08 09:54:07 -06:00
Dan Stillman
96dd7b16ac Better method of unsetting and restoring Mozilla environment variables
Hopefully a better fix for #4981, which wasn't working properly on at
least some Linux systems because the variables were getting restored
before the subprocess launched. This delays a (debounced) second, to
give the subprocess time to start, and then automatically restores the
variables.

An explicit restart via app code also immediately restores the
variables, since restarts on Linux inherent the environment and don't
use our startup script. (An upgrade restart could still happen when the
variables were cleared, but you'd have to be extremely unlucky --
launching URLs or files while also performing a manual restart the same
second.)
2025-08-08 02:57:47 -04:00
Adomas Ven
06ef9ab657
Fix linux form element styling (#5467)
Closes #5435
2025-08-07 02:16:16 -04:00
Dan Stillman
24a249353c "Caching" → "Cached" in CSL.Engine cache debug line to clarify timing 2025-08-07 01:11:01 -04:00
Dan Stillman
970675a2ac Update citeproc.js to include Juris-M/citeproc-js#256 2025-08-07 01:10:10 -04:00
Dan Stillman
c72a8a1424 Update citeproc.js to latest build
Includes Juris-M/citeproc-js#253 and Juris-M/citeproc-js#254
2025-08-07 00:59:48 -04:00
Abe Jellinek
d514786239 Clear _blockingObserver field when it was never initialized
Follow-up to cc3fc42b0a
2025-08-05 11:18:19 -04:00
Abe Jellinek
cc3fc42b0a Catch BlockingObserver error when reader is closed immediately
https://forums.zotero.org/discussion/125841/cannot-open-a-pdf-file-in-a-new-tab
2025-08-05 11:17:03 -04:00
Adomas Venčkauskas
2c7475a5e6 Fix Google Docs integration breaking when cancelling edit bibliograpy
I've run into this randomly. It only occurs if the first operation on a
Google Doc since Zotero restart is the edit bibliography dialog which
you cancel. Due to how the HTTP integration client is implemented, the
missing await causes it to try to send another response to the Connector
(which is no longer waiting on the /response endpoint), failing and
causing a forever pending promise, which makes subsequent attempts to
interact with the Google Docs plugin no-op.

We get occassional reports from users about Google Docs getting stuck
that is fixed by Zotero restart, so hopefully this will reduce those.
2025-08-05 09:55:09 +03:00
Martynas Bagdonas
e644df74fe Remove tab characters from FTL files to avoid parsing issues
Fixes #5447
2025-08-04 15:02:51 +03:00
Tom Najdek
8355a95407
Warn users running non-ARM version on ARM CPU on Linux (#5461) 2025-08-02 09:59:48 -04:00
Abe Jellinek
f8a1a2c6ed
Don't merge into a missing snapshot attachment (#5459) 2025-08-02 01:53:47 -04:00
abaevbog
487677958e
fix subcollection not being copied to library root (#5464)
Fixes: #5463
2025-08-02 01:50:54 -04:00
Abe Jellinek
68ffe9583c Clean up JSDoc comments and unused field (#5443) 2025-08-02 01:49:39 -04:00
Abe Jellinek
fd6c52ede4 Find Full Text: Simulate ProQuest redirect back to original page (#5443)
We don't follow JS redirects, so this is necessary in order for
us to get to a translatable page after authentication.
2025-08-02 01:49:39 -04:00
Abe Jellinek
91732419b6 Attach CookieSandbox to Find Full Text requests and translation (#5443)
With a 24-hour validity per site (eTLD+1).
2025-08-02 01:49:39 -04:00
abaevbog
2a60011414
fx140: fix cutoff progressWindow on linux (#5462)
Resize the window to fit content on load after the
header is rendered. If the window is resized on
DOMContentLoaded, nothing is rendered yet and the
window will look cutoff on Linux.

Addresses #5453
2025-08-02 01:41:39 -04:00
Abe Jellinek
74926fcc2e Fix menubar menu not opening after submenu item is selected
On Windows and (I'm assuming) Linux. Regression in c3f8ba8.

Fixes #5456
2025-08-01 12:12:36 -04:00
Dan Stillman
19a848484a Don't split tags at em dashes on paste in item tags box
https://github.com/zotero/zotero/pull/5366#discussion_r2245628458
2025-07-31 11:25:57 -04:00
Tom Najdek
efadc21cdc
Update a call to a deprecated function in Mendeley import 2025-07-31 16:04:06 +02:00
Tom Najdek
a5cdd8d5aa
Fix context menu closes on every third right-click. Resolve #5427 2025-07-31 13:03:01 +02:00
abaevbog
95e4a34476 fx140: fix separators on linux (#5432)
- fix transparent gap between tag selector and separator
- remove double border below separator of context pane in
stacked mode

Fixes: #5430
2025-07-30 22:31:12 -04:00
Dan Stillman
7f684ce130 Remove unused argument (previously to Zotero.Promise.map()) 2025-07-30 22:31:12 -04:00
Dan Stillman
87971248c5 Replace Bluebird's .spread() in integration code 2025-07-30 22:31:11 -04:00
Dan Stillman
922af23c63 fx140: Fix Mendeley Importer import 2025-07-30 22:31:11 -04:00
Dan Stillman
57fd2162d1 fx140: Fix NetUtil import 2025-07-30 22:31:11 -04:00
abaevbog
747a3f7a9f fx140: remove sliding animation from panels (#5423) 2025-07-30 22:31:10 -04:00
Dan Stillman
4a5689e9b6 Restore rejection of last feed item when FeedReader terminates
Without this, the "should reject if the provided url is not a valid
feed" test fails

Follow-up to #5412
2025-07-30 22:31:10 -04:00
Abe Jellinek
c1270e635e Overhaul testing in Scaffold (#5301) 2025-07-30 22:31:10 -04:00
abaevbog
2e135d035f Fx140: do not use bluebird methods in citation dialog (#5416)
Instead, decide if the search should be skipped after
the delay based on the timestamps.

Fixes: #5414
2025-07-30 22:31:10 -04:00
Dan Stillman
0a33eeb0c0 Update translate submodule 2025-07-30 22:31:10 -04:00
Dan Stillman
4c51883b97 Restore Zotero.Promise.method() on ItemGetter#setAll()
Required for noWait translation
2025-07-30 22:31:09 -04:00
Dan Stillman
d797c7a4d8 BluebirdShimPromise: Add value() and fix isResolved() semantics
- value() is used in noWait export translation

- isResolved() technically means fulfilled or rejected -- unclear if we
  ever depended on that, but it might as well be correct
2025-07-30 22:31:09 -04:00
Abe Jellinek
a53e474f9c Make filterStack() a no-op 2025-07-30 22:31:09 -04:00
Dan Stillman
5c172e3be9 ConcurrentCaller: Reject queued promises when stopping queue
Previously, we simply cleared the queue, leaving any pending promises
unresolved, and we checked for isResolved()/isPending() in
storageEngine.js (and maybe other places). storageEngine.js was changed
to simply await those promises, but that results in a hang if the queue
is stopped, since the promises were never resolved. Instead, when
stopping the queue, reject queued promises with a CanceledException and
ignore those promises in storageEngine.js.
2025-07-30 22:31:08 -04:00
Abe Jellinek
7e706354f9 Don't try to reject last feed item when FeedReader terminates
As the comment says, this hasn't been useful (and isn't used anywhere),
and I honestly don't understand how the test ever passed - process()
would've resolved all the feed item promises already.

Fixes #5412
2025-07-30 22:31:08 -04:00
Abe Jellinek
c8aff336b3 Migrate Bluebird methods in Zotero.Utilities.Internal.saveDocument()
Fixes #5415
2025-07-30 22:31:08 -04:00
Dan Stillman
26ffaf0ad3 Update translate module
Fixes test failure in fx140
2025-07-30 22:31:08 -04:00
Dan Stillman
26b6c70b96 Fix Libraries test after Bluebird removal 2025-07-30 22:31:07 -04:00
Dan Stillman
dc80fb2d50 fx140: nsIStringInputStream#setData() → setByteStringData() 2025-07-30 22:31:07 -04:00
Dan Stillman
c4cfee1807 fx140: Fix additional mendeleyImport.mjs imports 2025-07-30 22:30:58 -04:00
Dan Stillman
b7c2002b63 Fix another Bluebird removal bug
Use of `Promise.map()`
2025-07-30 22:30:58 -04:00
Dan Stillman
e07ac6243c Fix bug from Bluebird removal
Bluebird had a `Promise.filter` method

Fixes failing data directory tests
2025-07-30 22:30:58 -04:00