Fix loading commits in the New Review Request page on tall monitors.

Review Request #11673 — Created June 24, 2021 and submitted

Information

Review Board
release-4.0.x

Reviewers

The New Review Request page's commit list loads an initial page of
commits and then only loads new pages of commits when scrolling to the
end of the list. However, if the window is tall enough, that initial
list of commits won't be enough to trigger a scrollbar, preventing any
more commits from loading.

We now progressively load pages of commits until we know we've filled up
the visible list and triggered a scrollbar. The logic is the same as the
one we used for determining when to load a new page of commits when
scrolling, but is now called on initial page load and can repeatedly
call itself until the visible list is full.

As part of this, RB.RepositoryCommits.fetchNext() now takes options
for notifying on success or error, which is used by
RB.CommitsListView both for the progressive loading and for error
reporting if progressive loading fails (which we didn't notify about
before).

Unit tests passed.

Tested by shrinking the font to an ultra-tiny size with a full-screen
window. Without the patch, the commits wouldn't fill up the available
space, and I had no way of loading new commits. After the patch, the
commits filled up the entire available width, and I could scroll to
load more.

Summary ID
Fix loading commits in the New Review Request page on tall monitors.
The New Review Request page's commit list loads an initial page of commits and then only loads new pages of commits when scrolling to the end of the list. However, if the window is tall enough, that initial list of commits won't be enough to trigger a scrollbar, preventing any more commits from loading. We now progressively load pages of commits until we know we've filled up the visible list and triggered a scrollbar. The logic is the same as the one we used for determining when to load a new page of commits when scrolling, but is now called on initial page load and can repeatedly call itself until the visible list is full. As part of this, `RB.RepositoryCommits.fetchNext()` now takes options for notifying on success or error, which is used by `RB.CommitsListView` both for the progressive loading and for error reporting if progressive loading fails (which we didn't notify about before).
8d5a14f3ec34b6f61ed6377f20c3fae77512b11c
Description From Last Updated

, optional

daviddavid
david
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.0.x (646058c)