1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 18:22:41 +01:00

Fix rendering of offset-paged query panels including "Notifications"

Summary:
See <https://discourse.phabricator-community.org/t/call-to-undefined-method-phuipagerview-gethasmoreresults-in-2019-week-13/2586/>.

A small number of queries (including "Notifications" and (global) "Search") use offset-based pagers which have a slightly different API `PHUIPagerView` instead of `AphrontCursorPagerView`. This leads to a fatal in the new code for the "View All Results" buttons.

To fix this, just do an `instanceof` test. Some day we can unify the pagers.

Test Plan: Added a notifications panel, rendered it, saw it work instead of fataling on "getHasMoreResults()". Also rendered some normal panels.

Reviewers: amckinley

Reviewed By: amckinley

Differential Revision: https://secure.phabricator.com/D20366
This commit is contained in:
epriestley 2019-04-02 05:40:28 -07:00
parent 248d79f36d
commit e45ccdd892

View file

@ -136,7 +136,16 @@ final class PhabricatorDashboardQueryPanelType
$results_view->setContent($content); $results_view->setContent($content);
} }
if ($pager->getHasMoreResults()) { // TODO: A small number of queries, including "Notifications" and "Search",
// use an offset pager which has a slightly different API. Some day, we
// should unify these.
if ($pager instanceof PHUIPagerView) {
$has_more = $pager->getHasMorePages();
} else {
$has_more = $pager->getHasMoreResults();
}
if ($has_more) {
$item_list = $results_view->getObjectList(); $item_list = $results_view->getObjectList();
$more_href = $engine->getQueryResultsPageURI($key); $more_href = $engine->getQueryResultsPageURI($key);