Path: blob/master/src/applications/calendar/controller/PhabricatorCalendarImportDisableController.php
12256 views
<?php12final class PhabricatorCalendarImportDisableController3extends PhabricatorCalendarController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();78$import = id(new PhabricatorCalendarImportQuery())9->setViewer($viewer)10->withIDs(array($request->getURIData('id')))11->requireCapabilities(12array(13PhabricatorPolicyCapability::CAN_VIEW,14PhabricatorPolicyCapability::CAN_EDIT,15))16->executeOne();17if (!$import) {18return new Aphront404Response();19}2021$import_uri = $import->getURI();22$is_disable = !$import->getIsDisabled();2324if (!$import->getEngine()->canDisable($viewer, $import)) {25$reason = $import->getEngine()->explainCanDisable($viewer, $import);26return $this->newDialog()27->setTitle(pht('Unable to Disable'))28->appendParagraph($reason)29->addCancelButton($import_uri);30}3132if ($request->isFormPost()) {33$xactions = array();34$xactions[] = id(new PhabricatorCalendarImportTransaction())35->setTransactionType(36PhabricatorCalendarImportDisableTransaction::TRANSACTIONTYPE)37->setNewValue($is_disable ? 1 : 0);3839$editor = id(new PhabricatorCalendarImportEditor())40->setActor($viewer)41->setContinueOnNoEffect(true)42->setContinueOnMissingFields(true)43->setContentSourceFromRequest($request);4445$editor->applyTransactions($import, $xactions);4647return id(new AphrontRedirectResponse())->setURI($import_uri);48}4950if ($is_disable) {51$title = pht('Disable Import');52$body = pht(53'Disable this import? Events from this source will no longer be '.54'updated.');55$button = pht('Disable Import');56} else {57$title = pht('Enable Import');58$body = pht(59'Enable this import? Events from this source will be updated again.');60$button = pht('Enable Import');61}6263return $this->newDialog()64->setTitle($title)65->appendParagraph($body)66->addCancelButton($import_uri)67->addSubmitButton($button);68}6970}717273