Page MenuHomePhabricator

D15150.id.diff
No OneTemporary

D15150.id.diff

diff --git a/src/applications/people/controller/PhabricatorPeopleProfileViewController.php b/src/applications/people/controller/PhabricatorPeopleProfileViewController.php
--- a/src/applications/people/controller/PhabricatorPeopleProfileViewController.php
+++ b/src/applications/people/controller/PhabricatorPeopleProfileViewController.php
@@ -54,23 +54,21 @@
$feed = $this->buildPeopleFeed($user, $viewer);
$feed = phutil_tag_div('project-view-feed', $feed);
+ $projects = $this->buildProjectsView($user);
$badges = $this->buildBadgesView($user);
- if ($badges) {
- $columns = id(new PHUITwoColumnView())
- ->addClass('project-view-badges')
- ->setMainColumn(
- array(
- $properties,
- $feed,
- ))
- ->setSideColumn(
- array(
- $badges,
- ));
- } else {
- $columns = array($properties, $feed);
- }
+ $columns = id(new PHUITwoColumnView())
+ ->addClass('project-view-badges')
+ ->setMainColumn(
+ array(
+ $properties,
+ $feed,
+ ))
+ ->setSideColumn(
+ array(
+ $projects,
+ $badges,
+ ));
$nav = $this->getProfileMenu();
$nav->selectFilter(PhabricatorPeopleProfilePanelEngine::PANEL_PROFILE);
@@ -124,12 +122,65 @@
return $view;
}
+ private function buildProjectsView(
+ PhabricatorUser $user) {
+
+ $viewer = $this->getViewer();
+ $projects = id(new PhabricatorProjectQuery())
+ ->setViewer($viewer)
+ ->withMemberPHIDs(array($user->getPHID()))
+ ->needImages(true)
+ ->withStatus(PhabricatorProjectQuery::STATUS_OPEN)
+ ->execute();
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Projects'));
+
+ if (!empty($projects)) {
+ $limit = 5;
+ $render_phids = array_slice($projects, 0, $limit);
+ $list = id(new PhabricatorProjectListView())
+ ->setUser($viewer)
+ ->setProjects($render_phids);
+
+ if (count($projects) > $limit) {
+ $header_text = pht(
+ 'Projects (%s)',
+ phutil_count($projects));
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader($header_text)
+ ->addActionLink(
+ id(new PHUIButtonView())
+ ->setTag('a')
+ ->setIcon('fa-list-ul')
+ ->setText(pht('View All'))
+ ->setHref('/project/?member='.$user->getPHID()));
+
+ }
+
+ } else {
+ $error = id(new PHUIBoxView())
+ ->addClass('mlb')
+ ->appendChild(pht('User does not belong to any projects.'));
+ $list = id(new PHUIInfoView())
+ ->setSeverity(PHUIInfoView::SEVERITY_NODATA)
+ ->appendChild($error);
+ }
+
+ $box = id(new PHUIObjectBoxView())
+ ->setHeader($header)
+ ->appendChild($list)
+ ->setBackground(PHUIBoxView::GREY);
+
+ return $box;
+ }
+
private function buildBadgesView(
PhabricatorUser $user) {
$viewer = $this->getViewer();
$class = 'PhabricatorBadgesApplication';
- $box = null;
if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
$badge_phids = $user->getBadgePHIDs();
@@ -150,13 +201,21 @@
$flex->addItem($item);
}
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Badges'))
- ->appendChild($flex)
- ->setBackground(PHUIBoxView::GREY);
+ } else {
+ $error = id(new PHUIBoxView())
+ ->addClass('mlb')
+ ->appendChild(pht('User does not have any badges.'));
+ $flex = id(new PHUIInfoView())
+ ->setSeverity(PHUIInfoView::SEVERITY_NODATA)
+ ->appendChild($error);
}
}
+ $box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Badges'))
+ ->appendChild($flex)
+ ->setBackground(PHUIBoxView::GREY);
+
return $box;
}

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 16, 11:46 PM (2 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7362779
Default Alt Text
D15150.id.diff (3 KB)

Event Timeline