82 lines
2.2 KiB
PHP
82 lines
2.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
final class PhabricatorPeopleProfileCommitsController
|
||
|
|
extends PhabricatorPeopleProfileController {
|
||
|
|
|
||
|
|
public function handleRequest(AphrontRequest $request) {
|
||
|
|
$viewer = $this->getViewer();
|
||
|
|
$id = $request->getURIData('id');
|
||
|
|
|
||
|
|
$user = id(new PhabricatorPeopleQuery())
|
||
|
|
->setViewer($viewer)
|
||
|
|
->withIDs(array($id))
|
||
|
|
->needProfile(true)
|
||
|
|
->needProfileImage(true)
|
||
|
|
->needAvailability(true)
|
||
|
|
->requireCapabilities(
|
||
|
|
array(
|
||
|
|
PhabricatorPolicyCapability::CAN_VIEW,
|
||
|
|
))
|
||
|
|
->executeOne();
|
||
|
|
if (!$user) {
|
||
|
|
return new Aphront404Response();
|
||
|
|
}
|
||
|
|
|
||
|
|
$class = 'PhabricatorDiffusionApplication';
|
||
|
|
if (!PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
|
||
|
|
return new Aphront404Response();
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->setUser($user);
|
||
|
|
$title = array(pht('Recent Commits'), $user->getUsername());
|
||
|
|
$header = $this->buildProfileHeader();
|
||
|
|
$commits = $this->buildCommitsView($user);
|
||
|
|
|
||
|
|
$crumbs = $this->buildApplicationCrumbs();
|
||
|
|
$crumbs->addTextCrumb(pht('Recent Commits'));
|
||
|
|
$crumbs->setBorder(true);
|
||
|
|
|
||
|
|
$nav = $this->getProfileMenu();
|
||
|
|
$nav->selectFilter(PhabricatorPeopleProfileMenuEngine::ITEM_COMMITS);
|
||
|
|
|
||
|
|
$view = id(new PHUITwoColumnView())
|
||
|
|
->setHeader($header)
|
||
|
|
->addClass('project-view-home')
|
||
|
|
->addClass('project-view-people-home')
|
||
|
|
->setFooter(array(
|
||
|
|
$commits,
|
||
|
|
));
|
||
|
|
|
||
|
|
return $this->newPage()
|
||
|
|
->setTitle($title)
|
||
|
|
->setCrumbs($crumbs)
|
||
|
|
->setNavigation($nav)
|
||
|
|
->appendChild($view);
|
||
|
|
}
|
||
|
|
|
||
|
|
private function buildCommitsView(PhabricatorUser $user) {
|
||
|
|
$viewer = $this->getViewer();
|
||
|
|
|
||
|
|
$commits = id(new DiffusionCommitQuery())
|
||
|
|
->setViewer($viewer)
|
||
|
|
->requireCapabilities(
|
||
|
|
array(
|
||
|
|
PhabricatorPolicyCapability::CAN_VIEW,
|
||
|
|
))
|
||
|
|
->setLimit(100)
|
||
|
|
->execute();
|
||
|
|
|
||
|
|
$list = id(new PhabricatorAuditListView())
|
||
|
|
->setViewer($viewer)
|
||
|
|
->setCommits($commits)
|
||
|
|
->setNoDataString(pht('No recent commits.'));
|
||
|
|
|
||
|
|
$view = id(new PHUIObjectBoxView())
|
||
|
|
->setHeaderText(pht('Recent Commits'))
|
||
|
|
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||
|
|
->appendChild($list);
|
||
|
|
|
||
|
|
return $view;
|
||
|
|
}
|
||
|
|
}
|