Differential D15152 Diff 36584 src/applications/project/controller/PhabricatorProjectEditController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectEditController.php
| Show All 36 Lines | if (!$id) { | ||||
| $parent_id = $request->getStr('milestone'); | $parent_id = $request->getStr('milestone'); | ||||
| } | } | ||||
| $is_milestone = true; | $is_milestone = true; | ||||
| } | } | ||||
| if ($parent_id) { | if ($parent_id) { | ||||
| $query = id(new PhabricatorProjectQuery()) | $query = id(new PhabricatorProjectQuery()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->needImages(true) | |||||
| ->requireCapabilities( | ->requireCapabilities( | ||||
| array( | array( | ||||
| PhabricatorPolicyCapability::CAN_VIEW, | PhabricatorPolicyCapability::CAN_VIEW, | ||||
| PhabricatorPolicyCapability::CAN_EDIT, | PhabricatorPolicyCapability::CAN_EDIT, | ||||
| )); | )); | ||||
| if (ctype_digit($parent_id)) { | if (ctype_digit($parent_id)) { | ||||
| $query->withIDs(array($parent_id)); | $query->withIDs(array($parent_id)); | ||||
| } else { | } else { | ||||
| $query->withPHIDs(array($parent_id)); | $query->withPHIDs(array($parent_id)); | ||||
| } | } | ||||
| $parent = $query->executeOne(); | $parent = $query->executeOne(); | ||||
| if ($is_milestone) { | if ($is_milestone) { | ||||
| if (!$parent->supportsMilestones()) { | if (!$parent->supportsMilestones()) { | ||||
| $cancel_uri = "/project/milestones/{$parent_id}/"; | $cancel_uri = "/project/subprojects/{$parent_id}/"; | ||||
| return $this->newDialog() | return $this->newDialog() | ||||
| ->setTitle(pht('No Milestones')) | ->setTitle(pht('No Milestones')) | ||||
| ->appendParagraph( | ->appendParagraph( | ||||
| pht('You can not add milestones to this project.')) | pht('You can not add milestones to this project.')) | ||||
| ->addCancelButton($cancel_uri); | ->addCancelButton($cancel_uri); | ||||
| } | } | ||||
| $engine->setMilestoneProject($parent); | $engine->setMilestoneProject($parent); | ||||
| } else { | } else { | ||||
| Show All 16 Lines | final class PhabricatorProjectEditController | ||||
| } | } | ||||
| protected function buildApplicationCrumbs() { | protected function buildApplicationCrumbs() { | ||||
| $crumbs = parent::buildApplicationCrumbs(); | $crumbs = parent::buildApplicationCrumbs(); | ||||
| $engine = $this->getEngine(); | $engine = $this->getEngine(); | ||||
| if ($engine) { | if ($engine) { | ||||
| $parent = $engine->getParentProject(); | $parent = $engine->getParentProject(); | ||||
| if ($parent) { | $milestone = $engine->getMilestoneProject(); | ||||
| $id = $parent->getID(); | if ($parent || $milestone) { | ||||
| $id = nonempty($parent, $milestone)->getID(); | |||||
| $crumbs->addTextCrumb( | $crumbs->addTextCrumb( | ||||
| pht('Subprojects'), | pht('Subprojects'), | ||||
| $this->getApplicationURI("subprojects/{$id}/")); | $this->getApplicationURI("subprojects/{$id}/")); | ||||
| } | } | ||||
| $milestone = $engine->getMilestoneProject(); | |||||
| if ($milestone) { | |||||
| $id = $milestone->getID(); | |||||
| $crumbs->addTextCrumb( | |||||
| pht('Milestones'), | |||||
| $this->getApplicationURI("milestones/{$id}/")); | |||||
| } | |||||
| } | } | ||||
| return $crumbs; | return $crumbs; | ||||
| } | } | ||||
| } | } | ||||