Path: blob/master/src/applications/almanac/controller/AlmanacBindingDisableController.php
12256 views
<?php12final class AlmanacBindingDisableController3extends AlmanacServiceController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();78$id = $request->getURIData('id');9$binding = id(new AlmanacBindingQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$binding) {19return new Aphront404Response();20}2122$id = $binding->getID();23$is_disable = !$binding->getIsDisabled();24$done_uri = $binding->getURI();2526if ($is_disable) {27$disable_title = pht('Disable Binding');28$disable_body = pht('Disable this binding?');29$disable_button = pht('Disable Binding');3031$v_disable = 1;32} else {33$disable_title = pht('Enable Binding');34$disable_body = pht('Enable this binding?');35$disable_button = pht('Enable Binding');3637$v_disable = 0;38}394041if ($request->isFormPost()) {42$type_disable = AlmanacBindingDisableTransaction::TRANSACTIONTYPE;4344$xactions = array();4546$xactions[] = id(new AlmanacBindingTransaction())47->setTransactionType($type_disable)48->setNewValue($v_disable);4950$editor = id(new AlmanacBindingEditor())51->setActor($viewer)52->setContentSourceFromRequest($request)53->setContinueOnNoEffect(true)54->setContinueOnMissingFields(true);5556$editor->applyTransactions($binding, $xactions);5758return id(new AphrontRedirectResponse())->setURI($done_uri);59}6061return $this->newDialog()62->setTitle($disable_title)63->appendParagraph($disable_body)64->addSubmitButton($disable_button)65->addCancelButton($done_uri);66}6768}697071