Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113<?php
final class PHUIApplicationMenuView extends Phobject {
private $viewer; private $crumbs; private $searchEngine; private $profileMenu;
private $items = array();
public function setViewer(PhabricatorUser $viewer) { $this->viewer = $viewer; return $this; }
public function getViewer() { return $this->viewer; }
public function addLabel($name) { $item = id(new PHUIListItemView()) ->setName($name);
return $this->addItem($item); }
public function addLink($name, $href) { $item = id(new PHUIListItemView()) ->setName($name) ->setHref($href);
return $this->addItem($item); }
public function setProfileMenu( AphrontSideNavFilterView $nav) { $this->profileMenu = $nav; return $this; }
public function getProfileMenu() { return $this->profileMenu; }
public function addItem(PHUIListItemView $item) { $this->items[] = $item; return $this; }
public function setSearchEngine(PhabricatorApplicationSearchEngine $engine) { $this->searchEngine = $engine; return $this; }
public function getSearchEngine() { return $this->searchEngine; }
public function setCrumbs(PHUICrumbsView $crumbs) { $this->crumbs = $crumbs; return $this; }
public function getCrumbs() { return $this->crumbs; }
public function buildListView() { $viewer = $this->getViewer();
$view = id(new PHUIListView()) ->setUser($viewer);
$profile_menu = $this->getProfileMenu(); if ($profile_menu) { foreach ($profile_menu->getMenu()->getItems() as $item) { if ($item->getHideInApplicationMenu()) { continue; }
$item = clone $item; $view->addMenuItem($item); } }
$crumbs = $this->getCrumbs(); if ($crumbs) { $actions = $crumbs->getActions(); if ($actions) { $view->newLabel(pht('Create')); foreach ($crumbs->getActions() as $action) { $view->addMenuItem($action); } } }
$engine = $this->getSearchEngine(); if ($engine) { $engine ->setViewer($viewer) ->addNavigationItems($view); }
foreach ($this->items as $item) { $view->addMenuItem($item); }
return $view; }
}