Something went wrong. Try again.
@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
Something went wrong. Try again.
2.5 kB · 82 lines
PHP
at commit dfc8f8bc
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283<?php
final class DiffusionRepositoryEditAutomationController extends DiffusionRepositoryEditController {
public function handleRequest(AphrontRequest $request) { $response = $this->loadDiffusionContextForEdit(); if ($response) { return $response; }
$viewer = $this->getViewer(); $drequest = $this->getDiffusionRequest(); $repository = $drequest->getRepository();
if (!$repository->supportsAutomation()) { return new Aphront404Response(); }
$edit_uri = $this->getRepositoryControllerURI($repository, 'edit/');
$v_blueprints = $repository->getHumanReadableDetail( 'automation.blueprintPHIDs');
if ($request->isFormPost()) { $v_blueprints = $request->getArr('blueprintPHIDs');
$xactions = array(); $template = id(new PhabricatorRepositoryTransaction());
$type_blueprints = PhabricatorRepositoryTransaction::TYPE_AUTOMATION_BLUEPRINTS;
$xactions[] = id(clone $template) ->setTransactionType($type_blueprints) ->setNewValue($v_blueprints);
id(new PhabricatorRepositoryEditor()) ->setContinueOnNoEffect(true) ->setContentSourceFromRequest($request) ->setActor($viewer) ->applyTransactions($repository, $xactions);
return id(new AphrontRedirectResponse())->setURI($edit_uri); }
$crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb(pht('Edit Automation'));
$title = pht('Edit %s', $repository->getName());
$form = id(new AphrontFormView()) ->setUser($viewer) ->appendRemarkupInstructions( pht( "Configure **Repository Automation** to allow Phabricator to ". "write to this repository.". "\n\n". "IMPORTANT: This feature is new, experimental, and not supported. ". "Use it at your own risk.")) ->appendControl( id(new AphrontFormTokenizerControl()) ->setLabel(pht('Use Blueprints')) ->setName('blueprintPHIDs') ->setValue($v_blueprints) ->setDatasource(new DrydockBlueprintDatasource())) ->appendChild( id(new AphrontFormSubmitControl()) ->setValue(pht('Save')) ->addCancelButton($edit_uri));
$object_box = id(new PHUIObjectBoxView()) ->setHeaderText($title) ->setForm($form);
return $this->newPage() ->setTitle($title) ->setCrumbs($crumbs) ->appendChild($object_box); }
}