@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 51 lines 1.4 kB view raw
1<?php 2 3final class PhabricatorProjectSubprojectWarningController 4 extends PhabricatorProjectController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $request->getViewer(); 8 9 $response = $this->loadProject(); 10 if ($response) { 11 return $response; 12 } 13 14 $project = $this->getProject(); 15 16 $can_edit = PhabricatorPolicyFilter::hasCapability( 17 $viewer, 18 $project, 19 PhabricatorPolicyCapability::CAN_EDIT); 20 21 if (!$can_edit) { 22 return new Aphront404Response(); 23 } 24 25 $id = $project->getID(); 26 $cancel_uri = "/project/subprojects/{$id}/"; 27 $done_uri = "/project/edit/?parent={$id}"; 28 29 if ($request->isFormPost()) { 30 return id(new AphrontRedirectResponse()) 31 ->setURI($done_uri); 32 } 33 34 $doc_href = PhabricatorEnv::getDoclink('Projects User Guide'); 35 36 $conversion_help = pht( 37 "Creating a project's first subproject **moves all ". 38 "members** to become members of the subproject instead.". 39 "\n\n". 40 "See [[ %s | Projects User Guide ]] in the documentation for details. ". 41 "This process can not be undone.", 42 $doc_href); 43 44 return $this->newDialog() 45 ->setTitle(pht('Convert to Parent Project')) 46 ->appendChild(new PHUIRemarkupView($viewer, $conversion_help)) 47 ->addCancelButton($cancel_uri) 48 ->addSubmitButton(pht('Convert Project')); 49 } 50 51}