Commit graph

14540 commits

Author SHA1 Message Date
Dan Stillman
4866c467dc Update reader submodule 2024-07-01 04:37:29 -04:00
Dan Stillman
ecd6c66750 Additional logging when changing linked attachment base directory 2024-07-01 03:56:29 -04:00
Dan Stillman
d73a6f8a11 Fix PathUtils.joinRelatve() error when changing LABD on Windows
We store relative paths with forward slashes, but PathUtils requires
platform-specific slashes, so it was failing with
NS_ERROR_FILE_UNRECOGNIZED_PATH.

https://forums.zotero.org/discussion/115552/zotero-7-path-problem
2024-07-01 03:56:10 -04:00
Abe Jellinek
3df1a9b812 Code style fixes 2024-07-01 03:32:14 -04:00
Abe Jellinek
d8eae4cd3b Enable Undo Retrieve Metadata when translator added note (#4267)
Closes #2977
2024-07-01 03:31:45 -04:00
abaevbog
a054831a3a
Prevent focus from being lost in itemBox (#4287)
- always render options and link buttons - just do
not display them if their respective field is empty.
That allows us to easily handle focus after refresh
because otherwise, the node may does not exist.
If we try to restore focus to such hidden component,
simulate a "tab" from it to focus the next possible node.
This fixes the issue of focus being lost on tab after all
content of editable-text is cleared.
- add tabindex=0 to itemType menulist, otherwise it was
not perceived as a candidate to return focus to.
- somewhat special treatment for restoring focus to
creator rows. If the desired node is not found, we'll
try to focus the respective node in the last creator row.
It prevents focus from being lost on tab after clearing
the very last creator.

Fixes: #4241
2024-07-01 03:01:33 -04:00
abaevbog
7dc68209a5
fix to unwanted empty creator row in itemBox (#4275)
this._addCreatorRow needs to be properly initialized to
false (as opposed to being undefined) because 'false'
is the value we check against to decide if an empty
row should be added and focused after rendering.

Fixes: #4268
2024-07-01 02:24:01 -04:00
Dan Stillman
29fa2f7073 LABD: Add test for ignoring a file that already exists under new path 2024-07-01 01:48:22 -04:00
Dan Stillman
cc3bdb59c1 Add an index on itemData.valueID
Hopefully this will drastically speed up purging after people delete
huge numbers of items.

https://forums.zotero.org/discussion/comment/466885/#Comment_466885
2024-07-01 01:48:22 -04:00
Dan Stillman
16ae145d6c Don't purge data tables before syncing
This was copied over from classic syncing, and while I noted in
1100015d2c that it wasn't necessary before syncing anymore, I didn't
remove this call.
2024-07-01 01:48:22 -04:00
windingwind
c270069639
Redesign Document Preferences and Create Bibliography dialogs (#4265) 2024-07-01 00:24:35 -04:00
abaevbog
2dfb243924
Show correct context menu and itemPane header for collections in trash (#4297)
- only have enabled "Permanently delete" and "Restore to library"
options in the context menu for collections and searches in the trash
- display the custom header with buttons to delete or restore
in the itemPane when a collection or search in the trash is selected

Fixes: #4295
2024-06-28 16:42:45 -04:00
Dan Stillman
df8a4799e1 Use numbered variables in another new string
https://forums.zotero.org/discussion/115566/new-strings-with-multiple-variables-on-transifex
2024-06-28 16:28:59 -04:00
Dan Stillman
78507161df Use numbered placeholders in localized string
https://forums.zotero.org/discussion/115566/new-strings-with-multiple-variables-on-transifex
2024-06-28 16:22:41 -04:00
Tom Najdek
c7d816783b
Fix issues in filename renaming preferences pane. Fix #4291
* Fix template and preview overflowing container
* Fix extra whitespace around "documentation" link
* Increase minimal height of the template input field
2024-06-28 14:55:21 +02:00
Dan Stillman
6942506eba Rework object type checking in items list
a532cfb475 added `isCollection()`, `isSearch()`, and `isItem()` methods
to data objects to handle collections and searches in the trash, with
`isItem()` checking whether `._ObjectType` was `Item`. That left out
feed items (`._ObjectType` == `FeedItem`), and when c384fef867 made
`getSelectedItems()` return only items, it used `isItem()`, so feed
items were excluded, which broke feed-item toggling between read and
unread [1] and possibly some other things.

The simple fix would be to make `isItem` match feed items as well (which
could potentially fix other bugs related to feed items), but there was
actually no need to add new methods (which can get confused with
`CollectionTreeRow` methods) when we can just check the object type with
`obj instanceof Zotero.Item`, which gets the benefit of inheritance and
matches `Zotero.FeedItem` instances as well.

[1] https://forums.zotero.org/discussion/115571/cannot-change-the-status-of-title-in-subscribtion
2024-06-28 02:09:49 -04:00
Abe Jellinek
20e9f20580 Update reader submodule 2024-06-27 13:35:16 -04:00
Abe Jellinek
5a6b1a9f76
Add hyphenation and text appearance options for EPUBs (#4256)
And remove duplicate string
2024-06-27 06:02:47 -04:00
Dan Stillman
7f372fdd42 Add recursiveCollections test for items in deleted subcollections
Addresses #4271
2024-06-27 05:10:59 -04:00
Adomas Venčkauskas
87f7a6a7bd Integration: Don't activate document after clicking Manage Styles in Doc Prefs
Closes #4290
2024-06-27 10:09:23 +03:00
Dan Stillman
d5bb667fb3 Merge new English strings 2024-06-27 02:34:24 -04:00
abaevbog
f6b47987e9
fix tab duplication breakage (#4286)
Fix to breakage after 3f45def that would not open a duplicate
tab but instead create another reader instance in the same tab.
Instead of finding a tab for a specific item, use tabID that
is passed when reader should be loaded in an unloaded tab. That
allows us to know if the tab is being duplicated or not.

Fixes: #4272
2024-06-27 01:19:25 -04:00
Abe Jellinek
4eb4741795 Prevent pinning Notes button in reader sidenav
Sidenav button pane IDs usually correspond to sections with the same
IDs, but `context-notes` actually corresponds to two sections
(`context-all-notes` and `context-item-notes`). We were preventing
those sections from being pinned, but not the button that reveals them.

Fixes #4283
2024-06-26 11:17:17 -04:00
Abe Jellinek
10b248d68d Update reader submodule 2024-06-26 10:49:07 -04:00
Abe Jellinek
c52ca2ee32
EPUB / Snapshot: Support printing (#4279) 2024-06-26 10:48:36 -04:00
Dan Stillman
a2dc0f7e37 Sort related items by title
Closes #4281
2024-06-26 01:02:07 -04:00
Martynas Bagdonas
ce0b364571 Update reader submodule 2024-06-25 17:26:49 +03:00
Abe Jellinek
0861710245 Style Editor: Indent with 2 spaces
Closes #4269
2024-06-24 11:14:39 -04:00
Dan Stillman
38b0b3a69a Fix bug in #_setHighlightedRowsCallback() test 2024-06-24 04:42:59 -04:00
Dan Stillman
4ca92adb89 Tests: Use select() instead of selectCollection()/selectSearch() 2024-06-24 04:40:12 -04:00
Dan Stillman
ca5ea08e2b Fix failing test from 173f4c491e 2024-06-24 03:01:57 -04:00
Dan Stillman
cd43e95b85 Fix build failure from 42d4064bac 2024-06-24 02:53:48 -04:00
Dan Stillman
9c519948bc Add missing async to CollectionTree::selectSearch() 2024-06-24 02:45:20 -04:00
Dan Stillman
a9c5c1bfa5 Tests: Remove some unnecessary waitForItemsLoad() calls 2024-06-24 02:45:20 -04:00
Dan Stillman
621435be68 Tests: Rework collection/search-in-trash tests
- Update for auto-`skipSelect` on collections and searches
- Remove interdependencies that prevented independent runs
- Remove unnecessary manual object names
- Remove unnecessary delay
- Switch to new convenience selection functions
- Switch to customary object naming
2024-06-24 02:45:20 -04:00
Dan Stillman
173f4c491e Tests: Don't auto-select collections and searches after creation
This changes `createDataObject()` to pass `skipSelect: true` for objects
other than items. If a test is creating a bunch of collections, there's
no reason for each one to be selected and for an items list to start to
load. If a test does need a new collection or search to be selected, it
can call the new convenience function `await select(win, obj)`, which
will select the passed object in the collection tree and wait for its
items list to load. I'm hoping this reduces random test failures due to
items list churn.
2024-06-24 02:45:20 -04:00
Dan Stillman
09aad7b075 Tests: Make some ZoteroPane tests more reliable 2024-06-24 02:45:20 -04:00
Dan Stillman
6dfd8965f1 Fix hanging tests after c384fef867 2024-06-24 02:45:20 -04:00
Dan Stillman
aaac18ced6 Tests: Add convenience function to pause execution without timing out
`await pause(this)` can be used to disable the test timeout and pause
execution so the UI state can be manually inspected
2024-06-24 02:45:20 -04:00
Dan Stillman
42d4064bac Tests: Add additional convenience functions for object selection
Objects can now be selected in the UI with just `await select(win, obj)`
2024-06-24 02:45:19 -04:00
Dan Stillman
6757c586ea Update package-lock.json with newer caniuse 2024-06-23 05:10:03 -04:00
Dan Stillman
764e75a39a Fix typo in test title 2024-06-23 05:09:32 -04:00
Dan Stillman
c61892e4b6 Fix Collections.getCollectionsContainingItems() when no ids are passed
Previously it would return all collections
2024-06-23 05:09:31 -04:00
Dan Stillman
c384fef867 Add getSelectedObjects() and limit getSelectedItems() to items
This adds an explicit function on ZoteroPane and the item tree for
getting objects -- including collections and searches in the trash --
and limits `getSelectedItems()` to returning actual items from the
selection. We shim various item properties on the collections and
searches in the trash, but code that's getting the selection should be
explicit about what it wants. Outside of the trash, they're equivalent,
except `getSelectedObjects()` does have an `asIDs` mode.

This switches to using getSelectedObjects() in various places and fixes
collections in the trash appearing as belonging to My Publications when
using the collections-containing-an-item highlight [1].

This also adds support for highlighting the parent collections of
collections in the trash.

[1] https://forums.zotero.org/discussion/115449/zotero-7-beta-deleted-collection-appears-as-belonging-to-my-publications
2024-06-23 05:09:31 -04:00
Dan Stillman
a612c1227e Fix collections in trash showing up in menus
New Collection menu and Add to Collection menu

https://forums.zotero.org/discussion/115447/zotero-7-beta-deleted-collections-still-appear-in-the-ui
2024-06-22 16:33:11 -04:00
Tom Najdek
b9f0d26cee
Improve ftl localization scripts 2024-06-21 15:40:10 +02:00
abaevbog
3c6625f3cf
Tweaks to itembox unsaved creator row (#4178)
- Remove unsaved creator row on blur or escape
- Rename "unsavedRow" for "position" as we want to be able to find
the relative position of creators after the next refresh not only
for unsaved rows. In many cases "unsavedRow" as returned by getCreatorFields
is the actual index of the creator row.
- Calculate and use "position" in getCreatorFields for all creator rows, not
only unsaved one, when a new row is being added.
This fixed a bug where wrong row gets focused if an unsaved creator row is
added, some text is typed and then another creator row below this unsaved row is clicked.
- fixed a bug where autocomplete options would not be updated after creator mode
is switched for the default empty row (if there are no creators)
- simplified paste handler of creators to use modifyCreator that
also shifts creators if a creator is unsaved. Fixed bug brought up in
https://github.com/zotero/zotero/pull/4165#issue-2313280474 where
pasting creators does not always focus the last added creator.
- Fixed another bug brought up in https://github.com/zotero/zotero/pull/4165#issue-2313280474
where shift-enter from creator before "_ more creators" label
will add a new row in the end instead of focusing the next creator.
- Fixed bug where adding a row right before "_ more creators" label
and blurring it will remove all creators after it. Now, clicking +
on a creator right before the "_ more creators" label will display
all creators and add a row after it.
- Fixed a bug where if "_ more creators" is present, editing
a creator name and pressing shift-enter would loose focus
instead of adding and focusing a new row in the end.
- Fixed a bug where focus got lost from some buttons

Fixes #4143
Fixes #4241
2024-06-21 01:28:28 -04:00
Dan Stillman
b78938e773 Update reader submodule 2024-06-21 01:09:51 -04:00
Dan Stillman
6b5b47a83a Sidenav: Only show context menu with "Pin Section" on section buttons
Don't show on Locate menu button

Addresses #4253
2024-06-21 01:02:22 -04:00
abaevbog
bb3d9ccf8f
vpat 46: more aria for preferences inputs (#4264)
- linked color scheme radio buttons to their label. Using
aria-describedby on individual radio buttons instead of
linking color scheme label to radiogroup because voiceover
does not announce the label in that case.
- linked item pane header dropdown to its label
- linked markdown and richtext note format checkboxes to their labels.
- added aria description to linked attachments base directory
so the input and "choose" button
- linked virtualized tables to their labels

Data directory location setting needs some more labeling as well
but it's mechanics should be generally reworked per vpat 50.
2024-06-20 23:34:23 -04:00