3 final class PhabricatorProjectListView
extends AphrontView
{
10 public function setProjects(array $projects) {
11 $this->projects
= $projects;
15 public function getProjects() {
16 return $this->projects
;
19 public function setShowWatching($watching) {
20 $this->showWatching
= $watching;
24 public function setShowMember($member) {
25 $this->showMember
= $member;
29 public function setNoDataString($text) {
30 $this->noDataString
= $text;
34 public function renderList() {
35 $viewer = $this->getUser();
36 $viewer_phid = $viewer->getPHID();
37 $projects = $this->getProjects();
39 $handles = $viewer->loadHandles(mpull($projects, 'getPHID'));
41 $no_data = pht('No projects found.');
42 if ($this->noDataString
) {
43 $no_data = $this->noDataString
;
46 $list = id(new PHUIObjectItemListView())
48 ->setNoDataString($no_data);
50 foreach ($projects as $key => $project) {
51 $id = $project->getID();
53 $icon = $project->getDisplayIconIcon();
54 $icon_icon = id(new PHUIIconView())
57 $icon_name = $project->getDisplayIconName();
59 $item = id(new PHUIObjectItemView())
61 ->setHeader($project->getName())
62 ->setHref("/project/view/{$id}/")
63 ->setImageURI($project->getProfileImageURI())
71 if ($project->getStatus() == PhabricatorProjectStatus
::STATUS_ARCHIVED
) {
72 $item->addIcon('fa-ban', pht('Archived'));
73 $item->setDisabled(true);
76 if ($this->showMember
) {
77 $is_member = $project->isUserMember($viewer_phid);
79 $item->addIcon('fa-user', pht('Member'));
83 if ($this->showWatching
) {
84 $is_watcher = $project->isUserWatcher($viewer_phid);
86 $item->addIcon('fa-eye', pht('Watching'));
90 $subtype = $project->newSubtypeObject();
91 if ($subtype && $subtype->hasTagView()) {
92 $subtype_tag = $subtype->newTagView()
94 $item->addAttribute($subtype_tag);
97 $list->addItem($item);
103 public function render() {
104 return $this->renderList();