From ffab52f17e19cabfa67d1f181e008996dbf3dd5b Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 23 Mar 2017 12:04:07 -0700 Subject: [PATCH] Restrict Differential buckets to just ApplicationSearch views Summary: Ref T9363, If we're in a dashboard panel, only show buckets with data, or a fallback if nothing exists. Test Plan: Test 'active revisions' panel in a dashboard and in Differential. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T9363 Differential Revision: https://secure.phabricator.com/D17544 --- .../query/DifferentialRevisionSearchEngine.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/applications/differential/query/DifferentialRevisionSearchEngine.php b/src/applications/differential/query/DifferentialRevisionSearchEngine.php index a925878bda..4248119cb9 100644 --- a/src/applications/differential/query/DifferentialRevisionSearchEngine.php +++ b/src/applications/differential/query/DifferentialRevisionSearchEngine.php @@ -162,10 +162,13 @@ final class DifferentialRevisionSearchEngine $groups = $bucket->newResultGroups($query, $revisions); foreach ($groups as $group) { - $views[] = id(clone $template) - ->setHeader($group->getName()) - ->setNoDataString($group->getNoDataString()) - ->setRevisions($group->getObjects()); + // Don't show groups in Dashboard Panels + if ($group->getObjects() || !$this->isPanelContext()) { + $views[] = id(clone $template) + ->setHeader($group->getName()) + ->setNoDataString($group->getNoDataString()) + ->setRevisions($group->getObjects()); + } } } catch (Exception $ex) { $this->addError($ex->getMessage()); @@ -176,6 +179,12 @@ final class DifferentialRevisionSearchEngine ->setHandles(array()); } + if (!$views) { + $views[] = id(new DifferentialRevisionListView()) + ->setUser($viewer) + ->setNoDataString(pht('No revisions found.')); + } + $phids = array_mergev(mpull($views, 'getRequiredHandlePHIDs')); if ($phids) { $handles = id(new PhabricatorHandleQuery())