Page MenuHomestyx hydra

PhabricatorPeopleDatasource.php
No OneTemporary

PhabricatorPeopleDatasource.php

<?php
final class PhabricatorPeopleDatasource
extends PhabricatorTypeaheadDatasource {
private $enrichResults;
/**
* Controls enriched rendering, for global search. This is a bit hacky and
* should probably be handled in a more general way, but is fairly reasonable
* for now.
*/
public function setEnrichResults($enrich) {
$this->enrichResults = $enrich;
return $this;
}
public function getBrowseTitle() {
return pht('Browse Users');
}
public function getPlaceholderText() {
return pht('Type a username...');
}
public function getDatasourceApplicationClass() {
return 'PhabricatorPeopleApplication';
}
public function loadResults() {
$viewer = $this->getViewer();
$tokens = $this->getTokens();
$query = id(new PhabricatorPeopleQuery())
->setOrderVector(array('username'));
if ($tokens) {
$query->withNameTokens($tokens);
}
$users = $this->executeQuery($query);
if ($this->enrichResults && $users) {
$phids = mpull($users, 'getPHID');
$handles = id(new PhabricatorHandleQuery())
->setViewer($viewer)
->withPHIDs($phids)
->execute();
}
$results = array();
foreach ($users as $user) {
$closed = null;
if ($user->getIsDisabled()) {
$closed = pht('Disabled');
} else if ($user->getIsSystemAgent()) {
$closed = pht('Bot/Script');
}
$result = id(new PhabricatorTypeaheadResult())
->setName($user->getFullName())
->setURI('/p/'.$user->getUsername())
->setPHID($user->getPHID())
->setPriorityString($user->getUsername())
->setPriorityType('user')
->setClosed($closed);
if ($this->enrichResults) {
$display_type = 'User';
if ($user->getIsAdmin()) {
$display_type = 'Administrator';
}
$result->setDisplayType($display_type);
$result->setImageURI($handles[$user->getPHID()]->getImageURI());
}
$results[] = $result;
}
return $results;
}
}

File Metadata

Mime Type
text/x-php
Expires
Mon, Nov 24, 12:46 PM (13 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
383712
Default Alt Text
PhabricatorPeopleDatasource.php (2 KB)

Event Timeline