PageRenderTime 51ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/src/applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php

http://github.com/facebook/phabricator
PHP | 75 lines | 57 code | 18 blank | 0 comment | 1 complexity | a5c88289d40189de4fa647e07ebd21fd MD5 | raw file
Possible License(s): JSON, MPL-2.0-no-copyleft-exception, Apache-2.0, BSD-3-Clause, LGPL-2.0, MIT, LGPL-2.1, LGPL-3.0
  1. <?php
  2. final class PhabricatorEditEngineConfigurationListController
  3. extends PhabricatorEditEngineController {
  4. public function shouldAllowPublic() {
  5. return true;
  6. }
  7. public function handleRequest(AphrontRequest $request) {
  8. $viewer = $this->getViewer();
  9. $engine_key = $request->getURIData('engineKey');
  10. $this->setEngineKey($engine_key);
  11. $engine = PhabricatorEditEngine::getByKey($viewer, $engine_key)
  12. ->setViewer($viewer);
  13. if (!$engine->isEngineConfigurable()) {
  14. return new Aphront404Response();
  15. }
  16. $items = array();
  17. $items[] = id(new PHUIListItemView())
  18. ->setType(PHUIListItemView::TYPE_LABEL)
  19. ->setName(pht('Form Order'));
  20. $sort_create_uri = "/transactions/editengine/{$engine_key}/sort/create/";
  21. $sort_edit_uri = "/transactions/editengine/{$engine_key}/sort/edit/";
  22. $builtins = $engine->getBuiltinEngineConfigurations();
  23. $builtin = head($builtins);
  24. $can_sort = PhabricatorPolicyFilter::hasCapability(
  25. $viewer,
  26. $builtin,
  27. PhabricatorPolicyCapability::CAN_EDIT);
  28. $items[] = id(new PHUIListItemView())
  29. ->setType(PHUIListItemView::TYPE_LINK)
  30. ->setName(pht('Reorder Create Forms'))
  31. ->setHref($sort_create_uri)
  32. ->setWorkflow(true)
  33. ->setDisabled(!$can_sort);
  34. $items[] = id(new PHUIListItemView())
  35. ->setType(PHUIListItemView::TYPE_LINK)
  36. ->setName(pht('Reorder Edit Forms'))
  37. ->setHref($sort_edit_uri)
  38. ->setWorkflow(true)
  39. ->setDisabled(!$can_sort);
  40. return id(new PhabricatorEditEngineConfigurationSearchEngine())
  41. ->setController($this)
  42. ->setEngineKey($this->getEngineKey())
  43. ->setNavigationItems($items)
  44. ->buildResponse();
  45. }
  46. protected function buildApplicationCrumbs() {
  47. $viewer = $this->getViewer();
  48. $crumbs = parent::buildApplicationCrumbs();
  49. $target_key = $this->getEngineKey();
  50. $target_engine = PhabricatorEditEngine::getByKey($viewer, $target_key);
  51. id(new PhabricatorEditEngineConfigurationEditEngine())
  52. ->setTargetEngine($target_engine)
  53. ->setViewer($viewer)
  54. ->addActionToCrumbs($crumbs);
  55. return $crumbs;
  56. }
  57. }