Commit graph

15804 commits

Author SHA1 Message Date
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
Dan Stillman
c67e35c5ae Add Liquid Glass icon for macOS Tahoe
And preserve icon for previous macOS versions using
https://github.com/vslavik/TahoeIconsTests
2025-09-11 04:42:01 -04:00
Dan Stillman
eaf3f0c5df Use temporary download URL for Firefox 140.3.0esr candidate build
So we can address #5424 before the ESR is released on 9/16
2025-09-10 23:32:31 -04:00
Dan Stillman
cd8ae9308d Update Mac build to Firefox 140.3.0esr
Fixes #5424
2025-09-10 23:32:12 -04:00
abaevbog
8f5471d96b
fix zoteroSearch missing attachment conditions (#5538)
Fix regression after 4d803fe2cd
which caused the operator for condition to never get set.

Fixes: #5537
2025-09-09 22:19:28 -04:00
Bogdan Abaev
b3223dd94b Prefs: Small redesign of Cite → Style Manager table (#5518)
- Remove the delete button below the style table
- Make selected rows stand out less. They will only have an outline,
  like focused rows. This should remove the impression that this is the
  table where one selects the style for citations.
- Add minus icon buttons to each row to delete the style without having
  to select the row. The icon of the selected row is focusable, so it
  can be tabbed onto.
- improve labels and appearance of buttons to add a new style
- move "Reset Styles…" to "Cite" section and rename to "Restore Default
  Styles…"
2025-09-05 02:04:52 -04:00
Bogdan Abaev
5a7444f424 virt table: don't propagate pageUp/Down on macOS (#5518)
Same as on all other platforms. That way, if the parent
container is scrollable, it will not scroll.
2025-09-05 02:04:40 -04:00
Bogdan Abaev
015769a9f8 fx140: allow pointer events on cells in virt table (#5518)
Revert change from 8e2790e2d2.
Post fx140, dragstart fires fine on rows that are not
yet selected. This allows us to remove the workaround that
limited pointer events to the rows of virtualized table (vs its cells).
With it, we no longer need most of the manual handling
of the tooltip in virtualized table - just adding title attribute is enough.
We also don't need to add extra mouse events handling on
clickable button columns as in citationDialog - we can use
proper :hover and :activate effects, as well as attach
click handler directly to the button.
2025-09-05 02:04:15 -04:00
Abe Jellinek
41055ce0a1 Scaffold: Rename file when label changes 2025-09-04 10:09:50 -07:00
abaevbog
4ae1ea1daf
citation dlg: Don't remove bubbles on Backspace on Windows/Linux (#5526)
On non-macOS platforms, Delete (not Backspace) on a table row
will remove all of this item's bubbles from the citation.
This is to be consistent with similar delete operation
handling in other tables.

On macOS, this is still done via Backspace as before.

Per https://github.com/zotero/zotero/pull/5518#discussion_r2310293170
2025-09-04 03:50:50 -04:00
abaevbog
25a881255e
citation dlg: fix non-english locators wrong order (#5527)
Sort the locators alphabetically by their label
after constructing the popup.

https://forums.zotero.org/discussion/comment/497495/#Comment_497495
2025-09-04 03:48:47 -04:00
Abe Jellinek
afc02141ce
Replace CSL validator with reproducible WASM build (#5525) 2025-08-29 00:40:41 -04:00
Tom Najdek
cd82ab7c59
Enable support for Unicode features in file renaming by default (#5521) 2025-08-28 11:21:47 -04:00
Dan Stillman
86b9d28451 File sync: Use filtered filename when renaming from multi-file ZIPs
Follow-up to bab0237727
2025-08-28 03:50:08 -04:00
Dan Stillman
b4dc00eca1 Remove debug line in Zotero.File.rename() 2025-08-28 03:10:49 -04:00
Dan Stillman
b857283ed6 Fix skipItemUpdate logic in Item#relinkAttachmentFile()
We were skipping updating of `clientDateModified` in order to prevent an
attachment item upload, but that hasn't been used since Zotero 4. This
might mean that, in some rare situations (e.g., a filename that needed to
be shortened due to filesystem path length?), people in read-only or
non-files-editable groups may have ended up triggering access errors and
needing to reset local data after a file download.

Now, we properly skip marking the attachment item as unsynced.
2025-08-28 03:10:48 -04:00
Dan Stillman
f5010ce764 Don't update file mod time to force sync upload when renaming
We've always done this, but it's no longer necessary:

- If a file exists locally when a remote filename change comes in, we
  now rename the local file.
- If a file doesn't exist locally and it's a single file, we save the
  file with the new filename on the next file download.
- If a file doesn't exist locally and it's an old multi-file snapshot,
  we now try to find the primary HTML file and rename it.
2025-08-28 03:10:46 -04:00
Dan Stillman
bab0237727 File sync: Rename single HTML file within multi-file ZIP to known name
If a file was renamed remotely and a new copy wasn't uploaded for some
reason, the ZIP wouldn't contain the new filename. We already renamed a
single file within the ZIP to match the new filename, but now we also
rename a single HTML file in old multi-file snapshot ZIPs. If there are
multiple HTML files for some reason (old-style ZIP with iframes?), we
let the user fix it.

And then we can stop reuploading files after renames.
2025-08-28 03:06:52 -04:00
Dan Stillman
33bd1327a0 Remove unnecessary file stat in Item#attachmentModificationTime 2025-08-28 03:06:52 -04:00
Dan Stillman
11d17c5803 Rename file on remote filename change during sync
Previously, the local file wasn't renamed, so it would become unlinked.
Since we currently force reuploading/reregistering of files when they're
renamed, opening the attachment would then redownload the modified
remote file, but there's no need for the file to become unlinked in the
first place.
2025-08-28 03:06:52 -04:00
Abe Jellinek
7abc35bc02
Notes context pane: Create context menus locally (#5508) 2025-08-27 00:41:21 -04:00
Abe Jellinek
e4e6b4189c
Keep Zotero in the User-Agent, add Firefox (#5500) 2025-08-27 00:40:08 -04:00
abaevbog
31e2e95452
itembox: restore unsaved input value after refresh (#5517)
If itemBox refresh happens when an input is focused and
has some unsaved changes, restore the value of the input
after the refresh.

Potential solution for:
https://forums.zotero.org/discussion/126273/bug-data-that-is-input-is-not-saved-and-needs-to-be-entered-again
2025-08-26 23:43:02 -04:00
Abe Jellinek
23567b0395
ESMify feed processing code (#5520) 2025-08-26 23:42:00 -04:00
Abe Jellinek
5c95c35743 Style installation: Don't prompt on validation error in silent mode 2025-08-26 00:44:14 -04:00
Abe Jellinek
08e4d6b06b Stop using restoreProcessorState() (#5516)
restoreProcessorState() breaks locale-specific punctuation (and is
deprecated).

rebuildProcessorState() is enough if we're passing an empty citation
list; if we're reinitializing with a new non-empty list, call
updateItems() first.

Also:

- Add tests for this issue and for potential regressions in disambiguation handling
2025-08-26 00:44:14 -04:00
Abe Jellinek
1a3ea508fe Preferences: Add getScope() function 2025-08-25 14:22:29 -04:00
Adomas Venčkauskas
b1dbe35102 Fix note type picker appearing for Google Docs
Report https://forums.zotero.org/discussion/126026/endnotes-option-showing-in-google-docs
2025-08-25 12:12:07 +03:00
windingwind
4d803fe2cd customElements: Lint 2025-08-23 12:15:40 +02:00
windingwind
7f1c59fde8 Fix attachmentBox reindexButton undefined 2025-08-23 11:54:35 +02:00
Dan Stillman
5c6400e21b Skip unnecessary SQL query if no attachments in Item#getBestAttachments()
This probably shouldn't be SQL at all, but while it is, skip it if not
necessary.
2025-08-22 03:38:02 -04:00
Dan Stillman
2216729721 Clarify variable name in Item#_updateAttachmentStates() 2025-08-22 03:38:02 -04:00
Abe Jellinek
ea3f14f195 HiddenBrowser: Lint 2025-08-21 12:22:25 -04:00
Abe Jellinek
ee42f44254 HiddenBrowser: Fix proxy setting all properties on browser
Missing return.
2025-08-21 12:19:46 -04:00
Abe Jellinek
74c8226323 HiddenBrowser: Remove leak timer
Always logged a warning, even though it doesn't seem like memory is
actually being leaked here.
2025-08-21 12:19:29 -04:00
Abe Jellinek
ba4949e822 Fix nukeSandbox error when closing settings
Fixes #5509
2025-08-21 11:35:41 -04:00
Bogdan Abaev
098be27375 citation dlg: fix row cutoff on linux after resize
When resizing the window in list mode to match the height
of the content, account for the difference between
outerHeight and innerHeight of the window on Linux.
outerHeight > innerHeight (perhaps Linux includes chrome,
borders, etc. in its outerHeight), so we have to add their difference
to the desired height for resizing. Otherwise, the visible
dialog ends up receiving only some of the desired height and
the last row is cut off.

Also, ensure that in tests, we wait for searching triggered by
switching dialog mode to finish before running the next search.

Fixes: zotero#5502
2025-08-21 11:50:10 +03:00
abaevbog
2f262c943c
Additional fixes to form element appearance on Linux (#5503)
Followup to 06ef9ab

Fix <html> based form elements, in citation dialog item popover.
Set slightly smaller default border width of buttons.
2025-08-21 11:48:53 +03:00
Abe Jellinek
4f1589132c
Add Relate Items to context menu (#5499) 2025-08-20 02:15:06 -04:00
windingwind
7f9418fe98
Implement custom menu API (#5028) 2025-08-20 02:10:35 -04:00
Abe Jellinek
8eb803292e Clear pane.persist in tests (#5495) 2025-08-20 02:00:31 -04:00
Abe Jellinek
d854058be6 Don't reopen collection/item pane on restart (#5495) 2025-08-20 02:00:31 -04:00
Abe Jellinek
d35bdd333b
Fix errors when multi-selection contains collections in trash (#5497)
By using getSelectedItems() instead of getSelectedObjects(). The code
below all assumes that `items` contains items, and we handle general
(item or collection) options above, so this seems more correct.

And fix duplicate var.
2025-08-20 01:23:47 -04:00
Dan Stillman
bdf49b9b00 Fix slow purging of creators
Same as e532e435f but for creators
2025-08-19 03:29:05 -04:00
Adomas Venčkauskas
72cc386207 Update LibreOffice submodule 2025-08-19 10:07:53 +03:00
Abe Jellinek
3a61e782ad Scaffold: Fix modern JS APIs missing from code completion 2025-08-18 13:17:03 -04:00
Dan Stillman
dfc869bd2d Update LibreOffice submodule 2025-08-16 11:08:31 -04:00
Dan Stillman
8df8182f01 Update LibreOffice submodule 2025-08-15 02:59:05 -04:00
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