Some pages seemingly never become "complete". "interactive" (which we
already use in TranslationChild) is equivalent to DOMContentLoaded, and
that's enough for everything PageDataChild needs to do right now.
This should make Scaffold test runs more reliable. TranslatorTester uses
{ requireSuccessfulStatus: true }, which calls the PageData actor, and
that was occasionally flaking and causing the test to time out.
Fixes#4869
- shift-tab from a note row focuses section header's twisty
- tab from reader into context pane will focus search
field. Previously focused note row will be focused on tab
from a section header's twisty
- fix focus not leaving context notes pane if all
sections are collapsed
- shift-tab from sidenav will focus the last node
in the contextPane, instead of search input. That is to
have consistent tab order in each direction.
Fixes: #4858
If a child item is restored from the trash and its parent row
exists and is open, collapse the parent row and expand it
to re-render child items.
Fixes: #4791
- remember the last focused note-row in the contextPane
and, if possible, refocus it on shift-tab from sidenav, on
tab from the reader into notes pane, or on tab into the
notes list from the collapsible-section. Otherwise, focus the search input.
Per: https://github.com/zotero/zotero/pull/4837#issuecomment-2478108186
- when a note is opened in the context pane, let shift-tab
from sidenav place focus on the links-box. That way,
it is not skipped during tab navigation.
- fix focus not entering note-editor on Tab from the "Go back"
button and instead wrapping around to the current tab
For APIs that have lifecycle control, e.g. item
pane section, the `update` is passed in the init
hook.
For APIs without lifecycle, we can't pass a value.
Instead, we provide a method to refresh in the API
instance.
- fix the issue of focus not landing on search field of the notes
pane when it is opened on tab from the reader
- shift-tab from the sidenav when notes pane is opened will focus
the search input as well, instead of the last focusable
node in the pane
- tab from a note-row in the list of notes will focus the sidenav
- shift-tab from a note-row will focus the header of the collapsible-section
of the row
Per https://github.com/zotero/zotero/pull/4235#issuecomment-2472397642
Fix the glitch where having anyField search condition
along with any other condition would return an empty
result set if joinMode="any".
This would happen due to a conflict between conditions
caused by wrapping "anyField" condition set into a quickSearch
block, which enforces "AND" operator between conditions.
Fixes: #4830
This may help with the issue of locator popup sometimes
not being properly rendered.
Also, it allows the popup to have a proper width on
windows when "Always show scrollbar" setting is on.
Addresses: #4814
Addresses: #4805
And:
- Rework a few ZP functions to take items arrays instead of always
acting on selected items
- Move string to Fluent
- Build entire Add to Collection menu programmatically
- Section buttons, Locate, and Notes in the sidenav are focusable
- itemPane section buttons are combined into one focusable
group. Those buttons by themselves don't mean anything in
the context of keyboard navigation as they just scroll
to the section in the itemPane. In fact, having info,
abstract, attachments, etc. focusable and announceable by
screen readers is just confusing. However, we do want the group
of those buttons to be focusable to switch back to
zotero-context-pane-item-deck from zotero-context-pane-notes-deck
if the notes button in the sidenav is pressed.
- sidenav can be reached by tabbing into it from the end of itemPane
or via shift-tab from the focused tab
- sidenav buttons can be navigated with up/down arrows
- notes list in the context pane can be activated via the button in the
sidenav and navigated via up/down arrows
- use command vs onclick listener for notes list context menus to work
with keyboard-triggered clicks as well
- focus itemPane when tabs are switched in sidenav
Do not try to re-select a previously selected item
if it was filtered out from itemTree, e.g. after
it was removed from currently selected collection.
Otherwise, quick search gets cleared in an attempt to
re-select the item.
Fixes: #4616
Unify plugin API classes
Add info box custom row API tests
Refactor itemBox.js create element
Wrap hooks in API for safe call
Add test for item tree api and hook error handling
Remove try/catch from #4816
Move plugin API definitions to xpcom/pluginAPI