Path: blob/master/src/applications/calendar/controller/PhabricatorCalendarImportDeleteController.php
12256 views
<?php12final class PhabricatorCalendarImportDeleteController3extends 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();2223$engine = $import->getEngine();24if (!$engine->canDeleteAnyEvents($viewer, $import)) {25return $this->newDialog()26->setTitle(pht('No Imported Events'))27->appendParagraph(28pht(29'No events from this source currently exist. They may have '.30'failed to import, have been updated by another source, or '.31'already have been deleted.'))32->addCancelButton($import_uri, pht('Done'));33}3435if ($request->isFormPost()) {36$xactions = array();37$xactions[] = id(new PhabricatorCalendarImportTransaction())38->setTransactionType(39PhabricatorCalendarImportDeleteTransaction::TRANSACTIONTYPE)40->setNewValue(true);4142$editor = id(new PhabricatorCalendarImportEditor())43->setActor($viewer)44->setContinueOnNoEffect(true)45->setContinueOnMissingFields(true)46->setContentSourceFromRequest($request);4748$editor->applyTransactions($import, $xactions);4950return id(new AphrontRedirectResponse())->setURI($import_uri);51}5253return $this->newDialog()54->setTitle(pht('Delete Imported Events'))55->appendParagraph(56pht(57'Delete all the events that were imported from this source? '.58'This action can not be undone.'))59->addCancelButton($import_uri)60->addSubmitButton(pht('Delete Events'));61}6263}646566