diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,7 +7,7 @@ */ return array( 'names' => array( - 'core.pkg.css' => '4d47b0a9', + 'core.pkg.css' => 'fc670b30', 'core.pkg.js' => '47dc9ebb', 'darkconsole.pkg.js' => 'e7393ebb', 'differential.pkg.css' => '2de124c9', @@ -55,7 +55,7 @@ 'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4', 'rsrc/css/application/countdown/timer.css' => 'e7544472', 'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a', - 'rsrc/css/application/dashboard/dashboard.css' => 'eb458607', + 'rsrc/css/application/dashboard/dashboard.css' => '0ebe9bab', 'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a', 'rsrc/css/application/differential/add-comment.css' => 'c47f8c40', 'rsrc/css/application/differential/changeset-view.css' => 'b6b0d1bb', @@ -744,7 +744,7 @@ 'phabricator-content-source-view-css' => '4b8b05d4', 'phabricator-core-css' => 'a76cefc9', 'phabricator-countdown-css' => 'e7544472', - 'phabricator-dashboard-css' => 'eb458607', + 'phabricator-dashboard-css' => '0ebe9bab', 'phabricator-drag-and-drop-file-upload' => 'ad10aeac', 'phabricator-draggable-list' => 'a16ec1c6', 'phabricator-fatal-config-template-css' => '8e6c6fcd', diff --git a/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php b/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php --- a/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php +++ b/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php @@ -68,18 +68,20 @@ PhabricatorDashboardPanel $panel, PhabricatorDashboardPanelRenderingEngine $engine) { - $engine = $this->getSearchEngine($panel); + $search_engine = $this->getSearchEngine($panel); + + $search_engine->setViewer($viewer); - $engine->setViewer($viewer); - $engine->setContext(PhabricatorApplicationSearchEngine::CONTEXT_PANEL); + $context = PhabricatorApplicationSearchEngine::CONTEXT_PANEL; + $search_engine->setContext($context); $key = $panel->getProperty('key'); - if ($engine->isBuiltinQuery($key)) { - $saved = $engine->buildSavedQueryFromBuiltin($key); + if ($search_engine->isBuiltinQuery($key)) { + $saved = $search_engine->buildSavedQueryFromBuiltin($key); } else { $saved = id(new PhabricatorSavedQueryQuery()) ->setViewer($viewer) - ->withEngineClassNames(array(get_class($engine))) + ->withEngineClassNames(array(get_class($search_engine))) ->withQueryKeys(array($key)) ->executeOne(); } @@ -89,22 +91,40 @@ pht( 'Query "%s" is unknown to application search engine "%s"!', $key, - get_class($engine))); + get_class($search_engine))); } - $query = $engine->buildQueryFromSavedQuery($saved); - $pager = $engine->newPagerForSavedQuery($saved); + $query = $search_engine->buildQueryFromSavedQuery($saved); + $pager = $search_engine->newPagerForSavedQuery($saved); + $show_link = false; if ($panel->getProperty('limit')) { $limit = (int)$panel->getProperty('limit'); if ($pager->getPageSize() !== 0xFFFF) { $pager->setPageSize($limit); + $show_link = $engine->getHeaderMode() == + PhabricatorDashboardPanelRenderingEngine::HEADER_MODE_NONE; } } - $results = $engine->executeQuery($query, $pager); + $view = id(new PHUIBoxView()); + + $results = $search_engine->executeQuery($query, $pager); + $results_view = $search_engine->renderResults($results, $saved); + $view->appendChild($results_view->getContent()); + if ($show_link) { + $href = $search_engine->getQueryResultsPageURI($key); + + $button = id(new PHUIButtonView()); + $button->setText('Full List') + ->setTag('a') + ->setColor(PHUIButtonView::SIMPLE_BLUE) + ->setHref($href); + $link = phutil_tag_div('dashboard-panel-footer', $button); + $view->appendChild($link); + } - return $engine->renderResults($results, $saved); + return $view; } public function adjustPanelHeader( diff --git a/webroot/rsrc/css/application/dashboard/dashboard.css b/webroot/rsrc/css/application/dashboard/dashboard.css --- a/webroot/rsrc/css/application/dashboard/dashboard.css +++ b/webroot/rsrc/css/application/dashboard/dashboard.css @@ -14,6 +14,12 @@ margin: 0 0 16px 0; } +.dashboard-view .dashboard-panel-footer { + border-top: 1px solid {$thinblueborder}; + padding: 8px 0 4px; + text-align: right; +} + .dashboard-view .phui-object-box .phui-object-box { margin: 0; }