Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/engine/PhabricatorProfileMenuEngine.php
Show First 20 Lines • Show All 454 Lines • ▼ Show 20 Lines | foreach ($stored_items as $stored_item) { | ||||
$builtin_key = $stored_item->getBuiltinKey(); | $builtin_key = $stored_item->getBuiltinKey(); | ||||
if ($builtin_key !== null) { | if ($builtin_key !== null) { | ||||
// If this builtin actually exists, replace the builtin with the | // If this builtin actually exists, replace the builtin with the | ||||
// stored configuration. Otherwise, we're just going to drop the | // stored configuration. Otherwise, we're just going to drop the | ||||
// stored config: it corresponds to an out-of-date or uninstalled | // stored config: it corresponds to an out-of-date or uninstalled | ||||
// item. | // item. | ||||
if (isset($items[$builtin_key])) { | if (isset($items[$builtin_key])) { | ||||
$builtin_item = $items[$builtin_key]; | |||||
// Copy runtime properties from the builtin item to the stored item. | |||||
$stored_item->setIsHeadItem($builtin_item->getIsHeadItem()); | |||||
$stored_item->setIsTailItem($builtin_item->getIsTailItem()); | |||||
$items[$builtin_key] = $stored_item; | $items[$builtin_key] = $stored_item; | ||||
} else { | } else { | ||||
continue; | continue; | ||||
} | } | ||||
} else { | } else { | ||||
$items[] = $stored_item; | $items[] = $stored_item; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 326 Lines • ▼ Show 20 Lines | Javelin::initBehavior( | ||||
'listID' => $list_id, | 'listID' => $list_id, | ||||
'orderURI' => $this->getItemURI("reorder/{$mode}/"), | 'orderURI' => $this->getItemURI("reorder/{$mode}/"), | ||||
)); | )); | ||||
$list = id(new PHUIObjectItemListView()) | $list = id(new PHUIObjectItemListView()) | ||||
->setID($list_id) | ->setID($list_id) | ||||
->setNoDataString(pht('This menu currently has no items.')); | ->setNoDataString(pht('This menu currently has no items.')); | ||||
$any_draggable = false; | |||||
foreach ($items as $item) { | foreach ($items as $item) { | ||||
$id = $item->getID(); | $id = $item->getID(); | ||||
$builtin_key = $item->getBuiltinKey(); | $builtin_key = $item->getBuiltinKey(); | ||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
$item, | $item, | ||||
PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
$view = id(new PHUIObjectItemView()); | $view = id(new PHUIObjectItemView()); | ||||
$name = $item->getDisplayName(); | $name = $item->getDisplayName(); | ||||
$type = $item->getMenuItemTypeName(); | $type = $item->getMenuItemTypeName(); | ||||
if (!strlen(trim($name))) { | if (!strlen(trim($name))) { | ||||
$name = pht('Untitled "%s" Item', $type); | $name = pht('Untitled "%s" Item', $type); | ||||
} | } | ||||
$view->setHeader($name); | $view->setHeader($name); | ||||
$view->addAttribute($type); | $view->addAttribute($type); | ||||
$icon = $item->getMenuItem()->getMenuItemTypeIcon(); | |||||
if ($icon !== null) { | |||||
$view->setStatusIcon($icon); | |||||
} | |||||
if ($can_edit) { | if ($can_edit) { | ||||
$can_move = (!$item->getIsHeadItem() && !$item->getIsTailItem()); | |||||
if ($can_move) { | |||||
$view | $view | ||||
->setGrippable(true) | ->setGrippable(true) | ||||
->addSigil('profile-menu-item') | ->addSigil('profile-menu-item') | ||||
->setMetadata( | ->setMetadata( | ||||
array( | array( | ||||
'key' => nonempty($id, $builtin_key), | 'key' => nonempty($id, $builtin_key), | ||||
)); | )); | ||||
$any_draggable = true; | |||||
} else { | |||||
$view->setGrippable(false); | |||||
} | |||||
if ($id) { | if ($id) { | ||||
$default_uri = $this->getItemURI("default/{$id}/"); | $default_uri = $this->getItemURI("default/{$id}/"); | ||||
} else { | } else { | ||||
$default_uri = $this->getItemURI("default/{$builtin_key}/"); | $default_uri = $this->getItemURI("default/{$builtin_key}/"); | ||||
} | } | ||||
$default_text = null; | $default_text = null; | ||||
▲ Show 20 Lines • Show All 98 Lines • ▼ Show 20 Lines | $action_list->addAction( | ||||
->setIcon('fa-book') | ->setIcon('fa-book') | ||||
->setHref($doc_link) | ->setHref($doc_link) | ||||
->setName($doc_name)); | ->setName($doc_name)); | ||||
$header = id(new PHUIHeaderView()) | $header = id(new PHUIHeaderView()) | ||||
->setHeader(pht('Menu Items')) | ->setHeader(pht('Menu Items')) | ||||
->setHeaderIcon('fa-list'); | ->setHeaderIcon('fa-list'); | ||||
$list_header = id(new PHUIHeaderView()) | |||||
->setHeader(pht('Current Menu Items')); | |||||
if ($any_draggable) { | |||||
$list_header->setSubheader( | |||||
pht('Drag items in this list to reorder them.')); | |||||
} | |||||
$box = id(new PHUIObjectBoxView()) | $box = id(new PHUIObjectBoxView()) | ||||
->setHeaderText(pht('Current Menu Items')) | ->setHeader($list_header) | ||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
->setObjectList($list); | ->setObjectList($list); | ||||
$curtain = id(new PHUICurtainView()) | $curtain = id(new PHUICurtainView()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->setActionList($action_list); | ->setActionList($action_list); | ||||
$view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
▲ Show 20 Lines • Show All 228 Lines • ▼ Show 20 Lines | |||||
protected function newItem() { | protected function newItem() { | ||||
return PhabricatorProfileMenuItemConfiguration::initializeNewBuiltin(); | return PhabricatorProfileMenuItemConfiguration::initializeNewBuiltin(); | ||||
} | } | ||||
protected function newManageItem() { | protected function newManageItem() { | ||||
return $this->newItem() | return $this->newItem() | ||||
->setBuiltinKey(self::ITEM_MANAGE) | ->setBuiltinKey(self::ITEM_MANAGE) | ||||
->setMenuItemKey(PhabricatorManageProfileMenuItem::MENUITEMKEY); | ->setMenuItemKey(PhabricatorManageProfileMenuItem::MENUITEMKEY) | ||||
->setIsTailItem(true); | |||||
} | } | ||||
public function adjustDefault($key) { | public function adjustDefault($key) { | ||||
$controller = $this->getController(); | $controller = $this->getController(); | ||||
$request = $controller->getRequest(); | $request = $controller->getRequest(); | ||||
$viewer = $request->getViewer(); | $viewer = $request->getViewer(); | ||||
$items = $this->loadItems(self::MODE_COMBINED); | $items = $this->loadItems(self::MODE_COMBINED); | ||||
▲ Show 20 Lines • Show All 268 Lines • Show Last 20 Lines |