Path: blob/master/src/applications/badges/controller/PhabricatorBadgesArchiveController.php
12262 views
<?php12final class PhabricatorBadgesArchiveController3extends PhabricatorBadgesController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89$badge = id(new PhabricatorBadgesQuery())10->setViewer($viewer)11->withIDs(array($id))12->requireCapabilities(13array(14PhabricatorPolicyCapability::CAN_VIEW,15PhabricatorPolicyCapability::CAN_EDIT,16))17->executeOne();18if (!$badge) {19return new Aphront404Response();20}2122$view_uri = $this->getApplicationURI('view/'.$badge->getID().'/');2324if ($request->isFormPost()) {25if ($badge->isArchived()) {26$new_status = PhabricatorBadgesBadge::STATUS_ACTIVE;27} else {28$new_status = PhabricatorBadgesBadge::STATUS_ARCHIVED;29}3031$xactions = array();3233$xactions[] = id(new PhabricatorBadgesTransaction())34->setTransactionType(35PhabricatorBadgesBadgeStatusTransaction::TRANSACTIONTYPE)36->setNewValue($new_status);3738id(new PhabricatorBadgesEditor())39->setActor($viewer)40->setContentSourceFromRequest($request)41->setContinueOnNoEffect(true)42->setContinueOnMissingFields(true)43->applyTransactions($badge, $xactions);4445return id(new AphrontRedirectResponse())->setURI($view_uri);46}4748if ($badge->isArchived()) {49$title = pht('Activate Badge');50$body = pht('This badge will be re-commissioned into service.');51$button = pht('Activate Badge');52} else {53$title = pht('Archive Badge');54$body = pht(55'This dedicated badge, once a distinguish icon of this install, '.56'shall be immediately retired from service, but will never far from '.57'our hearts. Godspeed.');58$button = pht('Archive Badge');59}6061return $this->newDialog()62->setTitle($title)63->appendChild($body)64->addCancelButton($view_uri)65->addSubmitButton($button);66}6768}697071