Differential D13101 Diff 31629 src/applications/people/controller/PhabricatorPeopleProfileController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/people/controller/PhabricatorPeopleProfileController.php
Show All 20 Lines | $user = id(new PhabricatorPeopleQuery()) | ||||
->withUsernames(array($this->username)) | ->withUsernames(array($this->username)) | ||||
->needProfileImage(true) | ->needProfileImage(true) | ||||
->needAvailability(true) | ->needAvailability(true) | ||||
->executeOne(); | ->executeOne(); | ||||
if (!$user) { | if (!$user) { | ||||
return new Aphront404Response(); | return new Aphront404Response(); | ||||
} | } | ||||
require_celerity_resource('phabricator-profile-css'); | |||||
$profile = $user->loadUserProfile(); | $profile = $user->loadUserProfile(); | ||||
$username = phutil_escape_uri($user->getUserName()); | $username = phutil_escape_uri($user->getUserName()); | ||||
$picture = $user->getProfileImageURI(); | $picture = $user->getProfileImageURI(); | ||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader($user->getFullName()) | ->setHeader($user->getFullName()) | ||||
->setSubheader($profile->getTitle()) | ->setSubheader($profile->getTitle()) | ||||
Show All 20 Lines | public function processRequest() { | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-picture-o') | ->setIcon('fa-picture-o') | ||||
->setName(pht('Edit Profile Picture')) | ->setName(pht('Edit Profile Picture')) | ||||
->setHref($this->getApplicationURI('picture/'.$user->getID().'/')) | ->setHref($this->getApplicationURI('picture/'.$user->getID().'/')) | ||||
->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
->setWorkflow(!$can_edit)); | ->setWorkflow(!$can_edit)); | ||||
$class = 'PhabricatorConpherenceApplication'; | |||||
if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { | |||||
$href = '/conpherence/new/?participant='.$user->getPHID(); | |||||
$actions->addAction( | |||||
id(new PhabricatorActionView()) | |||||
->setIcon('fa-comments') | |||||
->setName(pht('Send Message')) | |||||
->setWorkflow(true) | |||||
->setHref($href)); | |||||
} | |||||
if ($viewer->getIsAdmin()) { | if ($viewer->getIsAdmin()) { | ||||
$actions->addAction( | $actions->addAction( | ||||
id(new PhabricatorActionView()) | id(new PhabricatorActionView()) | ||||
->setIcon('fa-wrench') | ->setIcon('fa-wrench') | ||||
->setName(pht('Edit Settings')) | ->setName(pht('Edit Settings')) | ||||
->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
->setWorkflow(!$can_edit) | ->setWorkflow(!$can_edit) | ||||
->setHref('/settings/'.$user->getID().'/')); | ->setHref('/settings/'.$user->getID().'/')); | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | public function processRequest() { | ||||
} | } | ||||
$properties = $this->buildPropertyView($user, $actions); | $properties = $this->buildPropertyView($user, $actions); | ||||
$name = $user->getUsername(); | $name = $user->getUsername(); | ||||
$crumbs = $this->buildApplicationCrumbs(); | $crumbs = $this->buildApplicationCrumbs(); | ||||
$crumbs->addTextCrumb($name); | $crumbs->addTextCrumb($name); | ||||
$class = 'PhabricatorConpherenceApplication'; | |||||
if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { | |||||
$href = '/conpherence/new/?participant='.$user->getPHID(); | |||||
$image = id(new PHUIIconView()) | |||||
->setIconFont('fa-comments'); | |||||
$button = id(new PHUIButtonView()) | |||||
->setTag('a') | |||||
->setColor(PHUIButtonView::SIMPLE) | |||||
->setIcon($image) | |||||
->setHref($href) | |||||
->setText(pht('Send Message')) | |||||
->setWorkflow(true); | |||||
$header->addActionLink($button); | |||||
} | |||||
$object_box = id(new PHUIObjectBoxView()) | $object_box = id(new PHUIObjectBoxView()) | ||||
->setHeader($header) | ->setHeader($header) | ||||
->addPropertyList($properties); | ->addPropertyList($properties); | ||||
$feed = id(new PHUIObjectBoxView()) | |||||
->setHeaderText(pht('Recent Activity')) | |||||
->appendChild($this->buildPeopleFeed($user, $viewer)); | |||||
$nav = $this->buildIconNavView($user); | $nav = $this->buildIconNavView($user); | ||||
$nav->selectFilter("{$name}/"); | $nav->selectFilter("{$name}/"); | ||||
$nav->appendChild($object_box); | $nav->appendChild($object_box); | ||||
$nav->appendChild($feed); | |||||
return $this->buildApplicationPage( | return $this->buildApplicationPage( | ||||
$nav, | $nav, | ||||
array( | array( | ||||
'title' => $user->getUsername(), | 'title' => $user->getUsername(), | ||||
)); | )); | ||||
} | } | ||||
Show All 10 Lines | private function buildPropertyView( | ||||
$field_list = PhabricatorCustomField::getObjectFields( | $field_list = PhabricatorCustomField::getObjectFields( | ||||
$user, | $user, | ||||
PhabricatorCustomField::ROLE_VIEW); | PhabricatorCustomField::ROLE_VIEW); | ||||
$field_list->appendFieldsToPropertyList($user, $viewer, $view); | $field_list->appendFieldsToPropertyList($user, $viewer, $view); | ||||
return $view; | return $view; | ||||
} | } | ||||
private function buildPeopleFeed( | |||||
PhabricatorUser $user, | |||||
$viewer) { | |||||
$query = new PhabricatorFeedQuery(); | |||||
$query->setFilterPHIDs( | |||||
array( | |||||
$user->getPHID(), | |||||
)); | |||||
$query->setLimit(100); | |||||
$query->setViewer($viewer); | |||||
$stories = $query->execute(); | |||||
$builder = new PhabricatorFeedBuilder($stories); | |||||
$builder->setUser($viewer); | |||||
$builder->setShowHovercards(true); | |||||
$builder->setNoDataString(pht('To begin on such a grand journey, '. | |||||
'requires but just a single step.')); | |||||
$view = $builder->buildView(); | |||||
return phutil_tag_div('phabricator-project-feed', $view->render()); | |||||
} | |||||
} | } |