Files
phabricator/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php
epriestley f24318f308 Make "profile menu" configuration mostly work
Summary:
Ref T10054. This does a big chunk of the legwork to let users reconfigure profile menus (currently, just project menus).

This includes:

  - Editing builtin items (e.g., you can rename the default items).
  - Creating new items (for now, only links are available).

This does not yet include:

  - Hiding items.
  - Reordering items.
  - Lots of fancy types of items (dashboards, etc).
  - Any UI changes.
  - Documentation (does feature: TODO link for documentation).

Test Plan:
{F1060695}

{F1060696}

{F1060697}

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10054

Differential Revision: https://secure.phabricator.com/D15010
2016-01-13 11:45:31 -08:00

76 lines
2.1 KiB
PHP

<?php
final class PhabricatorEditEngineConfigurationListController
extends PhabricatorEditEngineController {
public function shouldAllowPublic() {
return true;
}
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$engine_key = $request->getURIData('engineKey');
$this->setEngineKey($engine_key);
$engine = PhabricatorEditEngine::getByKey($viewer, $engine_key)
->setViewer($viewer);
if (!$engine->isEngineConfigurable()) {
return new Aphront404Response();
}
$items = array();
$items[] = id(new PHUIListItemView())
->setType(PHUIListItemView::TYPE_LABEL)
->setName(pht('Form Order'));
$sort_create_uri = "/transactions/editengine/{$engine_key}/sort/create/";
$sort_edit_uri = "/transactions/editengine/{$engine_key}/sort/edit/";
$builtins = $engine->getBuiltinEngineConfigurations();
$builtin = head($builtins);
$can_sort = PhabricatorPolicyFilter::hasCapability(
$viewer,
$builtin,
PhabricatorPolicyCapability::CAN_EDIT);
$items[] = id(new PHUIListItemView())
->setType(PHUIListItemView::TYPE_LINK)
->setName(pht('Reorder Create Forms'))
->setHref($sort_create_uri)
->setWorkflow(true)
->setDisabled(!$can_sort);
$items[] = id(new PHUIListItemView())
->setType(PHUIListItemView::TYPE_LINK)
->setName(pht('Reorder Edit Forms'))
->setHref($sort_edit_uri)
->setWorkflow(true)
->setDisabled(!$can_sort);
return id(new PhabricatorEditEngineConfigurationSearchEngine())
->setController($this)
->setEngineKey($this->getEngineKey())
->setNavigationItems($items)
->buildResponse();
}
protected function buildApplicationCrumbs() {
$viewer = $this->getViewer();
$crumbs = parent::buildApplicationCrumbs();
$target_key = $this->getEngineKey();
$target_engine = PhabricatorEditEngine::getByKey($viewer, $target_key);
id(new PhabricatorEditEngineConfigurationEditEngine())
->setTargetEngine($target_engine)
->setViewer($viewer)
->addActionToCrumbs($crumbs);
return $crumbs;
}
}