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.4 kB · 82 lines
PHP
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283<?php
final class DiffusionRepositoryURIDisableController extends DiffusionController {
public function handleRequest(AphrontRequest $request) { $response = $this->loadDiffusionContextForEdit(); if ($response) { return $response; }
$viewer = $this->getViewer(); $drequest = $this->getDiffusionRequest(); $repository = $drequest->getRepository();
$id = $request->getURIData('id'); $uri = id(new PhabricatorRepositoryURIQuery()) ->setViewer($viewer) ->withIDs(array($id)) ->withRepositories(array($repository)) ->requireCapabilities( array( PhabricatorPolicyCapability::CAN_VIEW, PhabricatorPolicyCapability::CAN_EDIT, )) ->executeOne(); if (!$uri) { return new Aphront404Response(); }
$is_disabled = $uri->getIsDisabled(); $view_uri = $uri->getViewURI();
if ($uri->isBuiltin()) { return $this->newDialog() ->setTitle(pht('Builtin URI')) ->appendParagraph( pht( 'You can not manually disable builtin URIs. To hide a builtin '. 'URI, configure its "Display" behavior instead.')) ->addCancelButton($view_uri); }
if ($request->isFormPost()) { $xactions = array();
$xactions[] = id(new PhabricatorRepositoryURITransaction()) ->setTransactionType(PhabricatorRepositoryURITransaction::TYPE_DISABLE) ->setNewValue(!$is_disabled);
$editor = id(new DiffusionURIEditor()) ->setActor($viewer) ->setContinueOnNoEffect(true) ->setContinueOnMissingFields(true) ->setContentSourceFromRequest($request) ->applyTransactions($uri, $xactions);
return id(new AphrontRedirectResponse())->setURI($view_uri); }
if ($is_disabled) { $title = pht('Enable URI'); $body = pht( 'Enable this URI? Any configured behaviors will begin working '. 'again.'); $button = pht('Enable URI'); } else { $title = pht('Disable URI'); $body = pht( 'Disable this URI? It will no longer be observed, fetched, mirrored, '. 'served or shown to users.'); $button = pht('Disable URI'); }
return $this->newDialog() ->setTitle($title) ->appendParagraph($body) ->addCancelButton($view_uri) ->addSubmitButton($button); }
}