From 780da42126dd2960fa9c8d9754908111f8d2362a Mon Sep 17 00:00:00 2001 From: epriestley Date: Sat, 7 Apr 2012 17:25:24 -0700 Subject: [PATCH] Show user a notice when they view "My Projects" for feed but haven't joined any projects Summary: Currently, we show them everything. Instead, show them an explicit notice. Test Plan: Looked at "My Projects" feed with no projects. Reviewers: btrahan, vrana, jungejason Reviewed By: jungejason CC: aran Maniphest Tasks: T1015 Differential Revision: https://secure.phabricator.com/D2143 --- .../main/PhabricatorDirectoryMainController.php | 17 ++++++++++++----- .../directory/controller/main/__init__.php | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/applications/directory/controller/main/PhabricatorDirectoryMainController.php b/src/applications/directory/controller/main/PhabricatorDirectoryMainController.php index 33e86bb19e..34e0f18473 100644 --- a/src/applications/directory/controller/main/PhabricatorDirectoryMainController.php +++ b/src/applications/directory/controller/main/PhabricatorDirectoryMainController.php @@ -142,22 +142,29 @@ final class PhabricatorDirectoryMainController $subnav->addFilter('all', 'All Activity', '/feed/'); $subnav->addFilter('projects', 'My Projects'); + $nav->appendChild($subnav); + $filter = $subnav->selectFilter($this->subfilter, 'all'); switch ($filter) { case 'all': - $phids = array(); + $view = $this->buildFeedView(array()); break; case 'projects': - $phids = mpull($projects, 'getPHID'); + if ($projects) { + $phids = mpull($projects, 'getPHID'); + $view = $this->buildFeedView($phids); + } else { + $view = new AphrontErrorView(); + $view->setSeverity(AphrontErrorView::SEVERITY_NODATA); + $view->setTitle('No Projects'); + $view->appendChild('You have not joined any projects.'); + } break; } - $view = $this->buildFeedView($phids); $subnav->appendChild($view); - $nav->appendChild($subnav); - return $this->buildStandardPageResponse( $nav, array( diff --git a/src/applications/directory/controller/main/__init__.php b/src/applications/directory/controller/main/__init__.php index 010aa5ebe7..246b4cec46 100644 --- a/src/applications/directory/controller/main/__init__.php +++ b/src/applications/directory/controller/main/__init__.php @@ -30,6 +30,7 @@ phutil_require_module('phabricator', 'infrastructure/celerity/api'); phutil_require_module('phabricator', 'infrastructure/env'); phutil_require_module('phabricator', 'infrastructure/javelin/api'); phutil_require_module('phabricator', 'infrastructure/javelin/markup'); +phutil_require_module('phabricator', 'view/form/error'); phutil_require_module('phabricator', 'view/layout/minipanel'); phutil_require_module('phabricator', 'view/layout/panel'); phutil_require_module('phabricator', 'view/layout/sidenavfilter');