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
76 lines
2.1 KiB
PHP
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;
|
|
}
|
|
|
|
}
|