Path: blob/master/src/applications/owners/controller/PhabricatorOwnersArchiveController.php
12262 views
<?php12final class PhabricatorOwnersArchiveController3extends PhabricatorOwnersController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89$package = id(new PhabricatorOwnersPackageQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$package) {19return new Aphront404Response();20}2122$view_uri = $this->getApplicationURI('package/'.$package->getID().'/');2324if ($request->isFormPost()) {25if ($package->isArchived()) {26$new_status = PhabricatorOwnersPackage::STATUS_ACTIVE;27} else {28$new_status = PhabricatorOwnersPackage::STATUS_ARCHIVED;29}3031$xactions = array();3233$type = PhabricatorOwnersPackageStatusTransaction::TRANSACTIONTYPE;34$xactions[] = id(new PhabricatorOwnersPackageTransaction())35->setTransactionType($type)36->setNewValue($new_status);3738id(new PhabricatorOwnersPackageTransactionEditor())39->setActor($viewer)40->setContentSourceFromRequest($request)41->setContinueOnNoEffect(true)42->setContinueOnMissingFields(true)43->applyTransactions($package, $xactions);4445return id(new AphrontRedirectResponse())->setURI($view_uri);46}4748if ($package->isArchived()) {49$title = pht('Activate Package');50$body = pht('This package will become active again.');51$button = pht('Activate Package');52} else {53$title = pht('Archive Package');54$body = pht('This package will be marked as archived.');55$button = pht('Archive Package');56}5758return $this->newDialog()59->setTitle($title)60->appendChild($body)61->addCancelButton($view_uri)62->addSubmitButton($button);63}6465}666768